From 585cbf88bec99baa98804c9941c17fc2f0a82051 Mon Sep 17 00:00:00 2001 From: Keith Bostic Date: Wed, 24 Feb 2016 14:16:31 -0500 Subject: [PATCH 1/3] WT-2425: Revert "WT-2173: test/format cache stuck full" This reverts commit db58fef15da999a34764b5da4ae6b016f1b8529c. --- src/evict/evict_lru.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/evict/evict_lru.c b/src/evict/evict_lru.c index fe503c0777c..8ef7164dbc6 100644 --- a/src/evict/evict_lru.c +++ b/src/evict/evict_lru.c @@ -1369,12 +1369,10 @@ __evict_get_ref( WT_SESSION_IMPL *session, bool is_server, WT_BTREE **btreep, WT_REF **refp) { WT_CACHE *cache; - WT_CONNECTION_IMPL *conn; WT_EVICT_ENTRY *evict; uint32_t candidates; - conn = S2C(session); - cache = conn->cache; + cache = S2C(session)->cache; *btreep = NULL; *refp = NULL; @@ -1394,14 +1392,11 @@ __evict_get_ref( } /* - * The eviction server normally only tries to evict half of the pages - * before looking for more, unless there isn't anybody else to do the - * work, we're stuck, or there's only a single candidate (that happens - * in very small environments). + * The eviction server only tries to evict half of the pages before + * looking for more. */ candidates = cache->evict_candidates; - if (is_server && conn->evict_workers_max != 0 && - !F_ISSET(cache, WT_CACHE_STUCK) && candidates > 1) + if (is_server && candidates > 1) candidates /= 2; /* Get the next page queued for eviction. */ From 77e71cab199234e102c5288e7d51db89464e9285 Mon Sep 17 00:00:00 2001 From: Keith Bostic Date: Wed, 24 Feb 2016 14:17:08 -0500 Subject: [PATCH 2/3] WT-2425: evict-btree read through performance drop Enhance a comment, explain why the eviction server only evicts half of the pages it queues. --- src/evict/evict_lru.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/evict/evict_lru.c b/src/evict/evict_lru.c index 8ef7164dbc6..dc1a104a0fc 100644 --- a/src/evict/evict_lru.c +++ b/src/evict/evict_lru.c @@ -1392,8 +1392,9 @@ __evict_get_ref( } /* - * The eviction server only tries to evict half of the pages before - * looking for more. + * Only evict half of the pages before looking for more. The remainder + * are left to eviction workers (if configured), or application threads + * if necessary. */ candidates = cache->evict_candidates; if (is_server && candidates > 1) From 8d9cab395ddec561646239003b36e348497cc4ca Mon Sep 17 00:00:00 2001 From: Keith Bostic Date: Wed, 24 Feb 2016 14:18:14 -0500 Subject: [PATCH 3/3] WT-2425: evict-btree read through performance drop Update list of strings. --- dist/s_string.ok | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/s_string.ok b/dist/s_string.ok index ee968b758dc..c9c799da5ba 100644 --- a/dist/s_string.ok +++ b/dist/s_string.ok @@ -113,6 +113,7 @@ FORALL FOREACH FULLFSYNC FindFirstFile +Fixup Fk FlushFileBuffers Fprintf