summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/btree/bt_page.c1
-rw-r--r--src/conn/conn_cache_pool.c16
-rw-r--r--src/include/cache.h5
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 */