summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/include/cursor.i
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2020-05-29 16:48:08 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-05-29 07:01:36 +0000
commitd8292dbefc595e639164aa2e7d0317668781ca0f (patch)
tree8134fa43e1b78ed47b5a6225d2c14fcf796a3d3f /src/third_party/wiredtiger/src/include/cursor.i
parent8f1df3e07ad034da2926d73130e0250c40e8e8ef (diff)
downloadmongo-d8292dbefc595e639164aa2e7d0317668781ca0f.tar.gz
Import wiredtiger: 943d9cdd2a1cfc4ae357da44ec497b5115ff3139 from branch mongodb-4.4
ref: a7af601643..943d9cdd2a for: 4.4.0-rc8 WT-6168 Ignore history store visibility when resolving prepared updates WT-6250 Avoid passing reconcile struct to cell layer for stat logging WT-6302 Move format operations tracing into WiredTiger log files WT-6303 Fix commit check may fail because of a prepared rollback WT-6306 Do not force evict HS pages because of deleted items WT-6307 Increase the page cache size for all the page allocations WT-6312 Add history store verification WT-6315 Fix commit check failure because of updates restored from data store WT-6317 Create variant of compatibility test that runs faster and generates a smaller artifact footprint WT-6318 Stop assuming exclusive access when writing to history store pages WT-6320 Allow eviction of pages with older content
Diffstat (limited to 'src/third_party/wiredtiger/src/include/cursor.i')
-rw-r--r--src/third_party/wiredtiger/src/include/cursor.i7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/third_party/wiredtiger/src/include/cursor.i b/src/third_party/wiredtiger/src/include/cursor.i
index d3237ad91d2..362efea63a9 100644
--- a/src/third_party/wiredtiger/src/include/cursor.i
+++ b/src/third_party/wiredtiger/src/include/cursor.i
@@ -210,9 +210,14 @@ __cursor_reset(WT_CURSOR_BTREE *cbt)
/*
* If we were scanning and saw a lot of deleted records on this page, try to evict the page when
* we release it.
+ *
+ * A visible stop timestamp could have been treated as a tombstone and accounted in the deleted
+ * count. Such a page might not have any new updates and be clean, but could benefit from
+ * reconciliation getting rid of the obsolete content. Hence mark the page dirty to force it
+ * through reconciliation.
*/
if (cbt->page_deleted_count > WT_BTREE_DELETE_THRESHOLD) {
- __wt_page_evict_soon(session, cbt->ref);
+ WT_RET(__wt_page_dirty_and_evict_soon(session, cbt->ref));
WT_STAT_CONN_INCR(session, cache_eviction_force_delete);
}
cbt->page_deleted_count = 0;