summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2016-10-18 15:14:27 +1100
committerGitHub <noreply@github.com>2016-10-18 15:14:27 +1100
commit940a7aba6a2c37f878114e8280eabf161a212deb (patch)
tree07da6e852354deb0ea455342590bffc682fdbc2e
parent349f5349eaaeab99f7a7178e03ab34f8ff0ebd0c (diff)
downloadmongo-940a7aba6a2c37f878114e8280eabf161a212deb.tar.gz
WT-2976 Add a statistic tracking how long app threads spend reading and writing (#3096)
-rw-r--r--dist/stat_data.py4
-rw-r--r--src/btree/bt_io.c11
-rw-r--r--src/btree/bt_read.c9
-rw-r--r--src/include/stat.h4
-rw-r--r--src/include/wiredtiger.in410
-rw-r--r--src/support/stat.c13
6 files changed, 250 insertions, 201 deletions
diff --git a/dist/stat_data.py b/dist/stat_data.py
index ef70ca89eb0..bcf5201bd90 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -241,9 +241,13 @@ connection_stats = [
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_app_count', 'application threads page read from disk to cache count'),
+ CacheStat('cache_read_app_time', 'application threads page read from disk to cache time (usecs)'),
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_app_count', 'application threads page write from cache to disk count'),
+ CacheStat('cache_write_app_time', 'application threads page write from cache to disk time (usecs)'),
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_io.c b/src/btree/bt_io.c
index 42c3a849a88..a8645f79dbe 100644
--- a/src/btree/bt_io.c
+++ b/src/btree/bt_io.c
@@ -171,6 +171,7 @@ __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf,
uint8_t *addr, size_t *addr_sizep,
bool checkpoint, bool checkpoint_io, bool compressed)
{
+ struct timespec start, stop;
WT_BM *bm;
WT_BTREE *btree;
WT_DECL_ITEM(ctmp);
@@ -356,6 +357,8 @@ __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf,
data_checksum = !compressed;
break;
}
+ if (!F_ISSET(session, WT_SESSION_INTERNAL))
+ __wt_epoch(session, &start);
/* Call the block manager to write the block. */
WT_ERR(checkpoint ?
@@ -363,6 +366,14 @@ __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf,
bm->write(
bm, session, ip, addr, addr_sizep, data_checksum, checkpoint_io));
+ /* Update some statistics now that the write is done */
+ if (!F_ISSET(session, WT_SESSION_INTERNAL)) {
+ __wt_epoch(session, &stop);
+ WT_STAT_CONN_INCR(session, cache_write_app_count);
+ WT_STAT_CONN_INCRV(session, cache_write_app_time,
+ WT_TIMEDIFF_US(stop, start));
+ }
+
WT_STAT_CONN_INCR(session, cache_write);
WT_STAT_DATA_INCR(session, cache_write);
S2C(session)->cache->bytes_written += dsk->mem_size;
diff --git a/src/btree/bt_read.c b/src/btree/bt_read.c
index dd0bb7def92..679f20bdac5 100644
--- a/src/btree/bt_read.c
+++ b/src/btree/bt_read.c
@@ -357,6 +357,7 @@ __evict_force_check(WT_SESSION_IMPL *session, WT_REF *ref)
static int
__page_read(WT_SESSION_IMPL *session, WT_REF *ref)
{
+ struct timespec start, stop;
const WT_PAGE_HEADER *dsk;
WT_BTREE *btree;
WT_DECL_RET;
@@ -404,7 +405,15 @@ __page_read(WT_SESSION_IMPL *session, WT_REF *ref)
* There's an address, read or map the backing disk page and build an
* in-memory version of the page.
*/
+ if (!F_ISSET(session, WT_SESSION_INTERNAL))
+ __wt_epoch(session, &start);
WT_ERR(__wt_bt_read(session, &tmp, addr, addr_size));
+ if (!F_ISSET(session, WT_SESSION_INTERNAL)) {
+ __wt_epoch(session, &stop);
+ WT_STAT_CONN_INCR(session, cache_read_app_count);
+ WT_STAT_CONN_INCRV(session, cache_read_app_time,
+ WT_TIMEDIFF_US(stop, start));
+ }
WT_ERR(__wt_page_inmem(session, ref, tmp.data, tmp.memsize,
WT_DATA_IN_ITEM(&tmp) ?
WT_PAGE_DISK_ALLOC : WT_PAGE_DISK_MAPPED, &page));
diff --git a/src/include/stat.h b/src/include/stat.h
index 15edce9ec85..d0b0b60585a 100644
--- a/src/include/stat.h
+++ b/src/include/stat.h
@@ -285,6 +285,10 @@ struct __wt_connection_stats {
int64_t block_byte_write_checkpoint;
int64_t block_map_read;
int64_t block_byte_map_read;
+ int64_t cache_read_app_count;
+ int64_t cache_read_app_time;
+ int64_t cache_write_app_count;
+ int64_t cache_write_app_time;
int64_t cache_bytes_image;
int64_t cache_bytes_inuse;
int64_t cache_bytes_other;
diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in
index f3156609fed..7bbdf85d954 100644
--- a/src/include/wiredtiger.in
+++ b/src/include/wiredtiger.in
@@ -4280,429 +4280,437 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_BLOCK_MAP_READ 1029
/*! block-manager: mapped bytes read */
#define WT_STAT_CONN_BLOCK_BYTE_MAP_READ 1030
+/*! cache: application threads page read from disk to cache count */
+#define WT_STAT_CONN_CACHE_READ_APP_COUNT 1031
+/*! cache: application threads page read from disk to cache time (usecs) */
+#define WT_STAT_CONN_CACHE_READ_APP_TIME 1032
+/*! cache: application threads page write from cache to disk count */
+#define WT_STAT_CONN_CACHE_WRITE_APP_COUNT 1033
+/*! cache: application threads page write from cache to disk time (usecs) */
+#define WT_STAT_CONN_CACHE_WRITE_APP_TIME 1034
/*! cache: bytes belonging to page images in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_IMAGE 1031
+#define WT_STAT_CONN_CACHE_BYTES_IMAGE 1035
/*! cache: bytes currently in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INUSE 1032
+#define WT_STAT_CONN_CACHE_BYTES_INUSE 1036
/*! cache: bytes not belonging to page images in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_OTHER 1033
+#define WT_STAT_CONN_CACHE_BYTES_OTHER 1037
/*! cache: bytes read into cache */
-#define WT_STAT_CONN_CACHE_BYTES_READ 1034
+#define WT_STAT_CONN_CACHE_BYTES_READ 1038
/*! cache: bytes written from cache */
-#define WT_STAT_CONN_CACHE_BYTES_WRITE 1035
+#define WT_STAT_CONN_CACHE_BYTES_WRITE 1039
/*! cache: checkpoint blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1036
+#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1040
/*! cache: eviction calls to get a page */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1037
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1041
/*! cache: eviction calls to get a page found queue empty */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1038
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1042
/*! cache: eviction calls to get a page found queue empty after locking */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1039
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1043
/*! cache: eviction currently operating in aggressive mode */
-#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1040
+#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1044
/*! cache: eviction empty score */
-#define WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE 1041
+#define WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE 1045
/*! cache: eviction server candidate queue empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1042
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1046
/*! cache: eviction server candidate queue not empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1043
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1047
/*! cache: eviction server evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1044
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1048
/*!
* cache: eviction server slept, because we did not make progress with
* eviction
*/
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1045
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1049
/*! cache: eviction server unable to reach eviction goal */
-#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1046
+#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1050
/*! cache: eviction state */
-#define WT_STAT_CONN_CACHE_EVICTION_STATE 1047
+#define WT_STAT_CONN_CACHE_EVICTION_STATE 1051
/*! cache: eviction walks abandoned */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1048
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1052
/*! cache: eviction worker thread evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1049
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1053
/*! cache: failed eviction of pages that exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1050
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1054
/*! cache: files with active eviction walks */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1051
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1055
/*! cache: files with new eviction walks started */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1052
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1056
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1053
+#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1057
/*! cache: hazard pointer check calls */
-#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1054
+#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1058
/*! cache: hazard pointer check entries walked */
-#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1055
+#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1059
/*! cache: hazard pointer maximum array length */
-#define WT_STAT_CONN_CACHE_HAZARD_MAX 1056
+#define WT_STAT_CONN_CACHE_HAZARD_MAX 1060
/*! cache: in-memory page passed criteria to be split */
-#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1057
+#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1061
/*! cache: in-memory page splits */
-#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1058
+#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1062
/*! cache: internal pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1059
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1063
/*! cache: internal pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1060
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1064
/*! cache: leaf pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1061
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1065
/*! cache: lookaside table insert calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1062
+#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1066
/*! cache: lookaside table remove calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1063
+#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1067
/*! cache: maximum bytes configured */
-#define WT_STAT_CONN_CACHE_BYTES_MAX 1064
+#define WT_STAT_CONN_CACHE_BYTES_MAX 1068
/*! cache: maximum page size at eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1065
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1069
/*! cache: modified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1066
+#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1070
/*! cache: modified pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1067
+#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1071
/*! cache: overflow pages read into cache */
-#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1068
+#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1072
/*! cache: overflow values cached in memory */
-#define WT_STAT_CONN_CACHE_OVERFLOW_VALUE 1069
+#define WT_STAT_CONN_CACHE_OVERFLOW_VALUE 1073
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1070
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1074
/*! cache: page written requiring lookaside records */
-#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1071
+#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1075
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1072
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1076
/*! cache: pages evicted because they exceeded the in-memory maximum */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1073
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1077
/*! cache: pages evicted because they had chains of deleted items */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1074
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1078
/*! cache: pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP 1075
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1079
/*! cache: pages queued for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1076
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1080
/*! cache: pages queued for urgent eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT 1077
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT 1081
/*! cache: pages queued for urgent eviction during walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1078
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1082
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1079
+#define WT_STAT_CONN_CACHE_READ 1083
/*! cache: pages read into cache requiring lookaside entries */
-#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1080
+#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1084
/*! cache: pages requested from the cache */
-#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1081
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1085
/*! cache: pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1082
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1086
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1083
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1087
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1084
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1088
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1085
+#define WT_STAT_CONN_CACHE_WRITE 1089
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1086
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1090
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1087
+#define WT_STAT_CONN_CACHE_OVERHEAD 1091
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1088
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1092
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1089
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1093
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1090
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1094
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1091
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1095
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1092
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1096
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1093
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1097
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1094
+#define WT_STAT_CONN_COND_AUTO_WAIT 1098
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1095
+#define WT_STAT_CONN_FILE_OPEN 1099
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1096
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1100
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1097
+#define WT_STAT_CONN_MEMORY_FREE 1101
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1098
+#define WT_STAT_CONN_MEMORY_GROW 1102
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1099
+#define WT_STAT_CONN_COND_WAIT 1103
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1100
+#define WT_STAT_CONN_RWLOCK_READ 1104
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1101
+#define WT_STAT_CONN_RWLOCK_WRITE 1105
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1102
+#define WT_STAT_CONN_FSYNC_IO 1106
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1103
+#define WT_STAT_CONN_READ_IO 1107
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1104
+#define WT_STAT_CONN_WRITE_IO 1108
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1105
+#define WT_STAT_CONN_CURSOR_CREATE 1109
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1106
+#define WT_STAT_CONN_CURSOR_INSERT 1110
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1107
+#define WT_STAT_CONN_CURSOR_NEXT 1111
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1108
+#define WT_STAT_CONN_CURSOR_PREV 1112
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1109
+#define WT_STAT_CONN_CURSOR_REMOVE 1113
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1110
+#define WT_STAT_CONN_CURSOR_RESET 1114
/*! cursor: cursor restarted searches */
-#define WT_STAT_CONN_CURSOR_RESTART 1111
+#define WT_STAT_CONN_CURSOR_RESTART 1115
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1112
+#define WT_STAT_CONN_CURSOR_SEARCH 1116
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1113
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1117
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1114
+#define WT_STAT_CONN_CURSOR_UPDATE 1118
/*! cursor: truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1115
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1119
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1116
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1120
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1117
+#define WT_STAT_CONN_DH_SWEEP_REF 1121
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1118
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1122
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1119
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1123
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1120
+#define WT_STAT_CONN_DH_SWEEP_TOD 1124
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1121
+#define WT_STAT_CONN_DH_SWEEPS 1125
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1122
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1126
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1123
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1127
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1124
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1128
/*! lock: checkpoint lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1125
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1129
/*! lock: checkpoint lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1126
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1130
/*! lock: handle-list lock acquisitions */
-#define WT_STAT_CONN_LOCK_HANDLE_LIST_COUNT 1127
+#define WT_STAT_CONN_LOCK_HANDLE_LIST_COUNT 1131
/*! lock: handle-list lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_HANDLE_LIST_WAIT_APPLICATION 1128
+#define WT_STAT_CONN_LOCK_HANDLE_LIST_WAIT_APPLICATION 1132
/*! lock: handle-list lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_HANDLE_LIST_WAIT_INTERNAL 1129
+#define WT_STAT_CONN_LOCK_HANDLE_LIST_WAIT_INTERNAL 1133
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1130
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1134
/*! lock: metadata lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1131
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1135
/*! lock: metadata lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1132
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1136
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1133
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1137
/*! lock: schema lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1134
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1138
/*! lock: schema lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1135
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1139
/*! lock: table lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_COUNT 1136
+#define WT_STAT_CONN_LOCK_TABLE_COUNT 1140
/*!
* lock: table lock application thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1137
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1141
/*!
* lock: table lock internal thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1138
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1142
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1139
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1143
/*! log: consolidated slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1140
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1144
/*! log: consolidated slot join races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1141
+#define WT_STAT_CONN_LOG_SLOT_RACES 1145
/*! log: consolidated slot join transitions */
-#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1142
+#define WT_STAT_CONN_LOG_SLOT_TRANSITIONS 1146
/*! log: consolidated slot joins */
-#define WT_STAT_CONN_LOG_SLOT_JOINS 1143
+#define WT_STAT_CONN_LOG_SLOT_JOINS 1147
/*! log: consolidated slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1144
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1148
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1145
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1149
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1146
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1150
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1147
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1151
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1148
+#define WT_STAT_CONN_LOG_FLUSH 1152
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1149
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1153
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1150
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1154
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1151
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1155
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1152
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1156
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1153
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1157
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1154
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1158
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1155
+#define WT_STAT_CONN_LOG_SCANS 1159
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1156
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1160
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1157
+#define WT_STAT_CONN_LOG_WRITE_LSN 1161
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1158
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1162
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1159
+#define WT_STAT_CONN_LOG_SYNC 1163
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1160
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1164
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1161
+#define WT_STAT_CONN_LOG_SYNC_DIR 1165
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1162
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1166
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1163
+#define WT_STAT_CONN_LOG_WRITES 1167
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1164
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1168
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1165
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1169
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1166
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1170
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1167
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1171
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1168
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1172
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1169
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1173
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1170
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1174
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1171
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1175
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1172
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1176
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1173
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1177
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1174
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1178
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1175
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1179
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1176
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1180
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1177
+#define WT_STAT_CONN_REC_PAGES 1181
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1178
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1182
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1179
+#define WT_STAT_CONN_REC_PAGE_DELETE 1183
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1180
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1184
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1181
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1185
/*! session: open cursor count */
-#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1182
+#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1186
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1183
+#define WT_STAT_CONN_SESSION_OPEN 1187
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1184
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1188
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1185
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1189
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1186
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1190
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1187
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1191
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1188
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1192
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1189
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1193
/*! session: table rebalance failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL 1190
+#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL 1194
/*! session: table rebalance successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS 1191
+#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS 1195
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1192
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1196
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1193
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1197
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1194
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1198
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1195
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1199
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1196
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1200
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1197
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1201
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1198
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1202
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1199
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1203
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1200
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1204
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1201
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1205
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1202
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1206
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1203
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1207
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1204
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1208
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1205
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1209
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1206
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1210
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1207
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1211
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1208
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1212
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1209
+#define WT_STAT_CONN_PAGE_SLEEP 1213
/*! transaction: number of named snapshots created */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1210
+#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1214
/*! transaction: number of named snapshots dropped */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1211
+#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1215
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1212
+#define WT_STAT_CONN_TXN_BEGIN 1216
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1213
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1217
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1214
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1218
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1215
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1219
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1216
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1220
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1217
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1221
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1218
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1222
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1219
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1223
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1220
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1224
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1221
+#define WT_STAT_CONN_TXN_CHECKPOINT 1225
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1222
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1226
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1223
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1227
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1224
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1228
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1225
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1229
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1226
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1230
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1227
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1231
/*!
* transaction: transaction range of IDs currently pinned by named
* snapshots
*/
-#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1228
+#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1232
/*! transaction: transaction sync calls */
-#define WT_STAT_CONN_TXN_SYNC 1229
+#define WT_STAT_CONN_TXN_SYNC 1233
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1230
+#define WT_STAT_CONN_TXN_COMMIT 1234
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1231
+#define WT_STAT_CONN_TXN_ROLLBACK 1235
/*!
* @}
diff --git a/src/support/stat.c b/src/support/stat.c
index d6457ed64bb..6e8e218a0db 100644
--- a/src/support/stat.c
+++ b/src/support/stat.c
@@ -639,6 +639,10 @@ static const char * const __stats_connection_desc[] = {
"block-manager: bytes written for checkpoint",
"block-manager: mapped blocks read",
"block-manager: mapped bytes read",
+ "cache: application threads page read from disk to cache count",
+ "cache: application threads page read from disk to cache time (usecs)",
+ "cache: application threads page write from cache to disk count",
+ "cache: application threads page write from cache to disk time (usecs)",
"cache: bytes belonging to page images in the cache",
"cache: bytes currently in the cache",
"cache: bytes not belonging to page images in the cache",
@@ -901,6 +905,10 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->block_byte_write_checkpoint = 0;
stats->block_map_read = 0;
stats->block_byte_map_read = 0;
+ stats->cache_read_app_count = 0;
+ stats->cache_read_app_time = 0;
+ stats->cache_write_app_count = 0;
+ stats->cache_write_app_time = 0;
/* not clearing cache_bytes_image */
/* not clearing cache_bytes_inuse */
/* not clearing cache_bytes_other */
@@ -1156,6 +1164,11 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, block_byte_write_checkpoint);
to->block_map_read += WT_STAT_READ(from, block_map_read);
to->block_byte_map_read += WT_STAT_READ(from, block_byte_map_read);
+ to->cache_read_app_count += WT_STAT_READ(from, cache_read_app_count);
+ to->cache_read_app_time += WT_STAT_READ(from, cache_read_app_time);
+ to->cache_write_app_count +=
+ WT_STAT_READ(from, cache_write_app_count);
+ to->cache_write_app_time += WT_STAT_READ(from, cache_write_app_time);
to->cache_bytes_image += WT_STAT_READ(from, cache_bytes_image);
to->cache_bytes_inuse += WT_STAT_READ(from, cache_bytes_inuse);
to->cache_bytes_other += WT_STAT_READ(from, cache_bytes_other);