[erlang-questions] B-trees
Richard A. O'Keefe
ok@REDACTED
Thu Dec 8 08:47:29 CET 2016
On 8/12/16 7:36 PM, Walter Weinmann wrote:
Every time I've tried to use B-trees, I've run SPLAT!
into a wall:
- the B-tree data structure wants to read and write single
pages
- and wants to store a fairly large minimum number of
keys on a page
- disc pages aren't *that* big
- my keys would usually be small but *might* be large
(well, kilobytes rather than megabytes, but that's enough
to mess up B-trees)
- dealing with this meant storing hash(Key) -> {Key,Value}
instead, which meant
* having to handle duplicates that aren't real duplicates
(again rare, but since it *could* happen...)
* losing the ordering properties of the B-tree.
How do you handle the keys-might-be-large problem?
For what it's worth, LMDB does traversal; if emdb doesn't, so much
the worse for emdb. LMDB has some very nice reliability properties.
More information about the erlang-questions
mailing list