[DGD] Multi-level map shifter bigmap
Shentino
shentino at gmail.com
Fri Jun 6 23:07:41 CEST 2008
I've recently been working on what I hope to be the be all and end all
of types, the bigmap.
Homebrew, it's structured as a successively layered partitioned
keyspace with balancing.
The bottom nodes contain the actual mapping(s) with the keys->values,
while higher level nodes use similiar mappings to index their
subnodes.
On insertion or deletion, after I put the keys in or out of the
bottom, I run up to do a balance check to move nodes back and forth as
needed by splits and merges.
I guess you could call it a layered linked list with a top level all
encompassing root directory.
Does anyone have any ideas or notice any weaknesses in this scheme?
Two problems I seem to be having
1. Merges and splits require range operations on mappings, and
massive slowdowns. Anything besides tuning to balance out layer count
vs driver-side O(1) operations?
2. It keeps crashing...invariant violations aplenty everytime I run
node->fsck() ;). Anything wrong with the design itself or am I just a
sloppy coder?
More information about the DGD
mailing list