diff options
author | Alex Gorrod <alexander.gorrod@mongodb.com> | 2016-10-18 15:14:27 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-18 15:14:27 +1100 |
commit | 940a7aba6a2c37f878114e8280eabf161a212deb (patch) | |
tree | 07da6e852354deb0ea455342590bffc682fdbc2e /src | |
parent | 349f5349eaaeab99f7a7178e03ab34f8ff0ebd0c (diff) | |
download | mongo-940a7aba6a2c37f878114e8280eabf161a212deb.tar.gz |
WT-2976 Add a statistic tracking how long app threads spend reading and writing (#3096)
Diffstat (limited to 'src')
-rw-r--r-- | src/btree/bt_io.c | 11 | ||||
-rw-r--r-- | src/btree/bt_read.c | 9 | ||||
-rw-r--r-- | src/include/stat.h | 4 | ||||
-rw-r--r-- | src/include/wiredtiger.in | 410 | ||||
-rw-r--r-- | src/support/stat.c | 13 |
5 files changed, 246 insertions, 201 deletions
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); |