summaryrefslogtreecommitdiff
path: root/src/evict/evict_lru.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evict/evict_lru.c')
-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;