summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2021-05-04 09:58:19 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-05-04 00:52:35 +0000
commitb455aebd5e479c5a04532335ae34c704a519bf4d (patch)
tree368ee3da821b0d59af3cb613266f0220daba7ddd
parentd7757d755daa3f02295e2d69ad81f5faf193f27c (diff)
downloadmongo-b455aebd5e479c5a04532335ae34c704a519bf4d.tar.gz
Import wiredtiger: cc54220b06d23167290d9928a192f1c49769840d from branch mongodb-5.0
ref: bcb90a271c..cc54220b06 for: 5.0.0 WT-7281 Add metric to record total sessions scanned
-rw-r--r--src/third_party/wiredtiger/dist/stat_data.py1
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h1
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in304
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c3
-rw-r--r--src/third_party/wiredtiger/src/txn/txn.c4
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_timestamp.c3
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);