diff options
author | Michael Cahill <michael.cahill@wiredtiger.com> | 2015-03-06 22:48:45 +1100 |
---|---|---|
committer | Michael Cahill <michael.cahill@wiredtiger.com> | 2015-03-06 22:48:45 +1100 |
commit | ed9c48c7b8fa5dd3362e417fda8337f1690585ed (patch) | |
tree | ac8a7b266f192957a46f165df17172aba505d6d5 | |
parent | 248d88e0c57b778f99ab1d1f767519d8eb261e9e (diff) | |
download | mongo-ed9c48c7b8fa5dd3362e417fda8337f1690585ed.tar.gz |
Ignore empty child pages in column stores.
-rw-r--r-- | src/include/btree.i | 2 | ||||
-rw-r--r-- | src/reconcile/rec_write.c | 14 |
2 files changed, 6 insertions, 10 deletions
diff --git a/src/include/btree.i b/src/include/btree.i index d4e8ca088c7..56fb66abaef 100644 --- a/src/include/btree.i +++ b/src/include/btree.i @@ -982,7 +982,7 @@ __wt_page_can_evict(WT_SESSION_IMPL *session, WT_PAGE *page, int check_splits) */ if (btree->checkpointing && (__wt_page_is_modified(page) || - F_ISSET(mod, WT_PM_REC_MULTIBLOCK))) { + F_ISSET(mod, WT_PM_REC_MULTIBLOCK))) { WT_STAT_FAST_CONN_INCR(session, cache_eviction_checkpoint); WT_STAT_FAST_DATA_INCR(session, cache_eviction_checkpoint); return (0); diff --git a/src/reconcile/rec_write.c b/src/reconcile/rec_write.c index 7af681111ef..69654955d6b 100644 --- a/src/reconcile/rec_write.c +++ b/src/reconcile/rec_write.c @@ -3237,15 +3237,11 @@ __rec_col_int(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) WT_ERR(__rec_child_modify(session, r, ref, &hazard, &state)); addr = NULL; child = ref->page; - if (state != 0) { - /* - * Currently the only non-zero returned stated possible - * for a column-store page is child-modified (all other - * states are part of the fast-truncate support, which - * is row-store only). - */ - WT_ASSERT(session, state == WT_CHILD_MODIFIED); - + if (state == WT_CHILD_IGNORE) { + CHILD_RELEASE_ERR(session, hazard, ref); + continue; + } + if (state == WT_CHILD_MODIFIED) { switch (F_ISSET(child->modify, WT_PM_REC_MASK)) { case WT_PM_REC_EMPTY: /* |