diff options
-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/include/stat.h | 1 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/include/wiredtiger.in | 304 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/support/stat.c | 3 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/txn/txn.c | 4 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/txn/txn_timestamp.c | 3 |
7 files changed, 166 insertions, 152 deletions
diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py index 03ae93bb3e7..16cd9553968 100644 --- a/src/third_party/wiredtiger/dist/stat_data.py +++ b/src/third_party/wiredtiger/dist/stat_data.py @@ -559,6 +559,7 @@ connection_stats = [ TxnStat('txn_rts_pages_visited', 'rollback to stable pages visited'), TxnStat('txn_rts_tree_walk_skip_pages', 'rollback to stable tree walk skipping pages'), TxnStat('txn_rts_upd_aborted', 'rollback to stable updates aborted'), + TxnStat('txn_sessions_walked', 'sessions scanned in each walk of concurrent sessions'), TxnStat('txn_set_ts', 'set timestamp calls'), TxnStat('txn_set_ts_durable', 'set timestamp durable calls'), TxnStat('txn_set_ts_durable_upd', 'set timestamp durable updates'), diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data index 2207b8aad92..0a783ae3f7a 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-5.0", - "commit": "bcb90a271ce721d53ce49f1d805f52111f67a5e2" + "commit": "cc54220b06d23167290d9928a192f1c49769840d" } diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h index 5dccf989a67..706e6fee492 100644 --- a/src/third_party/wiredtiger/src/include/stat.h +++ b/src/third_party/wiredtiger/src/include/stat.h @@ -634,6 +634,7 @@ struct __wt_connection_stats { int64_t txn_rts_pages_visited; int64_t txn_rts_tree_walk_skip_pages; int64_t txn_rts_upd_aborted; + int64_t txn_sessions_walked; int64_t txn_set_ts; int64_t txn_set_ts_durable; int64_t txn_set_ts_durable_upd; diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in index 2c9da8cf4fa..fc45cf31e8d 100644 --- a/src/third_party/wiredtiger/src/include/wiredtiger.in +++ b/src/third_party/wiredtiger/src/include/wiredtiger.in @@ -5640,419 +5640,421 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection); #define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1319 /*! transaction: rollback to stable updates aborted */ #define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1320 +/*! transaction: sessions scanned in each walk of concurrent sessions */ +#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1321 /*! transaction: set timestamp calls */ -#define WT_STAT_CONN_TXN_SET_TS 1321 +#define WT_STAT_CONN_TXN_SET_TS 1322 /*! transaction: set timestamp durable calls */ -#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1322 +#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1323 /*! transaction: set timestamp durable updates */ -#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1323 +#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1324 /*! transaction: set timestamp oldest calls */ -#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1324 +#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1325 /*! transaction: set timestamp oldest updates */ -#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1325 +#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1326 /*! transaction: set timestamp stable calls */ -#define WT_STAT_CONN_TXN_SET_TS_STABLE 1326 +#define WT_STAT_CONN_TXN_SET_TS_STABLE 1327 /*! transaction: set timestamp stable updates */ -#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1327 +#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1328 /*! transaction: transaction begins */ -#define WT_STAT_CONN_TXN_BEGIN 1328 +#define WT_STAT_CONN_TXN_BEGIN 1329 /*! transaction: transaction checkpoint currently running */ -#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1329 +#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1330 /*! * transaction: transaction checkpoint currently running for history * store file */ -#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1330 +#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1331 /*! transaction: transaction checkpoint generation */ -#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1331 +#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1332 /*! * transaction: transaction checkpoint history store file duration * (usecs) */ -#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1332 +#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1333 /*! transaction: transaction checkpoint max time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1333 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1334 /*! transaction: transaction checkpoint min time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1334 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1335 /*! * transaction: transaction checkpoint most recent duration for gathering * all handles (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1335 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1336 /*! * transaction: transaction checkpoint most recent duration for gathering * applied handles (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1336 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1337 /*! * transaction: transaction checkpoint most recent duration for gathering * skipped handles (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1337 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1338 /*! transaction: transaction checkpoint most recent handles applied */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1338 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1339 /*! transaction: transaction checkpoint most recent handles skipped */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1339 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1340 /*! transaction: transaction checkpoint most recent handles walked */ -#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1340 +#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1341 /*! transaction: transaction checkpoint most recent time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1341 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1342 /*! transaction: transaction checkpoint prepare currently running */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1342 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1343 /*! transaction: transaction checkpoint prepare max time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1343 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1344 /*! transaction: transaction checkpoint prepare min time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1344 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1345 /*! transaction: transaction checkpoint prepare most recent time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1345 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1346 /*! transaction: transaction checkpoint prepare total time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1346 +#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1347 /*! transaction: transaction checkpoint scrub dirty target */ -#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1347 +#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1348 /*! transaction: transaction checkpoint scrub time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1348 +#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1349 /*! transaction: transaction checkpoint total time (msecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1349 +#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1350 /*! transaction: transaction checkpoints */ -#define WT_STAT_CONN_TXN_CHECKPOINT 1350 +#define WT_STAT_CONN_TXN_CHECKPOINT 1351 /*! * transaction: transaction checkpoints skipped because database was * clean */ -#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1351 +#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1352 /*! transaction: transaction failures due to history store */ -#define WT_STAT_CONN_TXN_FAIL_CACHE 1352 +#define WT_STAT_CONN_TXN_FAIL_CACHE 1353 /*! * transaction: transaction fsync calls for checkpoint after allocating * the transaction ID */ -#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1353 +#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1354 /*! * transaction: transaction fsync duration for checkpoint after * allocating the transaction ID (usecs) */ -#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1354 +#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1355 /*! transaction: transaction range of IDs currently pinned */ -#define WT_STAT_CONN_TXN_PINNED_RANGE 1355 +#define WT_STAT_CONN_TXN_PINNED_RANGE 1356 /*! transaction: transaction range of IDs currently pinned by a checkpoint */ -#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1356 +#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1357 /*! transaction: transaction range of timestamps currently pinned */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1357 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1358 /*! transaction: transaction range of timestamps pinned by a checkpoint */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1358 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1359 /*! * transaction: transaction range of timestamps pinned by the oldest * active read timestamp */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1359 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1360 /*! * transaction: transaction range of timestamps pinned by the oldest * timestamp */ -#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1360 +#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1361 /*! transaction: transaction read timestamp of the oldest active reader */ -#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1361 +#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1362 /*! transaction: transaction rollback to stable currently running */ -#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1362 +#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1363 /*! transaction: transaction sync calls */ -#define WT_STAT_CONN_TXN_SYNC 1363 +#define WT_STAT_CONN_TXN_SYNC 1364 /*! transaction: transaction walk of concurrent sessions */ -#define WT_STAT_CONN_TXN_WALK_SESSIONS 1364 +#define WT_STAT_CONN_TXN_WALK_SESSIONS 1365 /*! transaction: transactions committed */ -#define WT_STAT_CONN_TXN_COMMIT 1365 +#define WT_STAT_CONN_TXN_COMMIT 1366 /*! transaction: transactions rolled back */ -#define WT_STAT_CONN_TXN_ROLLBACK 1366 +#define WT_STAT_CONN_TXN_ROLLBACK 1367 /*! LSM: sleep for LSM checkpoint throttle */ -#define WT_STAT_CONN_LSM_CHECKPOINT_THROTTLE 1367 +#define WT_STAT_CONN_LSM_CHECKPOINT_THROTTLE 1368 /*! LSM: sleep for LSM merge throttle */ -#define WT_STAT_CONN_LSM_MERGE_THROTTLE 1368 +#define WT_STAT_CONN_LSM_MERGE_THROTTLE 1369 /*! cache: bytes currently in the cache */ -#define WT_STAT_CONN_CACHE_BYTES_INUSE 1369 +#define WT_STAT_CONN_CACHE_BYTES_INUSE 1370 /*! cache: bytes dirty in the cache cumulative */ -#define WT_STAT_CONN_CACHE_BYTES_DIRTY_TOTAL 1370 +#define WT_STAT_CONN_CACHE_BYTES_DIRTY_TOTAL 1371 /*! cache: bytes read into cache */ -#define WT_STAT_CONN_CACHE_BYTES_READ 1371 +#define WT_STAT_CONN_CACHE_BYTES_READ 1372 /*! cache: bytes written from cache */ -#define WT_STAT_CONN_CACHE_BYTES_WRITE 1372 +#define WT_STAT_CONN_CACHE_BYTES_WRITE 1373 /*! cache: checkpoint blocked page eviction */ -#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1373 +#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1374 /*! * cache: checkpoint of history store file blocked non-history store page * eviction */ -#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_CHECKPOINT_HS 1374 +#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_CHECKPOINT_HS 1375 /*! cache: eviction walk target pages histogram - 0-9 */ -#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10 1375 +#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10 1376 /*! cache: eviction walk target pages histogram - 10-31 */ -#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32 1376 +#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32 1377 /*! cache: eviction walk target pages histogram - 128 and higher */ -#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128 1377 +#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128 1378 /*! cache: eviction walk target pages histogram - 32-63 */ -#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64 1378 +#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64 1379 /*! cache: eviction walk target pages histogram - 64-128 */ -#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128 1379 +#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128 1380 /*! * cache: eviction walk target pages reduced due to history store cache * pressure */ -#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_REDUCED 1380 +#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_REDUCED 1381 /*! cache: eviction walks abandoned */ -#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1381 +#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1382 /*! cache: eviction walks gave up because they restarted their walk twice */ -#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED 1382 +#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED 1383 /*! * cache: eviction walks gave up because they saw too many pages and * found no candidates */ -#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 1383 +#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 1384 /*! * cache: eviction walks gave up because they saw too many pages and * found too few candidates */ -#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 1384 +#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 1385 /*! cache: eviction walks reached end of tree */ -#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED 1385 +#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED 1386 /*! cache: eviction walks restarted */ -#define WT_STAT_CONN_CACHE_EVICTION_WALK_RESTART 1386 +#define WT_STAT_CONN_CACHE_EVICTION_WALK_RESTART 1387 /*! cache: eviction walks started from root of tree */ -#define WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT 1387 +#define WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT 1388 /*! cache: eviction walks started from saved location in tree */ -#define WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS 1388 +#define WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS 1389 /*! cache: hazard pointer blocked page eviction */ -#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1389 +#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1390 /*! cache: history store table insert calls */ -#define WT_STAT_CONN_CACHE_HS_INSERT 1390 +#define WT_STAT_CONN_CACHE_HS_INSERT 1391 /*! cache: history store table insert calls that returned restart */ -#define WT_STAT_CONN_CACHE_HS_INSERT_RESTART 1391 +#define WT_STAT_CONN_CACHE_HS_INSERT_RESTART 1392 /*! * cache: history store table out-of-order resolved updates that lose * their durable timestamp */ -#define WT_STAT_CONN_CACHE_HS_ORDER_LOSE_DURABLE_TIMESTAMP 1392 +#define WT_STAT_CONN_CACHE_HS_ORDER_LOSE_DURABLE_TIMESTAMP 1393 /*! * cache: history store table out-of-order updates that were fixed up by * reinserting with the fixed timestamp */ -#define WT_STAT_CONN_CACHE_HS_ORDER_REINSERT 1393 +#define WT_STAT_CONN_CACHE_HS_ORDER_REINSERT 1394 /*! cache: history store table reads */ -#define WT_STAT_CONN_CACHE_HS_READ 1394 +#define WT_STAT_CONN_CACHE_HS_READ 1395 /*! cache: history store table reads missed */ -#define WT_STAT_CONN_CACHE_HS_READ_MISS 1395 +#define WT_STAT_CONN_CACHE_HS_READ_MISS 1396 /*! cache: history store table reads requiring squashed modifies */ -#define WT_STAT_CONN_CACHE_HS_READ_SQUASH 1396 +#define WT_STAT_CONN_CACHE_HS_READ_SQUASH 1397 /*! * cache: history store table truncation by rollback to stable to remove * an unstable update */ -#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS_UNSTABLE 1397 +#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS_UNSTABLE 1398 /*! * cache: history store table truncation by rollback to stable to remove * an update */ -#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS 1398 +#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS 1399 /*! cache: history store table truncation to remove an update */ -#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE 1399 +#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE 1400 /*! * cache: history store table truncation to remove range of updates due * to key being removed from the data page during reconciliation */ -#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_ONPAGE_REMOVAL 1400 +#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_ONPAGE_REMOVAL 1401 /*! * cache: history store table truncation to remove range of updates due * to out-of-order timestamp update on data page */ -#define WT_STAT_CONN_CACHE_HS_ORDER_REMOVE 1401 +#define WT_STAT_CONN_CACHE_HS_ORDER_REMOVE 1402 /*! cache: history store table writes requiring squashed modifies */ -#define WT_STAT_CONN_CACHE_HS_WRITE_SQUASH 1402 +#define WT_STAT_CONN_CACHE_HS_WRITE_SQUASH 1403 /*! cache: in-memory page passed criteria to be split */ -#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1403 +#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1404 /*! cache: in-memory page splits */ -#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1404 +#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1405 /*! cache: internal pages evicted */ -#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1405 +#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1406 /*! cache: internal pages split during eviction */ -#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1406 +#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1407 /*! cache: leaf pages split during eviction */ -#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1407 +#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1408 /*! cache: modified pages evicted */ -#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1408 +#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1409 /*! cache: overflow pages read into cache */ -#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1409 +#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1410 /*! cache: page split during eviction deepened the tree */ -#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1410 +#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1411 /*! cache: page written requiring history store records */ -#define WT_STAT_CONN_CACHE_WRITE_HS 1411 +#define WT_STAT_CONN_CACHE_WRITE_HS 1412 /*! cache: pages read into cache */ -#define WT_STAT_CONN_CACHE_READ 1412 +#define WT_STAT_CONN_CACHE_READ 1413 /*! cache: pages read into cache after truncate */ -#define WT_STAT_CONN_CACHE_READ_DELETED 1413 +#define WT_STAT_CONN_CACHE_READ_DELETED 1414 /*! cache: pages read into cache after truncate in prepare state */ -#define WT_STAT_CONN_CACHE_READ_DELETED_PREPARED 1414 +#define WT_STAT_CONN_CACHE_READ_DELETED_PREPARED 1415 /*! cache: pages requested from the cache */ -#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1415 +#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1416 /*! cache: pages seen by eviction walk */ -#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1416 +#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1417 /*! cache: pages written from cache */ -#define WT_STAT_CONN_CACHE_WRITE 1417 +#define WT_STAT_CONN_CACHE_WRITE 1418 /*! cache: pages written requiring in-memory restoration */ -#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1418 +#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1419 /*! cache: tracked dirty bytes in the cache */ -#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1419 +#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1420 /*! cache: unmodified pages evicted */ -#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1420 +#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1421 /*! checkpoint-cleanup: pages added for eviction */ -#define WT_STAT_CONN_CC_PAGES_EVICT 1421 +#define WT_STAT_CONN_CC_PAGES_EVICT 1422 /*! checkpoint-cleanup: pages removed */ -#define WT_STAT_CONN_CC_PAGES_REMOVED 1422 +#define WT_STAT_CONN_CC_PAGES_REMOVED 1423 /*! checkpoint-cleanup: pages skipped during tree walk */ -#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1423 +#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1424 /*! checkpoint-cleanup: pages visited */ -#define WT_STAT_CONN_CC_PAGES_VISITED 1424 +#define WT_STAT_CONN_CC_PAGES_VISITED 1425 /*! cursor: Total number of entries skipped by cursor next calls */ -#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1425 +#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1426 /*! cursor: Total number of entries skipped by cursor prev calls */ -#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1426 +#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1427 /*! * cursor: Total number of entries skipped to position the history store * cursor */ -#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1427 +#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1428 /*! * cursor: cursor next calls that skip due to a globally visible history * store tombstone */ -#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1428 +#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1429 /*! * cursor: cursor next calls that skip greater than or equal to 100 * entries */ -#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1429 +#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1430 /*! cursor: cursor next calls that skip less than 100 entries */ -#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1430 +#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1431 /*! * cursor: cursor prev calls that skip due to a globally visible history * store tombstone */ -#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1431 +#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1432 /*! * cursor: cursor prev calls that skip greater than or equal to 100 * entries */ -#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1432 +#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1433 /*! cursor: cursor prev calls that skip less than 100 entries */ -#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1433 +#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1434 /*! cursor: open cursor count */ -#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1434 +#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1435 /*! reconciliation: approximate byte size of timestamps in pages written */ -#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1435 +#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1436 /*! * reconciliation: approximate byte size of transaction IDs in pages * written */ -#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1436 +#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1437 /*! reconciliation: fast-path pages deleted */ -#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1437 +#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1438 /*! reconciliation: page reconciliation calls */ -#define WT_STAT_CONN_REC_PAGES 1438 +#define WT_STAT_CONN_REC_PAGES 1439 /*! reconciliation: page reconciliation calls for eviction */ -#define WT_STAT_CONN_REC_PAGES_EVICTION 1439 +#define WT_STAT_CONN_REC_PAGES_EVICTION 1440 /*! reconciliation: pages deleted */ -#define WT_STAT_CONN_REC_PAGE_DELETE 1440 +#define WT_STAT_CONN_REC_PAGE_DELETE 1441 /*! * reconciliation: pages written including an aggregated newest start * durable timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1441 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1442 /*! * reconciliation: pages written including an aggregated newest stop * durable timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1442 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1443 /*! * reconciliation: pages written including an aggregated newest stop * timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1443 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1444 /*! * reconciliation: pages written including an aggregated newest stop * transaction ID */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1444 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1445 /*! * reconciliation: pages written including an aggregated newest * transaction ID */ -#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1445 +#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1446 /*! * reconciliation: pages written including an aggregated oldest start * timestamp */ -#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1446 +#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1447 /*! reconciliation: pages written including an aggregated prepare */ -#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1447 +#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1448 /*! * reconciliation: pages written including at least one start durable * timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1448 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1449 /*! * reconciliation: pages written including at least one start transaction * ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1449 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1450 /*! * reconciliation: pages written including at least one stop durable * timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1450 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1451 /*! reconciliation: pages written including at least one stop timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1451 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1452 /*! * reconciliation: pages written including at least one stop transaction * ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1452 +#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1453 /*! reconciliation: records written including a start durable timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1453 +#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1454 /*! reconciliation: records written including a start timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1454 +#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1455 /*! reconciliation: records written including a start transaction ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1455 +#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1456 /*! reconciliation: records written including a stop durable timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1456 +#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1457 /*! reconciliation: records written including a stop timestamp */ -#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1457 +#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1458 /*! reconciliation: records written including a stop transaction ID */ -#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1458 +#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1459 /*! session: tiered storage local retention time (secs) */ -#define WT_STAT_CONN_TIERED_RETENTION 1459 +#define WT_STAT_CONN_TIERED_RETENTION 1460 /*! session: tiered storage object size */ -#define WT_STAT_CONN_TIERED_OBJECT_SIZE 1460 +#define WT_STAT_CONN_TIERED_OBJECT_SIZE 1461 /*! transaction: race to read prepared update retry */ -#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1461 +#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1462 /*! * 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 1462 +#define WT_STAT_CONN_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 1463 /*! transaction: rollback to stable inconsistent checkpoint */ -#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1463 +#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1464 /*! transaction: rollback to stable keys removed */ -#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1464 +#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1465 /*! transaction: rollback to stable keys restored */ -#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1465 +#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1466 /*! transaction: rollback to stable restored tombstones from history store */ -#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1466 +#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1467 /*! transaction: rollback to stable restored updates from history store */ -#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1467 +#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1468 /*! transaction: rollback to stable sweeping history store keys */ -#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1468 +#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1469 /*! transaction: rollback to stable updates removed from history store */ -#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1469 +#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1470 /*! transaction: transaction checkpoints due to obsolete pages */ -#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1470 +#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1471 /*! transaction: update conflicts */ -#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1471 +#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1472 /*! * @} diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c index 396249e69c7..73aadc87b42 100644 --- a/src/third_party/wiredtiger/src/support/stat.c +++ b/src/third_party/wiredtiger/src/support/stat.c @@ -1284,6 +1284,7 @@ static const char *const __stats_connection_desc[] = { "transaction: rollback to stable pages visited", "transaction: rollback to stable tree walk skipping pages", "transaction: rollback to stable updates aborted", + "transaction: sessions scanned in each walk of concurrent sessions", "transaction: set timestamp calls", "transaction: set timestamp durable calls", "transaction: set timestamp durable updates", @@ -1801,6 +1802,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats) stats->txn_rts_pages_visited = 0; stats->txn_rts_tree_walk_skip_pages = 0; stats->txn_rts_upd_aborted = 0; + stats->txn_sessions_walked = 0; stats->txn_set_ts = 0; stats->txn_set_ts_durable = 0; stats->txn_set_ts_durable_upd = 0; @@ -2310,6 +2312,7 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS * to->txn_rts_pages_visited += WT_STAT_READ(from, txn_rts_pages_visited); to->txn_rts_tree_walk_skip_pages += WT_STAT_READ(from, txn_rts_tree_walk_skip_pages); to->txn_rts_upd_aborted += WT_STAT_READ(from, txn_rts_upd_aborted); + to->txn_sessions_walked += WT_STAT_READ(from, txn_sessions_walked); to->txn_set_ts += WT_STAT_READ(from, txn_set_ts); to->txn_set_ts_durable += WT_STAT_READ(from, txn_set_ts_durable); to->txn_set_ts_durable_upd += WT_STAT_READ(from, txn_set_ts_durable_upd); diff --git a/src/third_party/wiredtiger/src/txn/txn.c b/src/third_party/wiredtiger/src/txn/txn.c index fd856c35bdb..bbefea1d64c 100644 --- a/src/third_party/wiredtiger/src/txn/txn.c +++ b/src/third_party/wiredtiger/src/txn/txn.c @@ -171,6 +171,7 @@ __wt_txn_active(WT_SESSION_IMPL *session, uint64_t txnid) WT_ORDERED_READ(session_cnt, conn->session_cnt); WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); /* If the transaction is in the list, it is uncommitted. */ if (s->id == txnid) goto done; @@ -243,6 +244,7 @@ __txn_get_snapshot_int(WT_SESSION_IMPL *session, bool publish) WT_ORDERED_READ(session_cnt, conn->session_cnt); WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); /* * Build our snapshot of any concurrent transaction IDs. * @@ -344,6 +346,7 @@ __txn_oldest_scan(WT_SESSION_IMPL *session, uint64_t *oldest_idp, uint64_t *last WT_ORDERED_READ(session_cnt, conn->session_cnt); WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); /* Update the last running transaction ID. */ while ((id = s->id) != WT_TXN_NONE && WT_TXNID_LE(prev_oldest_id, id) && WT_TXNID_LT(id, last_running)) { @@ -2315,6 +2318,7 @@ __wt_verbose_dump_txn(WT_SESSION_IMPL *session) */ WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); /* Skip sessions with no active transaction */ if ((id = s->id) == WT_TXN_NONE && s->pinned_id == WT_TXN_NONE) continue; diff --git a/src/third_party/wiredtiger/src/txn/txn_timestamp.c b/src/third_party/wiredtiger/src/txn/txn_timestamp.c index 6b046373187..6acd265fd2d 100644 --- a/src/third_party/wiredtiger/src/txn/txn_timestamp.c +++ b/src/third_party/wiredtiger/src/txn/txn_timestamp.c @@ -113,6 +113,7 @@ __wt_txn_get_pinned_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t *tsp, uin WT_ORDERED_READ(session_cnt, conn->session_cnt); WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); __txn_get_read_timestamp(s, &tmp_read_ts); /* * A zero timestamp is possible here only when the oldest timestamp is not accounted for. @@ -172,6 +173,7 @@ __txn_global_query_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t *tsp, cons WT_ORDERED_READ(session_cnt, conn->session_cnt); WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); __txn_get_durable_timestamp(s, &tmpts); if (tmpts != WT_TS_NONE && --tmpts < ts) ts = tmpts; @@ -504,6 +506,7 @@ __txn_assert_after_reads(WT_SESSION_IMPL *session, const char *op, wt_timestamp_ WT_ORDERED_READ(session_cnt, S2C(session)->session_cnt); WT_STAT_CONN_INCR(session, txn_walk_sessions); for (i = 0, s = txn_global->txn_shared_list; i < session_cnt; i++, s++) { + WT_STAT_CONN_INCR(session, txn_sessions_walked); __txn_get_read_timestamp(s, &tmp_timestamp); if (tmp_timestamp != WT_TS_NONE && tmp_timestamp >= ts) { __wt_readunlock(session, &txn_global->rwlock); |