3 ms·
To get the theory, you could just start on Wikipedia. http://en.wikipedia.org/wiki/B+_tree http://en.wikipedia.org/wiki/B+_tree To understand why the LMDB impl
by hyc_symas 12y ago
To get the theory, you could just start on Wikipedia. http://en.wikipedia.org/wiki/B+_tree http://en.wikipedia.org/wiki/B+_tree
To understand why the LMDB implementation does what it does will require much more practical knowledge, not theory. The references in my MDB papers (and the paper itself of course) will give you more of that. http://symas.com/mdb/#pubs http://symas.com/mdb/#pubs
B+trees are trivially simple, in theory. Writing one that is actually efficient, safe, and supports high concurrency requires more than theory. It requires understanding of computer system architecture: CPU architecture/cache hierarchies, filesystem and I/O architecture, memory, etc.
It does not require 100KLOC though. RocksDB is just a pile of gratuitous complexity.