diff options
author | Keith Bostic <keith.bostic@mongodb.com> | 2016-07-23 13:23:12 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-23 13:23:12 -0400 |
commit | 6eee786a839b7ed6f411b87a4591ba7afcd04276 (patch) | |
tree | 34da53c6cb749f2754e5dc5cbfe80cfca4b1a0dd /src/evict/evict_page.c | |
parent | 898a4e682e3ccef8feaae10d0cb35eed3a465b56 (diff) | |
download | mongo-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.c | 16 |
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) || |