diff options
author | Keith Bostic <keith@wiredtiger.com> | 2015-11-30 07:21:59 -0500 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2015-11-30 07:21:59 -0500 |
commit | 220e8947d9ccaca32431c3725b6659173743bf2c (patch) | |
tree | 76b3af37ed359deeccca3f91198a50f04f14529c /src/btree/bt_split.c | |
parent | ba9c1e319ad6b939f9b31454e5b2df1f7ecb517f (diff) | |
parent | 4c49948727a5a67e7675ea02eacfbd3026dcd53a (diff) | |
download | mongo-220e8947d9ccaca32431c3725b6659173743bf2c.tar.gz |
Merge branch 'develop' into wt-2231-parent-key-check
Diffstat (limited to 'src/btree/bt_split.c')
-rw-r--r-- | src/btree/bt_split.c | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/src/btree/bt_split.c b/src/btree/bt_split.c index 3b780ed32ca..a9d637ea453 100644 --- a/src/btree/bt_split.c +++ b/src/btree/bt_split.c @@ -409,18 +409,9 @@ __split_ref_move_final( WT_DECL_RET; WT_PAGE *child; WT_REF *ref, *child_ref; - uint64_t txn_new_id; uint32_t i, j; /* - * When creating new internal pages as part of a split, we set a field - * in those pages modify structure to prevent them from being evicted - * until all threads are known to have exited the index of the page that - * previously "owned" the WT_REF. Set that field to a safe value. - */ - txn_new_id = __wt_txn_id_alloc(session, false); - - /* * The WT_REF structures moved to newly allocated child pages reference * the wrong parent page and we have to fix that up. The problem is * revealed when a thread of control searches for the child page's @@ -472,14 +463,11 @@ __split_ref_move_final( * disk pages may have been read in since then, and * those pages would have correct parent references. */ - if (child_ref->home != child) { + if (child_ref->home != child) child_ref->home = child; - child->modify->mod_split_txn = txn_new_id; - } /* Update the WT_REF's page-index hint. */ child_ref->pindex_hint = j++; - } WT_INTL_FOREACH_END; WT_LEAVE_PAGE_INDEX(session); @@ -1658,7 +1646,7 @@ __split_insert(WT_SESSION_IMPL *session, WT_REF *ref) * * Note this page has already been through an in-memory split. */ - WT_ASSERT(session, __wt_page_can_split(session, page)); + WT_ASSERT(session, __wt_leaf_page_can_split(session, page)); WT_ASSERT(session, __wt_page_is_modified(page)); F_SET_ATOMIC(page, WT_PAGE_SPLIT_INSERT); @@ -1841,13 +1829,6 @@ __split_insert(WT_SESSION_IMPL *session, WT_REF *ref) #endif /* - * Save the transaction ID when the split happened. Application - * threads will not try to forcibly evict the page again until - * all concurrent transactions commit. - */ - page->modify->inmem_split_txn = __wt_txn_id_alloc(session, false); - - /* * Update the page accounting. * * XXX |