summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cahill <michael.cahill@mongodb.com>2016-01-11 14:10:53 -0500
committerMichael Cahill <michael.cahill@mongodb.com>2016-01-11 14:10:53 -0500
commit2182e6291977a8bf6b9ad21561f86700b3117bad (patch)
tree3b85a2f1de1adbc2eda5ef778006ddb9608fabf9
parent6bb9c164368ff17f02d5ccfc1dcff2b9896664d9 (diff)
parent6b51e483b434c863d45e84b53136706750cc8ea6 (diff)
downloadmongo-2182e6291977a8bf6b9ad21561f86700b3117bad.tar.gz
Merge pull request #2426 from wiredtiger/WT-2253-backport
WT-2253 Backport to 3.0. Evict pages left behind by in-memory splits.
-rw-r--r--src/evict/evict_lru.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/evict/evict_lru.c b/src/evict/evict_lru.c
index eec7c3d2f0d..2ae3dd6b9a5 100644
--- a/src/evict/evict_lru.c
+++ b/src/evict/evict_lru.c
@@ -36,6 +36,10 @@ __evict_read_gen(const WT_EVICT_ENTRY *entry)
page = entry->ref->page;
+ /* Any page set to the oldest generation should be discarded. */
+ if (page->read_gen == WT_READGEN_OLDEST)
+ return (WT_READGEN_OLDEST);
+
/* Any empty page (leaf or internal), is a good choice. */
if (__wt_page_is_empty(page))
return (WT_READGEN_OLDEST);
@@ -1221,6 +1225,7 @@ __evict_walk_file(WT_SESSION_IMPL *session, u_int *slotp, uint32_t flags)
* eviction, skip anything that isn't marked.
*/
if (LF_ISSET(WT_EVICT_PASS_WOULD_BLOCK) &&
+ page->memory_footprint < btree->maxmempage &&
page->read_gen != WT_READGEN_OLDEST)
continue;