3 ms·
Reads in LMDB are orders of magnitude faster than BerkeleyDB. Not just a tiny 16-19%. Both are B+trees. Using the right algorithm is important, but using it wel
by hyc_symas 11y ago
Reads in LMDB are orders of magnitude faster than BerkeleyDB. Not just a tiny 16-19%. Both are B+trees. Using the right algorithm is important, but using it well matters too.
http://symas.com/mdb/#bench http://symas.com/mdb/#bench
Wy original comment was about write amplification, not read amplification. It's already a given that LSMs are slow for reads. LSMs are claimed to be write optimized and yet it's easy to demonstrate that their write amplification is prohibitively bad. They also are inherently unreliable, making them a choice suitable only for idiots.
https://www.usenix.org/conference/osdi14/technical-sessions/presentation/pillai https://www.usenix.org/conference/osdi14/technical-sessions/...
- thesz 11y agoYou answer not my analysis, but your idea of my analysis. The decrease of reading time for complex structure was 16%-19% for A WHOLE SERVER OPERATION, where BDB never amounted more than 20% in profile. So I achieved speedup of 5-20 times over BDB (albeit not quite recent one, I admit). Scale-free 1M nodes graph write does not even ends with BDB in reasonable time (and produces HUGE log). The difference between BDB and my LSM implementation for smaller graph size writes was in order of 200-300 times, LSM is faster. Finally, I admit your code is here to test and use, mine's closed source and there are only my words. So I have to shut myself up and try to recreate that wonderful thing for everyone to use.