Loading newbrt/brt-flusher.c +6 −1 Original line number Diff line number Diff line Loading @@ -148,7 +148,12 @@ update_flush_status(BRTNODE child, int cascades) { static void maybe_destroy_child_blbs(BRTNODE node, BRTNODE child) { if (child->height == 0 && !child->dirty) { // If the node is already fully in memory, as in upgrade, we don't // need to destroy the basement nodes because they are all equally // up to date. if (!is_entire_node_in_memory(child) && child->height == 0 && !child->dirty) { for (int i = 0; i < child->n_children; ++i) { if (BP_STATE(child, i) == PT_AVAIL && node->max_msn_applied_to_node_on_disk.msn < BLB_MAX_MSN_APPLIED(child, i).msn) { Loading newbrt/brt-internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -491,6 +491,7 @@ void destroy_basement_node (BASEMENTNODE bn); void destroy_nonleaf_childinfo (NONLEAF_CHILDINFO nl); void toku_destroy_brtnode_internals(BRTNODE node); void toku_brtnode_free (BRTNODE *node); bool is_entire_node_in_memory(BRTNODE node); void toku_assert_entire_node_in_memory(BRTNODE node); // FIXME needs toku prefix void bring_node_fully_into_memory(BRTNODE node, struct brt_header* h); Loading newbrt/brt.c +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ toku_brt_header_suppress_rollbacks(struct brt_header *h, TOKUTXN txn) { h->root_that_created_or_locked_when_empty = rootid; } static bool is_entire_node_in_memory(BRTNODE node) { bool is_entire_node_in_memory(BRTNODE node) { for (int i = 0; i < node->n_children; i++) { if(BP_STATE(node,i) != PT_AVAIL) { return false; Loading Loading
newbrt/brt-flusher.c +6 −1 Original line number Diff line number Diff line Loading @@ -148,7 +148,12 @@ update_flush_status(BRTNODE child, int cascades) { static void maybe_destroy_child_blbs(BRTNODE node, BRTNODE child) { if (child->height == 0 && !child->dirty) { // If the node is already fully in memory, as in upgrade, we don't // need to destroy the basement nodes because they are all equally // up to date. if (!is_entire_node_in_memory(child) && child->height == 0 && !child->dirty) { for (int i = 0; i < child->n_children; ++i) { if (BP_STATE(child, i) == PT_AVAIL && node->max_msn_applied_to_node_on_disk.msn < BLB_MAX_MSN_APPLIED(child, i).msn) { Loading
newbrt/brt-internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -491,6 +491,7 @@ void destroy_basement_node (BASEMENTNODE bn); void destroy_nonleaf_childinfo (NONLEAF_CHILDINFO nl); void toku_destroy_brtnode_internals(BRTNODE node); void toku_brtnode_free (BRTNODE *node); bool is_entire_node_in_memory(BRTNODE node); void toku_assert_entire_node_in_memory(BRTNODE node); // FIXME needs toku prefix void bring_node_fully_into_memory(BRTNODE node, struct brt_header* h); Loading
newbrt/brt.c +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ toku_brt_header_suppress_rollbacks(struct brt_header *h, TOKUTXN txn) { h->root_that_created_or_locked_when_empty = rootid; } static bool is_entire_node_in_memory(BRTNODE node) { bool is_entire_node_in_memory(BRTNODE node) { for (int i = 0; i < node->n_children; i++) { if(BP_STATE(node,i) != PT_AVAIL) { return false; Loading