diff options
Diffstat (limited to 'src/evict/evict_lru.c')
-rw-r--r-- | src/evict/evict_lru.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/evict/evict_lru.c b/src/evict/evict_lru.c index dfa3fae48d9..ee30bd4b5b3 100644 --- a/src/evict/evict_lru.c +++ b/src/evict/evict_lru.c @@ -1498,11 +1498,13 @@ fast: /* If the page can't be evicted, give up. */ */ if (give_up) btree->evict_walk_reverse = !btree->evict_walk_reverse; - if (give_up && !urgent_queued) + if (pages_queued == 0 && !urgent_queued) btree->evict_walk_period = WT_MIN( WT_MAX(1, 2 * btree->evict_walk_period), 100); else if (pages_queued == target_pages) btree->evict_walk_period = 0; + else if (btree->evict_walk_period > 0) + btree->evict_walk_period /= 2; /* * If we happen to end up on the root page or a page requiring urgent |