diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/btree/bt_page.c | 1 | ||||
-rw-r--r-- | src/conn/conn_cache_pool.c | 16 | ||||
-rw-r--r-- | src/include/cache.h | 5 |
3 files changed, 12 insertions, 10 deletions
diff --git a/src/btree/bt_page.c b/src/btree/bt_page.c index 561e1c19218..f99b0d4a6e5 100644 --- a/src/btree/bt_page.c +++ b/src/btree/bt_page.c @@ -285,6 +285,7 @@ err: if ((pindex = WT_INTL_INDEX_COPY(page)) != NULL) { /* Increment the cache statistics. */ __wt_cache_page_inmem_incr(session, page, size); + (void)WT_ATOMIC_ADD8(cache->bytes_read, size); (void)WT_ATOMIC_ADD8(cache->pages_inmem, 1); *pagep = page; diff --git a/src/conn/conn_cache_pool.c b/src/conn/conn_cache_pool.c index 861bafed900..f5b78e33b04 100644 --- a/src/conn/conn_cache_pool.c +++ b/src/conn/conn_cache_pool.c @@ -448,15 +448,15 @@ __cache_pool_assess(WT_SESSION_IMPL *session, uint64_t *phighest) continue; cache = entry->cache; ++entries; - new = cache->bytes_evict; + new = cache->bytes_read; /* Handle wrapping of eviction requests. */ - if (new >= cache->cp_saved_evict) - cache->cp_current_evict = new - cache->cp_saved_evict; + if (new >= cache->cp_saved_read) + cache->cp_current_read = new - cache->cp_saved_read; else - cache->cp_current_evict = new; - cache->cp_saved_evict = new; - if (cache->cp_current_evict > highest) - highest = cache->cp_current_evict; + cache->cp_current_read = new; + cache->cp_saved_read = new; + if (cache->cp_current_read > highest) + highest = cache->cp_current_read; } WT_RET(__wt_verbose(session, WT_VERB_SHARED_CACHE, "Highest eviction count: %" PRIu64 ", entries: %" PRIu64, @@ -501,7 +501,7 @@ __cache_pool_adjust(WT_SESSION_IMPL *session, reserved = cache->cp_reserved; adjusted = 0; - read_pressure = cache->cp_current_evict / highest; + read_pressure = cache->cp_current_read / highest; WT_RET(__wt_verbose(session, WT_VERB_SHARED_CACHE, "\t%" PRIu64 ", %" PRIu64 ", %" PRIu32, entry->cache_size, read_pressure, cache->cp_skip_count)); diff --git a/src/include/cache.h b/src/include/cache.h index deccd676e26..9db0729fe3c 100644 --- a/src/include/cache.h +++ b/src/include/cache.h @@ -60,6 +60,7 @@ struct __wt_cache { uint64_t pages_evict; uint64_t bytes_dirty; /* Bytes/pages currently dirty */ uint64_t pages_dirty; + uint64_t bytes_read; /* Bytes read into memory */ uint64_t evict_max_page_size; /* Largest page seen at eviction */ @@ -102,8 +103,8 @@ struct __wt_cache { /* * Cache pool information. */ - uint64_t cp_saved_evict; /* Evict count from last pass */ - uint64_t cp_current_evict; /* Evict count from current pass */ + uint64_t cp_saved_read; /* Read count from last pass */ + uint64_t cp_current_read; /* Read count from current pass */ uint32_t cp_skip_count; /* Post change stabilization */ uint64_t cp_reserved; /* Base size for this cache */ WT_SESSION_IMPL *cp_session; /* May be used for cache management */ |