: 4518 | 107631 | 12161

Rewrite @DBLookup in assembler 
Use this IdeaSpace to post ideas about Domino Designer.

: -29
: 1
: 30
: Domino Designer
: Formula, @Formula
: Mark Demicoli11417 02 Feb 2009
:
: / Email
Might be a stupid idea because I have no idea how well optimised this critical function is.  But throwing a genius at it might yield a fantastic performance improvement.  Surely IBM has some nutters in there with 2 key keyboards (0 & 1) :)



1) Matt White9265 (02 Feb 2009)
Are you finding @DbLookups not performing well then? Often if you do have problems it's down to view design. Generally I am happy with the @DbLookup, although I would like the limits to be extended, but there's already an idea for that: { Link }
2) Mark Demicoli11417 (03 Feb 2009)
@1: You missed the point. If a lookup in a badly designed view takes 10ms and 5ms in a beautifully designed view, both views would experience a 100% improvement if the @DBLookup function was improved by that factor.
3) Lauri Laanti346 (04 Feb 2009)
I think the @Formula engine was rewritten couple years ago. I would assume that this particular function is pretty well optimized for speed.
4) Urs Meli1609 (05 Feb 2009)
I think, if a user would notice a performance gain in a lookup from 10ms to 5ms, than there is something wrong with your application. Maybee tooo many lookups?
5) Karl-Henry Martinsson1587 (10 Feb 2009)
@3: Damien Katz rewrote the whole @Formula engine in Notes 6: { Link }
I am also sure it is pretty well optimized by now.

@Mark: I never seen any performance issues using @DbLookup, if the application design have been sound. And would it be worth spending the time (both in development and in testing) to address something that is really an application design issue? Throwing resources (more memory, faster CPU, faster drives) at a problem (e.g. a slow database) is not really a good solution, it is better to fix the underlying problem (design) instead.
6) Mark Demicoli11417 (12 Feb 2009)
My understanding is that Notes is written in C which is subject to generic compiler logic. You have a class of programmers that specialise in lower level programming languages such as assembler or machine code. These guys write incredibly optimised instructions for embedded systems that are performance critical. So the same functionality, logically optmised (ie perfectly efficient logic), that compiles to 1000 instructions when written in C and then compiled into machine code, could be written in say 250 instructions if written in machine code. Get the point?
7) Karl-Henry Martinsson1587 (17 Feb 2009)
@Mark: But is that really a big problem? Yeah, perhaps IBM could put a developer on rewriting this one function slightly more optimized for you, but I am sure there are other functions who are much more important. Full round-trip DXL, for example. I never seen any performance problems using @DbLookup in a well design application. Perhaps you should spend a few hours optimizing your application design instead?
8) Ninke Westra1699 (17 Feb 2009)
I'd rather see those retarded limits on return set size removed (or increased significantly.
9) Adeleida Bingham11 (18 Feb 2009)
LOL. Feel like promoting this idea just because it's so funny. (Sorry Mark, no offense) . I honestly thought it was a joke.
10) Mark Demicoli11417 (20 Feb 2009)
This is not a 'my lookups are better than yours' discussion. It's besides the point. An infinitely optimised sports car interior will not make the engine run more efficiently. There may actually already be certain parts of Domino that are written in lower languages than C. Anyone know?

@4: 10ms multiplied by 1000 'simultaneous' operations is 10 second response. 5 seconds if the @Lookup was twice as fast. if we have an agent doing the fabled lookup in this imaginary application and spitting out the result to a browser, the difference to the last processed request is 5 seconds. One onethosand.... Two onethousand.... Three onethousand.... Four onethosand.... Five onethousand.

Again this has nothing to do with developer prowess. A great F1 driver is limited by the performance of the vehicle.


11) Mark Demicoli11417 (20 Feb 2009)
@9: have you heard the one about the Domino to Exchange conversion utility? Command line version. :P
12) Richard Schwartz3723 (08 Sep 2009)
Point 1: Given the the complexities of manually optimizing for modern piplelined and multi-threaded chips, compounded by the fact that IBM supports many different client and server processor chips, it is highly unlikely that IBM's programmers could do a better job than the compilers that have intimate knowledge of each chip's capabilities built in.

Point 2: The performance of @DbLookup will mostly be determined by the performance of the Notes C API routines that it calls to do the database index lookups and all the NSF file i/o required for that. That code has been worked on by incredibly smart programmers for more than 20 years, and it seems highly unlikely that there are any significant performance gains to be made from code optimization. They have, on the other hand, gained performance from significant architectural updates to the ODS, caching algorithms, etc, over the years -- and those sort of things are where the achievable performance gains are likely to continue to come from.
13) Mark Demicoli11417 (07 Mar 2011)
Status changed to Withdrawn










:
:

Welcome to IdeaJam™


You can run IdeaJam™ in your company. It's easy to install, setup and customize. Your employees, partners and customers will immediately see results.

Use IdeaJam to:

  • Collect ideas from employees
  • Solicit feedback and suggestions from employees and customers
  • Run innovation contests and competitions
  • Validate concepts
  • Use the power of "crowd-sourcing" to rank ideas and allow the best ideas to rise to the top

IdeaJam™ works with:

  • IBM Connections
  • IBM Lotus Quickr
  • Blogs and Wikis
  • Websphere Portal
  • Microsoft Sharepoint
  • and other applications.

IdeaJam has an extensive set of widgets and API's that allow you to extend and integrate IdeaJam™ with other applications.

Learn more about IdeaJam >>


4
XWork Server Community Edition
16
allow copying file path from database properties infobox
11
provide admin tool to force-stop Amgr & Runonserver tasks
1
use one column value in another column
9
get a list of readers and authors for the selected document
0
Support for very high log activity in HTTP server
8
use @Newline in @Failure text
1
Integrate Worklight into Designer
6
Clicking the Quickflag icon on an already flagged e-mail should remove the flag
89
Domino Designer available for Linux and MAC Os
0
Inbox Zero for Notes
11
When inserting a new row into a table: take current format of the neighbour rows
10
modify, copy, paste multiple ACL entries at once
8
make profile a first class design element again
24
Simple archive settings => all docs of 2009, ....
2
I wish evaluate() would throw errors (again)
2
I wish @Eval returned errors much like other @Functions
7
Archiving Emails (Selection Criteria)
4
Wiki Archive
2
more options to program customized view setup & changes
3
I wish NotesUi objects could open an ACL dialog
4
put back script library alias
33
NSD Kill for specific task or PID
260
Allow users to have multiple signature files which they can easily choose from






IdeaJam developed by