summaryrefslogtreecommitdiff
path: root/src/evict/evict_page.c
diff options
context:
space:
mode:
authorKeith Bostic <keith.bostic@mongodb.com>2016-07-23 13:23:12 -0400
committerGitHub <noreply@github.com>2016-07-23 13:23:12 -0400
commit6eee786a839b7ed6f411b87a4591ba7afcd04276 (patch)
tree34da53c6cb749f2754e5dc5cbfe80cfca4b1a0dd /src/evict/evict_page.c
parent898a4e682e3ccef8feaae10d0cb35eed3a465b56 (diff)
downloadmongo-6eee786a839b7ed6f411b87a4591ba7afcd04276.tar.gz
WT-2737 Page scrubbing: more fixes. (#2903)
Revert parts of dc0ae01, restore parts of 0845a39: move all flag setting outside of reconciliation, don't save a disk image in the update/restore path unless there are updates to be restored to that segment of the name space.
Diffstat (limited to 'src/evict/evict_page.c')
-rw-r--r--src/evict/evict_page.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/evict/evict_page.c b/src/evict/evict_page.c
index 019f1beadf9..57010ddd571 100644
--- a/src/evict/evict_page.c
+++ b/src/evict/evict_page.c
@@ -504,10 +504,11 @@ __evict_review(
LF_SET(WT_VISIBILITY_ERR);
else if (!WT_PAGE_IS_INTERNAL(page)) {
if (F_ISSET(S2C(session), WT_CONN_IN_MEMORY))
- LF_SET(WT_EVICT_IN_MEMORY);
+ LF_SET(WT_EVICT_IN_MEMORY |
+ WT_EVICT_SCRUB | WT_EVICT_UPDATE_RESTORE);
else if (page->read_gen == WT_READGEN_OLDEST ||
page->memory_footprint > S2BT(session)->splitmempage)
- LF_SET(WT_EVICT_UPDATE_RESTORE);
+ LF_SET(WT_EVICT_UPDATE_RESTORE | WT_EVICT_SCRUB);
else if (F_ISSET(cache, WT_CACHE_STUCK))
LF_SET(WT_EVICT_LOOKASIDE);
/*
@@ -523,14 +524,13 @@ __evict_review(
/*
* Success: assert the page is clean or reconciliation was configured
- * for in-memory or update/restore. If the page is clean, assert that
- * reconciliation was configured for a lookaside table, or it's not a
- * durable object (currently the lookaside table), or all page updates
- * were globally visible.
+ * for update/restore. If the page is clean, assert that reconciliation
+ * was configured for a lookaside table, or it's not a durable object
+ * (currently the lookaside table), or all page updates were globally
+ * visible.
*/
WT_ASSERT(session,
- !__wt_page_is_modified(page) ||
- LF_ISSET(WT_EVICT_IN_MEMORY | WT_EVICT_UPDATE_RESTORE));
+ !__wt_page_is_modified(page) || LF_ISSET(WT_EVICT_UPDATE_RESTORE));
WT_ASSERT(session,
__wt_page_is_modified(page) ||
LF_ISSET(WT_EVICT_LOOKASIDE) ||