Commit 53d51f6b authored by Rich Prohaska's avatar Rich Prohaska

push down will get us partly home. addresses #51

git-svn-id: file:///svn/tokudb@862 c7de825b-a66e-492c-adef-691d508d4ae1
parent 5cbee82f
...@@ -635,6 +635,8 @@ static int push_a_brt_cmd_down (BRT t, BRTNODE node, BRTNODE child, int childnum ...@@ -635,6 +635,8 @@ static int push_a_brt_cmd_down (BRT t, BRTNODE node, BRTNODE child, int childnum
return 0; return 0;
} }
static int brtnode_maybe_push_down(BRT t, BRTNODE node, int *did_split, BRTNODE *nodea, BRTNODE *nodeb, DBT *splitk, int debug, TOKUTXN txn);
static int split_count=0; static int split_count=0;
/* NODE is a node with a child. /* NODE is a node with a child.
...@@ -771,6 +773,12 @@ static int handle_split_of_child (BRT t, BRTNODE node, int childnum, ...@@ -771,6 +773,12 @@ static int handle_split_of_child (BRT t, BRTNODE node, int childnum,
//verify_local_fingerprint_nonleaf(*nodeb); //verify_local_fingerprint_nonleaf(*nodeb);
} else { } else {
*did_split=0; *did_split=0;
if (toku_serialize_brtnode_size(node) > node->nodesize) {
// printf("hsoc maybe\n");
r = brtnode_maybe_push_down(t, node, did_split, nodea, nodeb, splitk, 0, txn);
assert(r == 0);
assert(*did_split == 0);
}
assert(toku_serialize_brtnode_size(node)<=node->nodesize); assert(toku_serialize_brtnode_size(node)<=node->nodesize);
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment