summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/third_party/wiredtiger/dist/stat_data.py2
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/btree/row_modify.c2
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_cache.c4
-rw-r--r--src/third_party/wiredtiger/src/include/cache.h7
-rw-r--r--src/third_party/wiredtiger/src/include/cache_inline.h36
-rw-r--r--src/third_party/wiredtiger/src/include/extern.h4
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h2
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in922
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_write.c7
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c6
-rw-r--r--src/third_party/wiredtiger/test/suite/test_hs05.py151
12 files changed, 685 insertions, 460 deletions
diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py
index 8d2f2d69181..abe9893c586 100644
--- a/src/third_party/wiredtiger/dist/stat_data.py
+++ b/src/third_party/wiredtiger/dist/stat_data.py
@@ -292,6 +292,8 @@ conn_stats = [
CacheStat('cache_hazard_walks', 'hazard pointer check entries walked'),
CacheStat('cache_hs_ondisk', 'history store table on-disk size', 'no_clear,no_scale,size'),
CacheStat('cache_hs_ondisk_max', 'history store table max on-disk size', 'no_clear,no_scale,size'),
+ CacheStat('cache_hs_score', 'history store score', 'no_clear,no_scale'),
+ CacheStat('cache_lookaside_score', 'cache overflow score', 'no_clear,no_scale'),
CacheStat('cache_overhead', 'percentage overhead', 'no_clear,no_scale'),
CacheStat('cache_pages_dirty', 'tracked dirty pages in the cache', 'no_clear,no_scale'),
CacheStat('cache_pages_inuse', 'pages currently held in the cache', 'no_clear,no_scale'),
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index e7e9b6cd5cb..917552a1c76 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.2",
- "commit": "c0d84e36d3c21825ea5b4ac820394b776522d67b"
+ "commit": "56a33593e8e43853afb04ea4950ca30ea9d8d864"
}
diff --git a/src/third_party/wiredtiger/src/btree/row_modify.c b/src/third_party/wiredtiger/src/btree/row_modify.c
index 2968ea3d227..779f5112c12 100644
--- a/src/third_party/wiredtiger/src/btree/row_modify.c
+++ b/src/third_party/wiredtiger/src/btree/row_modify.c
@@ -367,6 +367,8 @@ __wt_update_obsolete_check(
}
}
+ __wt_cache_update_hs_score(session, upd_seen, upd_unstable);
+
/*
* We cannot discard this WT_UPDATE structure, we can only discard WT_UPDATE structures
* subsequent to it, other threads of control will terminate their walk in this element. Save a
diff --git a/src/third_party/wiredtiger/src/conn/conn_cache.c b/src/third_party/wiredtiger/src/conn/conn_cache.c
index bf14fcf4914..4337042629c 100644
--- a/src/third_party/wiredtiger/src/conn/conn_cache.c
+++ b/src/third_party/wiredtiger/src/conn/conn_cache.c
@@ -326,6 +326,7 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
WT_STAT_SET(session, stats, cache_eviction_state, cache->flags);
WT_STAT_SET(session, stats, cache_eviction_aggressive_set, cache->evict_aggressive_score);
WT_STAT_SET(session, stats, cache_eviction_empty_score, cache->evict_empty_score);
+ WT_STAT_SET(session, stats, cache_hs_score, __wt_cache_hs_score(cache));
WT_STAT_SET(session, stats, cache_eviction_active_workers, conn->evict_threads.current_threads);
WT_STAT_SET(
@@ -339,6 +340,9 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
WT_STAT_SET(session, stats, cache_eviction_walks_active, cache->walk_session->nhazard);
WT_STAT_SET(session, stats, rec_maximum_seconds, conn->rec_maximum_seconds);
+
+ /* TODO: WT-5585 Remove lookaside score statistic after MongoDB switches to an alternative. */
+ WT_STAT_SET(session, stats, cache_lookaside_score, 0);
}
/*
diff --git a/src/third_party/wiredtiger/src/include/cache.h b/src/third_party/wiredtiger/src/include/cache.h
index 03d5c68c9b7..2bdadc9522f 100644
--- a/src/third_party/wiredtiger/src/include/cache.h
+++ b/src/third_party/wiredtiger/src/include/cache.h
@@ -187,6 +187,13 @@ struct __wt_cache {
*/
uint32_t evict_empty_score;
+ /*
+ * Score of how much pressure storing historical versions is having on eviction. This score
+ * varies between 0, if reconciliation always sees updates that are globally visible and hence
+ * can be discarded, to 100 if no updates are globally visible.
+ */
+ int32_t evict_hs_score;
+
uint32_t hs_fileid; /* History store table file ID */
/*
diff --git a/src/third_party/wiredtiger/src/include/cache_inline.h b/src/third_party/wiredtiger/src/include/cache_inline.h
index 150e768dabd..866c19d6172 100644
--- a/src/third_party/wiredtiger/src/include/cache_inline.h
+++ b/src/third_party/wiredtiger/src/include/cache_inline.h
@@ -207,6 +207,42 @@ __wt_cache_bytes_other(WT_CACHE *cache)
}
/*
+ * __wt_cache_hs_score --
+ * Get the current history store score (between 0 and 100).
+ */
+static inline uint32_t
+__wt_cache_hs_score(WT_CACHE *cache)
+{
+ int32_t global_score;
+
+ global_score = cache->evict_hs_score;
+ return ((uint32_t)WT_MIN(WT_MAX(global_score, 0), 100));
+}
+
+/*
+ * __wt_cache_update_hs_score --
+ * Update the history store score based how many unstable updates are seen.
+ */
+static inline void
+__wt_cache_update_hs_score(WT_SESSION_IMPL *session, u_int updates_seen, u_int updates_unstable)
+{
+ WT_CACHE *cache;
+ int32_t global_score, score;
+
+ if (updates_seen == 0)
+ return;
+
+ cache = S2C(session)->cache;
+ score = (int32_t)((100 * updates_unstable) / updates_seen);
+ global_score = cache->evict_hs_score;
+
+ if (score > global_score && global_score < 100)
+ (void)__wt_atomic_addi32(&cache->evict_hs_score, 1);
+ else if (score < global_score && global_score > 0)
+ (void)__wt_atomic_subi32(&cache->evict_hs_score, 1);
+}
+
+/*
* __wt_session_can_wait --
* Return if a session available for a potentially slow operation.
*/
diff --git a/src/third_party/wiredtiger/src/include/extern.h b/src/third_party/wiredtiger/src/include/extern.h
index 054f4326933..3842d28f621 100644
--- a/src/third_party/wiredtiger/src/include/extern.h
+++ b/src/third_party/wiredtiger/src/include/extern.h
@@ -2232,6 +2232,8 @@ static inline u_int __wt_cell_type_raw(WT_CELL *cell)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
static inline u_int __wt_skip_choose_depth(WT_SESSION_IMPL *session)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+static inline uint32_t __wt_cache_hs_score(WT_CACHE *cache)
+ WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
static inline uint64_t __wt_btree_bytes_evictable(WT_SESSION_IMPL *session)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
static inline uint64_t __wt_btree_bytes_inuse(WT_SESSION_IMPL *session)
@@ -2292,6 +2294,8 @@ static inline void __wt_cache_page_inmem_incr(WT_SESSION_IMPL *session, WT_PAGE
static inline void __wt_cache_read_gen_bump(WT_SESSION_IMPL *session, WT_PAGE *page);
static inline void __wt_cache_read_gen_incr(WT_SESSION_IMPL *session);
static inline void __wt_cache_read_gen_new(WT_SESSION_IMPL *session, WT_PAGE *page);
+static inline void __wt_cache_update_hs_score(
+ WT_SESSION_IMPL *session, u_int updates_seen, u_int updates_unstable);
static inline void __wt_cell_type_reset(
WT_SESSION_IMPL *session, WT_CELL *cell, u_int old_type, u_int new_type);
static inline void __wt_cell_unpack_addr(WT_SESSION_IMPL *session, const WT_PAGE_HEADER *dsk,
diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h
index 17e550f6195..069cef7806f 100644
--- a/src/third_party/wiredtiger/src/include/stat.h
+++ b/src/third_party/wiredtiger/src/include/stat.h
@@ -389,6 +389,7 @@ struct __wt_connection_stats {
int64_t cache_bytes_other;
int64_t cache_bytes_read;
int64_t cache_bytes_write;
+ int64_t cache_lookaside_score;
int64_t cache_eviction_checkpoint;
int64_t cache_eviction_blocked_checkpoint_hs;
int64_t cache_eviction_get_ref;
@@ -450,6 +451,7 @@ struct __wt_connection_stats {
int64_t cache_hazard_checks;
int64_t cache_hazard_walks;
int64_t cache_hazard_max;
+ int64_t cache_hs_score;
int64_t cache_hs_insert;
int64_t cache_hs_insert_restart;
int64_t cache_hs_ondisk_max;
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in
index 3b6e22a1532..b8ac1cbbfdc 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger.in
+++ b/src/third_party/wiredtiger/src/include/wiredtiger.in
@@ -5248,1128 +5248,1132 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_BYTES_READ 1055
/*! cache: bytes written from cache */
#define WT_STAT_CONN_CACHE_BYTES_WRITE 1056
+/*! cache: cache overflow score */
+#define WT_STAT_CONN_CACHE_LOOKASIDE_SCORE 1057
/*! cache: checkpoint blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1057
+#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1058
/*!
* cache: checkpoint of history store file blocked non-history store page
* eviction
*/
-#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_CHECKPOINT_HS 1058
+#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_CHECKPOINT_HS 1059
/*! cache: eviction calls to get a page */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1059
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1060
/*! cache: eviction calls to get a page found queue empty */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1060
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1061
/*! cache: eviction calls to get a page found queue empty after locking */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1061
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1062
/*! cache: eviction currently operating in aggressive mode */
-#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1062
+#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1063
/*! cache: eviction empty score */
-#define WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE 1063
+#define WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE 1064
/*!
* cache: eviction gave up due to detecting an out of order on disk value
* behind the last update on the chain
*/
-#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_1 1064
+#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_1 1065
/*!
* cache: eviction gave up due to detecting an out of order tombstone
* ahead of the selected on disk update
*/
-#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_2 1065
+#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_2 1066
/*!
* cache: eviction gave up due to detecting an out of order tombstone
* ahead of the selected on disk update after validating the update chain
*/
-#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_3 1066
+#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_3 1067
/*!
* cache: eviction gave up due to detecting out of order timestamps on
* the update chain after the selected on disk update
*/
-#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_4 1067
+#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_OOO_CHECKPOINT_RACE_4 1068
/*! cache: eviction passes of a file */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_PASSES 1068
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_PASSES 1069
/*! cache: eviction server candidate queue empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1069
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1070
/*! cache: eviction server candidate queue not empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1070
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1071
/*! cache: eviction server evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1071
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1072
/*!
* cache: eviction server slept, because we did not make progress with
* eviction
*/
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1072
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1073
/*! cache: eviction server unable to reach eviction goal */
-#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1073
+#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1074
/*! cache: eviction server waiting for a leaf page */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_LEAF_NOTFOUND 1074
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_LEAF_NOTFOUND 1075
/*! cache: eviction state */
-#define WT_STAT_CONN_CACHE_EVICTION_STATE 1075
+#define WT_STAT_CONN_CACHE_EVICTION_STATE 1076
/*!
* cache: eviction walk most recent sleeps for checkpoint handle
* gathering
*/
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_SLEEPS 1076
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_SLEEPS 1077
/*! cache: eviction walk target pages histogram - 0-9 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10 1077
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10 1078
/*! cache: eviction walk target pages histogram - 10-31 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32 1078
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32 1079
/*! cache: eviction walk target pages histogram - 128 and higher */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128 1079
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128 1080
/*! cache: eviction walk target pages histogram - 32-63 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64 1080
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64 1081
/*! cache: eviction walk target pages histogram - 64-128 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128 1081
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128 1082
/*!
* cache: eviction walk target pages reduced due to history store cache
* pressure
*/
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_REDUCED 1082
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_REDUCED 1083
/*! cache: eviction walk target strategy both clean and dirty pages */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_STRATEGY_BOTH_CLEAN_AND_DIRTY 1083
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_STRATEGY_BOTH_CLEAN_AND_DIRTY 1084
/*! cache: eviction walk target strategy only clean pages */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_STRATEGY_CLEAN 1084
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_STRATEGY_CLEAN 1085
/*! cache: eviction walk target strategy only dirty pages */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_STRATEGY_DIRTY 1085
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_STRATEGY_DIRTY 1086
/*! cache: eviction walks abandoned */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1086
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1087
/*! cache: eviction walks gave up because they restarted their walk twice */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED 1087
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED 1088
/*!
* 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 1088
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 1089
/*!
* 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 1089
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 1090
/*! cache: eviction walks reached end of tree */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED 1090
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED 1091
/*! cache: eviction walks restarted */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_RESTART 1091
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_RESTART 1092
/*! cache: eviction walks started from root of tree */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT 1092
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT 1093
/*! cache: eviction walks started from saved location in tree */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS 1093
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS 1094
/*! cache: eviction worker thread active */
-#define WT_STAT_CONN_CACHE_EVICTION_ACTIVE_WORKERS 1094
+#define WT_STAT_CONN_CACHE_EVICTION_ACTIVE_WORKERS 1095
/*! cache: eviction worker thread created */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_CREATED 1095
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_CREATED 1096
/*! cache: eviction worker thread evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1096
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1097
/*! cache: eviction worker thread removed */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_REMOVED 1097
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_REMOVED 1098
/*! cache: eviction worker thread stable number */
-#define WT_STAT_CONN_CACHE_EVICTION_STABLE_STATE_WORKERS 1098
+#define WT_STAT_CONN_CACHE_EVICTION_STABLE_STATE_WORKERS 1099
/*! cache: files with active eviction walks */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1099
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1100
/*! cache: files with new eviction walks started */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1100
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1101
/*! cache: force re-tuning of eviction workers once in a while */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_RETUNE 1101
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_RETUNE 1102
/*!
* cache: forced eviction - history store pages failed to evict while
* session has history store cursor open
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_HS_FAIL 1102
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_HS_FAIL 1103
/*!
* cache: forced eviction - history store pages selected while session
* has history store cursor open
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_HS 1103
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_HS 1104
/*!
* cache: forced eviction - history store pages successfully evicted
* while session has history store cursor open
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_HS_SUCCESS 1104
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_HS_SUCCESS 1105
/*! cache: forced eviction - pages evicted that were clean count */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_CLEAN 1105
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_CLEAN 1106
/*! cache: forced eviction - pages evicted that were clean time (usecs) */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_CLEAN_TIME 1106
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_CLEAN_TIME 1107
/*! cache: forced eviction - pages evicted that were dirty count */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DIRTY 1107
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DIRTY 1108
/*! cache: forced eviction - pages evicted that were dirty time (usecs) */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DIRTY_TIME 1108
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DIRTY_TIME 1109
/*!
* cache: forced eviction - pages selected because of a large number of
* updates to a single item
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_LONG_UPDATE_LIST 1109
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_LONG_UPDATE_LIST 1110
/*!
* cache: forced eviction - pages selected because of too many deleted
* items count
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1110
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1111
/*! cache: forced eviction - pages selected count */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1111
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1112
/*! cache: forced eviction - pages selected unable to be evicted count */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1112
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1113
/*! cache: forced eviction - pages selected unable to be evicted time */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL_TIME 1113
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL_TIME 1114
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1114
+#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1115
/*! cache: hazard pointer check calls */
-#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1115
+#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1116
/*! cache: hazard pointer check entries walked */
-#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1116
+#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1117
/*! cache: hazard pointer maximum array length */
-#define WT_STAT_CONN_CACHE_HAZARD_MAX 1117
+#define WT_STAT_CONN_CACHE_HAZARD_MAX 1118
+/*! cache: history store score */
+#define WT_STAT_CONN_CACHE_HS_SCORE 1119
/*! cache: history store table insert calls */
-#define WT_STAT_CONN_CACHE_HS_INSERT 1118
+#define WT_STAT_CONN_CACHE_HS_INSERT 1120
/*! cache: history store table insert calls that returned restart */
-#define WT_STAT_CONN_CACHE_HS_INSERT_RESTART 1119
+#define WT_STAT_CONN_CACHE_HS_INSERT_RESTART 1121
/*! cache: history store table max on-disk size */
-#define WT_STAT_CONN_CACHE_HS_ONDISK_MAX 1120
+#define WT_STAT_CONN_CACHE_HS_ONDISK_MAX 1122
/*! cache: history store table on-disk size */
-#define WT_STAT_CONN_CACHE_HS_ONDISK 1121
+#define WT_STAT_CONN_CACHE_HS_ONDISK 1123
/*!
* cache: history store table out-of-order resolved updates that lose
* their durable timestamp
*/
-#define WT_STAT_CONN_CACHE_HS_ORDER_LOSE_DURABLE_TIMESTAMP 1122
+#define WT_STAT_CONN_CACHE_HS_ORDER_LOSE_DURABLE_TIMESTAMP 1124
/*!
* 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 1123
+#define WT_STAT_CONN_CACHE_HS_ORDER_REINSERT 1125
/*! cache: history store table reads */
-#define WT_STAT_CONN_CACHE_HS_READ 1124
+#define WT_STAT_CONN_CACHE_HS_READ 1126
/*! cache: history store table reads missed */
-#define WT_STAT_CONN_CACHE_HS_READ_MISS 1125
+#define WT_STAT_CONN_CACHE_HS_READ_MISS 1127
/*! cache: history store table reads requiring squashed modifies */
-#define WT_STAT_CONN_CACHE_HS_READ_SQUASH 1126
+#define WT_STAT_CONN_CACHE_HS_READ_SQUASH 1128
/*!
* cache: history store table truncation by rollback to stable to remove
* an unstable update
*/
-#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS_UNSTABLE 1127
+#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS_UNSTABLE 1129
/*!
* cache: history store table truncation by rollback to stable to remove
* an update
*/
-#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS 1128
+#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_RTS 1130
/*! cache: history store table truncation to remove an update */
-#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE 1129
+#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE 1131
/*!
* 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 1130
+#define WT_STAT_CONN_CACHE_HS_KEY_TRUNCATE_ONPAGE_REMOVAL 1132
/*!
* 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 1131
+#define WT_STAT_CONN_CACHE_HS_ORDER_REMOVE 1133
/*! cache: history store table writes requiring squashed modifies */
-#define WT_STAT_CONN_CACHE_HS_WRITE_SQUASH 1132
+#define WT_STAT_CONN_CACHE_HS_WRITE_SQUASH 1134
/*! cache: in-memory page passed criteria to be split */
-#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1133
+#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1135
/*! cache: in-memory page splits */
-#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1134
+#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1136
/*! cache: internal pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1135
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1137
/*! cache: internal pages queued for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL_PAGES_QUEUED 1136
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL_PAGES_QUEUED 1138
/*! cache: internal pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL_PAGES_SEEN 1137
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL_PAGES_SEEN 1139
/*! cache: internal pages seen by eviction walk that are already queued */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL_PAGES_ALREADY_QUEUED 1138
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL_PAGES_ALREADY_QUEUED 1140
/*! cache: internal pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1139
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1141
/*! cache: leaf pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1140
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1142
/*! cache: maximum bytes configured */
-#define WT_STAT_CONN_CACHE_BYTES_MAX 1141
+#define WT_STAT_CONN_CACHE_BYTES_MAX 1143
/*! cache: maximum page size at eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1142
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1144
/*! cache: modified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1143
+#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1145
/*! cache: modified pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1144
+#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1146
/*! cache: operations timed out waiting for space in cache */
-#define WT_STAT_CONN_CACHE_TIMED_OUT_OPS 1145
+#define WT_STAT_CONN_CACHE_TIMED_OUT_OPS 1147
/*! cache: overflow pages read into cache */
-#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1146
+#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1148
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1147
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1149
/*! cache: page written requiring history store records */
-#define WT_STAT_CONN_CACHE_WRITE_HS 1148
+#define WT_STAT_CONN_CACHE_WRITE_HS 1150
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1149
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1151
/*! cache: pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP 1150
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1152
/*! cache: pages evicted in parallel with checkpoint */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_IN_PARALLEL_WITH_CHECKPOINT 1151
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_IN_PARALLEL_WITH_CHECKPOINT 1153
/*! cache: pages queued for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1152
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1154
/*! cache: pages queued for eviction post lru sorting */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_POST_LRU 1153
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_POST_LRU 1155
/*! cache: pages queued for urgent eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT 1154
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT 1156
/*! cache: pages queued for urgent eviction during walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1155
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1157
/*!
* cache: pages queued for urgent eviction from history store due to high
* dirty content
*/
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT_HS_DIRTY 1156
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT_HS_DIRTY 1158
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1157
+#define WT_STAT_CONN_CACHE_READ 1159
/*! cache: pages read into cache after truncate */
-#define WT_STAT_CONN_CACHE_READ_DELETED 1158
+#define WT_STAT_CONN_CACHE_READ_DELETED 1160
/*! cache: pages read into cache after truncate in prepare state */
-#define WT_STAT_CONN_CACHE_READ_DELETED_PREPARED 1159
+#define WT_STAT_CONN_CACHE_READ_DELETED_PREPARED 1161
/*! cache: pages requested from the cache */
-#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1160
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1162
/*! cache: pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1161
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1163
/*! cache: pages seen by eviction walk that are already queued */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_ALREADY_QUEUED 1162
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_ALREADY_QUEUED 1164
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1163
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1165
/*!
* cache: pages selected for eviction unable to be evicted because of
* active children on an internal page
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_ACTIVE_CHILDREN_ON_AN_INTERNAL_PAGE 1164
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_ACTIVE_CHILDREN_ON_AN_INTERNAL_PAGE 1166
/*!
* cache: pages selected for eviction unable to be evicted because of
* failure in reconciliation
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_IN_RECONCILIATION 1165
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_IN_RECONCILIATION 1167
/*!
* cache: pages selected for eviction unable to be evicted because of
* race between checkpoint and out of order timestamps handling
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_CHECKPOINT_OUT_OF_ORDER_TS 1166
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_CHECKPOINT_OUT_OF_ORDER_TS 1168
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1167
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1169
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1168
+#define WT_STAT_CONN_CACHE_WRITE 1170
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1169
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1171
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1170
+#define WT_STAT_CONN_CACHE_OVERHEAD 1172
/*! cache: the number of times full update inserted to history store */
-#define WT_STAT_CONN_CACHE_HS_INSERT_FULL_UPDATE 1171
+#define WT_STAT_CONN_CACHE_HS_INSERT_FULL_UPDATE 1173
/*! cache: the number of times reverse modify inserted to history store */
-#define WT_STAT_CONN_CACHE_HS_INSERT_REVERSE_MODIFY 1172
+#define WT_STAT_CONN_CACHE_HS_INSERT_REVERSE_MODIFY 1174
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1173
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1175
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1174
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1176
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1175
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1177
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1176
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1178
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1177
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1179
/*! capacity: background fsync file handles considered */
-#define WT_STAT_CONN_FSYNC_ALL_FH_TOTAL 1178
+#define WT_STAT_CONN_FSYNC_ALL_FH_TOTAL 1180
/*! capacity: background fsync file handles synced */
-#define WT_STAT_CONN_FSYNC_ALL_FH 1179
+#define WT_STAT_CONN_FSYNC_ALL_FH 1181
/*! capacity: background fsync time (msecs) */
-#define WT_STAT_CONN_FSYNC_ALL_TIME 1180
+#define WT_STAT_CONN_FSYNC_ALL_TIME 1182
/*! capacity: bytes read */
-#define WT_STAT_CONN_CAPACITY_BYTES_READ 1181
+#define WT_STAT_CONN_CAPACITY_BYTES_READ 1183
/*! capacity: bytes written for checkpoint */
-#define WT_STAT_CONN_CAPACITY_BYTES_CKPT 1182
+#define WT_STAT_CONN_CAPACITY_BYTES_CKPT 1184
/*! capacity: bytes written for eviction */
-#define WT_STAT_CONN_CAPACITY_BYTES_EVICT 1183
+#define WT_STAT_CONN_CAPACITY_BYTES_EVICT 1185
/*! capacity: bytes written for log */
-#define WT_STAT_CONN_CAPACITY_BYTES_LOG 1184
+#define WT_STAT_CONN_CAPACITY_BYTES_LOG 1186
/*! capacity: bytes written total */
-#define WT_STAT_CONN_CAPACITY_BYTES_WRITTEN 1185
+#define WT_STAT_CONN_CAPACITY_BYTES_WRITTEN 1187
/*! capacity: threshold to call fsync */
-#define WT_STAT_CONN_CAPACITY_THRESHOLD 1186
+#define WT_STAT_CONN_CAPACITY_THRESHOLD 1188
/*! capacity: time waiting due to total capacity (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_TOTAL 1187
+#define WT_STAT_CONN_CAPACITY_TIME_TOTAL 1189
/*! capacity: time waiting during checkpoint (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_CKPT 1188
+#define WT_STAT_CONN_CAPACITY_TIME_CKPT 1190
/*! capacity: time waiting during eviction (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_EVICT 1189
+#define WT_STAT_CONN_CAPACITY_TIME_EVICT 1191
/*! capacity: time waiting during logging (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_LOG 1190
+#define WT_STAT_CONN_CAPACITY_TIME_LOG 1192
/*! capacity: time waiting during read (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_READ 1191
+#define WT_STAT_CONN_CAPACITY_TIME_READ 1193
/*! checkpoint-cleanup: pages added for eviction */
-#define WT_STAT_CONN_CC_PAGES_EVICT 1192
+#define WT_STAT_CONN_CC_PAGES_EVICT 1194
/*! checkpoint-cleanup: pages removed */
-#define WT_STAT_CONN_CC_PAGES_REMOVED 1193
+#define WT_STAT_CONN_CC_PAGES_REMOVED 1195
/*! checkpoint-cleanup: pages skipped during tree walk */
-#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1194
+#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1196
/*! checkpoint-cleanup: pages visited */
-#define WT_STAT_CONN_CC_PAGES_VISITED 1195
+#define WT_STAT_CONN_CC_PAGES_VISITED 1197
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1196
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1198
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1197
+#define WT_STAT_CONN_COND_AUTO_WAIT 1199
/*!
* 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 1200
/*! connection: detected system time went backwards */
-#define WT_STAT_CONN_TIME_TRAVEL 1199
+#define WT_STAT_CONN_TIME_TRAVEL 1201
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1200
+#define WT_STAT_CONN_FILE_OPEN 1202
/*! connection: hash bucket array size for data handles */
-#define WT_STAT_CONN_BUCKETS_DH 1201
+#define WT_STAT_CONN_BUCKETS_DH 1203
/*! connection: hash bucket array size general */
-#define WT_STAT_CONN_BUCKETS 1202
+#define WT_STAT_CONN_BUCKETS 1204
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1203
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1205
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1204
+#define WT_STAT_CONN_MEMORY_FREE 1206
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1205
+#define WT_STAT_CONN_MEMORY_GROW 1207
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1206
+#define WT_STAT_CONN_COND_WAIT 1208
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1207
+#define WT_STAT_CONN_RWLOCK_READ 1209
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1208
+#define WT_STAT_CONN_RWLOCK_WRITE 1210
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1209
+#define WT_STAT_CONN_FSYNC_IO 1211
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1210
+#define WT_STAT_CONN_READ_IO 1212
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1211
+#define WT_STAT_CONN_WRITE_IO 1213
/*! 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 1214
/*! 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 1215
/*!
* 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 1216
/*!
* 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 1217
/*! cursor: cached cursor count */
-#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1216
+#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1218
/*! cursor: cursor bulk loaded cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT_BULK 1217
+#define WT_STAT_CONN_CURSOR_INSERT_BULK 1219
/*! cursor: cursor close calls that result in cache */
-#define WT_STAT_CONN_CURSOR_CACHE 1218
+#define WT_STAT_CONN_CURSOR_CACHE 1220
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1219
+#define WT_STAT_CONN_CURSOR_CREATE 1221
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1220
+#define WT_STAT_CONN_CURSOR_INSERT 1222
/*! cursor: cursor insert key and value bytes */
-#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1221
+#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1223
/*! cursor: cursor modify calls */
-#define WT_STAT_CONN_CURSOR_MODIFY 1222
+#define WT_STAT_CONN_CURSOR_MODIFY 1224
/*! cursor: cursor modify key and value bytes affected */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1223
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1225
/*! cursor: cursor modify value bytes modified */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1224
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1226
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1225
+#define WT_STAT_CONN_CURSOR_NEXT 1227
/*!
* 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 1228
/*!
* 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 1229
/*! 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 1230
/*! cursor: cursor operation restarted */
-#define WT_STAT_CONN_CURSOR_RESTART 1229
+#define WT_STAT_CONN_CURSOR_RESTART 1231
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1230
+#define WT_STAT_CONN_CURSOR_PREV 1232
/*!
* 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 1233
/*!
* 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 1234
/*! 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 1235
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1234
+#define WT_STAT_CONN_CURSOR_REMOVE 1236
/*! cursor: cursor remove key bytes removed */
-#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1235
+#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1237
/*! cursor: cursor reserve calls */
-#define WT_STAT_CONN_CURSOR_RESERVE 1236
+#define WT_STAT_CONN_CURSOR_RESERVE 1238
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1237
+#define WT_STAT_CONN_CURSOR_RESET 1239
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1238
+#define WT_STAT_CONN_CURSOR_SEARCH 1240
/*! cursor: cursor search history store calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_HS 1239
+#define WT_STAT_CONN_CURSOR_SEARCH_HS 1241
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1240
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1242
/*! cursor: cursor sweep buckets */
-#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1241
+#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1243
/*! cursor: cursor sweep cursors closed */
-#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1242
+#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1244
/*! cursor: cursor sweep cursors examined */
-#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1243
+#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1245
/*! cursor: cursor sweeps */
-#define WT_STAT_CONN_CURSOR_SWEEP 1244
+#define WT_STAT_CONN_CURSOR_SWEEP 1246
/*! cursor: cursor truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1245
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1247
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1246
+#define WT_STAT_CONN_CURSOR_UPDATE 1248
/*! cursor: cursor update key and value bytes */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1247
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1249
/*! cursor: cursor update value size change */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1248
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1250
/*! cursor: cursors reused from cache */
-#define WT_STAT_CONN_CURSOR_REOPEN 1249
+#define WT_STAT_CONN_CURSOR_REOPEN 1251
/*! cursor: open cursor count */
-#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1250
+#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1252
/*! data-handle: connection data handle size */
-#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1251
+#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1253
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1252
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1254
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1253
+#define WT_STAT_CONN_DH_SWEEP_REF 1255
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1254
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1256
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1255
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1257
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1256
+#define WT_STAT_CONN_DH_SWEEP_TOD 1258
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1257
+#define WT_STAT_CONN_DH_SWEEPS 1259
/*!
* 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 1260
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1259
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1261
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1260
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1262
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1261
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1263
/*! 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 1264
/*! 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 1265
/*! 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 1266
/*! 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 1267
/*! lock: dhandle read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1266
+#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1268
/*! lock: dhandle write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1267
+#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1269
/*!
* 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 1270
/*!
* 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 1271
/*! 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 1272
/*! 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 1273
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1272
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1274
/*! 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 1275
/*! 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 1276
/*!
* 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 1277
/*! 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 1278
/*! 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 1279
/*! 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 1280
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1279
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1281
/*! 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 1282
/*! 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 1283
/*!
* 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 1284
/*!
* 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 1285
/*! lock: table read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1284
+#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1286
/*! lock: table write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1285
+#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1287
/*! 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 1288
/*! 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 1289
/*! 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 1290
/*! 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 1291
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1290
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1292
/*! log: force archive time sleeping (usecs) */
-#define WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP 1291
+#define WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP 1293
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1292
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1294
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1293
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1295
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1294
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1296
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1295
+#define WT_STAT_CONN_LOG_FLUSH 1297
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1296
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1298
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1297
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1299
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1298
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1300
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1299
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1301
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1300
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1302
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1301
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1303
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1302
+#define WT_STAT_CONN_LOG_SCANS 1304
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1303
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1305
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1304
+#define WT_STAT_CONN_LOG_WRITE_LSN 1306
/*! 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 1307
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1306
+#define WT_STAT_CONN_LOG_SYNC 1308
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1307
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1309
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1308
+#define WT_STAT_CONN_LOG_SYNC_DIR 1310
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1309
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1311
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1310
+#define WT_STAT_CONN_LOG_WRITES 1312
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1311
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1313
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1312
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1314
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1313
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1315
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1314
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1316
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1315
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1317
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1316
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1318
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1317
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1319
/*! log: slot close lost race */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1318
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1320
/*! log: slot close unbuffered waits */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1319
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1321
/*! log: slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1320
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1322
/*! log: slot join atomic update races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1321
+#define WT_STAT_CONN_LOG_SLOT_RACES 1323
/*! log: slot join calls atomic updates raced */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1322
+#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1324
/*! log: slot join calls did not yield */
-#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1323
+#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1325
/*! 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 1326
/*! log: slot join calls slept */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1325
+#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1327
/*! log: slot join calls yielded */
-#define WT_STAT_CONN_LOG_SLOT_YIELD 1326
+#define WT_STAT_CONN_LOG_SLOT_YIELD 1328
/*! log: slot join found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1327
+#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1329
/*! log: slot joins yield time (usecs) */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1328
+#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1330
/*! 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 1331
/*! log: slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1330
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1332
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1331
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1333
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1332
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1334
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1333
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1335
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1334
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1336
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1335
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1337
/*! 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 1338
/*! 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 1339
/*! 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 1340
/*! 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 1341
/*! 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 1342
/*! 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 1343
/*! 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 1344
/*! 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 1345
/*! 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 1346
/*! 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 1347
/*! 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 1348
/*! 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 1349
/*! 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 1350
/*! 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 1351
/*! 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 1352
/*! 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 1353
/*! 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 1354
/*! 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 1355
/*! 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 1356
/*! 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 1357
/*! 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 1358
/*! 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 1359
/*! 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 1360
/*!
* 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 1361
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1360
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1362
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1361
+#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1363
/*! reconciliation: maximum seconds spent in a reconciliation call */
-#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1362
+#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1364
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1363
+#define WT_STAT_CONN_REC_PAGES 1365
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1364
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1366
/*!
* 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 1367
/*!
* 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 1368
/*!
* 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 1369
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1368
+#define WT_STAT_CONN_REC_PAGE_DELETE 1370
/*!
* 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 1371
/*!
* 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 1372
/*!
* 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 1373
/*!
* 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 1374
/*!
* 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 1375
/*!
* 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 1376
/*! reconciliation: pages written including an aggregated prepare */
-#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1375
+#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1377
/*! 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 1378
/*!
* 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 1379
/*! 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 1380
/*!
* 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 1381
/*!
* 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 1382
/*! 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 1383
/*!
* 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 1384
/*! reconciliation: records written including a prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1383
+#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1385
/*! 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 1386
/*! 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 1387
/*! 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 1388
/*! 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 1389
/*! 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 1390
/*! 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 1391
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1390
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1392
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1391
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1393
/*! 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 1394
/*! session: flush_tier operation calls */
-#define WT_STAT_CONN_FLUSH_TIER 1393
+#define WT_STAT_CONN_FLUSH_TIER 1395
/*! session: flush_tier tables skipped due to no checkpoint */
-#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1394
+#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1396
/*! session: flush_tier tables switched */
-#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1395
+#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1397
/*! session: local objects removed */
-#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1396
+#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1398
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1397
+#define WT_STAT_CONN_SESSION_OPEN 1399
/*! session: session query timestamp calls */
-#define WT_STAT_CONN_SESSION_QUERY_TS 1398
+#define WT_STAT_CONN_SESSION_QUERY_TS 1400
/*! session: table alter failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1399
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1401
/*! session: table alter successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1400
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1402
/*! 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 1403
/*! session: table alter unchanged and skipped */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1402
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1404
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1403
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1405
/*! 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 1406
/*! session: table compact running */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1405
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1407
/*! 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 1408
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1407
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1409
/*! session: table compact timeout */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1408
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1410
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1409
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1411
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1410
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1412
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1411
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1413
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1412
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1414
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1413
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1415
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1414
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1416
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1415
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1417
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1416
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1418
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1417
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1419
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1418
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1420
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1419
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1421
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1420
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1422
/*! session: tiered operations dequeued and processed */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1421
+#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1423
/*! session: tiered operations scheduled */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1422
+#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1424
/*! session: tiered storage local retention time (secs) */
-#define WT_STAT_CONN_TIERED_RETENTION 1423
+#define WT_STAT_CONN_TIERED_RETENTION 1425
/*! session: tiered storage object size */
-#define WT_STAT_CONN_TIERED_OBJECT_SIZE 1424
+#define WT_STAT_CONN_TIERED_OBJECT_SIZE 1426
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1425
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1427
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1426
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1428
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1427
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1429
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1428
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1430
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1429
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1431
/*!
* 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 1432
/*! 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 1433
/*! thread-yield: data handle lock yielded */
-#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1432
+#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1434
/*!
* 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 1435
/*! 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 1436
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1435
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1437
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1436
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1438
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1437
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1439
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1438
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1440
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1439
+#define WT_STAT_CONN_PAGE_SLEEP 1441
/*!
* 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 1442
/*! 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 1443
/*! transaction: Number of prepared updates */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1442
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1444
/*! transaction: Number of prepared updates committed */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1443
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1445
/*! 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 1446
/*! transaction: Number of prepared updates rolled back */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1445
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1447
/*! transaction: prepared transactions */
-#define WT_STAT_CONN_TXN_PREPARE 1446
+#define WT_STAT_CONN_TXN_PREPARE 1448
/*! transaction: prepared transactions committed */
-#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1447
+#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1449
/*! transaction: prepared transactions currently active */
-#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1448
+#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1450
/*! transaction: prepared transactions rolled back */
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1449
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1451
/*!
* 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 1452
/*!
* 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 1453
/*! transaction: query timestamp calls */
-#define WT_STAT_CONN_TXN_QUERY_TS 1452
+#define WT_STAT_CONN_TXN_QUERY_TS 1454
/*! 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 1455
/*! transaction: rollback to stable calls */
-#define WT_STAT_CONN_TXN_RTS 1454
+#define WT_STAT_CONN_TXN_RTS 1456
/*!
* 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 1457
/*! transaction: rollback to stable inconsistent checkpoint */
-#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1456
+#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1458
/*! transaction: rollback to stable keys removed */
-#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1457
+#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1459
/*! transaction: rollback to stable keys restored */
-#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1458
+#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1460
/*! transaction: rollback to stable pages visited */
-#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1459
+#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1461
/*! 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 1462
/*! 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 1463
/*! 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 1464
/*! 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 1465
/*! 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 1466
/*! 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 1467
/*! transaction: rollback to stable updates aborted */
-#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1466
+#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1468
/*! 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 1469
/*! transaction: sessions scanned in each walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1468
+#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1470
/*! transaction: set timestamp calls */
-#define WT_STAT_CONN_TXN_SET_TS 1469
+#define WT_STAT_CONN_TXN_SET_TS 1471
/*! transaction: set timestamp durable calls */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1470
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1472
/*! transaction: set timestamp durable updates */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1471
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1473
/*! transaction: set timestamp oldest calls */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1472
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1474
/*! transaction: set timestamp oldest updates */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1473
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1475
/*! transaction: set timestamp stable calls */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE 1474
+#define WT_STAT_CONN_TXN_SET_TS_STABLE 1476
/*! transaction: set timestamp stable updates */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1475
+#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1477
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1476
+#define WT_STAT_CONN_TXN_BEGIN 1478
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1477
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1479
/*!
* 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 1480
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1479
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1481
/*!
* 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 1482
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1481
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1483
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1482
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1484
/*!
* 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 1485
/*!
* 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 1486
/*!
* 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 1487
/*! transaction: transaction checkpoint most recent handles applied */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1486
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1488
/*! transaction: transaction checkpoint most recent handles skipped */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1487
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1489
/*! transaction: transaction checkpoint most recent handles walked */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1488
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1490
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1489
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1491
/*! transaction: transaction checkpoint prepare currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1490
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1492
/*! transaction: transaction checkpoint prepare max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1491
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1493
/*! transaction: transaction checkpoint prepare min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1492
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1494
/*! 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 1495
/*! transaction: transaction checkpoint prepare total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1494
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1496
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1495
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1497
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1496
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1498
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1497
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1499
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1498
+#define WT_STAT_CONN_TXN_CHECKPOINT 1500
/*! transaction: transaction checkpoints due to obsolete pages */
-#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1499
+#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1501
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1500
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1502
/*! transaction: transaction failures due to history store */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1501
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1503
/*!
* 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 1504
/*!
* 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 1505
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1504
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1506
/*! 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 1507
/*! transaction: transaction range of timestamps currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1506
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1508
/*! 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 1509
/*!
* 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 1510
/*!
* 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 1511
/*! 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 1512
/*! 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 1513
/*! transaction: transaction walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_WALK_SESSIONS 1512
+#define WT_STAT_CONN_TXN_WALK_SESSIONS 1514
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1513
+#define WT_STAT_CONN_TXN_COMMIT 1515
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1514
+#define WT_STAT_CONN_TXN_ROLLBACK 1516
/*! transaction: update conflicts */
-#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1515
+#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1517
/*!
* @}
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_write.c b/src/third_party/wiredtiger/src/reconcile/rec_write.c
index d7269167a50..ea861779401 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_write.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_write.c
@@ -263,6 +263,13 @@ __reconcile(WT_SESSION_IMPL *session, WT_REF *ref, WT_SALVAGE_COOKIE *salvage, u
*/
/*
+ * Update the global history store score. Only use observations during eviction, not checkpoints
+ * and don't count eviction of the history store table itself.
+ */
+ if (F_ISSET(r, WT_REC_EVICT) && !WT_IS_HS(btree->dhandle))
+ __wt_cache_update_hs_score(session, r->updates_seen, r->updates_unstable);
+
+ /*
* If eviction didn't use any updates and didn't split or delete the page, it didn't make
* progress. Give up rather than silently succeeding in doing no work: this way threads know to
* back off forced eviction rather than spinning.
diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c
index 547f6dd8158..7d9bd538f32 100644
--- a/src/third_party/wiredtiger/src/support/stat.c
+++ b/src/third_party/wiredtiger/src/support/stat.c
@@ -1106,6 +1106,7 @@ static const char *const __stats_connection_desc[] = {
"cache: bytes not belonging to page images in the cache",
"cache: bytes read into cache",
"cache: bytes written from cache",
+ "cache: cache overflow score",
"cache: checkpoint blocked page eviction",
"cache: checkpoint of history store file blocked non-history store page eviction",
"cache: eviction calls to get a page",
@@ -1174,6 +1175,7 @@ static const char *const __stats_connection_desc[] = {
"cache: hazard pointer check calls",
"cache: hazard pointer check entries walked",
"cache: hazard pointer maximum array length",
+ "cache: history store score",
"cache: history store table insert calls",
"cache: history store table insert calls that returned restart",
"cache: history store table max on-disk size",
@@ -1678,6 +1680,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing cache_bytes_other */
stats->cache_bytes_read = 0;
stats->cache_bytes_write = 0;
+ /* not clearing cache_lookaside_score */
stats->cache_eviction_checkpoint = 0;
stats->cache_eviction_blocked_checkpoint_hs = 0;
stats->cache_eviction_get_ref = 0;
@@ -1739,6 +1742,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_hazard_checks = 0;
stats->cache_hazard_walks = 0;
stats->cache_hazard_max = 0;
+ /* not clearing cache_hs_score */
stats->cache_hs_insert = 0;
stats->cache_hs_insert_restart = 0;
/* not clearing cache_hs_ondisk_max */
@@ -2210,6 +2214,7 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cache_bytes_other += WT_STAT_READ(from, cache_bytes_other);
to->cache_bytes_read += WT_STAT_READ(from, cache_bytes_read);
to->cache_bytes_write += WT_STAT_READ(from, cache_bytes_write);
+ to->cache_lookaside_score += WT_STAT_READ(from, cache_lookaside_score);
to->cache_eviction_checkpoint += WT_STAT_READ(from, cache_eviction_checkpoint);
to->cache_eviction_blocked_checkpoint_hs +=
WT_STAT_READ(from, cache_eviction_blocked_checkpoint_hs);
@@ -2285,6 +2290,7 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cache_hazard_walks += WT_STAT_READ(from, cache_hazard_walks);
if ((v = WT_STAT_READ(from, cache_hazard_max)) > to->cache_hazard_max)
to->cache_hazard_max = v;
+ to->cache_hs_score += WT_STAT_READ(from, cache_hs_score);
to->cache_hs_insert += WT_STAT_READ(from, cache_hs_insert);
to->cache_hs_insert_restart += WT_STAT_READ(from, cache_hs_insert_restart);
to->cache_hs_ondisk_max += WT_STAT_READ(from, cache_hs_ondisk_max);
diff --git a/src/third_party/wiredtiger/test/suite/test_hs05.py b/src/third_party/wiredtiger/test/suite/test_hs05.py
new file mode 100644
index 00000000000..4d59f909465
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_hs05.py
@@ -0,0 +1,151 @@
+#!/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.
+
+import wttest
+from wiredtiger import stat
+from wtdataset import SimpleDataSet
+from wtscenario import make_scenarios
+
+# test_hs05.py
+# Verify hs_score reflects cache pressure due to history
+# even if we're not yet actively pushing into the history store file.
+class test_hs05(wttest.WiredTigerTestCase):
+ # Force a small cache, but disable eviction of dirty pages until the cache is full.
+ conn_config = 'cache_size=50MB,statistics=(fast),'
+ conn_config += 'eviction_trigger=100,'
+ conn_config += 'eviction_dirty_target=95,eviction_dirty_trigger=100,'
+ conn_config += 'eviction_updates_target=95,eviction_updates_trigger=100'
+ stable = 1
+ format_values = [
+ ('column', dict(key_format='r', value_format='u')),
+ ('column-fix', dict(key_format='r', value_format='8t')),
+ ('integer-row', dict(key_format='i', value_format='u')),
+ ('string-row', dict(key_format='S', value_format='u'))
+ ]
+ 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 large_updates(self, session, uri, value, ds, nrows, nops):
+ # Update a large number of records, we'll hang if the history store table
+ # isn't doing its thing.
+ cursor = session.open_cursor(uri)
+ score_start = self.get_stat(stat.conn.cache_hs_score)
+ for i in range(nrows + 1, nrows + nops + 1):
+ session.begin_transaction()
+ cursor[ds.key(i)] = value
+ session.commit_transaction('commit_timestamp=' + self.timestamp_str(self.stable + i))
+ cursor.close()
+ score_end = self.get_stat(stat.conn.cache_hs_score)
+ score_diff = score_end - score_start
+ self.pr("After large updates score start: " + str(score_start))
+ self.pr("After large updates score end: " + str(score_end))
+ self.pr("After large updates history store score diff: " + str(score_diff))
+
+ def test_checkpoint_hs_reads(self):
+ # Create a small table.
+ uri = "table:test_hs05"
+ nrows = 100
+ ds = SimpleDataSet(self, uri, nrows, key_format=self.key_format, value_format=self.value_format)
+ ds.populate()
+
+ if self.value_format == '8t':
+ bigvalue = 97
+ else:
+ bigvalue = b"aaaaa" * 100
+
+ # Initially load huge data.
+ # Add 10000 items that have a 500b value that is about 50Mb that
+ # is the entire cache. Then checkpoint so that none is required
+ # to stay in cache.
+ cursor = self.session.open_cursor(uri)
+ for i in range(1, 10000):
+ cursor[ds.key(nrows + i)] = bigvalue
+ cursor.close()
+ self.session.checkpoint()
+
+ # Pin the oldest timestamp so that all history has to stay.
+ self.conn.set_timestamp('oldest_timestamp=' + self.timestamp_str(1))
+ # Loop a couple times, partly filling the cache but not
+ # overfilling it to see the history store score value change
+ # even if the history store is not yet in use.
+ #
+ # Use smaller values, 50 bytes and fill 8 times, under full cache.
+ valstr='abcdefghijklmnopqrstuvwxyz'
+ loop_start = self.get_stat(stat.conn.cache_hs_score)
+ for i in range(1, 9):
+ if self.value_format == '8t':
+ bigvalue2 = 105 + i
+ else:
+ bigvalue2 = valstr[i].encode() * 50
+ self.conn.set_timestamp('stable_timestamp=' + self.timestamp_str(self.stable))
+ entries_start = self.get_stat(stat.conn.cache_hs_insert)
+ score_start = self.get_stat(stat.conn.cache_hs_score)
+ self.pr("Update iteration: " + str(i) + " Value: " + str(bigvalue2))
+ self.pr("Update iteration: " + str(i) + " Score: " + str(score_start))
+ self.large_updates(self.session, uri, bigvalue2, ds, nrows, nrows)
+ self.stable += nrows
+ score_end = self.get_stat(stat.conn.cache_hs_score)
+ entries_end = self.get_stat(stat.conn.cache_hs_insert)
+ # We expect to see the history store score increase but not writing
+ # any new entries to the history store.
+ self.assertGreaterEqual(score_end, score_start)
+ self.assertEqual(entries_end, entries_start)
+
+ # While each iteration may or may not increase the score, we expect the
+ # score to have strictly increased from before the loop started.
+ loop_end = self.get_stat(stat.conn.cache_hs_score)
+ self.assertGreater(loop_end, loop_start)
+
+ # Now move oldest timestamp forward and insert a couple large updates
+ # but we should see the score drop because we allowed the history to move.
+ # By moving the oldest after updating we should see the score drop
+ # to zero.
+ score_start = loop_end
+ self.conn.set_timestamp('stable_timestamp=' + self.timestamp_str(self.stable))
+ self.conn.set_timestamp('oldest_timestamp=' + self.timestamp_str(self.stable))
+ for i in range(9, 11):
+ if self.value_format == '8t':
+ bigvalue2 = 105 + i
+ else:
+ bigvalue2 = valstr[i].encode() * 50
+ self.pr("Update iteration with oldest: " + str(i) + " Value: " + str(bigvalue2))
+ self.large_updates(self.session, uri, bigvalue2, ds, nrows, nrows)
+ self.conn.set_timestamp('stable_timestamp=' + self.timestamp_str(self.stable))
+ self.conn.set_timestamp('oldest_timestamp=' + self.timestamp_str(self.stable))
+ self.stable += nrows
+ score_end = self.get_stat(stat.conn.cache_hs_score)
+ self.assertLess(score_end, score_start)
+ self.assertEqual(score_end, 0)
+
+if __name__ == '__main__':
+ wttest.run()