diff options
-rw-r--r-- | src/third_party/wiredtiger/dist/s_string.ok | 1 | ||||
-rw-r--r-- | src/third_party/wiredtiger/dist/stat_data.py | 1 | ||||
-rw-r--r-- | src/third_party/wiredtiger/import.data | 2 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_sync.c | 44 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/include/stat.h | 2 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/include/wiredtiger.in | 862 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/support/stat.c | 7 | ||||
-rw-r--r-- | src/third_party/wiredtiger/test/suite/test_checkpoint23.py | 141 |
8 files changed, 625 insertions, 435 deletions
diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok index 8e94b159ae8..d741e8c8f97 100644 --- a/src/third_party/wiredtiger/dist/s_string.ok +++ b/src/third_party/wiredtiger/dist/s_string.ok @@ -1345,6 +1345,7 @@ recurse refp regionp reinitialization +reinstantiate relocked repl resizable diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py index da36da590a5..5a8c6cd2838 100644 --- a/src/third_party/wiredtiger/dist/stat_data.py +++ b/src/third_party/wiredtiger/dist/stat_data.py @@ -875,6 +875,7 @@ conn_dsrc_stats = [ # Checkpoint cleanup statistics ########################################## CheckpointCleanupStat('cc_pages_evict', 'pages added for eviction'), + CheckpointCleanupStat('cc_pages_read', 'obsolete pages read in for cleanup'), CheckpointCleanupStat('cc_pages_removed', 'pages removed'), CheckpointCleanupStat('cc_pages_visited', 'pages visited'), CheckpointCleanupStat('cc_pages_walk_skipped', 'pages skipped during tree walk'), diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data index 9e9dfc12c7d..86b09ed8dfc 100644 --- a/src/third_party/wiredtiger/import.data +++ b/src/third_party/wiredtiger/import.data @@ -2,5 +2,5 @@ "vendor": "wiredtiger", "github": "wiredtiger/wiredtiger.git", "branch": "mongodb-master", - "commit": "a47bf12a717db87f20d9df44a14ce72560bdf79f" + "commit": "ba7f30585628b2f3a21cae01dbc1bfeb692a2bd1" } diff --git a/src/third_party/wiredtiger/src/btree/bt_sync.c b/src/third_party/wiredtiger/src/btree/bt_sync.c index e7c0e4f3a83..855e1246414 100644 --- a/src/third_party/wiredtiger/src/btree/bt_sync.c +++ b/src/third_party/wiredtiger/src/btree/bt_sync.c @@ -115,6 +115,22 @@ __sync_dup_walk(WT_SESSION_IMPL *session, WT_REF *walk, uint32_t flags, WT_REF * } /* + * __sync_should_read_obsolete_page -- + * Check if we should read in an obsolete page with overflow items in order to re-reconcile it + * and discard it all. + */ +static int +__sync_should_read_obsolete_page(WT_SESSION_IMPL *session) +{ + /* If the cache is under stress, don't make it worse. */ + if (__wt_cache_aggressive(session) || __wt_cache_full(session) || __wt_cache_stuck(session) || + __wt_eviction_needed(session, false, false, NULL)) + return (false); + + return (true); +} + +/* * __sync_ref_obsolete_check -- * Check whether the ref is obsolete according to the newest stop time point and handle the * obsolete page. @@ -168,11 +184,10 @@ __sync_ref_obsolete_check(WT_SESSION_IMPL *session, WT_REF *ref) ovfl_items = false; if (previous_state == WT_REF_DISK) { /* - * There should be an address, but simply skip any page where we don't find one. Also skip - * the pages that have overflow keys as part of fast delete flow. These overflow keys pages - * are handled as an in-memory obsolete page flow. + * There should be an address, but simply skip any page where we don't find one. */ - if (__wt_ref_addr_copy(session, ref, &addr) && addr.type == WT_ADDR_LEAF_NO) { + if (__wt_ref_addr_copy(session, ref, &addr) && + (addr.type == WT_ADDR_LEAF_NO || addr.type == WT_ADDR_LEAF)) { /* * Max stop timestamp is possible only when the prepared update is written to the data * store. @@ -184,11 +199,30 @@ __sync_ref_obsolete_check(WT_SESSION_IMPL *session, WT_REF *ref) obsolete = __wt_txn_visible_all(session, newest_stop_txn, newest_stop_durable_ts); } - if (obsolete) { + if (obsolete && addr.type == WT_ADDR_LEAF_NO) { WT_REF_UNLOCK(ref, WT_REF_DELETED); WT_STAT_CONN_DATA_INCR(session, cc_pages_removed); WT_RET(__wt_page_parent_modify_set(session, ref, true)); + } else if (obsolete && __sync_should_read_obsolete_page(session)) { + /* + * This page has overflow items, so we can't just drop it. Instead, read it into memory + * and mark it dirty (and ready to evict) so that the next reconciliation will clean it + * up. + * + * Set READ_SKIP_DELETED so that if someone else deletes the page when we unlock it, we + * don't then bother to reinstantiate it. + */ + WT_REF_UNLOCK(ref, previous_state); + ret = __wt_page_in(session, ref, WT_READ_WONT_NEED | WT_READ_SKIP_DELETED); + WT_RET_NOTFOUND_OK(ret); + if (ret == 0) { + /* Mark the page dirty and count what we did in the stats. */ + WT_RET(__wt_page_modify_init(session, ref->page)); + __wt_page_modify_set(session, ref->page); + WT_RET(__wt_page_release(session, ref, 0)); + WT_STAT_CONN_DATA_INCR(session, cc_pages_read); + } } else WT_REF_UNLOCK(ref, previous_state); diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h index 2b80cca70c0..7d3c7c3f1d5 100644 --- a/src/third_party/wiredtiger/src/include/stat.h +++ b/src/third_party/wiredtiger/src/include/stat.h @@ -524,6 +524,7 @@ struct __wt_connection_stats { int64_t capacity_time_evict; int64_t capacity_time_log; int64_t capacity_time_read; + int64_t cc_pages_read; int64_t cc_pages_evict; int64_t cc_pages_removed; int64_t cc_pages_walk_skipped; @@ -981,6 +982,7 @@ struct __wt_dsrc_stats { int64_t cache_state_refs_skipped; int64_t cache_state_root_size; int64_t cache_state_pages; + int64_t cc_pages_read; int64_t cc_pages_evict; int64_t cc_pages_removed; int64_t cc_pages_walk_skipped; diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in index 7601058d613..7c832ec6ff0 100644 --- a/src/third_party/wiredtiger/src/include/wiredtiger.in +++ b/src/third_party/wiredtiger/src/include/wiredtiger.in @@ -5642,783 +5642,785 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection); #define WT_STAT_CONN_CAPACITY_TIME_LOG 1190 /*! capacity: time waiting during read (usecs) */ #define WT_STAT_CONN_CAPACITY_TIME_READ 1191 +/*! checkpoint-cleanup: obsolete pages read in for cleanup */ +#define WT_STAT_CONN_CC_PAGES_READ 1192 /*! checkpoint-cleanup: pages added for eviction */ -#define WT_STAT_CONN_CC_PAGES_EVICT 1192 +#define WT_STAT_CONN_CC_PAGES_EVICT 1193 /*! checkpoint-cleanup: pages removed */ -#define WT_STAT_CONN_CC_PAGES_REMOVED 1193 +#define WT_STAT_CONN_CC_PAGES_REMOVED 1194 /*! checkpoint-cleanup: pages skipped during tree walk */ -#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1194 +#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1195 /*! checkpoint-cleanup: pages visited */ -#define WT_STAT_CONN_CC_PAGES_VISITED 1195 +#define WT_STAT_CONN_CC_PAGES_VISITED 1196 /*! connection: auto adjusting condition resets */ -#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1196 +#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1197 /*! connection: auto adjusting condition wait calls */ -#define WT_STAT_CONN_COND_AUTO_WAIT 1197 +#define WT_STAT_CONN_COND_AUTO_WAIT 1198 /*! * connection: auto adjusting condition wait raced to update timeout and * skipped updating */ -#define WT_STAT_CONN_COND_AUTO_WAIT_SKIPPED 1198 +#define WT_STAT_CONN_COND_AUTO_WAIT_SKIPPED 1199 /*! connection: detected system time went backwards */ -#define WT_STAT_CONN_TIME_TRAVEL 1199 +#define WT_STAT_CONN_TIME_TRAVEL 1200 /*! connection: files currently open */ -#define WT_STAT_CONN_FILE_OPEN 1200 +#define WT_STAT_CONN_FILE_OPEN 1201 /*! connection: hash bucket array size for data handles */ -#define WT_STAT_CONN_BUCKETS_DH 1201 +#define WT_STAT_CONN_BUCKETS_DH 1202 /*! connection: hash bucket array size general */ -#define WT_STAT_CONN_BUCKETS 1202 +#define WT_STAT_CONN_BUCKETS 1203 /*! connection: memory allocations */ -#define WT_STAT_CONN_MEMORY_ALLOCATION 1203 +#define WT_STAT_CONN_MEMORY_ALLOCATION 1204 /*! connection: memory frees */ -#define WT_STAT_CONN_MEMORY_FREE 1204 +#define WT_STAT_CONN_MEMORY_FREE 1205 /*! connection: memory re-allocations */ -#define WT_STAT_CONN_MEMORY_GROW 1205 +#define WT_STAT_CONN_MEMORY_GROW 1206 /*! connection: pthread mutex condition wait calls */ -#define WT_STAT_CONN_COND_WAIT 1206 +#define WT_STAT_CONN_COND_WAIT 1207 /*! connection: pthread mutex shared lock read-lock calls */ -#define WT_STAT_CONN_RWLOCK_READ 1207 +#define WT_STAT_CONN_RWLOCK_READ 1208 /*! connection: pthread mutex shared lock write-lock calls */ -#define WT_STAT_CONN_RWLOCK_WRITE 1208 +#define WT_STAT_CONN_RWLOCK_WRITE 1209 /*! connection: total fsync I/Os */ -#define WT_STAT_CONN_FSYNC_IO 1209 +#define WT_STAT_CONN_FSYNC_IO 1210 /*! connection: total read I/Os */ -#define WT_STAT_CONN_READ_IO 1210 +#define WT_STAT_CONN_READ_IO 1211 /*! connection: total write I/Os */ -#define WT_STAT_CONN_WRITE_IO 1211 +#define WT_STAT_CONN_WRITE_IO 1212 /*! cursor: Total number of entries skipped by cursor next calls */ -#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1212 +#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1213 /*! cursor: Total number of entries skipped by cursor prev calls */ -#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1213 +#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1214 /*! * cursor: Total number of entries skipped to position the history store * cursor */ -#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1214 +#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1215 /*! * cursor: Total number of times a search near has exited due to prefix * config */ -#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1215 +#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1216 /*! cursor: cached cursor count */ -#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1216 +#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1217 /*! cursor: cursor bulk loaded cursor insert calls */ -#define WT_STAT_CONN_CURSOR_INSERT_BULK 1217 +#define WT_STAT_CONN_CURSOR_INSERT_BULK 1218 /*! cursor: cursor close calls that result in cache */ -#define WT_STAT_CONN_CURSOR_CACHE 1218 +#define WT_STAT_CONN_CURSOR_CACHE 1219 /*! cursor: cursor create calls */ -#define WT_STAT_CONN_CURSOR_CREATE 1219 +#define WT_STAT_CONN_CURSOR_CREATE 1220 /*! cursor: cursor insert calls */ -#define WT_STAT_CONN_CURSOR_INSERT 1220 +#define WT_STAT_CONN_CURSOR_INSERT 1221 /*! cursor: cursor insert key and value bytes */ -#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1221 +#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1222 /*! cursor: cursor modify calls */ -#define WT_STAT_CONN_CURSOR_MODIFY 1222 +#define WT_STAT_CONN_CURSOR_MODIFY 1223 /*! cursor: cursor modify key and value bytes affected */ -#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1223 +#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1224 /*! cursor: cursor modify value bytes modified */ -#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1224 +#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1225 /*! cursor: cursor next calls */ -#define WT_STAT_CONN_CURSOR_NEXT 1225 +#define WT_STAT_CONN_CURSOR_NEXT 1226 /*! * cursor: cursor next calls that skip due to a globally visible history * store tombstone */ -#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1226 +#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1227 /*! * cursor: cursor next calls that skip greater than or equal to 100 * entries */ -#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1227 +#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1228 /*! cursor: cursor next calls that skip less than 100 entries */ -#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1228 +#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1229 /*! cursor: cursor operation restarted */ -#define WT_STAT_CONN_CURSOR_RESTART 1229 +#define WT_STAT_CONN_CURSOR_RESTART 1230 /*! cursor: cursor prev calls */ -#define WT_STAT_CONN_CURSOR_PREV 1230 +#define WT_STAT_CONN_CURSOR_PREV 1231 /*! * cursor: cursor prev calls that skip due to a globally visible history * store tombstone */ -#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1231 +#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1232 /*! * cursor: cursor prev calls that skip greater than or equal to 100 * entries */ -#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1232 +#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1233 /*! cursor: cursor prev calls that skip less than 100 entries */ -#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1233 +#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1234 /*! cursor: cursor remove calls */ -#define WT_STAT_CONN_CURSOR_REMOVE 1234 +#define WT_STAT_CONN_CURSOR_REMOVE 1235 /*! cursor: cursor remove key bytes removed */ -#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1235 +#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1236 /*! cursor: cursor reserve calls */ -#define WT_STAT_CONN_CURSOR_RESERVE 1236 +#define WT_STAT_CONN_CURSOR_RESERVE 1237 /*! cursor: cursor reset calls */ -#define WT_STAT_CONN_CURSOR_RESET 1237 +#define WT_STAT_CONN_CURSOR_RESET 1238 /*! cursor: cursor search calls */ -#define WT_STAT_CONN_CURSOR_SEARCH 1238 +#define WT_STAT_CONN_CURSOR_SEARCH 1239 /*! cursor: cursor search history store calls */ -#define WT_STAT_CONN_CURSOR_SEARCH_HS 1239 +#define WT_STAT_CONN_CURSOR_SEARCH_HS 1240 /*! cursor: cursor search near calls */ -#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1240 +#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1241 /*! cursor: cursor sweep buckets */ -#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1241 +#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1242 /*! cursor: cursor sweep cursors closed */ -#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1242 +#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1243 /*! cursor: cursor sweep cursors examined */ -#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1243 +#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1244 /*! cursor: cursor sweeps */ -#define WT_STAT_CONN_CURSOR_SWEEP 1244 +#define WT_STAT_CONN_CURSOR_SWEEP 1245 /*! cursor: cursor truncate calls */ -#define WT_STAT_CONN_CURSOR_TRUNCATE 1245 +#define WT_STAT_CONN_CURSOR_TRUNCATE 1246 /*! cursor: cursor update calls */ -#define WT_STAT_CONN_CURSOR_UPDATE 1246 +#define WT_STAT_CONN_CURSOR_UPDATE 1247 /*! cursor: cursor update key and value bytes */ -#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1247 +#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1248 /*! cursor: cursor update value size change */ -#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1248 +#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1249 /*! cursor: cursors reused from cache */ -#define WT_STAT_CONN_CURSOR_REOPEN 1249 +#define WT_STAT_CONN_CURSOR_REOPEN 1250 /*! cursor: open cursor count */ -#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1250 +#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1251 /*! data-handle: connection data handle size */ -#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1251 +#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1252 /*! data-handle: connection data handles currently active */ -#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1252 +#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1253 /*! data-handle: connection sweep candidate became referenced */ -#define WT_STAT_CONN_DH_SWEEP_REF 1253 +#define WT_STAT_CONN_DH_SWEEP_REF 1254 /*! data-handle: connection sweep dhandles closed */ -#define WT_STAT_CONN_DH_SWEEP_CLOSE 1254 +#define WT_STAT_CONN_DH_SWEEP_CLOSE 1255 /*! data-handle: connection sweep dhandles removed from hash list */ -#define WT_STAT_CONN_DH_SWEEP_REMOVE 1255 +#define WT_STAT_CONN_DH_SWEEP_REMOVE 1256 /*! data-handle: connection sweep time-of-death sets */ -#define WT_STAT_CONN_DH_SWEEP_TOD 1256 +#define WT_STAT_CONN_DH_SWEEP_TOD 1257 /*! data-handle: connection sweeps */ -#define WT_STAT_CONN_DH_SWEEPS 1257 +#define WT_STAT_CONN_DH_SWEEPS 1258 /*! * data-handle: connection sweeps skipped due to checkpoint gathering * handles */ -#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1258 +#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1259 /*! data-handle: session dhandles swept */ -#define WT_STAT_CONN_DH_SESSION_HANDLES 1259 +#define WT_STAT_CONN_DH_SESSION_HANDLES 1260 /*! data-handle: session sweep attempts */ -#define WT_STAT_CONN_DH_SESSION_SWEEPS 1260 +#define WT_STAT_CONN_DH_SESSION_SWEEPS 1261 /*! lock: checkpoint lock acquisitions */ -#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1261 +#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1262 /*! lock: checkpoint lock application thread wait time (usecs) */ -#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1262 +#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1263 /*! lock: checkpoint lock internal thread wait time (usecs) */ -#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1263 +#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1264 /*! lock: dhandle lock application thread time waiting (usecs) */ -#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1264 +#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1265 /*! lock: dhandle lock internal thread time waiting (usecs) */ -#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1265 +#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1266 /*! lock: dhandle read lock acquisitions */ -#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1266 +#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1267 /*! lock: dhandle write lock acquisitions */ -#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1267 +#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1268 /*! * lock: durable timestamp queue lock application thread time waiting * (usecs) */ -#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1268 +#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1269 /*! * lock: durable timestamp queue lock internal thread time waiting * (usecs) */ -#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1269 +#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1270 /*! lock: durable timestamp queue read lock acquisitions */ -#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1270 +#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1271 /*! lock: durable timestamp queue write lock acquisitions */ -#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1271 +#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1272 /*! lock: metadata lock acquisitions */ -#define WT_STAT_CONN_LOCK_METADATA_COUNT 1272 +#define WT_STAT_CONN_LOCK_METADATA_COUNT 1273 /*! lock: metadata lock application thread wait time (usecs) */ -#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1273 +#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1274 /*! lock: metadata lock internal thread wait time (usecs) */ -#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1274 +#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1275 /*! * lock: read timestamp queue lock application thread time waiting * (usecs) */ -#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1275 +#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1276 /*! lock: read timestamp queue lock internal thread time waiting (usecs) */ -#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1276 +#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1277 /*! lock: read timestamp queue read lock acquisitions */ -#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1277 +#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1278 /*! lock: read timestamp queue write lock acquisitions */ -#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1278 +#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1279 /*! lock: schema lock acquisitions */ -#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1279 +#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1280 /*! lock: schema lock application thread wait time (usecs) */ -#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1280 +#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1281 /*! lock: schema lock internal thread wait time (usecs) */ -#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1281 +#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1282 /*! * lock: table lock application thread time waiting for the table lock * (usecs) */ -#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1282 +#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1283 /*! * lock: table lock internal thread time waiting for the table lock * (usecs) */ -#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1283 +#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1284 /*! lock: table read lock acquisitions */ -#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1284 +#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1285 /*! lock: table write lock acquisitions */ -#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1285 +#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1286 /*! lock: txn global lock application thread time waiting (usecs) */ -#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1286 +#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1287 /*! lock: txn global lock internal thread time waiting (usecs) */ -#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1287 +#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1288 /*! lock: txn global read lock acquisitions */ -#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1288 +#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1289 /*! lock: txn global write lock acquisitions */ -#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1289 +#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1290 /*! log: busy returns attempting to switch slots */ -#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1290 +#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1291 /*! log: force log remove time sleeping (usecs) */ -#define WT_STAT_CONN_LOG_FORCE_REMOVE_SLEEP 1291 +#define WT_STAT_CONN_LOG_FORCE_REMOVE_SLEEP 1292 /*! log: log bytes of payload data */ -#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1292 +#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1293 /*! log: log bytes written */ -#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1293 +#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1294 /*! log: log files manually zero-filled */ -#define WT_STAT_CONN_LOG_ZERO_FILLS 1294 +#define WT_STAT_CONN_LOG_ZERO_FILLS 1295 /*! log: log flush operations */ -#define WT_STAT_CONN_LOG_FLUSH 1295 +#define WT_STAT_CONN_LOG_FLUSH 1296 /*! log: log force write operations */ -#define WT_STAT_CONN_LOG_FORCE_WRITE 1296 +#define WT_STAT_CONN_LOG_FORCE_WRITE 1297 /*! log: log force write operations skipped */ -#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1297 +#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1298 /*! log: log records compressed */ -#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1298 +#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1299 /*! log: log records not compressed */ -#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1299 +#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1300 /*! log: log records too small to compress */ -#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1300 +#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1301 /*! log: log release advances write LSN */ -#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1301 +#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1302 /*! log: log scan operations */ -#define WT_STAT_CONN_LOG_SCANS 1302 +#define WT_STAT_CONN_LOG_SCANS 1303 /*! log: log scan records requiring two reads */ -#define WT_STAT_CONN_LOG_SCAN_REREADS 1303 +#define WT_STAT_CONN_LOG_SCAN_REREADS 1304 /*! log: log server thread advances write LSN */ -#define WT_STAT_CONN_LOG_WRITE_LSN 1304 +#define WT_STAT_CONN_LOG_WRITE_LSN 1305 /*! log: log server thread write LSN walk skipped */ -#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1305 +#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1306 /*! log: log sync operations */ -#define WT_STAT_CONN_LOG_SYNC 1306 +#define WT_STAT_CONN_LOG_SYNC 1307 /*! log: log sync time duration (usecs) */ -#define WT_STAT_CONN_LOG_SYNC_DURATION 1307 +#define WT_STAT_CONN_LOG_SYNC_DURATION 1308 /*! log: log sync_dir operations */ -#define WT_STAT_CONN_LOG_SYNC_DIR 1308 +#define WT_STAT_CONN_LOG_SYNC_DIR 1309 /*! log: log sync_dir time duration (usecs) */ -#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1309 +#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1310 /*! log: log write operations */ -#define WT_STAT_CONN_LOG_WRITES 1310 +#define WT_STAT_CONN_LOG_WRITES 1311 /*! log: logging bytes consolidated */ -#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1311 +#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1312 /*! log: maximum log file size */ -#define WT_STAT_CONN_LOG_MAX_FILESIZE 1312 +#define WT_STAT_CONN_LOG_MAX_FILESIZE 1313 /*! log: number of pre-allocated log files to create */ -#define WT_STAT_CONN_LOG_PREALLOC_MAX 1313 +#define WT_STAT_CONN_LOG_PREALLOC_MAX 1314 /*! log: pre-allocated log files not ready and missed */ -#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1314 +#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1315 /*! log: pre-allocated log files prepared */ -#define WT_STAT_CONN_LOG_PREALLOC_FILES 1315 +#define WT_STAT_CONN_LOG_PREALLOC_FILES 1316 /*! log: pre-allocated log files used */ -#define WT_STAT_CONN_LOG_PREALLOC_USED 1316 +#define WT_STAT_CONN_LOG_PREALLOC_USED 1317 /*! log: records processed by log scan */ -#define WT_STAT_CONN_LOG_SCAN_RECORDS 1317 +#define WT_STAT_CONN_LOG_SCAN_RECORDS 1318 /*! log: slot close lost race */ -#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1318 +#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1319 /*! log: slot close unbuffered waits */ -#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1319 +#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1320 /*! log: slot closures */ -#define WT_STAT_CONN_LOG_SLOT_CLOSES 1320 +#define WT_STAT_CONN_LOG_SLOT_CLOSES 1321 /*! log: slot join atomic update races */ -#define WT_STAT_CONN_LOG_SLOT_RACES 1321 +#define WT_STAT_CONN_LOG_SLOT_RACES 1322 /*! log: slot join calls atomic updates raced */ -#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1322 +#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1323 /*! log: slot join calls did not yield */ -#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1323 +#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1324 /*! log: slot join calls found active slot closed */ -#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1324 +#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1325 /*! log: slot join calls slept */ -#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1325 +#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1326 /*! log: slot join calls yielded */ -#define WT_STAT_CONN_LOG_SLOT_YIELD 1326 +#define WT_STAT_CONN_LOG_SLOT_YIELD 1327 /*! log: slot join found active slot closed */ -#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1327 +#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1328 /*! log: slot joins yield time (usecs) */ -#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1328 +#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1329 /*! log: slot transitions unable to find free slot */ -#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1329 +#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1330 /*! log: slot unbuffered writes */ -#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1330 +#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1331 /*! log: total in-memory size of compressed records */ -#define WT_STAT_CONN_LOG_COMPRESS_MEM 1331 +#define WT_STAT_CONN_LOG_COMPRESS_MEM 1332 /*! log: total log buffer size */ -#define WT_STAT_CONN_LOG_BUFFER_SIZE 1332 +#define WT_STAT_CONN_LOG_BUFFER_SIZE 1333 /*! log: total size of compressed records */ -#define WT_STAT_CONN_LOG_COMPRESS_LEN 1333 +#define WT_STAT_CONN_LOG_COMPRESS_LEN 1334 /*! log: written slots coalesced */ -#define WT_STAT_CONN_LOG_SLOT_COALESCED 1334 +#define WT_STAT_CONN_LOG_SLOT_COALESCED 1335 /*! log: yields waiting for previous log file close */ -#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1335 +#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1336 /*! perf: file system read latency histogram (bucket 1) - 10-49ms */ -#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1336 +#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1337 /*! perf: file system read latency histogram (bucket 2) - 50-99ms */ -#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1337 +#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1338 /*! perf: file system read latency histogram (bucket 3) - 100-249ms */ -#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1338 +#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1339 /*! perf: file system read latency histogram (bucket 4) - 250-499ms */ -#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1339 +#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1340 /*! perf: file system read latency histogram (bucket 5) - 500-999ms */ -#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1340 +#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1341 /*! perf: file system read latency histogram (bucket 6) - 1000ms+ */ -#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1341 +#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1342 /*! perf: file system write latency histogram (bucket 1) - 10-49ms */ -#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1342 +#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1343 /*! perf: file system write latency histogram (bucket 2) - 50-99ms */ -#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1343 +#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1344 /*! perf: file system write latency histogram (bucket 3) - 100-249ms */ -#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1344 +#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1345 /*! perf: file system write latency histogram (bucket 4) - 250-499ms */ -#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1345 +#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1346 /*! perf: file system write latency histogram (bucket 5) - 500-999ms */ -#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1346 +#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1347 /*! perf: file system write latency histogram (bucket 6) - 1000ms+ */ -#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1347 +#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1348 /*! perf: operation read latency histogram (bucket 1) - 100-249us */ -#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1348 +#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1349 /*! perf: operation read latency histogram (bucket 2) - 250-499us */ -#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1349 +#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1350 /*! perf: operation read latency histogram (bucket 3) - 500-999us */ -#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1350 +#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1351 /*! perf: operation read latency histogram (bucket 4) - 1000-9999us */ -#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1351 +#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1352 /*! perf: operation read latency histogram (bucket 5) - 10000us+ */ -#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1352 +#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1353 /*! perf: operation write latency histogram (bucket 1) - 100-249us */ -#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1353 +#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1354 /*! perf: operation write latency histogram (bucket 2) - 250-499us */ -#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1354 +#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1355 /*! perf: operation write latency histogram (bucket 3) - 500-999us */ -#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1355 +#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1356 /*! perf: operation write latency histogram (bucket 4) - 1000-9999us */ -#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1356 +#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1357 /*! perf: operation write latency histogram (bucket 5) - 10000us+ */ -#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1357 +#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1358 /*! reconciliation: approximate byte size of timestamps in pages written */ -#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1358 +#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1359 /*! * reconciliation: approximate byte size of transaction IDs in pages * written */ -#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1359 +#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1360 /*! reconciliation: fast-path pages deleted */ -#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1360 +#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1361 /*! reconciliation: leaf-page overflow keys */ -#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1361 +#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1362 /*! reconciliation: maximum seconds spent in a reconciliation call */ -#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1362 +#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1363 /*! reconciliation: page reconciliation calls */ -#define WT_STAT_CONN_REC_PAGES 1363 +#define WT_STAT_CONN_REC_PAGES 1364 /*! reconciliation: page reconciliation calls for eviction */ -#define WT_STAT_CONN_REC_PAGES_EVICTION 1364 +#define WT_STAT_CONN_REC_PAGES_EVICTION 1365 /*! * reconciliation: page reconciliation calls that resulted in values with * prepared transaction metadata */ -#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1365 +#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1366 /*! * reconciliation: page reconciliation calls that resulted in values with * timestamps */ -#define WT_STAT_CONN_REC_PAGES_WITH_TS 1366 +#define WT_STAT_CONN_REC_PAGES_WITH_TS 1367 /*! * reconciliation: page reconciliation calls that resulted in values with * transaction ids */ -#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1367 +#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1368 /*! reconciliation: pages deleted */ -#define WT_STAT_CONN_REC_PAGE_DELETE 1368 +#define WT_STAT_CONN_REC_PAGE_DELETE 1369 /*! * reconciliation: pages written including an aggregated newest start * durable timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1369 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1370 /*! * reconciliation: pages written including an aggregated newest stop * durable timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1370 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1371 /*! * reconciliation: pages written including an aggregated newest stop * timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1371 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1372 /*! * reconciliation: pages written including an aggregated newest stop * transaction ID */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1372 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1373 /*! * reconciliation: pages written including an aggregated newest * transaction ID */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1373 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1374 /*! * reconciliation: pages written including an aggregated oldest start * timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1374 +#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1375 /*! reconciliation: pages written including an aggregated prepare */ -#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1375 +#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1376 /*! reconciliation: pages written including at least one prepare state */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1376 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1377 /*! * reconciliation: pages written including at least one start durable * timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1377 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1378 /*! reconciliation: pages written including at least one start timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1378 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1379 /*! * reconciliation: pages written including at least one start transaction * ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1379 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1380 /*! * reconciliation: pages written including at least one stop durable * timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1380 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1381 /*! reconciliation: pages written including at least one stop timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1381 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1382 /*! * reconciliation: pages written including at least one stop transaction * ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1382 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1383 /*! reconciliation: records written including a prepare state */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1383 +#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1384 /*! reconciliation: records written including a start durable timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1384 +#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1385 /*! reconciliation: records written including a start timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1385 +#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1386 /*! reconciliation: records written including a start transaction ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1386 +#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1387 /*! reconciliation: records written including a stop durable timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1387 +#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1388 /*! reconciliation: records written including a stop timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1388 +#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1389 /*! reconciliation: records written including a stop transaction ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1389 +#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1390 /*! reconciliation: split bytes currently awaiting free */ -#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1390 +#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1391 /*! reconciliation: split objects currently awaiting free */ -#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1391 +#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1392 /*! session: attempts to remove a local object and the object is in use */ -#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1392 +#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1393 /*! session: flush_tier operation calls */ -#define WT_STAT_CONN_FLUSH_TIER 1393 +#define WT_STAT_CONN_FLUSH_TIER 1394 /*! session: flush_tier tables skipped due to no checkpoint */ -#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1394 +#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1395 /*! session: flush_tier tables switched */ -#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1395 +#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1396 /*! session: local objects removed */ -#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1396 +#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1397 /*! session: open session count */ -#define WT_STAT_CONN_SESSION_OPEN 1397 +#define WT_STAT_CONN_SESSION_OPEN 1398 /*! session: session query timestamp calls */ -#define WT_STAT_CONN_SESSION_QUERY_TS 1398 +#define WT_STAT_CONN_SESSION_QUERY_TS 1399 /*! session: table alter failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1399 +#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1400 /*! session: table alter successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1400 +#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1401 /*! session: table alter triggering checkpoint calls */ -#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1401 +#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1402 /*! session: table alter unchanged and skipped */ -#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1402 +#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1403 /*! session: table compact failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1403 +#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1404 /*! session: table compact failed calls due to cache pressure */ -#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1404 +#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1405 /*! session: table compact running */ -#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1405 +#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1406 /*! session: table compact skipped as process would not reduce file size */ -#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1406 +#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1407 /*! session: table compact successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1407 +#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1408 /*! session: table compact timeout */ -#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1408 +#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1409 /*! session: table create failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1409 +#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1410 /*! session: table create successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1410 +#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1411 /*! session: table drop failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1411 +#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1412 /*! session: table drop successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1412 +#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1413 /*! session: table rename failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1413 +#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1414 /*! session: table rename successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1414 +#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1415 /*! session: table salvage failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1415 +#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1416 /*! session: table salvage successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1416 +#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1417 /*! session: table truncate failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1417 +#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1418 /*! session: table truncate successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1418 +#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1419 /*! session: table verify failed calls */ -#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1419 +#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1420 /*! session: table verify successful calls */ -#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1420 +#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1421 /*! session: tiered operations dequeued and processed */ -#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1421 +#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1422 /*! session: tiered operations scheduled */ -#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1422 +#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1423 /*! session: tiered storage local retention time (secs) */ -#define WT_STAT_CONN_TIERED_RETENTION 1423 +#define WT_STAT_CONN_TIERED_RETENTION 1424 /*! session: tiered storage object size */ -#define WT_STAT_CONN_TIERED_OBJECT_SIZE 1424 +#define WT_STAT_CONN_TIERED_OBJECT_SIZE 1425 /*! thread-state: active filesystem fsync calls */ -#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1425 +#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1426 /*! thread-state: active filesystem read calls */ -#define WT_STAT_CONN_THREAD_READ_ACTIVE 1426 +#define WT_STAT_CONN_THREAD_READ_ACTIVE 1427 /*! thread-state: active filesystem write calls */ -#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1427 +#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1428 /*! thread-yield: application thread time evicting (usecs) */ -#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1428 +#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1429 /*! thread-yield: application thread time waiting for cache (usecs) */ -#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1429 +#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1430 /*! * thread-yield: connection close blocked waiting for transaction state * stabilization */ -#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1430 +#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1431 /*! thread-yield: connection close yielded for lsm manager shutdown */ -#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1431 +#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1432 /*! thread-yield: data handle lock yielded */ -#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1432 +#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1433 /*! * thread-yield: get reference for page index and slot time sleeping * (usecs) */ -#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1433 +#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1434 /*! thread-yield: page access yielded due to prepare state change */ -#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1434 +#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1435 /*! thread-yield: page acquire busy blocked */ -#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1435 +#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1436 /*! thread-yield: page acquire eviction blocked */ -#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1436 +#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1437 /*! thread-yield: page acquire locked blocked */ -#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1437 +#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1438 /*! thread-yield: page acquire read blocked */ -#define WT_STAT_CONN_PAGE_READ_BLOCKED 1438 +#define WT_STAT_CONN_PAGE_READ_BLOCKED 1439 /*! thread-yield: page acquire time sleeping (usecs) */ -#define WT_STAT_CONN_PAGE_SLEEP 1439 +#define WT_STAT_CONN_PAGE_SLEEP 1440 /*! * thread-yield: page delete rollback time sleeping for state change * (usecs) */ -#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1440 +#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1441 /*! thread-yield: page reconciliation yielded due to child modification */ -#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1441 +#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1442 /*! transaction: Number of prepared updates */ -#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1442 +#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1443 /*! transaction: Number of prepared updates committed */ -#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1443 +#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1444 /*! transaction: Number of prepared updates repeated on the same key */ -#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1444 +#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1445 /*! transaction: Number of prepared updates rolled back */ -#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1445 +#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1446 /*! transaction: prepared transactions */ -#define WT_STAT_CONN_TXN_PREPARE 1446 +#define WT_STAT_CONN_TXN_PREPARE 1447 /*! transaction: prepared transactions committed */ -#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1447 +#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1448 /*! transaction: prepared transactions currently active */ -#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1448 +#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1449 /*! transaction: prepared transactions rolled back */ -#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1449 +#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1450 /*! * transaction: prepared transactions rolled back and do not remove the * history store entry */ -#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_DO_NOT_REMOVE_HS_UPDATE 1450 +#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_DO_NOT_REMOVE_HS_UPDATE 1451 /*! * transaction: prepared transactions rolled back and fix the history * store entry with checkpoint reserved transaction id */ -#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_FIX_HS_UPDATE_WITH_CKPT_RESERVED_TXNID 1451 +#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_FIX_HS_UPDATE_WITH_CKPT_RESERVED_TXNID 1452 /*! transaction: query timestamp calls */ -#define WT_STAT_CONN_TXN_QUERY_TS 1452 +#define WT_STAT_CONN_TXN_QUERY_TS 1453 /*! transaction: race to read prepared update retry */ -#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1453 +#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1454 /*! transaction: rollback to stable calls */ -#define WT_STAT_CONN_TXN_RTS 1454 +#define WT_STAT_CONN_TXN_RTS 1455 /*! * transaction: rollback to stable history store records with stop * timestamps older than newer records */ -#define WT_STAT_CONN_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 1455 +#define WT_STAT_CONN_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 1456 /*! transaction: rollback to stable inconsistent checkpoint */ -#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1456 +#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1457 /*! transaction: rollback to stable keys removed */ -#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1457 +#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1458 /*! transaction: rollback to stable keys restored */ -#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1458 +#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1459 /*! transaction: rollback to stable pages visited */ -#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1459 +#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1460 /*! transaction: rollback to stable restored tombstones from history store */ -#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1460 +#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1461 /*! transaction: rollback to stable restored updates from history store */ -#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1461 +#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1462 /*! transaction: rollback to stable skipping delete rle */ -#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1462 +#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1463 /*! transaction: rollback to stable skipping stable rle */ -#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1463 +#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1464 /*! transaction: rollback to stable sweeping history store keys */ -#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1464 +#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1465 /*! transaction: rollback to stable tree walk skipping pages */ -#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1465 +#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1466 /*! transaction: rollback to stable updates aborted */ -#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1466 +#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1467 /*! transaction: rollback to stable updates removed from history store */ -#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1467 +#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1468 /*! transaction: sessions scanned in each walk of concurrent sessions */ -#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1468 +#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1469 /*! transaction: set timestamp calls */ -#define WT_STAT_CONN_TXN_SET_TS 1469 +#define WT_STAT_CONN_TXN_SET_TS 1470 /*! transaction: set timestamp durable calls */ -#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1470 +#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1471 /*! transaction: set timestamp durable updates */ -#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1471 +#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1472 /*! transaction: set timestamp oldest calls */ -#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1472 +#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1473 /*! transaction: set timestamp oldest updates */ -#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1473 +#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1474 /*! transaction: set timestamp stable calls */ -#define WT_STAT_CONN_TXN_SET_TS_STABLE 1474 +#define WT_STAT_CONN_TXN_SET_TS_STABLE 1475 /*! transaction: set timestamp stable updates */ -#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1475 +#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1476 /*! transaction: transaction begins */ -#define WT_STAT_CONN_TXN_BEGIN 1476 +#define WT_STAT_CONN_TXN_BEGIN 1477 /*! transaction: transaction checkpoint currently running */ -#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1477 +#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1478 /*! * transaction: transaction checkpoint currently running for history * store file */ -#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1478 +#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1479 /*! transaction: transaction checkpoint generation */ -#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1479 +#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1480 /*! * transaction: transaction checkpoint history store file duration * (usecs) */ -#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1480 +#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1481 /*! transaction: transaction checkpoint max time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1481 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1482 /*! transaction: transaction checkpoint min time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1482 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1483 /*! * transaction: transaction checkpoint most recent duration for gathering * all handles (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1483 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1484 /*! * transaction: transaction checkpoint most recent duration for gathering * applied handles (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1484 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1485 /*! * transaction: transaction checkpoint most recent duration for gathering * skipped handles (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1485 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1486 /*! transaction: transaction checkpoint most recent handles applied */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1486 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1487 /*! transaction: transaction checkpoint most recent handles skipped */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1487 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1488 /*! transaction: transaction checkpoint most recent handles walked */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1488 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1489 /*! transaction: transaction checkpoint most recent time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1489 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1490 /*! transaction: transaction checkpoint prepare currently running */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1490 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1491 /*! transaction: transaction checkpoint prepare max time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1491 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1492 /*! transaction: transaction checkpoint prepare min time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1492 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1493 /*! transaction: transaction checkpoint prepare most recent time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1493 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1494 /*! transaction: transaction checkpoint prepare total time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1494 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1495 /*! transaction: transaction checkpoint scrub dirty target */ -#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1495 +#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1496 /*! transaction: transaction checkpoint scrub time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1496 +#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1497 /*! transaction: transaction checkpoint total time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1497 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1498 /*! transaction: transaction checkpoints */ -#define WT_STAT_CONN_TXN_CHECKPOINT 1498 +#define WT_STAT_CONN_TXN_CHECKPOINT 1499 /*! transaction: transaction checkpoints due to obsolete pages */ -#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1499 +#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1500 /*! * transaction: transaction checkpoints skipped because database was * clean */ -#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1500 +#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1501 /*! transaction: transaction failures due to history store */ -#define WT_STAT_CONN_TXN_FAIL_CACHE 1501 +#define WT_STAT_CONN_TXN_FAIL_CACHE 1502 /*! * transaction: transaction fsync calls for checkpoint after allocating * the transaction ID */ -#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1502 +#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1503 /*! * transaction: transaction fsync duration for checkpoint after * allocating the transaction ID (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1503 +#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1504 /*! transaction: transaction range of IDs currently pinned */ -#define WT_STAT_CONN_TXN_PINNED_RANGE 1504 +#define WT_STAT_CONN_TXN_PINNED_RANGE 1505 /*! transaction: transaction range of IDs currently pinned by a checkpoint */ -#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1505 +#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1506 /*! transaction: transaction range of timestamps currently pinned */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1506 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1507 /*! transaction: transaction range of timestamps pinned by a checkpoint */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1507 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1508 /*! * transaction: transaction range of timestamps pinned by the oldest * active read timestamp */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1508 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1509 /*! * transaction: transaction range of timestamps pinned by the oldest * timestamp */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1509 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1510 /*! transaction: transaction read timestamp of the oldest active reader */ -#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1510 +#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1511 /*! transaction: transaction rollback to stable currently running */ -#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1511 +#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1512 /*! transaction: transaction walk of concurrent sessions */ -#define WT_STAT_CONN_TXN_WALK_SESSIONS 1512 +#define WT_STAT_CONN_TXN_WALK_SESSIONS 1513 /*! transaction: transactions committed */ -#define WT_STAT_CONN_TXN_COMMIT 1513 +#define WT_STAT_CONN_TXN_COMMIT 1514 /*! transaction: transactions rolled back */ -#define WT_STAT_CONN_TXN_ROLLBACK 1514 +#define WT_STAT_CONN_TXN_ROLLBACK 1515 /*! transaction: update conflicts */ -#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1515 +#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1516 /*! * @} @@ -6823,279 +6825,281 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection); * cache_walk or all statistics are enabled */ #define WT_STAT_DSRC_CACHE_STATE_PAGES 2125 +/*! checkpoint-cleanup: obsolete pages read in for cleanup */ +#define WT_STAT_DSRC_CC_PAGES_READ 2126 /*! checkpoint-cleanup: pages added for eviction */ -#define WT_STAT_DSRC_CC_PAGES_EVICT 2126 +#define WT_STAT_DSRC_CC_PAGES_EVICT 2127 /*! checkpoint-cleanup: pages removed */ -#define WT_STAT_DSRC_CC_PAGES_REMOVED 2127 +#define WT_STAT_DSRC_CC_PAGES_REMOVED 2128 /*! checkpoint-cleanup: pages skipped during tree walk */ -#define WT_STAT_DSRC_CC_PAGES_WALK_SKIPPED 2128 +#define WT_STAT_DSRC_CC_PAGES_WALK_SKIPPED 2129 /*! checkpoint-cleanup: pages visited */ -#define WT_STAT_DSRC_CC_PAGES_VISITED 2129 +#define WT_STAT_DSRC_CC_PAGES_VISITED 2130 /*! * compression: compressed page maximum internal page size prior to * compression */ -#define WT_STAT_DSRC_COMPRESS_PRECOMP_INTL_MAX_PAGE_SIZE 2130 +#define WT_STAT_DSRC_COMPRESS_PRECOMP_INTL_MAX_PAGE_SIZE 2131 /*! * compression: compressed page maximum leaf page size prior to * compression */ -#define WT_STAT_DSRC_COMPRESS_PRECOMP_LEAF_MAX_PAGE_SIZE 2131 +#define WT_STAT_DSRC_COMPRESS_PRECOMP_LEAF_MAX_PAGE_SIZE 2132 /*! compression: compressed pages read */ -#define WT_STAT_DSRC_COMPRESS_READ 2132 +#define WT_STAT_DSRC_COMPRESS_READ 2133 /*! compression: compressed pages written */ -#define WT_STAT_DSRC_COMPRESS_WRITE 2133 +#define WT_STAT_DSRC_COMPRESS_WRITE 2134 /*! compression: number of blocks with compress ratio greater than 64 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_MAX 2134 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_MAX 2135 /*! compression: number of blocks with compress ratio smaller than 16 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_16 2135 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_16 2136 /*! compression: number of blocks with compress ratio smaller than 2 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_2 2136 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_2 2137 /*! compression: number of blocks with compress ratio smaller than 32 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_32 2137 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_32 2138 /*! compression: number of blocks with compress ratio smaller than 4 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_4 2138 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_4 2139 /*! compression: number of blocks with compress ratio smaller than 64 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_64 2139 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_64 2140 /*! compression: number of blocks with compress ratio smaller than 8 */ -#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_8 2140 +#define WT_STAT_DSRC_COMPRESS_HIST_RATIO_8 2141 /*! compression: page written failed to compress */ -#define WT_STAT_DSRC_COMPRESS_WRITE_FAIL 2141 +#define WT_STAT_DSRC_COMPRESS_WRITE_FAIL 2142 /*! compression: page written was too small to compress */ -#define WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL 2142 +#define WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL 2143 /*! cursor: Total number of entries skipped by cursor next calls */ -#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_TOTAL 2143 +#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_TOTAL 2144 /*! cursor: Total number of entries skipped by cursor prev calls */ -#define WT_STAT_DSRC_CURSOR_PREV_SKIP_TOTAL 2144 +#define WT_STAT_DSRC_CURSOR_PREV_SKIP_TOTAL 2145 /*! * cursor: Total number of entries skipped to position the history store * cursor */ -#define WT_STAT_DSRC_CURSOR_SKIP_HS_CUR_POSITION 2145 +#define WT_STAT_DSRC_CURSOR_SKIP_HS_CUR_POSITION 2146 /*! * cursor: Total number of times a search near has exited due to prefix * config */ -#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 2146 +#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 2147 /*! cursor: bulk loaded cursor insert calls */ -#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2147 +#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2148 /*! cursor: cache cursors reuse count */ -#define WT_STAT_DSRC_CURSOR_REOPEN 2148 +#define WT_STAT_DSRC_CURSOR_REOPEN 2149 /*! cursor: close calls that result in cache */ -#define WT_STAT_DSRC_CURSOR_CACHE 2149 +#define WT_STAT_DSRC_CURSOR_CACHE 2150 /*! cursor: create calls */ -#define WT_STAT_DSRC_CURSOR_CREATE 2150 +#define WT_STAT_DSRC_CURSOR_CREATE 2151 /*! * cursor: cursor next calls that skip due to a globally visible history * store tombstone */ -#define WT_STAT_DSRC_CURSOR_NEXT_HS_TOMBSTONE 2151 +#define WT_STAT_DSRC_CURSOR_NEXT_HS_TOMBSTONE 2152 /*! * cursor: cursor next calls that skip greater than or equal to 100 * entries */ -#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_GE_100 2152 +#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_GE_100 2153 /*! cursor: cursor next calls that skip less than 100 entries */ -#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_LT_100 2153 +#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_LT_100 2154 /*! * cursor: cursor prev calls that skip due to a globally visible history * store tombstone */ -#define WT_STAT_DSRC_CURSOR_PREV_HS_TOMBSTONE 2154 +#define WT_STAT_DSRC_CURSOR_PREV_HS_TOMBSTONE 2155 /*! * cursor: cursor prev calls that skip greater than or equal to 100 * entries */ -#define WT_STAT_DSRC_CURSOR_PREV_SKIP_GE_100 2155 +#define WT_STAT_DSRC_CURSOR_PREV_SKIP_GE_100 2156 /*! cursor: cursor prev calls that skip less than 100 entries */ -#define WT_STAT_DSRC_CURSOR_PREV_SKIP_LT_100 2156 +#define WT_STAT_DSRC_CURSOR_PREV_SKIP_LT_100 2157 /*! cursor: insert calls */ -#define WT_STAT_DSRC_CURSOR_INSERT 2157 +#define WT_STAT_DSRC_CURSOR_INSERT 2158 /*! cursor: insert key and value bytes */ -#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2158 +#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2159 /*! cursor: modify */ -#define WT_STAT_DSRC_CURSOR_MODIFY 2159 +#define WT_STAT_DSRC_CURSOR_MODIFY 2160 /*! cursor: modify key and value bytes affected */ -#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES 2160 +#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES 2161 /*! cursor: modify value bytes modified */ -#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES_TOUCH 2161 +#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES_TOUCH 2162 /*! cursor: next calls */ -#define WT_STAT_DSRC_CURSOR_NEXT 2162 +#define WT_STAT_DSRC_CURSOR_NEXT 2163 /*! cursor: open cursor count */ -#define WT_STAT_DSRC_CURSOR_OPEN_COUNT 2163 +#define WT_STAT_DSRC_CURSOR_OPEN_COUNT 2164 /*! cursor: operation restarted */ -#define WT_STAT_DSRC_CURSOR_RESTART 2164 +#define WT_STAT_DSRC_CURSOR_RESTART 2165 /*! cursor: prev calls */ -#define WT_STAT_DSRC_CURSOR_PREV 2165 +#define WT_STAT_DSRC_CURSOR_PREV 2166 /*! cursor: remove calls */ -#define WT_STAT_DSRC_CURSOR_REMOVE 2166 +#define WT_STAT_DSRC_CURSOR_REMOVE 2167 /*! cursor: remove key bytes removed */ -#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2167 +#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2168 /*! cursor: reserve calls */ -#define WT_STAT_DSRC_CURSOR_RESERVE 2168 +#define WT_STAT_DSRC_CURSOR_RESERVE 2169 /*! cursor: reset calls */ -#define WT_STAT_DSRC_CURSOR_RESET 2169 +#define WT_STAT_DSRC_CURSOR_RESET 2170 /*! cursor: search calls */ -#define WT_STAT_DSRC_CURSOR_SEARCH 2170 +#define WT_STAT_DSRC_CURSOR_SEARCH 2171 /*! cursor: search history store calls */ -#define WT_STAT_DSRC_CURSOR_SEARCH_HS 2171 +#define WT_STAT_DSRC_CURSOR_SEARCH_HS 2172 /*! cursor: search near calls */ -#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2172 +#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2173 /*! cursor: truncate calls */ -#define WT_STAT_DSRC_CURSOR_TRUNCATE 2173 +#define WT_STAT_DSRC_CURSOR_TRUNCATE 2174 /*! cursor: update calls */ -#define WT_STAT_DSRC_CURSOR_UPDATE 2174 +#define WT_STAT_DSRC_CURSOR_UPDATE 2175 /*! cursor: update key and value bytes */ -#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2175 +#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2176 /*! cursor: update value size change */ -#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES_CHANGED 2176 +#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES_CHANGED 2177 /*! reconciliation: approximate byte size of timestamps in pages written */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TS 2177 +#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TS 2178 /*! * reconciliation: approximate byte size of transaction IDs in pages * written */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TXN 2178 +#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TXN 2179 /*! reconciliation: dictionary matches */ -#define WT_STAT_DSRC_REC_DICTIONARY 2179 +#define WT_STAT_DSRC_REC_DICTIONARY 2180 /*! reconciliation: fast-path pages deleted */ -#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2180 +#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2181 /*! * reconciliation: internal page key bytes discarded using suffix * compression */ -#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2181 +#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2182 /*! reconciliation: internal page multi-block writes */ -#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2182 +#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2183 /*! reconciliation: leaf page key bytes discarded using prefix compression */ -#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2183 +#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2184 /*! reconciliation: leaf page multi-block writes */ -#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2184 +#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2185 /*! reconciliation: leaf-page overflow keys */ -#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2185 +#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2186 /*! reconciliation: maximum blocks required for a page */ -#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2186 +#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2187 /*! reconciliation: overflow values written */ -#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2187 +#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2188 /*! reconciliation: page checksum matches */ -#define WT_STAT_DSRC_REC_PAGE_MATCH 2188 +#define WT_STAT_DSRC_REC_PAGE_MATCH 2189 /*! reconciliation: page reconciliation calls */ -#define WT_STAT_DSRC_REC_PAGES 2189 +#define WT_STAT_DSRC_REC_PAGES 2190 /*! reconciliation: page reconciliation calls for eviction */ -#define WT_STAT_DSRC_REC_PAGES_EVICTION 2190 +#define WT_STAT_DSRC_REC_PAGES_EVICTION 2191 /*! reconciliation: pages deleted */ -#define WT_STAT_DSRC_REC_PAGE_DELETE 2191 +#define WT_STAT_DSRC_REC_PAGE_DELETE 2192 /*! * reconciliation: pages written including an aggregated newest start * durable timestamp */ -#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 2192 +#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 2193 /*! * reconciliation: pages written including an aggregated newest stop * durable timestamp */ -#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 2193 +#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 2194 /*! * reconciliation: pages written including an aggregated newest stop * timestamp */ -#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TS 2194 +#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TS 2195 /*! * reconciliation: pages written including an aggregated newest stop * transaction ID */ -#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TXN 2195 +#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TXN 2196 /*! * reconciliation: pages written including an aggregated newest * transaction ID */ -#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_TXN 2196 +#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_TXN 2197 /*! * reconciliation: pages written including an aggregated oldest start * timestamp */ -#define WT_STAT_DSRC_REC_TIME_AGGR_OLDEST_START_TS 2197 +#define WT_STAT_DSRC_REC_TIME_AGGR_OLDEST_START_TS 2198 /*! reconciliation: pages written including an aggregated prepare */ -#define WT_STAT_DSRC_REC_TIME_AGGR_PREPARED 2198 +#define WT_STAT_DSRC_REC_TIME_AGGR_PREPARED 2199 /*! reconciliation: pages written including at least one prepare */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_PREPARED 2199 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_PREPARED 2200 /*! * reconciliation: pages written including at least one start durable * timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 2200 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 2201 /*! reconciliation: pages written including at least one start timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TS 2201 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TS 2202 /*! * reconciliation: pages written including at least one start transaction * ID */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TXN 2202 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TXN 2203 /*! * reconciliation: pages written including at least one stop durable * timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 2203 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 2204 /*! reconciliation: pages written including at least one stop timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TS 2204 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TS 2205 /*! * reconciliation: pages written including at least one stop transaction * ID */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TXN 2205 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TXN 2206 /*! reconciliation: records written including a prepare */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_PREPARED 2206 +#define WT_STAT_DSRC_REC_TIME_WINDOW_PREPARED 2207 /*! reconciliation: records written including a start durable timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_START_TS 2207 +#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_START_TS 2208 /*! reconciliation: records written including a start timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TS 2208 +#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TS 2209 /*! reconciliation: records written including a start transaction ID */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TXN 2209 +#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TXN 2210 /*! reconciliation: records written including a stop durable timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_STOP_TS 2210 +#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_STOP_TS 2211 /*! reconciliation: records written including a stop timestamp */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TS 2211 +#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TS 2212 /*! reconciliation: records written including a stop transaction ID */ -#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TXN 2212 +#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TXN 2213 /*! session: object compaction */ -#define WT_STAT_DSRC_SESSION_COMPACT 2213 +#define WT_STAT_DSRC_SESSION_COMPACT 2214 /*! session: tiered operations dequeued and processed */ -#define WT_STAT_DSRC_TIERED_WORK_UNITS_DEQUEUED 2214 +#define WT_STAT_DSRC_TIERED_WORK_UNITS_DEQUEUED 2215 /*! session: tiered operations scheduled */ -#define WT_STAT_DSRC_TIERED_WORK_UNITS_CREATED 2215 +#define WT_STAT_DSRC_TIERED_WORK_UNITS_CREATED 2216 /*! session: tiered storage local retention time (secs) */ -#define WT_STAT_DSRC_TIERED_RETENTION 2216 +#define WT_STAT_DSRC_TIERED_RETENTION 2217 /*! session: tiered storage object size */ -#define WT_STAT_DSRC_TIERED_OBJECT_SIZE 2217 +#define WT_STAT_DSRC_TIERED_OBJECT_SIZE 2218 /*! transaction: race to read prepared update retry */ -#define WT_STAT_DSRC_TXN_READ_RACE_PREPARE_UPDATE 2218 +#define WT_STAT_DSRC_TXN_READ_RACE_PREPARE_UPDATE 2219 /*! * transaction: rollback to stable history store records with stop * timestamps older than newer records */ -#define WT_STAT_DSRC_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 2219 +#define WT_STAT_DSRC_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 2220 /*! transaction: rollback to stable inconsistent checkpoint */ -#define WT_STAT_DSRC_TXN_RTS_INCONSISTENT_CKPT 2220 +#define WT_STAT_DSRC_TXN_RTS_INCONSISTENT_CKPT 2221 /*! transaction: rollback to stable keys removed */ -#define WT_STAT_DSRC_TXN_RTS_KEYS_REMOVED 2221 +#define WT_STAT_DSRC_TXN_RTS_KEYS_REMOVED 2222 /*! transaction: rollback to stable keys restored */ -#define WT_STAT_DSRC_TXN_RTS_KEYS_RESTORED 2222 +#define WT_STAT_DSRC_TXN_RTS_KEYS_RESTORED 2223 /*! transaction: rollback to stable restored tombstones from history store */ -#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_TOMBSTONES 2223 +#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_TOMBSTONES 2224 /*! transaction: rollback to stable restored updates from history store */ -#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_UPDATES 2224 +#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_UPDATES 2225 /*! transaction: rollback to stable skipping delete rle */ -#define WT_STAT_DSRC_TXN_RTS_DELETE_RLE_SKIPPED 2225 +#define WT_STAT_DSRC_TXN_RTS_DELETE_RLE_SKIPPED 2226 /*! transaction: rollback to stable skipping stable rle */ -#define WT_STAT_DSRC_TXN_RTS_STABLE_RLE_SKIPPED 2226 +#define WT_STAT_DSRC_TXN_RTS_STABLE_RLE_SKIPPED 2227 /*! transaction: rollback to stable sweeping history store keys */ -#define WT_STAT_DSRC_TXN_RTS_SWEEP_HS_KEYS 2227 +#define WT_STAT_DSRC_TXN_RTS_SWEEP_HS_KEYS 2228 /*! transaction: rollback to stable updates removed from history store */ -#define WT_STAT_DSRC_TXN_RTS_HS_REMOVED 2228 +#define WT_STAT_DSRC_TXN_RTS_HS_REMOVED 2229 /*! transaction: transaction checkpoints due to obsolete pages */ -#define WT_STAT_DSRC_TXN_CHECKPOINT_OBSOLETE_APPLIED 2229 +#define WT_STAT_DSRC_TXN_CHECKPOINT_OBSOLETE_APPLIED 2230 /*! transaction: update conflicts */ -#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2230 +#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2231 /*! * @} diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c index d26fab52cea..b1f740eb426 100644 --- a/src/third_party/wiredtiger/src/support/stat.c +++ b/src/third_party/wiredtiger/src/support/stat.c @@ -138,6 +138,7 @@ static const char *const __stats_dsrc_desc[] = { "cache_walk: Refs skipped during cache traversal", "cache_walk: Size of the root page", "cache_walk: Total number of pages currently in cache", + "checkpoint-cleanup: obsolete pages read in for cleanup", "checkpoint-cleanup: pages added for eviction", "checkpoint-cleanup: pages removed", "checkpoint-cleanup: pages skipped during tree walk", @@ -410,6 +411,7 @@ __wt_stat_dsrc_clear_single(WT_DSRC_STATS *stats) /* not clearing cache_state_refs_skipped */ /* not clearing cache_state_root_size */ /* not clearing cache_state_pages */ + stats->cc_pages_read = 0; stats->cc_pages_evict = 0; stats->cc_pages_removed = 0; stats->cc_pages_walk_skipped = 0; @@ -670,6 +672,7 @@ __wt_stat_dsrc_aggregate_single(WT_DSRC_STATS *from, WT_DSRC_STATS *to) to->cache_state_refs_skipped += from->cache_state_refs_skipped; to->cache_state_root_size += from->cache_state_root_size; to->cache_state_pages += from->cache_state_pages; + to->cc_pages_read += from->cc_pages_read; to->cc_pages_evict += from->cc_pages_evict; to->cc_pages_removed += from->cc_pages_removed; to->cc_pages_walk_skipped += from->cc_pages_walk_skipped; @@ -931,6 +934,7 @@ __wt_stat_dsrc_aggregate(WT_DSRC_STATS **from, WT_DSRC_STATS *to) to->cache_state_refs_skipped += WT_STAT_READ(from, cache_state_refs_skipped); to->cache_state_root_size += WT_STAT_READ(from, cache_state_root_size); to->cache_state_pages += WT_STAT_READ(from, cache_state_pages); + to->cc_pages_read += WT_STAT_READ(from, cc_pages_read); to->cc_pages_evict += WT_STAT_READ(from, cc_pages_evict); to->cc_pages_removed += WT_STAT_READ(from, cc_pages_removed); to->cc_pages_walk_skipped += WT_STAT_READ(from, cc_pages_walk_skipped); @@ -1253,6 +1257,7 @@ static const char *const __stats_connection_desc[] = { "capacity: time waiting during eviction (usecs)", "capacity: time waiting during logging (usecs)", "capacity: time waiting during read (usecs)", + "checkpoint-cleanup: obsolete pages read in for cleanup", "checkpoint-cleanup: pages added for eviction", "checkpoint-cleanup: pages removed", "checkpoint-cleanup: pages skipped during tree walk", @@ -1813,6 +1818,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats) stats->capacity_time_evict = 0; stats->capacity_time_log = 0; stats->capacity_time_read = 0; + stats->cc_pages_read = 0; stats->cc_pages_evict = 0; stats->cc_pages_removed = 0; stats->cc_pages_walk_skipped = 0; @@ -2374,6 +2380,7 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS * to->capacity_time_evict += WT_STAT_READ(from, capacity_time_evict); to->capacity_time_log += WT_STAT_READ(from, capacity_time_log); to->capacity_time_read += WT_STAT_READ(from, capacity_time_read); + to->cc_pages_read += WT_STAT_READ(from, cc_pages_read); to->cc_pages_evict += WT_STAT_READ(from, cc_pages_evict); to->cc_pages_removed += WT_STAT_READ(from, cc_pages_removed); to->cc_pages_walk_skipped += WT_STAT_READ(from, cc_pages_walk_skipped); diff --git a/src/third_party/wiredtiger/test/suite/test_checkpoint23.py b/src/third_party/wiredtiger/test/suite/test_checkpoint23.py new file mode 100644 index 00000000000..9be53cc8ec3 --- /dev/null +++ b/src/third_party/wiredtiger/test/suite/test_checkpoint23.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# +# Public Domain 2014-present MongoDB, Inc. +# Public Domain 2008-2014 WiredTiger, Inc. +# +# This is free and unencumbered software released into the public domain. +# +# Anyone is free to copy, modify, publish, use, compile, sell, or +# distribute this software, either in source code form or as a compiled +# binary, for any purpose, commercial or non-commercial, and by any +# means. +# +# In jurisdictions that recognize copyright laws, the author or authors +# of this software dedicate any and all copyright interest in the +# software to the public domain. We make this dedication for the benefit +# of the public at large and to the detriment of our heirs and +# successors. We intend this dedication to be an overt act of +# relinquishment in perpetuity of all present and future rights to this +# software under copyright law. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. + +# test_checkpoint23.py +# +# Test that obsolete pages with overflow items are gradually cleaned up by +# checkpoints even if they aren't in memory. + +import wttest +from wiredtiger import stat +from wtdataset import SimpleDataSet +from wtscenario import make_scenarios + +class test_checkpoint23(wttest.WiredTigerTestCase): + conn_config = 'cache_size=50MB,statistics=(all)' + + # There is no point running this on FLCS because FLCS does not have overflow items. + # For now there is no point running it on VLCS (and it'll fail) because the checkpoint + # cleanup code does not handle VLCS pages. But the VLCS case should be enabled if that + # changes, e.g. as part of VLCS fast-delete support. + format_values = [ + ('row_string', dict(key_format='S', value_format='S')), + #('column', dict(key_format='r', value_format='S')), + ] + + scenarios = make_scenarios(format_values) + + def get_stat(self, stat): + stat_cursor = self.session.open_cursor('statistics:') + val = stat_cursor[stat][2] + stat_cursor.close() + return val + + def get_tree_stat(self, ds, stat): + stat_cursor = self.session.open_cursor('statistics:' + ds.uri, None, 'statistics=(all)') + val = stat_cursor[stat][2] + stat_cursor.close() + return val + + def large_updates(self, ds, nrows, primary_value, secondary_value, commit_ts): + session = self.session + cursor = session.open_cursor(ds.uri) + for i in range(1, nrows + 1): + session.begin_transaction() + cursor[ds.key(i)] = secondary_value if i % 10 == 1 else primary_value + session.commit_transaction('commit_timestamp=' + self.timestamp_str(commit_ts)) + cursor.close() + + def large_removes(self, ds, nrows, commit_ts): + session = self.session + cursor = session.open_cursor(ds.uri) + for i in range(1, nrows + 1): + session.begin_transaction() + cursor.set_key(ds.key(i)) + self.assertEqual(cursor.remove(), 0) + session.commit_transaction('commit_timestamp=' + self.timestamp_str(commit_ts)) + cursor.close() + + def test_checkpoint23(self): + uri = 'table:checkpoint23' + nrows = 10000 + + # Create a table. + ds = SimpleDataSet(self, uri, nrows, + key_format=self.key_format, value_format=self.value_format) + ds.populate() + + # Pin oldest and stable timestamp to 1. + self.conn.set_timestamp('oldest_timestamp=' + self.timestamp_str(1) + + ',stable_timestamp=' + self.timestamp_str(1)) + + # Use a seconary value large enough to be an overflow item. + value_a = "aaaaa" * 100 + value_b = "bbbbb" * 10000 + + # Write a bunch of data at time 10. + self.large_updates(ds, nrows, value_a, value_b, 10) + + # Delete it all at time 20. + self.large_removes(ds, nrows, 20) + + # Mark it stable at 30 and checkpoint it. + self.conn.set_timestamp('stable_timestamp=' + self.timestamp_str(30)) + self.session.checkpoint() + + # Shut down and restart so nothing's in memory. + self.reopen_conn() + + # Check how many overflow items we have. + initial_overflow_items = self.get_tree_stat(ds, stat.dsrc.btree_overflow) + + # Shut down and restart again so nothing's in memory. + # (Counting overflow items reads pages in.) + self.reopen_conn() + + # Move oldest up so all the data is obsolete. + self.conn.set_timestamp('oldest_timestamp=' + self.timestamp_str(30)) + + # Do a checkpoint. Name the checkpoint to force things through. + self.session.checkpoint('name=pointy') + + # Do another checkpoint to make sure the updated pages get reconciled. + # Otherwise the overflow items might not actually be removed. + self.session.checkpoint() + + # Count the overflow items; should have dropped. + updated_overflow_items = self.get_tree_stat(ds, stat.dsrc.btree_overflow) + removed = initial_overflow_items - updated_overflow_items + self.assertGreater(removed, 0) + + # Check how many on-disk pages we read in to do this. Should be > 0. + pages_read = self.get_stat(stat.conn.cc_pages_read) + self.assertGreater(pages_read, 0) + +if __name__ == '__main__': + wttest.run() |