Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.
For more information and upcoming events around #dominoforever, please visit our Destination Domino Page
Hi there,
I suggest the following 2 ideas to get more speed in home office:
The client cache for design elements should not(!) delete the design elements in the cache, when the database (DB) gets closed, other wise they need to get loaded again whenever the DB gets opened again. But if they still exist in the cache, they load very fast (local) and the traffic for the server gets slightly reduced. Only the signatures of the design elements need to be compared with those on the server, so that updates can take place.
Allow to prefetch documents in Lotusscript, Java and Javascript.
Example:
Assume an average latency of 40ms (Notes -> Server and Server -> Notes)
I also assume that he server is able to retrieve a document in 1ms
Sub NormalLoop(view As NotesView) Dim doc As NotesDocument Set doc=view.Getfirstdocument 'total time 2*40+1=81ms Do Until doc Is Nothing 'whatever needs to be done 'A little bit: 1ms, heavy stuff: 80ms Set doc=view.Getnextdocument(doc) 'total time 81ms Loop 'a single loop run would take it his exmaple an average of 162 or 242 ms End Sub |
Sub FastLoop(view As NotesView) Dim doc As NotesDocument Dim cached as boolean
cached=true Set doc=view.Getfirstdocument 'total time 2*40+1=81ms Do Until doc Is Nothing Call view.GetNextDocument(doc,cached) 'total time 1ms, prefetch !!! 'whatever needs to be done 'A little bit: 5ms, heavy stuff: 80ms Set doc=view.Getnextdocument(doc) 'retrieves from local cache:1ms Loop 'a single loop run would take it his exmaple an average of 161 or 82 ms End Sub |
The command " Call view.GetNextDocument(doc,cached)" would be implemented so that it would send the request to the server, but would not wait for the result delivery. LS could continue, it would not wait for the document. When the server delivers the document to the cleint, it would be stored in the cache(client background job), so that the next "Set doc=view.Getnextdocument(doc)" would be solved by the local cache, if the document has already arrived. Otherwise it has to wait for reception, but still less than the total latency time !!.
So for a loop with heavy workload, that would significantly accelerate the loop. For a simple change of 1 string field, there will be not a lot benefit though.
Collections could even internally handle the pre-fetch, if allowed to.
Locking could be processed accordingly.
Jochen "Joe" Herrmann
Well, thats what I do indeed to develope in the home office.
But in our company and other companies there are lots of databases which reside on the servers and where lots of people have access to. If they would use local replicas, we would have to handle all the replication conflicts. And I'm quiet sure that i.e. the transaction key methods are not able to produce unique numbers. A lots of databases were build in a time where replication and home office was not really important. Thats has chanfged now dramatically.
Jochen "Joe" Herrmann
Attachments Open full size
Why not simply create a local replica and eliminate all latency completely?
Attachments Open full size