Skip to content

Commit

Permalink
WT-2089: relax the restriction on doing in-memory splits on pages
Browse files Browse the repository at this point in the history
previous reconciled into multiple blocks.
  • Loading branch information
keithbostic committed Sep 8, 2015
1 parent 84a61a4 commit 8552e06
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 6 additions & 0 deletions src/btree/bt_split.c
Expand Up @@ -1176,7 +1176,13 @@ __wt_split_insert(WT_SESSION_IMPL *session, WT_REF *ref)
right = NULL;
page_decr = parent_incr = right_incr = 0;

/*
* Assert splitting makes sense; specifically assert the page is dirty,
* we depend on that, otherwise the page might be evicted based on its
* last reconciliation which no longer matches reality after the split.
*/
WT_ASSERT(session, __wt_page_can_split(session, page));
WT_ASSERT(session, __wt_page_is_modified(page));

/* Find the last item on the page. */
ins_head = page->pg_row_entries == 0 ?
Expand Down
4 changes: 0 additions & 4 deletions src/include/btree.i
Expand Up @@ -1002,10 +1002,6 @@ __wt_page_can_split(WT_SESSION_IMPL *session, WT_PAGE *page)
!__wt_page_is_modified(page))
return (0);

/* Don't split a page that is pending a multi-block split. */
if (F_ISSET(page->modify, WT_PM_REC_MULTIBLOCK))
return (0);

/*
* There is no point splitting if the list is small, no deep items is
* our heuristic for that. A 1/4 probability of adding a new skiplist
Expand Down

0 comments on commit 8552e06

Please sign in to comment.