summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsueloverso <sue@mongodb.com>2016-07-28 11:57:06 -0400
committerGitHub <noreply@github.com>2016-07-28 11:57:06 -0400
commit8a8507cd60b5dd60bc1fa2978864d6b6421c9cad (patch)
tree8db208eb709c13d7ffa457440dfeb392e583baa0
parentd7a15d1798054c22fae98bb90b9badb24792d966 (diff)
downloadmongo-8a8507cd60b5dd60bc1fa2978864d6b6421c9cad.tar.gz
WT-2793 Enhance statistics related to overflow values (#2912)
* WT-2793 Remove very long running config. Rename the one we run. * Fix overflow stats. Make 130K overflow test use btree. * Add line to upgrading doc stating stat field removed.
-rw-r--r--bench/wtperf/runners/overflow-10k-short.wtperf19
-rw-r--r--bench/wtperf/runners/overflow-10k.wtperf16
-rw-r--r--bench/wtperf/runners/overflow-130k-short.wtperf19
-rw-r--r--bench/wtperf/runners/overflow-130k.wtperf18
-rw-r--r--dist/stat_data.py3
-rw-r--r--src/btree/bt_ovfl.c2
-rw-r--r--src/conn/conn_cache.c8
-rw-r--r--src/docs/upgrading.dox9
-rw-r--r--src/include/btree.i9
-rw-r--r--src/include/cache.h1
-rw-r--r--src/include/stat.h3
-rw-r--r--src/include/wiredtiger.in260
-rw-r--r--src/support/stat.c9
-rw-r--r--tools/wtstats/stat_data.py3
14 files changed, 173 insertions, 206 deletions
diff --git a/bench/wtperf/runners/overflow-10k-short.wtperf b/bench/wtperf/runners/overflow-10k-short.wtperf
deleted file mode 100644
index 47228079db8..00000000000
--- a/bench/wtperf/runners/overflow-10k-short.wtperf
+++ /dev/null
@@ -1,19 +0,0 @@
-# wtperf options file: simulate riak and a short form of its voxer config.
-# The configuration for the connection and table are from riak and the
-# specification of the data (count, size, threads) is from basho_bench.
-#
-#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)"
-conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)"
-compact=true
-compression="snappy"
-sess_config="isolation=snapshot"
-table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB"
-icount=15000
-key_sz=40
-value_sz=10000
-max_latency=2000
-populate_threads=1
-report_interval=5
-random_value=true
-run_time=300
-threads=((count=10,read=1),(count=10,update=1))
diff --git a/bench/wtperf/runners/overflow-10k.wtperf b/bench/wtperf/runners/overflow-10k.wtperf
index 9b4ed2acaee..5d7eeea9cf2 100644
--- a/bench/wtperf/runners/overflow-10k.wtperf
+++ b/bench/wtperf/runners/overflow-10k.wtperf
@@ -1,9 +1,7 @@
-# wtperf options file: simulate riak and its test1 and test2 configuration
-# The configuration for the connection and table are from riak and the
-# specification of the data (count, size, threads) is from basho_bench.
#
-#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)"
-conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)"
+# Run with overflow items and LSM.
+#
+conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,lsm_manager=(worker_thread_max=6),statistics=(fast),statistics_log=(wait=10)"
compact=true
compression="snappy"
sess_config="isolation=snapshot"
@@ -13,8 +11,8 @@ key_sz=40
value_sz=10000
max_latency=2000
populate_threads=1
-report_interval=10
+report_interval=5
random_value=true
-run_time=18000
-sample_interval=10
-threads=((count=20,read=1,update=1))
+run_time=300
+threads=((count=10,read=1),(count=10,update=1))
+warmup=30
diff --git a/bench/wtperf/runners/overflow-130k-short.wtperf b/bench/wtperf/runners/overflow-130k-short.wtperf
deleted file mode 100644
index 83f67062bf8..00000000000
--- a/bench/wtperf/runners/overflow-130k-short.wtperf
+++ /dev/null
@@ -1,19 +0,0 @@
-# wtperf options file: simulate riak and a short form of its voxer config.
-# The configuration for the connection and table are from riak and the
-# specification of the data (count, size, threads) is from basho_bench.
-#
-#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)"
-conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)"
-compact=true
-compression="snappy"
-sess_config="isolation=snapshot"
-table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB"
-icount=15000
-key_sz=40
-value_sz=130000
-max_latency=2000
-populate_threads=1
-report_interval=5
-random_value=true
-run_time=300
-threads=((count=10,read=1),(count=10,update=1))
diff --git a/bench/wtperf/runners/overflow-130k.wtperf b/bench/wtperf/runners/overflow-130k.wtperf
index a3439f0c575..2be01afd08a 100644
--- a/bench/wtperf/runners/overflow-130k.wtperf
+++ b/bench/wtperf/runners/overflow-130k.wtperf
@@ -1,20 +1,18 @@
-# wtperf options file: simulate riak and its test1 and test2 configuration
-# The configuration for the connection and table are from riak and the
-# specification of the data (count, size, threads) is from basho_bench.
#
-#conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,statistics=(fast,clear),statistics_log=(wait=600)"
-conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,session_max=1024,lsm_manager=(worker_thread_max=6)"
+# Run with very large overflow items and btree.
+#
+conn_config="cache_size=21G,checkpoint_sync=false,mmap=false,statistics=(fast),statistics_log=(wait=10)"
compact=true
compression="snappy"
sess_config="isolation=snapshot"
-table_config="internal_page_max=128K,lsm=(bloom_config=(leaf_page_max=8MB),bloom_bit_count=28,bloom_hash_count=19,bloom_oldest=true,chunk_size=100MB),type=lsm,leaf_page_max=16K,os_cache_dirty_max=16MB"
+table_config="internal_page_max=128K,type=file,leaf_page_max=16K,os_cache_dirty_max=16MB,leaf_value_max=32K"
icount=15000
key_sz=40
value_sz=130000
max_latency=2000
populate_threads=1
-report_interval=10
+report_interval=5
random_value=true
-run_time=18000
-sample_interval=10
-threads=((count=20,read=1,update=1))
+run_time=300
+threads=((count=10,read=1),(count=10,update=1))
+warmup=30
diff --git a/dist/stat_data.py b/dist/stat_data.py
index b7a1caa6701..576a66e981b 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -175,7 +175,6 @@ connection_stats = [
CacheStat('cache_bytes_leaf', 'tracked bytes belonging to leaf pages in the cache', 'no_clear,no_scale,size'),
CacheStat('cache_bytes_max', 'maximum bytes configured', 'no_clear,no_scale,size'),
CacheStat('cache_bytes_other', 'bytes not belonging to page images in the cache', 'no_clear,no_scale,size'),
- CacheStat('cache_bytes_overflow', 'tracked bytes belonging to overflow pages in the cache', 'no_clear,no_scale,size'),
CacheStat('cache_bytes_read', 'bytes read into cache', 'size'),
CacheStat('cache_bytes_write', 'bytes written from cache', 'size'),
CacheStat('cache_eviction_aggressive_set', 'eviction currently operating in aggressive mode', 'no_clear,no_scale'),
@@ -218,12 +217,14 @@ connection_stats = [
CacheStat('cache_inmem_splittable', 'in-memory page passed criteria to be split'),
CacheStat('cache_lookaside_insert', 'lookaside table insert calls'),
CacheStat('cache_lookaside_remove', 'lookaside table remove calls'),
+ CacheStat('cache_overflow_value', 'overflow values cached in memory', 'no_scale'),
CacheStat('cache_overhead', 'percentage overhead', 'no_clear,no_scale'),
CacheStat('cache_pages_dirty', 'tracked dirty pages in the cache', 'no_clear,no_scale'),
CacheStat('cache_pages_inuse', 'pages currently held in the cache', 'no_clear,no_scale'),
CacheStat('cache_pages_requested', 'pages requested from the cache'),
CacheStat('cache_read', 'pages read into cache'),
CacheStat('cache_read_lookaside', 'pages read into cache requiring lookaside entries'),
+ CacheStat('cache_read_overflow', 'overflow pages read into cache'),
CacheStat('cache_write', 'pages written from cache'),
CacheStat('cache_write_lookaside', 'page written requiring lookaside records'),
CacheStat('cache_write_restore', 'pages written requiring in-memory restoration'),
diff --git a/src/btree/bt_ovfl.c b/src/btree/bt_ovfl.c
index fbe361e000a..1f080041a23 100644
--- a/src/btree/bt_ovfl.c
+++ b/src/btree/bt_ovfl.c
@@ -33,6 +33,7 @@ __ovfl_read(WT_SESSION_IMPL *session,
store->data = WT_PAGE_HEADER_BYTE(btree, dsk);
store->size = dsk->u.datalen;
+ WT_STAT_FAST_CONN_INCR(session, cache_read_overflow);
WT_STAT_FAST_DATA_INCR(session, cache_read_overflow);
return (0);
@@ -208,6 +209,7 @@ __wt_ovfl_cache(WT_SESSION_IMPL *session,
*/
if (!visible) {
WT_RET(__ovfl_cache(session, page, vpack));
+ WT_STAT_FAST_CONN_INCR(session, cache_overflow_value);
WT_STAT_FAST_DATA_INCR(session, cache_overflow_value);
}
diff --git a/src/conn/conn_cache.c b/src/conn/conn_cache.c
index 4fccac88bc1..960d86f3e13 100644
--- a/src/conn/conn_cache.c
+++ b/src/conn/conn_cache.c
@@ -201,7 +201,7 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
WT_CACHE *cache;
WT_CONNECTION_IMPL *conn;
WT_CONNECTION_STATS **stats;
- uint64_t inuse, leaf, used;
+ uint64_t inuse, leaf;
conn = S2C(session);
cache = conn->cache;
@@ -212,8 +212,8 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
* There are races updating the different cache tracking values so
* be paranoid calculating the leaf byte usage.
*/
- used = cache->bytes_overflow + cache->bytes_internal;
- leaf = inuse > used ? inuse - used : 0;
+ leaf = inuse > cache->bytes_internal ?
+ inuse - cache->bytes_internal : 0;
WT_STAT_SET(session, stats, cache_bytes_max, conn->cache_size);
WT_STAT_SET(session, stats, cache_bytes_inuse, inuse);
@@ -230,8 +230,6 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
WT_STAT_SET(session, stats, cache_bytes_leaf, leaf);
WT_STAT_SET(
session, stats, cache_bytes_other, __wt_cache_bytes_other(cache));
- WT_STAT_SET(
- session, stats, cache_bytes_overflow, cache->bytes_overflow);
WT_STAT_SET(session, stats,
cache_eviction_maximum_page_size, cache->evict_max_page_size);
diff --git a/src/docs/upgrading.dox b/src/docs/upgrading.dox
index 4af8482a635..db40f5c2b55 100644
--- a/src/docs/upgrading.dox
+++ b/src/docs/upgrading.dox
@@ -19,6 +19,15 @@ of the path may no longer be specified. Applications depending on the
ability to set statistics log file names will require modification.
</dd>
+<dt>Deprecated statistics field</dt>
+<dd>
+The connection statistic \c WT_STAT_CONN_CACHE_BYTES_OVERFLOW has been
+removed. Overflow information is now available in the
+\c WT_STAT_CONN_CACHE_BYTES_OVERFLOW and \c WT_STAT_CONN_CACHE_OVERFLOW_VALUE.
+Applications specifically looking for that statistic will require
+modification.
+</dd>
+
</dl><hr>
@section version_280 Upgrading to Version 2.8.0
<dl>
diff --git a/src/include/btree.i b/src/include/btree.i
index 623ac75c50a..d8676f9ba60 100644
--- a/src/include/btree.i
+++ b/src/include/btree.i
@@ -94,11 +94,9 @@ __wt_cache_page_inmem_incr(WT_SESSION_IMPL *session, WT_PAGE *page, size_t size)
(void)__wt_atomic_add64(&cache->bytes_dirty, size);
(void)__wt_atomic_addsize(&page->modify->bytes_dirty, size);
}
- /* Track internal and overflow size in cache. */
+ /* Track internal size in cache. */
if (WT_PAGE_IS_INTERNAL(page))
(void)__wt_atomic_add64(&cache->bytes_internal, size);
- else if (page->type == WT_PAGE_OVFL)
- (void)__wt_atomic_add64(&cache->bytes_overflow, size);
}
/*
@@ -225,13 +223,10 @@ __wt_cache_page_inmem_decr(WT_SESSION_IMPL *session, WT_PAGE *page, size_t size)
session, &page->memory_footprint, size, "WT_PAGE.memory_footprint");
if (__wt_page_is_modified(page))
__wt_cache_page_byte_dirty_decr(session, page, size);
- /* Track internal and overflow size in cache. */
+ /* Track internal size in cache. */
if (WT_PAGE_IS_INTERNAL(page))
__wt_cache_decr_check_uint64(session,
&cache->bytes_internal, size, "WT_CACHE.bytes_internal");
- else if (page->type == WT_PAGE_OVFL)
- __wt_cache_decr_check_uint64(session,
- &cache->bytes_overflow, size, "WT_CACHE.bytes_overflow");
}
/*
diff --git a/src/include/cache.h b/src/include/cache.h
index dbc4074330a..b5f09db3732 100644
--- a/src/include/cache.h
+++ b/src/include/cache.h
@@ -82,7 +82,6 @@ struct __wt_cache {
uint64_t bytes_inmem; /* Bytes/pages in memory */
uint64_t pages_inmem;
uint64_t bytes_internal; /* Bytes of internal pages */
- uint64_t bytes_overflow; /* Bytes of overflow pages */
uint64_t bytes_read; /* Bytes read into memory */
uint64_t app_waits; /* User threads waited for cache */
diff --git a/src/include/stat.h b/src/include/stat.h
index 252e6fbb972..d40f1278611 100644
--- a/src/include/stat.h
+++ b/src/include/stat.h
@@ -312,6 +312,8 @@ struct __wt_connection_stats {
int64_t cache_eviction_maximum_page_size;
int64_t cache_eviction_dirty;
int64_t cache_eviction_app_dirty;
+ int64_t cache_read_overflow;
+ int64_t cache_overflow_value;
int64_t cache_eviction_deepen;
int64_t cache_write_lookaside;
int64_t cache_pages_inuse;
@@ -331,7 +333,6 @@ struct __wt_connection_stats {
int64_t cache_overhead;
int64_t cache_bytes_internal;
int64_t cache_bytes_leaf;
- int64_t cache_bytes_overflow;
int64_t cache_bytes_dirty;
int64_t cache_pages_dirty;
int64_t cache_eviction_clean;
diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in
index 8f1249481eb..5f1754ccffa 100644
--- a/src/include/wiredtiger.in
+++ b/src/include/wiredtiger.in
@@ -4322,267 +4322,269 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1065
/*! cache: modified pages evicted by application threads */
#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1066
+/*! cache: overflow pages read into cache */
+#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1067
+/*! cache: overflow values cached in memory */
+#define WT_STAT_CONN_CACHE_OVERFLOW_VALUE 1068
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1067
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1069
/*! cache: page written requiring lookaside records */
-#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1068
+#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1070
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1069
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1071
/*! cache: pages evicted because they exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1070
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1072
/*! cache: pages evicted because they had chains of deleted items */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1071
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1073
/*! cache: pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP 1072
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1074
/*! cache: pages queued for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1073
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1075
/*! cache: pages queued for urgent eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1074
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1076
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1075
+#define WT_STAT_CONN_CACHE_READ 1077
/*! cache: pages read into cache requiring lookaside entries */
-#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1076
+#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1078
/*! cache: pages requested from the cache */
-#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1077
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1079
/*! cache: pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1078
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1080
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1079
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1081
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1080
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1082
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1081
+#define WT_STAT_CONN_CACHE_WRITE 1083
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1082
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1084
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1083
+#define WT_STAT_CONN_CACHE_OVERHEAD 1085
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1084
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1086
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1085
-/*! cache: tracked bytes belonging to overflow pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_OVERFLOW 1086
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1087
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1087
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1088
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1088
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1089
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1089
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1090
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1090
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1091
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1091
+#define WT_STAT_CONN_COND_AUTO_WAIT 1092
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1092
+#define WT_STAT_CONN_FILE_OPEN 1093
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1093
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1094
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1094
+#define WT_STAT_CONN_MEMORY_FREE 1095
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1095
+#define WT_STAT_CONN_MEMORY_GROW 1096
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1096
+#define WT_STAT_CONN_COND_WAIT 1097
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1097
+#define WT_STAT_CONN_RWLOCK_READ 1098
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1098
+#define WT_STAT_CONN_RWLOCK_WRITE 1099
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1099
+#define WT_STAT_CONN_FSYNC_IO 1100
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1100
+#define WT_STAT_CONN_READ_IO 1101
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1101
+#define WT_STAT_CONN_WRITE_IO 1102
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1102
+#define WT_STAT_CONN_CURSOR_CREATE 1103
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1103
+#define WT_STAT_CONN_CURSOR_INSERT 1104
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1104
+#define WT_STAT_CONN_CURSOR_NEXT 1105
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1105
+#define WT_STAT_CONN_CURSOR_PREV 1106
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1106
+#define WT_STAT_CONN_CURSOR_REMOVE 1107
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1107
+#define WT_STAT_CONN_CURSOR_RESET 1108
/*! cursor: cursor restarted searches */
-#define WT_STAT_CONN_CURSOR_RESTART 1108
+#define WT_STAT_CONN_CURSOR_RESTART 1109
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1109
+#define WT_STAT_CONN_CURSOR_SEARCH 1110
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1110
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1111
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1111
+#define WT_STAT_CONN_CURSOR_UPDATE 1112
/*! cursor: truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1112
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1113
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1113
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1114
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1114
+#define WT_STAT_CONN_DH_SWEEP_REF 1115
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1115
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1116
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1116
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1117
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1117
+#define WT_STAT_CONN_DH_SWEEP_TOD 1118
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1118
+#define WT_STAT_CONN_DH_SWEEPS 1119
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1119
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1120
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1120
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1121
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1121
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1122
/*! log: consolidated slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1122
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1123
/*! log: consolidated slot join races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1123
+#define WT_STAT_CONN_LOG_SLOT_RACES 1124
/*! log: consolidated slot join transitions */
-#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1124
+#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1125
/*! log: consolidated slot joins */
-#define WT_STAT_CONN_LOG_SLOT_JOINS 1125
+#define WT_STAT_CONN_LOG_SLOT_JOINS 1126
/*! log: consolidated slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1126
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1127
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1127
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1128
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1128
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1129
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1129
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1130
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1130
+#define WT_STAT_CONN_LOG_FLUSH 1131
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1131
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1132
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1132
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1133
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1133
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1134
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1134
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1135
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1135
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1136
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1136
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1137
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1137
+#define WT_STAT_CONN_LOG_SCANS 1138
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1138
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1139
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1139
+#define WT_STAT_CONN_LOG_WRITE_LSN 1140
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1140
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1141
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1141
+#define WT_STAT_CONN_LOG_SYNC 1142
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1142
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1143
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1143
+#define WT_STAT_CONN_LOG_SYNC_DIR 1144
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1144
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1145
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1145
+#define WT_STAT_CONN_LOG_WRITES 1146
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1146
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1147
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1147
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1148
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1148
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1149
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1149
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1150
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1150
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1151
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1151
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1152
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1152
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1153
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1153
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1154
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1154
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1155
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1155
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1156
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1156
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1157
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1157
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1158
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1158
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1159
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1159
+#define WT_STAT_CONN_REC_PAGES 1160
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1160
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1161
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1161
+#define WT_STAT_CONN_REC_PAGE_DELETE 1162
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1162
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1163
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1163
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1164
/*! session: open cursor count */
-#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1164
+#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1165
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1165
+#define WT_STAT_CONN_SESSION_OPEN 1166
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1166
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1167
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1167
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1168
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1168
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1169
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1169
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1170
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1170
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1171
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1171
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1172
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1172
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1173
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1173
+#define WT_STAT_CONN_PAGE_SLEEP 1174
/*! transaction: number of named snapshots created */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1174
+#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1175
/*! transaction: number of named snapshots dropped */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1175
+#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1176
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1176
+#define WT_STAT_CONN_TXN_BEGIN 1177
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1177
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1178
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1178
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1179
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1179
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1180
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1180
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1181
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1181
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1182
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1182
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1183
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1183
+#define WT_STAT_CONN_TXN_CHECKPOINT 1184
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1184
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1185
/*! transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1185
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1186
/*! transaction: transaction fsync calls for checkpoint before allocating
* the transaction ID */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE 1186
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE 1187
/*! transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1187
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1188
/*! transaction: transaction fsync duration for checkpoint before
* allocating the transaction ID (usecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE_DURATION 1188
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_PRE_DURATION 1189
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1189
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1190
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1190
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1191
/*! transaction: transaction range of IDs currently pinned by named
* snapshots */
-#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1191
+#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1192
/*! transaction: transaction sync calls */
-#define WT_STAT_CONN_TXN_SYNC 1192
+#define WT_STAT_CONN_TXN_SYNC 1193
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1193
+#define WT_STAT_CONN_TXN_COMMIT 1194
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1194
+#define WT_STAT_CONN_TXN_ROLLBACK 1195
/*!
* @}
diff --git a/src/support/stat.c b/src/support/stat.c
index 483d6715a7e..d8d34e051df 100644
--- a/src/support/stat.c
+++ b/src/support/stat.c
@@ -585,6 +585,8 @@ static const char * const __stats_connection_desc[] = {
"cache: maximum page size at eviction",
"cache: modified pages evicted",
"cache: modified pages evicted by application threads",
+ "cache: overflow pages read into cache",
+ "cache: overflow values cached in memory",
"cache: page split during eviction deepened the tree",
"cache: page written requiring lookaside records",
"cache: pages currently held in the cache",
@@ -604,7 +606,6 @@ static const char * const __stats_connection_desc[] = {
"cache: percentage overhead",
"cache: tracked bytes belonging to internal pages in the cache",
"cache: tracked bytes belonging to leaf pages in the cache",
- "cache: tracked bytes belonging to overflow pages in the cache",
"cache: tracked dirty bytes in the cache",
"cache: tracked dirty pages in the cache",
"cache: unmodified pages evicted",
@@ -810,6 +811,8 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing cache_eviction_maximum_page_size */
stats->cache_eviction_dirty = 0;
stats->cache_eviction_app_dirty = 0;
+ stats->cache_read_overflow = 0;
+ stats->cache_overflow_value = 0;
stats->cache_eviction_deepen = 0;
stats->cache_write_lookaside = 0;
/* not clearing cache_pages_inuse */
@@ -829,7 +832,6 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing cache_overhead */
/* not clearing cache_bytes_internal */
/* not clearing cache_bytes_leaf */
- /* not clearing cache_bytes_overflow */
/* not clearing cache_bytes_dirty */
/* not clearing cache_pages_dirty */
stats->cache_eviction_clean = 0;
@@ -1053,6 +1055,8 @@ __wt_stat_connection_aggregate(
to->cache_eviction_dirty += WT_STAT_READ(from, cache_eviction_dirty);
to->cache_eviction_app_dirty +=
WT_STAT_READ(from, cache_eviction_app_dirty);
+ to->cache_read_overflow += WT_STAT_READ(from, cache_read_overflow);
+ to->cache_overflow_value += WT_STAT_READ(from, cache_overflow_value);
to->cache_eviction_deepen +=
WT_STAT_READ(from, cache_eviction_deepen);
to->cache_write_lookaside +=
@@ -1079,7 +1083,6 @@ __wt_stat_connection_aggregate(
to->cache_overhead += WT_STAT_READ(from, cache_overhead);
to->cache_bytes_internal += WT_STAT_READ(from, cache_bytes_internal);
to->cache_bytes_leaf += WT_STAT_READ(from, cache_bytes_leaf);
- to->cache_bytes_overflow += WT_STAT_READ(from, cache_bytes_overflow);
to->cache_bytes_dirty += WT_STAT_READ(from, cache_bytes_dirty);
to->cache_pages_dirty += WT_STAT_READ(from, cache_pages_dirty);
to->cache_eviction_clean += WT_STAT_READ(from, cache_eviction_clean);
diff --git a/tools/wtstats/stat_data.py b/tools/wtstats/stat_data.py
index d06f1035adf..f349c319b3c 100644
--- a/tools/wtstats/stat_data.py
+++ b/tools/wtstats/stat_data.py
@@ -11,11 +11,11 @@ no_scale_per_second_list = [
'cache: hazard pointer maximum array length',
'cache: maximum bytes configured',
'cache: maximum page size at eviction',
+ 'cache: overflow values cached in memory',
'cache: pages currently held in the cache',
'cache: percentage overhead',
'cache: tracked bytes belonging to internal pages in the cache',
'cache: tracked bytes belonging to leaf pages in the cache',
- 'cache: tracked bytes belonging to overflow pages in the cache',
'cache: tracked dirty bytes in the cache',
'cache: tracked dirty pages in the cache',
'connection: files currently open',
@@ -88,7 +88,6 @@ no_clear_list = [
'cache: percentage overhead',
'cache: tracked bytes belonging to internal pages in the cache',
'cache: tracked bytes belonging to leaf pages in the cache',
- 'cache: tracked bytes belonging to overflow pages in the cache',
'cache: tracked dirty bytes in the cache',
'cache: tracked dirty pages in the cache',
'connection: files currently open',