summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@wiredtiger.com>2013-03-08 16:52:41 +1100
committerMichael Cahill <michael.cahill@wiredtiger.com>2013-03-08 16:52:41 +1100
commit6f56fda8e1cd618b8974628ff8c9ea0a227e1f6d (patch)
tree3cf056bc834d7ba0057d34692d0a50f1d818c622
parentdb83bd350d7399b5877dce96c2dcb59f2fa8bf64 (diff)
downloadmongo-6f56fda8e1cd618b8974628ff8c9ea0a227e1f6d.tar.gz
Anyone can check for obsolete values: we don't need a transaction running.
This is particularly important for metadata updates during checkpoints, which are currently performed without a transaction. In some test/format workloads, the list of old values for the file metadata can fill the cache, blocking application progress.
-rw-r--r--src/btree/row_modify.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/src/btree/row_modify.c b/src/btree/row_modify.c
index db5bb6d6ba4..d031315e7bb 100644
--- a/src/btree/row_modify.c
+++ b/src/btree/row_modify.c
@@ -353,7 +353,6 @@ __wt_update_alloc(WT_SESSION_IMPL *session,
WT_UPDATE *
__wt_update_obsolete_check(WT_SESSION_IMPL *session, WT_UPDATE *upd)
{
- WT_TXN *txn;
WT_UPDATE *next;
/*
@@ -361,13 +360,7 @@ __wt_update_obsolete_check(WT_SESSION_IMPL *session, WT_UPDATE *upd)
* the rest of the chain; because this routine is called from inside
* a serialization function, the caller has responsibility for actually
* freeing the memory.
- */
- txn = &session->txn;
- if (txn->isolation != TXN_ISO_SNAPSHOT &&
- txn->isolation != TXN_ISO_READ_COMMITTED)
- return (NULL);
-
- /*
+ *
* Walk the list of updates, looking for obsolete updates. If we find
* an update no session will ever move past, we can discard any updates
* that appear after it.