[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