summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/third_party/wiredtiger/dist/s_string.ok1
-rw-r--r--src/third_party/wiredtiger/dist/stat_data.py9
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_cache.c11
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_page.c161
-rw-r--r--src/third_party/wiredtiger/src/include/cache.h7
-rw-r--r--src/third_party/wiredtiger/src/include/connection.h7
-rw-r--r--src/third_party/wiredtiger/src/include/session.h4
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h9
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in831
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_write.c36
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c31
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_ckpt.c9
13 files changed, 602 insertions, 516 deletions
diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok
index 4b44ac4d27f..b6dd3317d7c 100644
--- a/src/third_party/wiredtiger/dist/s_string.ok
+++ b/src/third_party/wiredtiger/dist/s_string.ok
@@ -1122,6 +1122,7 @@ reconfiguring
recsize
rectype
recurse
+reentrant
refp
regionp
relocked
diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py
index 243e267b498..8687c4162a0 100644
--- a/src/third_party/wiredtiger/dist/stat_data.py
+++ b/src/third_party/wiredtiger/dist/stat_data.py
@@ -275,7 +275,7 @@ conn_stats = [
CacheStat('cache_eviction_internal_pages_queued', 'internal pages queued for eviction'),
CacheStat('cache_eviction_internal_pages_seen', 'internal pages seen by eviction walk'),
CacheStat('cache_eviction_maximum_page_size', 'maximum page size seen at eviction', 'no_clear,no_scale,size'),
- CacheStat('cache_eviction_maximum_seconds', 'maximum seconds spent at a single eviction', 'no_clear,no_scale,size'),
+ CacheStat('cache_eviction_maximum_milliseconds', 'maximum milliseconds spent at a single eviction', 'no_clear,no_scale,size'),
CacheStat('cache_eviction_pages_already_queued', 'pages seen by eviction walk that are already queued'),
CacheStat('cache_eviction_pages_in_parallel_with_checkpoint', 'pages evicted in parallel with checkpoint'),
CacheStat('cache_eviction_pages_queued', 'pages queued for eviction'),
@@ -307,6 +307,7 @@ 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_reentry_hs_eviction_milliseconds', 'total milliseconds spent inside reentrant history store evictions in a reconciliation', 'no_clear,no_scale,size'),
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'),
@@ -525,9 +526,9 @@ conn_stats = [
##########################################
# Reconciliation statistics
##########################################
- RecStat('rec_maximum_hs_wrapup_seconds', 'maximum seconds spent in moving updates to the history store in a reconciliation', 'no_clear,no_scale,size'),
- RecStat('rec_maximum_image_build_seconds', 'maximum seconds spent in building a disk image in a reconciliation', 'no_clear,no_scale,size'),
- RecStat('rec_maximum_seconds', 'maximum seconds spent in a reconciliation call', 'no_clear,no_scale,size'),
+ RecStat('rec_maximum_hs_wrapup_milliseconds', 'maximum milliseconds spent in moving updates to the history store in a reconciliation', 'no_clear,no_scale,size'),
+ RecStat('rec_maximum_image_build_milliseconds', 'maximum milliseconds spent in building a disk image in a reconciliation', 'no_clear,no_scale,size'),
+ RecStat('rec_maximum_milliseconds', 'maximum milliseconds spent in a reconciliation call', 'no_clear,no_scale,size'),
RecStat('rec_overflow_key_leaf', 'leaf-page overflow keys'),
RecStat('rec_pages_with_prepare', 'page reconciliation calls that resulted in values with prepared transaction metadata'),
RecStat('rec_pages_with_ts', 'page reconciliation calls that resulted in values with timestamps'),
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 51117aeff22..c18f3d929fe 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-master",
- "commit": "abad2c9b00ef5c3170748609dd898fd464a0ad0f"
+ "commit": "4061ee7289304fdd594e2b1377bfa432ee6533e1"
}
diff --git a/src/third_party/wiredtiger/src/conn/conn_cache.c b/src/third_party/wiredtiger/src/conn/conn_cache.c
index 1f3d5cba1f5..83d7cf7774f 100644
--- a/src/third_party/wiredtiger/src/conn/conn_cache.c
+++ b/src/third_party/wiredtiger/src/conn/conn_cache.c
@@ -324,7 +324,9 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
WT_STAT_SET(session, stats, cache_bytes_updates, __wt_cache_bytes_updates(cache));
WT_STAT_SET(session, stats, cache_eviction_maximum_page_size, cache->evict_max_page_size);
- WT_STAT_SET(session, stats, cache_eviction_maximum_seconds, cache->evict_max_seconds);
+ WT_STAT_SET(session, stats, cache_eviction_maximum_milliseconds, cache->evict_max_ms);
+ WT_STAT_SET(
+ session, stats, cache_reentry_hs_eviction_milliseconds, cache->reentry_hs_eviction_ms);
WT_STAT_SET(
session, stats, cache_pages_dirty, cache->pages_dirty_intl + cache->pages_dirty_leaf);
@@ -343,10 +345,11 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
if (conn->evict_server_running)
WT_STAT_SET(session, stats, cache_eviction_walks_active, cache->walk_session->nhazard);
- WT_STAT_SET(session, stats, rec_maximum_hs_wrapup_seconds, conn->rec_maximum_hs_wrapup_seconds);
WT_STAT_SET(
- session, stats, rec_maximum_image_build_seconds, conn->rec_maximum_image_build_seconds);
- WT_STAT_SET(session, stats, rec_maximum_seconds, conn->rec_maximum_seconds);
+ session, stats, rec_maximum_hs_wrapup_milliseconds, conn->rec_maximum_hs_wrapup_milliseconds);
+ WT_STAT_SET(session, stats, rec_maximum_image_build_milliseconds,
+ conn->rec_maximum_image_build_milliseconds);
+ WT_STAT_SET(session, stats, rec_maximum_milliseconds, conn->rec_maximum_milliseconds);
}
/*
diff --git a/src/third_party/wiredtiger/src/evict/evict_page.c b/src/third_party/wiredtiger/src/evict/evict_page.c
index 729821e44e1..6d54acac4c2 100644
--- a/src/third_party/wiredtiger/src/evict/evict_page.c
+++ b/src/third_party/wiredtiger/src/evict/evict_page.c
@@ -94,6 +94,89 @@ __wt_page_release_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags)
return (ret);
}
+#define WT_EVICT_STATS_CLEAN 0x01
+#define WT_EVICT_STATS_FORCE_HS 0x02
+#define WT_EVICT_STATS_SUCCESS 0x04
+#define WT_EVICT_STATS_URGENT 0x08
+
+/*
+ * __evict_stats_update --
+ * Update the stats of eviction.
+ *
+ */
+static void
+__evict_stats_update(WT_SESSION_IMPL *session, uint8_t flags)
+{
+ WT_CONNECTION_IMPL *conn;
+ uint64_t eviction_time, eviction_time_milliseconds;
+
+ conn = S2C(session);
+
+ if (session->evict_timeline.reentry_hs_eviction) {
+ session->evict_timeline.reentry_hs_evict_finish = __wt_clock(session);
+ eviction_time = WT_CLOCKDIFF_US(session->evict_timeline.reentry_hs_evict_finish,
+ session->evict_timeline.reentry_hs_evict_start);
+ } else {
+ session->evict_timeline.evict_finish = __wt_clock(session);
+ eviction_time = WT_CLOCKDIFF_US(
+ session->evict_timeline.evict_finish, session->evict_timeline.evict_start);
+ }
+ if (LF_ISSET(WT_EVICT_STATS_SUCCESS)) {
+ if (LF_ISSET(WT_EVICT_STATS_URGENT)) {
+ if (LF_ISSET(WT_EVICT_STATS_FORCE_HS))
+ WT_STAT_CONN_INCR(session, cache_eviction_force_hs_success);
+ if (LF_ISSET(WT_EVICT_STATS_CLEAN)) {
+ WT_STAT_CONN_INCR(session, cache_eviction_force_clean);
+ WT_STAT_CONN_INCRV(session, cache_eviction_force_clean_time, eviction_time);
+ } else {
+ WT_STAT_CONN_INCR(session, cache_eviction_force_dirty);
+ WT_STAT_CONN_INCRV(session, cache_eviction_force_dirty_time, eviction_time);
+ }
+ }
+
+ if (LF_ISSET(WT_EVICT_STATS_CLEAN))
+ WT_STAT_CONN_DATA_INCR(session, cache_eviction_clean);
+ else
+ WT_STAT_CONN_DATA_INCR(session, cache_eviction_dirty);
+
+ /* Count page evictions in parallel with checkpoint. */
+ if (conn->txn_global.checkpoint_running)
+ WT_STAT_CONN_INCR(session, cache_eviction_pages_in_parallel_with_checkpoint);
+ } else {
+ if (LF_ISSET(WT_EVICT_CALL_URGENT)) {
+ if (LF_ISSET(WT_EVICT_STATS_FORCE_HS))
+ WT_STAT_CONN_INCR(session, cache_eviction_force_hs_fail);
+ WT_STAT_CONN_INCR(session, cache_eviction_force_fail);
+ WT_STAT_CONN_INCRV(session, cache_eviction_force_fail_time, eviction_time);
+ }
+
+ WT_STAT_CONN_DATA_INCR(session, cache_eviction_fail);
+ }
+ if (!session->evict_timeline.reentry_hs_eviction) {
+ eviction_time_milliseconds = eviction_time / WT_THOUSAND;
+ if (eviction_time_milliseconds > conn->cache->evict_max_ms)
+ conn->cache->evict_max_ms = eviction_time_milliseconds;
+ if (eviction_time_milliseconds > WT_MINUTE * WT_THOUSAND)
+ __wt_verbose_warning(session, WT_VERB_EVICT,
+ "Eviction took more than 1 minute (%" PRIu64 "). Building disk image took %" PRIu64
+ "us. History store wrapup took %" PRIu64 "us.",
+ eviction_time,
+ WT_CLOCKDIFF_US(session->reconcile_timeline.image_build_finish,
+ session->reconcile_timeline.image_build_start),
+ WT_CLOCKDIFF_US(session->reconcile_timeline.hs_wrapup_finish,
+ session->reconcile_timeline.hs_wrapup_start));
+ } else {
+ /*
+ * We are in the reentrant history store eviction inside a data store reconciliation. Add to
+ * the total time taken to do the reentrant history store eviction.
+ */
+ session->reconcile_timeline.total_reentry_hs_eviction_time +=
+ WT_CLOCKDIFF_MS(session->evict_timeline.reentry_hs_evict_finish,
+ session->evict_timeline.reentry_hs_evict_start);
+ session->evict_timeline.reentry_hs_eviction = false;
+ }
+}
+
/*
* __wt_evict --
* Evict a page.
@@ -104,14 +187,14 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint8_t previous_state, uint32
WT_CONNECTION_IMPL *conn;
WT_DECL_RET;
WT_PAGE *page;
- uint64_t eviction_time, eviction_time_seconds;
- bool clean_page, closing, force_evict_hs, inmem_split, tree_dead;
+ uint8_t stats_flags;
+ bool clean_page, closing, inmem_split, tree_dead;
conn = S2C(session);
page = ref->page;
closing = LF_ISSET(WT_EVICT_CALL_CLOSING);
- force_evict_hs = false;
- eviction_time = eviction_time_seconds = 0;
+ stats_flags = 0;
+ clean_page = false;
__wt_verbose(
session, WT_VERB_EVICT, "page %p (%s)", (void *)page, __wt_page_type_string(page->type));
@@ -120,6 +203,16 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint8_t previous_state, uint32
if (tree_dead)
LF_SET(WT_EVICT_CALL_NO_SPLIT);
+ /* As re-entry into eviction is possible, only clear the statistics on the first entry. */
+ if (__wt_session_gen((session), (WT_GEN_EVICT)) == 0) {
+ WT_CLEAR(session->reconcile_timeline);
+ WT_CLEAR(session->evict_timeline);
+ session->evict_timeline.evict_start = __wt_clock(session);
+ } else {
+ session->evict_timeline.reentry_hs_eviction = true;
+ session->evict_timeline.reentry_hs_evict_start = __wt_clock(session);
+ }
+
/*
* Enter the eviction and split generation. If we re-enter eviction, leave the previous
* generation (eviction or split) generation (which must be as low as the current generation),
@@ -128,21 +221,19 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint8_t previous_state, uint32
WT_ENTER_GENERATION(session, WT_GEN_EVICT);
WT_ENTER_GENERATION(session, WT_GEN_SPLIT);
- WT_CLEAR(session->reconcile_timeline);
- WT_CLEAR(session->evict_timeline);
- session->evict_timeline.evict_start = __wt_clock(session);
/*
* Immediately increment the forcible eviction counter, we might do an in-memory split and not
* an eviction, which skips the other statistics.
*/
if (LF_ISSET(WT_EVICT_CALL_URGENT)) {
+ FLD_SET(stats_flags, WT_EVICT_STATS_URGENT);
WT_STAT_CONN_INCR(session, cache_eviction_force);
/*
* Track history store pages being force evicted while holding a history store cursor open.
*/
if (session->hs_cursor_counter > 0 && WT_IS_HS(session->dhandle)) {
- force_evict_hs = true;
+ FLD_SET(stats_flags, WT_EVICT_STATS_FORCE_HS);
WT_STAT_CONN_INCR(session, cache_eviction_force_hs);
}
}
@@ -210,7 +301,10 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint8_t previous_state, uint32
conn->cache->evict_max_page_size = page->memory_footprint;
/* Figure out whether reconciliation was done on the page */
- clean_page = __wt_page_evict_clean(page);
+ if (__wt_page_evict_clean(page)) {
+ clean_page = true;
+ FLD_SET(stats_flags, WT_EVICT_STATS_CLEAN);
+ }
/* Update the reference and discard the page. */
if (__wt_ref_is_root(ref))
@@ -227,59 +321,18 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint8_t previous_state, uint32
* We have loaded the new disk image and updated the tree structure. We can no longer fail after
* this point.
*/
- session->evict_timeline.evict_finish = __wt_clock(session);
- eviction_time =
- WT_CLOCKDIFF_US(session->evict_timeline.evict_finish, session->evict_timeline.evict_start);
- if (LF_ISSET(WT_EVICT_CALL_URGENT)) {
- if (force_evict_hs)
- WT_STAT_CONN_INCR(session, cache_eviction_force_hs_success);
- if (clean_page) {
- WT_STAT_CONN_INCR(session, cache_eviction_force_clean);
- WT_STAT_CONN_INCRV(session, cache_eviction_force_clean_time, eviction_time);
- } else {
- WT_STAT_CONN_INCR(session, cache_eviction_force_dirty);
- WT_STAT_CONN_INCRV(session, cache_eviction_force_dirty_time, eviction_time);
- }
- }
- if (clean_page)
- WT_STAT_CONN_DATA_INCR(session, cache_eviction_clean);
- else
- WT_STAT_CONN_DATA_INCR(session, cache_eviction_dirty);
-
- /* Count page evictions in parallel with checkpoint. */
- if (conn->txn_global.checkpoint_running)
- WT_STAT_CONN_INCR(session, cache_eviction_pages_in_parallel_with_checkpoint);
if (0) {
err:
if (!closing)
__evict_exclusive_clear(session, ref, previous_state);
- session->evict_timeline.evict_finish = __wt_clock(session);
- eviction_time = WT_CLOCKDIFF_US(
- session->evict_timeline.evict_finish, session->evict_timeline.evict_start);
- if (LF_ISSET(WT_EVICT_CALL_URGENT)) {
- if (force_evict_hs)
- WT_STAT_CONN_INCR(session, cache_eviction_force_hs_fail);
- WT_STAT_CONN_INCR(session, cache_eviction_force_fail);
- WT_STAT_CONN_INCRV(session, cache_eviction_force_fail_time, eviction_time);
- }
-
- WT_STAT_CONN_DATA_INCR(session, cache_eviction_fail);
}
done:
- eviction_time_seconds = eviction_time / WT_MILLION;
- if (eviction_time_seconds > conn->cache->evict_max_seconds)
- conn->cache->evict_max_seconds = eviction_time_seconds;
- if (eviction_time_seconds > 60)
- __wt_verbose_warning(session, WT_VERB_EVICT,
- "Eviction took more than 1 minute (%" PRIu64 "). Building disk image took %" PRIu64
- "us. History store wrapup took %" PRIu64 "us.",
- eviction_time,
- WT_CLOCKDIFF_US(session->reconcile_timeline.image_build_finish,
- session->reconcile_timeline.image_build_start),
- WT_CLOCKDIFF_US(session->reconcile_timeline.hs_wrapup_finish,
- session->reconcile_timeline.hs_wrapup_start));
+ if (ret == 0)
+ FLD_SET(stats_flags, WT_EVICT_STATS_SUCCESS);
+ __evict_stats_update(session, stats_flags);
+
/* Leave any local eviction generation. */
WT_LEAVE_GENERATION(session, WT_GEN_SPLIT);
WT_LEAVE_GENERATION(session, WT_GEN_EVICT);
diff --git a/src/third_party/wiredtiger/src/include/cache.h b/src/third_party/wiredtiger/src/include/cache.h
index 03fda6f9d71..c1840b99001 100644
--- a/src/third_party/wiredtiger/src/include/cache.h
+++ b/src/third_party/wiredtiger/src/include/cache.h
@@ -97,9 +97,10 @@ struct __wt_cache {
uint64_t app_waits; /* User threads waited for cache */
uint64_t app_evicts; /* Pages evicted by user threads */
- uint64_t evict_max_page_size; /* Largest page seen at eviction */
- uint64_t evict_max_seconds; /* Longest seconds spent at a single eviction */
- struct timespec stuck_time; /* Stuck time */
+ uint64_t evict_max_page_size; /* Largest page seen at eviction */
+ uint64_t evict_max_ms; /* Longest milliseconds spent at a single eviction */
+ uint64_t reentry_hs_eviction_ms; /* Total milliseconds spent inside a nested eviction */
+ struct timespec stuck_time; /* Stuck time */
/*
* Read information.
diff --git a/src/third_party/wiredtiger/src/include/connection.h b/src/third_party/wiredtiger/src/include/connection.h
index 192163d92fe..29db0d4e7ed 100644
--- a/src/third_party/wiredtiger/src/include/connection.h
+++ b/src/third_party/wiredtiger/src/include/connection.h
@@ -416,10 +416,11 @@ struct __wt_connection_impl {
uint32_t stat_flags; /* Options declared in flags.py */
/* Connection statistics */
+ uint64_t rec_maximum_hs_wrapup_milliseconds; /* Maximum milliseconds moving updates to history
+ store took. */
uint64_t
- rec_maximum_hs_wrapup_seconds; /* Maximum seconds moving updates to history store took. */
- uint64_t rec_maximum_image_build_seconds; /* Maximum seconds building disk image took. */
- uint64_t rec_maximum_seconds; /* Maximum seconds reconciliation took. */
+ rec_maximum_image_build_milliseconds; /* Maximum milliseconds building disk image took. */
+ uint64_t rec_maximum_milliseconds; /* Maximum milliseconds reconciliation took. */
WT_CONNECTION_STATS *stats[WT_COUNTER_SLOTS];
WT_CONNECTION_STATS *stat_array;
diff --git a/src/third_party/wiredtiger/src/include/session.h b/src/third_party/wiredtiger/src/include/session.h
index 1f8c88cabe5..43a336eb214 100644
--- a/src/third_party/wiredtiger/src/include/session.h
+++ b/src/third_party/wiredtiger/src/include/session.h
@@ -151,6 +151,7 @@ struct __wt_session_impl {
uint64_t hs_wrapup_start;
uint64_t hs_wrapup_finish;
uint64_t reconcile_finish;
+ uint64_t total_reentry_hs_eviction_time;
} reconcile_timeline;
/*
@@ -159,7 +160,10 @@ struct __wt_session_impl {
*/
struct __wt_evict_timeline {
uint64_t evict_start;
+ uint64_t reentry_hs_evict_start;
+ uint64_t reentry_hs_evict_finish;
uint64_t evict_finish;
+ bool reentry_hs_eviction;
} evict_timeline;
WT_ITEM err; /* Error buffer */
diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h
index 16ba8423160..16892e8981e 100644
--- a/src/third_party/wiredtiger/src/include/stat.h
+++ b/src/third_party/wiredtiger/src/include/stat.h
@@ -491,8 +491,8 @@ struct __wt_connection_stats {
int64_t cache_eviction_split_internal;
int64_t cache_eviction_split_leaf;
int64_t cache_bytes_max;
+ int64_t cache_eviction_maximum_milliseconds;
int64_t cache_eviction_maximum_page_size;
- int64_t cache_eviction_maximum_seconds;
int64_t cache_eviction_dirty;
int64_t cache_eviction_app_dirty;
int64_t cache_timed_out_ops;
@@ -528,6 +528,7 @@ struct __wt_connection_stats {
int64_t cache_reverse_splits_skipped_vlcs;
int64_t cache_hs_insert_full_update;
int64_t cache_hs_insert_reverse_modify;
+ int64_t cache_reentry_hs_eviction_milliseconds;
int64_t cache_bytes_internal;
int64_t cache_bytes_leaf;
int64_t cache_bytes_dirty;
@@ -766,9 +767,9 @@ struct __wt_connection_stats {
int64_t rec_time_window_bytes_txn;
int64_t rec_page_delete_fast;
int64_t rec_overflow_key_leaf;
- int64_t rec_maximum_seconds;
- int64_t rec_maximum_image_build_seconds;
- int64_t rec_maximum_hs_wrapup_seconds;
+ int64_t rec_maximum_milliseconds;
+ int64_t rec_maximum_image_build_milliseconds;
+ int64_t rec_maximum_hs_wrapup_milliseconds;
int64_t rec_pages;
int64_t rec_pages_eviction;
int64_t rec_pages_with_prepare;
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in
index 09dc6909694..f79babe752b 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger.in
+++ b/src/third_party/wiredtiger/src/include/wiredtiger.in
@@ -5726,10 +5726,10 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1150
/*! cache: maximum bytes configured */
#define WT_STAT_CONN_CACHE_BYTES_MAX 1151
+/*! cache: maximum milliseconds spent at a single eviction */
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_MILLISECONDS 1152
/*! cache: maximum page size seen at eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1152
-/*! cache: maximum seconds spent at a single eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_SECONDS 1153
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1153
/*! cache: modified pages evicted */
#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1154
/*! cache: modified pages evicted by application threads */
@@ -5821,975 +5821,980 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_HS_INSERT_FULL_UPDATE 1187
/*! cache: the number of times reverse modify inserted to history store */
#define WT_STAT_CONN_CACHE_HS_INSERT_REVERSE_MODIFY 1188
+/*!
+ * cache: total milliseconds spent inside reentrant history store
+ * evictions in a reconciliation
+ */
+#define WT_STAT_CONN_CACHE_REENTRY_HS_EVICTION_MILLISECONDS 1189
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1189
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1190
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1190
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1191
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1191
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1192
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1192
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1193
/*! cache: uncommitted truncate blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_UNCOMMITTED_TRUNCATE 1193
+#define WT_STAT_CONN_CACHE_EVICTION_BLOCKED_UNCOMMITTED_TRUNCATE 1194
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1194
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1195
/*! capacity: background fsync file handles considered */
-#define WT_STAT_CONN_FSYNC_ALL_FH_TOTAL 1195
+#define WT_STAT_CONN_FSYNC_ALL_FH_TOTAL 1196
/*! capacity: background fsync file handles synced */
-#define WT_STAT_CONN_FSYNC_ALL_FH 1196
+#define WT_STAT_CONN_FSYNC_ALL_FH 1197
/*! capacity: background fsync time (msecs) */
-#define WT_STAT_CONN_FSYNC_ALL_TIME 1197
+#define WT_STAT_CONN_FSYNC_ALL_TIME 1198
/*! capacity: bytes read */
-#define WT_STAT_CONN_CAPACITY_BYTES_READ 1198
+#define WT_STAT_CONN_CAPACITY_BYTES_READ 1199
/*! capacity: bytes written for checkpoint */
-#define WT_STAT_CONN_CAPACITY_BYTES_CKPT 1199
+#define WT_STAT_CONN_CAPACITY_BYTES_CKPT 1200
/*! capacity: bytes written for eviction */
-#define WT_STAT_CONN_CAPACITY_BYTES_EVICT 1200
+#define WT_STAT_CONN_CAPACITY_BYTES_EVICT 1201
/*! capacity: bytes written for log */
-#define WT_STAT_CONN_CAPACITY_BYTES_LOG 1201
+#define WT_STAT_CONN_CAPACITY_BYTES_LOG 1202
/*! capacity: bytes written total */
-#define WT_STAT_CONN_CAPACITY_BYTES_WRITTEN 1202
+#define WT_STAT_CONN_CAPACITY_BYTES_WRITTEN 1203
/*! capacity: threshold to call fsync */
-#define WT_STAT_CONN_CAPACITY_THRESHOLD 1203
+#define WT_STAT_CONN_CAPACITY_THRESHOLD 1204
/*! capacity: time waiting due to total capacity (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_TOTAL 1204
+#define WT_STAT_CONN_CAPACITY_TIME_TOTAL 1205
/*! capacity: time waiting during checkpoint (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_CKPT 1205
+#define WT_STAT_CONN_CAPACITY_TIME_CKPT 1206
/*! capacity: time waiting during eviction (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_EVICT 1206
+#define WT_STAT_CONN_CAPACITY_TIME_EVICT 1207
/*! capacity: time waiting during logging (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_LOG 1207
+#define WT_STAT_CONN_CAPACITY_TIME_LOG 1208
/*! capacity: time waiting during read (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_READ 1208
+#define WT_STAT_CONN_CAPACITY_TIME_READ 1209
/*! checkpoint-cleanup: pages added for eviction */
-#define WT_STAT_CONN_CC_PAGES_EVICT 1209
+#define WT_STAT_CONN_CC_PAGES_EVICT 1210
/*! checkpoint-cleanup: pages removed */
-#define WT_STAT_CONN_CC_PAGES_REMOVED 1210
+#define WT_STAT_CONN_CC_PAGES_REMOVED 1211
/*! checkpoint-cleanup: pages skipped during tree walk */
-#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1211
+#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1212
/*! checkpoint-cleanup: pages visited */
-#define WT_STAT_CONN_CC_PAGES_VISITED 1212
+#define WT_STAT_CONN_CC_PAGES_VISITED 1213
/*! chunk-cache: aggregate number of spanned chunks on read */
-#define WT_STAT_CONN_CHUNK_CACHE_SPANS_CHUNKS_READ 1213
+#define WT_STAT_CONN_CHUNK_CACHE_SPANS_CHUNKS_READ 1214
/*! chunk-cache: aggregate number of spanned chunks on remove */
-#define WT_STAT_CONN_CHUNK_CACHE_SPANS_CHUNKS_REMOVE 1214
+#define WT_STAT_CONN_CHUNK_CACHE_SPANS_CHUNKS_REMOVE 1215
/*! chunk-cache: chunks evicted */
-#define WT_STAT_CONN_CHUNK_CACHE_CHUNKS_EVICTED 1215
+#define WT_STAT_CONN_CHUNK_CACHE_CHUNKS_EVICTED 1216
/*! chunk-cache: chunks removed on becoming invalid */
-#define WT_STAT_CONN_CHUNK_CACHE_CHUNKS_INVALIDATED 1216
+#define WT_STAT_CONN_CHUNK_CACHE_CHUNKS_INVALIDATED 1217
/*! chunk-cache: could not allocate due to exceeding capacity */
-#define WT_STAT_CONN_CHUNK_CACHE_EXCEEDED_CAPACITY 1217
+#define WT_STAT_CONN_CHUNK_CACHE_EXCEEDED_CAPACITY 1218
/*! chunk-cache: lookups */
-#define WT_STAT_CONN_CHUNK_CACHE_LOOKUPS 1218
+#define WT_STAT_CONN_CHUNK_CACHE_LOOKUPS 1219
/*! chunk-cache: number of misses */
-#define WT_STAT_CONN_CHUNK_CACHE_MISSES 1219
+#define WT_STAT_CONN_CHUNK_CACHE_MISSES 1220
/*! chunk-cache: number of times a read from storage failed */
-#define WT_STAT_CONN_CHUNK_CACHE_IO_FAILED 1220
+#define WT_STAT_CONN_CHUNK_CACHE_IO_FAILED 1221
/*! chunk-cache: retried accessing a chunk while I/O was in progress */
-#define WT_STAT_CONN_CHUNK_CACHE_RETRIES 1221
+#define WT_STAT_CONN_CHUNK_CACHE_RETRIES 1222
/*! chunk-cache: timed out due to too many retries */
-#define WT_STAT_CONN_CHUNK_CACHE_TOOMANY_RETRIES 1222
+#define WT_STAT_CONN_CHUNK_CACHE_TOOMANY_RETRIES 1223
/*! chunk-cache: total bytes used by the cache */
-#define WT_STAT_CONN_CHUNK_CACHE_BYTES_INUSE 1223
+#define WT_STAT_CONN_CHUNK_CACHE_BYTES_INUSE 1224
/*! chunk-cache: total chunks held by the chunk cache */
-#define WT_STAT_CONN_CHUNK_CACHE_CHUNKS_INUSE 1224
+#define WT_STAT_CONN_CHUNK_CACHE_CHUNKS_INUSE 1225
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1225
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1226
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1226
+#define WT_STAT_CONN_COND_AUTO_WAIT 1227
/*!
* connection: auto adjusting condition wait raced to update timeout and
* skipped updating
*/
-#define WT_STAT_CONN_COND_AUTO_WAIT_SKIPPED 1227
+#define WT_STAT_CONN_COND_AUTO_WAIT_SKIPPED 1228
/*! connection: detected system time went backwards */
-#define WT_STAT_CONN_TIME_TRAVEL 1228
+#define WT_STAT_CONN_TIME_TRAVEL 1229
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1229
+#define WT_STAT_CONN_FILE_OPEN 1230
/*! connection: hash bucket array size for data handles */
-#define WT_STAT_CONN_BUCKETS_DH 1230
+#define WT_STAT_CONN_BUCKETS_DH 1231
/*! connection: hash bucket array size general */
-#define WT_STAT_CONN_BUCKETS 1231
+#define WT_STAT_CONN_BUCKETS 1232
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1232
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1233
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1233
+#define WT_STAT_CONN_MEMORY_FREE 1234
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1234
+#define WT_STAT_CONN_MEMORY_GROW 1235
/*! connection: number of sessions without a sweep for 5+ minutes */
-#define WT_STAT_CONN_NO_SESSION_SWEEP_5MIN 1235
+#define WT_STAT_CONN_NO_SESSION_SWEEP_5MIN 1236
/*! connection: number of sessions without a sweep for 60+ minutes */
-#define WT_STAT_CONN_NO_SESSION_SWEEP_60MIN 1236
+#define WT_STAT_CONN_NO_SESSION_SWEEP_60MIN 1237
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1237
+#define WT_STAT_CONN_COND_WAIT 1238
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1238
+#define WT_STAT_CONN_RWLOCK_READ 1239
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1239
+#define WT_STAT_CONN_RWLOCK_WRITE 1240
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1240
+#define WT_STAT_CONN_FSYNC_IO 1241
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1241
+#define WT_STAT_CONN_READ_IO 1242
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1242
+#define WT_STAT_CONN_WRITE_IO 1243
/*! cursor: Total number of entries skipped by cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1243
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1244
/*! cursor: Total number of entries skipped by cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1244
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1245
/*!
* cursor: Total number of entries skipped to position the history store
* cursor
*/
-#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1245
+#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1246
/*!
* cursor: Total number of times a search near has exited due to prefix
* config
*/
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1246
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1247
/*!
* cursor: Total number of times cursor fails to temporarily release
* pinned page to encourage eviction of hot or large page
*/
-#define WT_STAT_CONN_CURSOR_REPOSITION_FAILED 1247
+#define WT_STAT_CONN_CURSOR_REPOSITION_FAILED 1248
/*!
* cursor: Total number of times cursor temporarily releases pinned page
* to encourage eviction of hot or large page
*/
-#define WT_STAT_CONN_CURSOR_REPOSITION 1248
+#define WT_STAT_CONN_CURSOR_REPOSITION 1249
/*! cursor: cached cursor count */
-#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1249
+#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1250
/*! cursor: cursor bound calls that return an error */
-#define WT_STAT_CONN_CURSOR_BOUND_ERROR 1250
+#define WT_STAT_CONN_CURSOR_BOUND_ERROR 1251
/*! cursor: cursor bounds cleared from reset */
-#define WT_STAT_CONN_CURSOR_BOUNDS_RESET 1251
+#define WT_STAT_CONN_CURSOR_BOUNDS_RESET 1252
/*! cursor: cursor bounds comparisons performed */
-#define WT_STAT_CONN_CURSOR_BOUNDS_COMPARISONS 1252
+#define WT_STAT_CONN_CURSOR_BOUNDS_COMPARISONS 1253
/*! cursor: cursor bounds next called on an unpositioned cursor */
-#define WT_STAT_CONN_CURSOR_BOUNDS_NEXT_UNPOSITIONED 1253
+#define WT_STAT_CONN_CURSOR_BOUNDS_NEXT_UNPOSITIONED 1254
/*! cursor: cursor bounds next early exit */
-#define WT_STAT_CONN_CURSOR_BOUNDS_NEXT_EARLY_EXIT 1254
+#define WT_STAT_CONN_CURSOR_BOUNDS_NEXT_EARLY_EXIT 1255
/*! cursor: cursor bounds prev called on an unpositioned cursor */
-#define WT_STAT_CONN_CURSOR_BOUNDS_PREV_UNPOSITIONED 1255
+#define WT_STAT_CONN_CURSOR_BOUNDS_PREV_UNPOSITIONED 1256
/*! cursor: cursor bounds prev early exit */
-#define WT_STAT_CONN_CURSOR_BOUNDS_PREV_EARLY_EXIT 1256
+#define WT_STAT_CONN_CURSOR_BOUNDS_PREV_EARLY_EXIT 1257
/*! cursor: cursor bounds search early exit */
-#define WT_STAT_CONN_CURSOR_BOUNDS_SEARCH_EARLY_EXIT 1257
+#define WT_STAT_CONN_CURSOR_BOUNDS_SEARCH_EARLY_EXIT 1258
/*! cursor: cursor bounds search near call repositioned cursor */
-#define WT_STAT_CONN_CURSOR_BOUNDS_SEARCH_NEAR_REPOSITIONED_CURSOR 1258
+#define WT_STAT_CONN_CURSOR_BOUNDS_SEARCH_NEAR_REPOSITIONED_CURSOR 1259
/*! cursor: cursor bulk loaded cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT_BULK 1259
+#define WT_STAT_CONN_CURSOR_INSERT_BULK 1260
/*! cursor: cursor cache calls that return an error */
-#define WT_STAT_CONN_CURSOR_CACHE_ERROR 1260
+#define WT_STAT_CONN_CURSOR_CACHE_ERROR 1261
/*! cursor: cursor close calls that result in cache */
-#define WT_STAT_CONN_CURSOR_CACHE 1261
+#define WT_STAT_CONN_CURSOR_CACHE 1262
/*! cursor: cursor close calls that return an error */
-#define WT_STAT_CONN_CURSOR_CLOSE_ERROR 1262
+#define WT_STAT_CONN_CURSOR_CLOSE_ERROR 1263
/*! cursor: cursor compare calls that return an error */
-#define WT_STAT_CONN_CURSOR_COMPARE_ERROR 1263
+#define WT_STAT_CONN_CURSOR_COMPARE_ERROR 1264
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1264
+#define WT_STAT_CONN_CURSOR_CREATE 1265
/*! cursor: cursor equals calls that return an error */
-#define WT_STAT_CONN_CURSOR_EQUALS_ERROR 1265
+#define WT_STAT_CONN_CURSOR_EQUALS_ERROR 1266
/*! cursor: cursor get key calls that return an error */
-#define WT_STAT_CONN_CURSOR_GET_KEY_ERROR 1266
+#define WT_STAT_CONN_CURSOR_GET_KEY_ERROR 1267
/*! cursor: cursor get value calls that return an error */
-#define WT_STAT_CONN_CURSOR_GET_VALUE_ERROR 1267
+#define WT_STAT_CONN_CURSOR_GET_VALUE_ERROR 1268
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1268
+#define WT_STAT_CONN_CURSOR_INSERT 1269
/*! cursor: cursor insert calls that return an error */
-#define WT_STAT_CONN_CURSOR_INSERT_ERROR 1269
+#define WT_STAT_CONN_CURSOR_INSERT_ERROR 1270
/*! cursor: cursor insert check calls that return an error */
-#define WT_STAT_CONN_CURSOR_INSERT_CHECK_ERROR 1270
+#define WT_STAT_CONN_CURSOR_INSERT_CHECK_ERROR 1271
/*! cursor: cursor insert key and value bytes */
-#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1271
+#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1272
/*! cursor: cursor largest key calls that return an error */
-#define WT_STAT_CONN_CURSOR_LARGEST_KEY_ERROR 1272
+#define WT_STAT_CONN_CURSOR_LARGEST_KEY_ERROR 1273
/*! cursor: cursor modify calls */
-#define WT_STAT_CONN_CURSOR_MODIFY 1273
+#define WT_STAT_CONN_CURSOR_MODIFY 1274
/*! cursor: cursor modify calls that return an error */
-#define WT_STAT_CONN_CURSOR_MODIFY_ERROR 1274
+#define WT_STAT_CONN_CURSOR_MODIFY_ERROR 1275
/*! cursor: cursor modify key and value bytes affected */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1275
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1276
/*! cursor: cursor modify value bytes modified */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1276
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1277
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1277
+#define WT_STAT_CONN_CURSOR_NEXT 1278
/*! cursor: cursor next calls that return an error */
-#define WT_STAT_CONN_CURSOR_NEXT_ERROR 1278
+#define WT_STAT_CONN_CURSOR_NEXT_ERROR 1279
/*!
* cursor: cursor next calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1279
+#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1280
/*!
* cursor: cursor next calls that skip greater than 1 and fewer than 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1280
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1281
/*!
* cursor: cursor next calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1281
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1282
/*! cursor: cursor next random calls that return an error */
-#define WT_STAT_CONN_CURSOR_NEXT_RANDOM_ERROR 1282
+#define WT_STAT_CONN_CURSOR_NEXT_RANDOM_ERROR 1283
/*! cursor: cursor operation restarted */
-#define WT_STAT_CONN_CURSOR_RESTART 1283
+#define WT_STAT_CONN_CURSOR_RESTART 1284
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1284
+#define WT_STAT_CONN_CURSOR_PREV 1285
/*! cursor: cursor prev calls that return an error */
-#define WT_STAT_CONN_CURSOR_PREV_ERROR 1285
+#define WT_STAT_CONN_CURSOR_PREV_ERROR 1286
/*!
* cursor: cursor prev calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1286
+#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1287
/*!
* cursor: cursor prev calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1287
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1288
/*! cursor: cursor prev calls that skip less than 100 entries */
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1288
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1289
/*! cursor: cursor reconfigure calls that return an error */
-#define WT_STAT_CONN_CURSOR_RECONFIGURE_ERROR 1289
+#define WT_STAT_CONN_CURSOR_RECONFIGURE_ERROR 1290
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1290
+#define WT_STAT_CONN_CURSOR_REMOVE 1291
/*! cursor: cursor remove calls that return an error */
-#define WT_STAT_CONN_CURSOR_REMOVE_ERROR 1291
+#define WT_STAT_CONN_CURSOR_REMOVE_ERROR 1292
/*! cursor: cursor remove key bytes removed */
-#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1292
+#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1293
/*! cursor: cursor reopen calls that return an error */
-#define WT_STAT_CONN_CURSOR_REOPEN_ERROR 1293
+#define WT_STAT_CONN_CURSOR_REOPEN_ERROR 1294
/*! cursor: cursor reserve calls */
-#define WT_STAT_CONN_CURSOR_RESERVE 1294
+#define WT_STAT_CONN_CURSOR_RESERVE 1295
/*! cursor: cursor reserve calls that return an error */
-#define WT_STAT_CONN_CURSOR_RESERVE_ERROR 1295
+#define WT_STAT_CONN_CURSOR_RESERVE_ERROR 1296
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1296
+#define WT_STAT_CONN_CURSOR_RESET 1297
/*! cursor: cursor reset calls that return an error */
-#define WT_STAT_CONN_CURSOR_RESET_ERROR 1297
+#define WT_STAT_CONN_CURSOR_RESET_ERROR 1298
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1298
+#define WT_STAT_CONN_CURSOR_SEARCH 1299
/*! cursor: cursor search calls that return an error */
-#define WT_STAT_CONN_CURSOR_SEARCH_ERROR 1299
+#define WT_STAT_CONN_CURSOR_SEARCH_ERROR 1300
/*! cursor: cursor search history store calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_HS 1300
+#define WT_STAT_CONN_CURSOR_SEARCH_HS 1301
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1301
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1302
/*! cursor: cursor search near calls that return an error */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_ERROR 1302
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_ERROR 1303
/*! cursor: cursor sweep buckets */
-#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1303
+#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1304
/*! cursor: cursor sweep cursors closed */
-#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1304
+#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1305
/*! cursor: cursor sweep cursors examined */
-#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1305
+#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1306
/*! cursor: cursor sweeps */
-#define WT_STAT_CONN_CURSOR_SWEEP 1306
+#define WT_STAT_CONN_CURSOR_SWEEP 1307
/*! cursor: cursor truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1307
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1308
/*! cursor: cursor truncates performed on individual keys */
-#define WT_STAT_CONN_CURSOR_TRUNCATE_KEYS_DELETED 1308
+#define WT_STAT_CONN_CURSOR_TRUNCATE_KEYS_DELETED 1309
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1309
+#define WT_STAT_CONN_CURSOR_UPDATE 1310
/*! cursor: cursor update calls that return an error */
-#define WT_STAT_CONN_CURSOR_UPDATE_ERROR 1310
+#define WT_STAT_CONN_CURSOR_UPDATE_ERROR 1311
/*! cursor: cursor update key and value bytes */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1311
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1312
/*! cursor: cursor update value size change */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1312
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1313
/*! cursor: cursors reused from cache */
-#define WT_STAT_CONN_CURSOR_REOPEN 1313
+#define WT_STAT_CONN_CURSOR_REOPEN 1314
/*! cursor: open cursor count */
-#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1314
+#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1315
/*! data-handle: connection data handle size */
-#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1315
+#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1316
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1316
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1317
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1317
+#define WT_STAT_CONN_DH_SWEEP_REF 1318
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1318
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1319
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1319
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1320
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1320
+#define WT_STAT_CONN_DH_SWEEP_TOD 1321
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1321
+#define WT_STAT_CONN_DH_SWEEPS 1322
/*!
* data-handle: connection sweeps skipped due to checkpoint gathering
* handles
*/
-#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1322
+#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1323
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1323
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1324
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1324
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1325
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1325
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1326
/*! lock: checkpoint lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1326
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1327
/*! lock: checkpoint lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1327
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1328
/*! lock: dhandle lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1328
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1329
/*! lock: dhandle lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1329
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1330
/*! lock: dhandle read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1330
+#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1331
/*! lock: dhandle write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1331
+#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1332
/*!
* lock: durable timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1332
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1333
/*!
* lock: durable timestamp queue lock internal thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1333
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1334
/*! lock: durable timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1334
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1335
/*! lock: durable timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1335
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1336
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1336
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1337
/*! lock: metadata lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1337
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1338
/*! lock: metadata lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1338
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1339
/*!
* lock: read timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1339
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1340
/*! lock: read timestamp queue lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1340
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1341
/*! lock: read timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1341
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1342
/*! lock: read timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1342
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1343
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1343
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1344
/*! lock: schema lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1344
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1345
/*! lock: schema lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1345
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1346
/*!
* lock: table lock application thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1346
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1347
/*!
* lock: table lock internal thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1347
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1348
/*! lock: table read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1348
+#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1349
/*! lock: table write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1349
+#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1350
/*! lock: txn global lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1350
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1351
/*! lock: txn global lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1351
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1352
/*! lock: txn global read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1352
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1353
/*! lock: txn global write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1353
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1354
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1354
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1355
/*! log: force log remove time sleeping (usecs) */
-#define WT_STAT_CONN_LOG_FORCE_REMOVE_SLEEP 1355
+#define WT_STAT_CONN_LOG_FORCE_REMOVE_SLEEP 1356
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1356
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1357
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1357
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1358
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1358
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1359
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1359
+#define WT_STAT_CONN_LOG_FLUSH 1360
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1360
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1361
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1361
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1362
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1362
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1363
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1363
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1364
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1364
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1365
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1365
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1366
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1366
+#define WT_STAT_CONN_LOG_SCANS 1367
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1367
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1368
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1368
+#define WT_STAT_CONN_LOG_WRITE_LSN 1369
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1369
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1370
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1370
+#define WT_STAT_CONN_LOG_SYNC 1371
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1371
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1372
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1372
+#define WT_STAT_CONN_LOG_SYNC_DIR 1373
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1373
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1374
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1374
+#define WT_STAT_CONN_LOG_WRITES 1375
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1375
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1376
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1376
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1377
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1377
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1378
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1378
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1379
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1379
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1380
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1380
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1381
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1381
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1382
/*! log: slot close lost race */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1382
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1383
/*! log: slot close unbuffered waits */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1383
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1384
/*! log: slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1384
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1385
/*! log: slot join atomic update races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1385
+#define WT_STAT_CONN_LOG_SLOT_RACES 1386
/*! log: slot join calls atomic updates raced */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1386
+#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1387
/*! log: slot join calls did not yield */
-#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1387
+#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1388
/*! log: slot join calls found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1388
+#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1389
/*! log: slot join calls slept */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1389
+#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1390
/*! log: slot join calls yielded */
-#define WT_STAT_CONN_LOG_SLOT_YIELD 1390
+#define WT_STAT_CONN_LOG_SLOT_YIELD 1391
/*! log: slot join found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1391
+#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1392
/*! log: slot joins yield time (usecs) */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1392
+#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1393
/*! log: slot transitions unable to find free slot */
-#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1393
+#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1394
/*! log: slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1394
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1395
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1395
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1396
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1396
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1397
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1397
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1398
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1398
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1399
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1399
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1400
/*! perf: file system read latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1400
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1401
/*! perf: file system read latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1401
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1402
/*! perf: file system read latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1402
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1403
/*! perf: file system read latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1403
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1404
/*! perf: file system read latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1404
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1405
/*! perf: file system read latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1405
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1406
/*! perf: file system write latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1406
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1407
/*! perf: file system write latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1407
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1408
/*! perf: file system write latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1408
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1409
/*! perf: file system write latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1409
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1410
/*! perf: file system write latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1410
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1411
/*! perf: file system write latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1411
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1412
/*! perf: operation read latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1412
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1413
/*! perf: operation read latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1413
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1414
/*! perf: operation read latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1414
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1415
/*! perf: operation read latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1415
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1416
/*! perf: operation read latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1416
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1417
/*! perf: operation write latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1417
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1418
/*! perf: operation write latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1418
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1419
/*! perf: operation write latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1419
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1420
/*! perf: operation write latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1420
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1421
/*! perf: operation write latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1421
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1422
/*! reconciliation: VLCS pages explicitly reconciled as empty */
-#define WT_STAT_CONN_REC_VLCS_EMPTIED_PAGES 1422
+#define WT_STAT_CONN_REC_VLCS_EMPTIED_PAGES 1423
/*! reconciliation: approximate byte size of timestamps in pages written */
-#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1423
+#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1424
/*!
* reconciliation: approximate byte size of transaction IDs in pages
* written
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1424
+#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1425
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1425
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1426
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1426
-/*! reconciliation: maximum seconds spent in a reconciliation call */
-#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1427
+#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1427
+/*! reconciliation: maximum milliseconds spent in a reconciliation call */
+#define WT_STAT_CONN_REC_MAXIMUM_MILLISECONDS 1428
/*!
- * reconciliation: maximum seconds spent in building a disk image in a
- * reconciliation
+ * reconciliation: maximum milliseconds spent in building a disk image in
+ * a reconciliation
*/
-#define WT_STAT_CONN_REC_MAXIMUM_IMAGE_BUILD_SECONDS 1428
+#define WT_STAT_CONN_REC_MAXIMUM_IMAGE_BUILD_MILLISECONDS 1429
/*!
- * reconciliation: maximum seconds spent in moving updates to the history
- * store in a reconciliation
+ * reconciliation: maximum milliseconds spent in moving updates to the
+ * history store in a reconciliation
*/
-#define WT_STAT_CONN_REC_MAXIMUM_HS_WRAPUP_SECONDS 1429
+#define WT_STAT_CONN_REC_MAXIMUM_HS_WRAPUP_MILLISECONDS 1430
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1430
+#define WT_STAT_CONN_REC_PAGES 1431
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1431
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1432
/*!
* reconciliation: page reconciliation calls that resulted in values with
* prepared transaction metadata
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1432
+#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1433
/*!
* reconciliation: page reconciliation calls that resulted in values with
* timestamps
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_TS 1433
+#define WT_STAT_CONN_REC_PAGES_WITH_TS 1434
/*!
* reconciliation: page reconciliation calls that resulted in values with
* transaction ids
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1434
+#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1435
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1435
+#define WT_STAT_CONN_REC_PAGE_DELETE 1436
/*!
* reconciliation: pages written including an aggregated newest start
* durable timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1436
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1437
/*!
* reconciliation: pages written including an aggregated newest stop
* durable timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1437
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1438
/*!
* reconciliation: pages written including an aggregated newest stop
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1438
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1439
/*!
* reconciliation: pages written including an aggregated newest stop
* transaction ID
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1439
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1440
/*!
* reconciliation: pages written including an aggregated newest
* transaction ID
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1440
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1441
/*!
* reconciliation: pages written including an aggregated oldest start
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1441
+#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1442
/*! reconciliation: pages written including an aggregated prepare */
-#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1442
+#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1443
/*! reconciliation: pages written including at least one prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1443
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1444
/*!
* reconciliation: pages written including at least one start durable
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1444
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1445
/*! reconciliation: pages written including at least one start timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1445
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1446
/*!
* reconciliation: pages written including at least one start transaction
* ID
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1446
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1447
/*!
* reconciliation: pages written including at least one stop durable
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1447
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1448
/*! reconciliation: pages written including at least one stop timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1448
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1449
/*!
* reconciliation: pages written including at least one stop transaction
* ID
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1449
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1450
/*! reconciliation: records written including a prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1450
+#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1451
/*! reconciliation: records written including a start durable timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1451
+#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1452
/*! reconciliation: records written including a start timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1452
+#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1453
/*! reconciliation: records written including a start transaction ID */
-#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1453
+#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1454
/*! reconciliation: records written including a stop durable timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1454
+#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1455
/*! reconciliation: records written including a stop timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1455
+#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1456
/*! reconciliation: records written including a stop transaction ID */
-#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1456
+#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1457
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1457
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1458
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1458
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1459
/*! session: attempts to remove a local object and the object is in use */
-#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1459
+#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1460
/*! session: flush_tier failed calls */
-#define WT_STAT_CONN_FLUSH_TIER_FAIL 1460
+#define WT_STAT_CONN_FLUSH_TIER_FAIL 1461
/*! session: flush_tier operation calls */
-#define WT_STAT_CONN_FLUSH_TIER 1461
+#define WT_STAT_CONN_FLUSH_TIER 1462
/*! session: flush_tier tables skipped due to no checkpoint */
-#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1462
+#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1463
/*! session: flush_tier tables switched */
-#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1463
+#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1464
/*! session: local objects removed */
-#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1464
+#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1465
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1465
+#define WT_STAT_CONN_SESSION_OPEN 1466
/*! session: session query timestamp calls */
-#define WT_STAT_CONN_SESSION_QUERY_TS 1466
+#define WT_STAT_CONN_SESSION_QUERY_TS 1467
/*! session: table alter failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1467
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1468
/*! session: table alter successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1468
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1469
/*! session: table alter triggering checkpoint calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1469
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1470
/*! session: table alter unchanged and skipped */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1470
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1471
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1471
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1472
/*! session: table compact failed calls due to cache pressure */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1472
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1473
/*! session: table compact running */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1473
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1474
/*! session: table compact skipped as process would not reduce file size */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1474
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1475
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1475
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1476
/*! session: table compact timeout */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1476
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1477
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1477
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1478
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1478
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1479
/*! session: table create with import failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_IMPORT_FAIL 1479
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_IMPORT_FAIL 1480
/*! session: table create with import successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_IMPORT_SUCCESS 1480
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_IMPORT_SUCCESS 1481
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1481
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1482
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1482
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1483
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1483
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1484
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1484
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1485
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1485
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1486
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1486
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1487
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1487
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1488
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1488
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1489
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1489
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1490
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1490
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1491
/*! session: tiered operations dequeued and processed */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1491
+#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1492
/*! session: tiered operations removed without processing */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_REMOVED 1492
+#define WT_STAT_CONN_TIERED_WORK_UNITS_REMOVED 1493
/*! session: tiered operations scheduled */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1493
+#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1494
/*! session: tiered storage local retention time (secs) */
-#define WT_STAT_CONN_TIERED_RETENTION 1494
+#define WT_STAT_CONN_TIERED_RETENTION 1495
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1495
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1496
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1496
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1497
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1497
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1498
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1498
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1499
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1499
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1500
/*!
* thread-yield: connection close blocked waiting for transaction state
* stabilization
*/
-#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1500
+#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1501
/*! thread-yield: connection close yielded for lsm manager shutdown */
-#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1501
+#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1502
/*! thread-yield: data handle lock yielded */
-#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1502
+#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1503
/*!
* thread-yield: get reference for page index and slot time sleeping
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1503
+#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1504
/*! thread-yield: page access yielded due to prepare state change */
-#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1504
+#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1505
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1505
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1506
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1506
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1507
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1507
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1508
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1508
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1509
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1509
+#define WT_STAT_CONN_PAGE_SLEEP 1510
/*!
* thread-yield: page delete rollback time sleeping for state change
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1510
+#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1511
/*! thread-yield: page reconciliation yielded due to child modification */
-#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1511
+#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1512
/*! transaction: Number of prepared updates */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1512
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1513
/*! transaction: Number of prepared updates committed */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1513
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1514
/*! transaction: Number of prepared updates repeated on the same key */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1514
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1515
/*! transaction: Number of prepared updates rolled back */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1515
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1516
/*! transaction: checkpoint has acquired a snapshot for its transaction */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SNAPSHOT_ACQUIRED 1516
+#define WT_STAT_CONN_TXN_CHECKPOINT_SNAPSHOT_ACQUIRED 1517
/*! transaction: number of times overflow removed value is read */
-#define WT_STAT_CONN_TXN_READ_OVERFLOW_REMOVE 1517
+#define WT_STAT_CONN_TXN_READ_OVERFLOW_REMOVE 1518
/*! transaction: oldest pinned transaction ID rolled back for eviction */
-#define WT_STAT_CONN_TXN_ROLLBACK_OLDEST_PINNED 1518
+#define WT_STAT_CONN_TXN_ROLLBACK_OLDEST_PINNED 1519
/*! transaction: prepared transactions */
-#define WT_STAT_CONN_TXN_PREPARE 1519
+#define WT_STAT_CONN_TXN_PREPARE 1520
/*! transaction: prepared transactions committed */
-#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1520
+#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1521
/*! transaction: prepared transactions currently active */
-#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1521
+#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1522
/*! transaction: prepared transactions rolled back */
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1522
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1523
/*! transaction: query timestamp calls */
-#define WT_STAT_CONN_TXN_QUERY_TS 1523
+#define WT_STAT_CONN_TXN_QUERY_TS 1524
/*! transaction: race to read prepared update retry */
-#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1524
+#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1525
/*! transaction: rollback to stable calls */
-#define WT_STAT_CONN_TXN_RTS 1525
+#define WT_STAT_CONN_TXN_RTS 1526
/*!
* transaction: rollback to stable history store keys that would have
* been swept in non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS_DRYRUN 1526
+#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS_DRYRUN 1527
/*!
* 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 1527
+#define WT_STAT_CONN_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 1528
/*! transaction: rollback to stable inconsistent checkpoint */
-#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1528
+#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1529
/*! transaction: rollback to stable keys removed */
-#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1529
+#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1530
/*! transaction: rollback to stable keys restored */
-#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1530
+#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1531
/*!
* transaction: rollback to stable keys that would have been removed in
* non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED_DRYRUN 1531
+#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED_DRYRUN 1532
/*!
* transaction: rollback to stable keys that would have been restored in
* non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED_DRYRUN 1532
+#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED_DRYRUN 1533
/*! transaction: rollback to stable pages visited */
-#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1533
+#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1534
/*! transaction: rollback to stable restored tombstones from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1534
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1535
/*! transaction: rollback to stable restored updates from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1535
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1536
/*! transaction: rollback to stable skipping delete rle */
-#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1536
+#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1537
/*! transaction: rollback to stable skipping stable rle */
-#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1537
+#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1538
/*! transaction: rollback to stable sweeping history store keys */
-#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1538
+#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1539
/*!
* transaction: rollback to stable tombstones from history store that
* would have been restored in non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES_DRYRUN 1539
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES_DRYRUN 1540
/*! transaction: rollback to stable tree walk skipping pages */
-#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1540
+#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1541
/*! transaction: rollback to stable updates aborted */
-#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1541
+#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1542
/*!
* transaction: rollback to stable updates from history store that would
* have been restored in non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES_DRYRUN 1542
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES_DRYRUN 1543
/*! transaction: rollback to stable updates removed from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1543
+#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1544
/*!
* transaction: rollback to stable updates that would have been aborted
* in non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED_DRYRUN 1544
+#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED_DRYRUN 1545
/*!
* transaction: rollback to stable updates that would have been removed
* from history store in non-dryrun mode
*/
-#define WT_STAT_CONN_TXN_RTS_HS_REMOVED_DRYRUN 1545
+#define WT_STAT_CONN_TXN_RTS_HS_REMOVED_DRYRUN 1546
/*! transaction: sessions scanned in each walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1546
+#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1547
/*! transaction: set timestamp calls */
-#define WT_STAT_CONN_TXN_SET_TS 1547
+#define WT_STAT_CONN_TXN_SET_TS 1548
/*! transaction: set timestamp durable calls */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1548
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1549
/*! transaction: set timestamp durable updates */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1549
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1550
/*! transaction: set timestamp oldest calls */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1550
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1551
/*! transaction: set timestamp oldest updates */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1551
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1552
/*! transaction: set timestamp stable calls */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE 1552
+#define WT_STAT_CONN_TXN_SET_TS_STABLE 1553
/*! transaction: set timestamp stable updates */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1553
+#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1554
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1554
+#define WT_STAT_CONN_TXN_BEGIN 1555
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1555
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1556
/*!
* transaction: transaction checkpoint currently running for history
* store file
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1556
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1557
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1557
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1558
/*!
* transaction: transaction checkpoint history store file duration
* (usecs)
*/
-#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1558
+#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1559
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1559
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1560
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1560
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1561
/*!
* transaction: transaction checkpoint most recent duration for gathering
* all handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1561
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1562
/*!
* transaction: transaction checkpoint most recent duration for gathering
* applied handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1562
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1563
/*!
* transaction: transaction checkpoint most recent duration for gathering
* skipped handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1563
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1564
/*! transaction: transaction checkpoint most recent handles applied */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1564
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1565
/*! transaction: transaction checkpoint most recent handles skipped */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1565
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1566
/*! transaction: transaction checkpoint most recent handles walked */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1566
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1567
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1567
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1568
/*! transaction: transaction checkpoint prepare currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1568
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1569
/*! transaction: transaction checkpoint prepare max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1569
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1570
/*! transaction: transaction checkpoint prepare min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1570
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1571
/*! transaction: transaction checkpoint prepare most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1571
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1572
/*! transaction: transaction checkpoint prepare total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1572
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1573
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1573
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1574
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1574
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1575
/*! transaction: transaction checkpoint stop timing stress active */
-#define WT_STAT_CONN_TXN_CHECKPOINT_STOP_STRESS_ACTIVE 1575
+#define WT_STAT_CONN_TXN_CHECKPOINT_STOP_STRESS_ACTIVE 1576
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1576
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1577
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1577
+#define WT_STAT_CONN_TXN_CHECKPOINT 1578
/*! transaction: transaction checkpoints due to obsolete pages */
-#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1578
+#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1579
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1579
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1580
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1580
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1581
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1581
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1582
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1582
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1583
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1583
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1584
/*! transaction: transaction range of timestamps currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1584
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1585
/*! transaction: transaction range of timestamps pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1585
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1586
/*!
* transaction: transaction range of timestamps pinned by the oldest
* active read timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1586
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1587
/*!
* transaction: transaction range of timestamps pinned by the oldest
* timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1587
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1588
/*! transaction: transaction read timestamp of the oldest active reader */
-#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1588
+#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1589
/*! transaction: transaction rollback to stable currently running */
-#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1589
+#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1590
/*! transaction: transaction walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_WALK_SESSIONS 1590
+#define WT_STAT_CONN_TXN_WALK_SESSIONS 1591
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1591
+#define WT_STAT_CONN_TXN_COMMIT 1592
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1592
+#define WT_STAT_CONN_TXN_ROLLBACK 1593
/*! transaction: update conflicts */
-#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1593
+#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1594
/*!
* @}
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_write.c b/src/third_party/wiredtiger/src/reconcile/rec_write.c
index 748a64cd620..c8eaebbd2b0 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_write.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_write.c
@@ -112,21 +112,26 @@ err:
* (it's just a statistic).
*/
session->reconcile_timeline.reconcile_finish = __wt_clock(session);
- if (WT_CLOCKDIFF_SEC(session->reconcile_timeline.hs_wrapup_finish,
- session->reconcile_timeline.hs_wrapup_start) > conn->rec_maximum_hs_wrapup_seconds)
- conn->rec_maximum_hs_wrapup_seconds =
- WT_CLOCKDIFF_SEC(session->reconcile_timeline.hs_wrapup_finish,
+ if (WT_CLOCKDIFF_MS(session->reconcile_timeline.hs_wrapup_finish,
+ session->reconcile_timeline.hs_wrapup_start) > conn->rec_maximum_hs_wrapup_milliseconds)
+ conn->rec_maximum_hs_wrapup_milliseconds =
+ WT_CLOCKDIFF_MS(session->reconcile_timeline.hs_wrapup_finish,
session->reconcile_timeline.hs_wrapup_start);
- if (WT_CLOCKDIFF_SEC(session->reconcile_timeline.image_build_finish,
- session->reconcile_timeline.image_build_start) > conn->rec_maximum_image_build_seconds)
- conn->rec_maximum_image_build_seconds =
- WT_CLOCKDIFF_SEC(session->reconcile_timeline.image_build_finish,
+ if (WT_CLOCKDIFF_MS(session->reconcile_timeline.image_build_finish,
+ session->reconcile_timeline.image_build_start) >
+ conn->rec_maximum_image_build_milliseconds)
+ conn->rec_maximum_image_build_milliseconds =
+ WT_CLOCKDIFF_MS(session->reconcile_timeline.image_build_finish,
session->reconcile_timeline.image_build_start);
if (WT_CLOCKDIFF_SEC(session->reconcile_timeline.reconcile_finish,
- session->reconcile_timeline.reconcile_start) > conn->rec_maximum_seconds)
- conn->rec_maximum_seconds = WT_CLOCKDIFF_SEC(session->reconcile_timeline.reconcile_finish,
- session->reconcile_timeline.reconcile_start);
-
+ session->reconcile_timeline.reconcile_start) > conn->rec_maximum_milliseconds)
+ conn->rec_maximum_milliseconds =
+ WT_CLOCKDIFF_MS(session->reconcile_timeline.reconcile_finish,
+ session->reconcile_timeline.reconcile_start);
+ if (session->reconcile_timeline.total_reentry_hs_eviction_time >
+ conn->cache->reentry_hs_eviction_ms)
+ conn->cache->reentry_hs_eviction_ms =
+ session->reconcile_timeline.total_reentry_hs_eviction_time;
return (ret);
}
@@ -253,7 +258,9 @@ __reconcile(WT_SESSION_IMPL *session, WT_REF *ref, WT_SALVAGE_COOKIE *salvage, u
WT_RET(__rec_init(session, ref, flags, salvage, &session->reconcile));
r = session->reconcile;
- session->reconcile_timeline.image_build_start = __wt_clock(session);
+ /* Only update if we are in the first entry into eviction. */
+ if (!session->evict_timeline.reentry_hs_eviction)
+ session->reconcile_timeline.image_build_start = __wt_clock(session);
/* Reconcile the page. */
switch (page->type) {
@@ -282,7 +289,8 @@ __reconcile(WT_SESSION_IMPL *session, WT_REF *ref, WT_SALVAGE_COOKIE *salvage, u
break;
}
- session->reconcile_timeline.image_build_finish = __wt_clock(session);
+ if (!session->evict_timeline.reentry_hs_eviction)
+ session->reconcile_timeline.image_build_finish = __wt_clock(session);
/*
* If we failed, don't bail out yet; we still need to update stats and tidy up.
diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c
index 8146104970d..0eba83aeb2e 100644
--- a/src/third_party/wiredtiger/src/support/stat.c
+++ b/src/third_party/wiredtiger/src/support/stat.c
@@ -1444,8 +1444,8 @@ static const char *const __stats_connection_desc[] = {
"cache: internal pages split during eviction",
"cache: leaf pages split during eviction",
"cache: maximum bytes configured",
+ "cache: maximum milliseconds spent at a single eviction",
"cache: maximum page size seen at eviction",
- "cache: maximum seconds spent at a single eviction",
"cache: modified pages evicted",
"cache: modified pages evicted by application threads",
"cache: operations timed out waiting for space in cache",
@@ -1483,6 +1483,7 @@ static const char *const __stats_connection_desc[] = {
"cache: reverse splits skipped because of VLCS namespace gap restrictions",
"cache: the number of times full update inserted to history store",
"cache: the number of times reverse modify inserted to history store",
+ "cache: total milliseconds spent inside reentrant history store evictions in a reconciliation",
"cache: tracked bytes belonging to internal pages in the cache",
"cache: tracked bytes belonging to leaf pages in the cache",
"cache: tracked dirty bytes in the cache",
@@ -1723,9 +1724,9 @@ static const char *const __stats_connection_desc[] = {
"reconciliation: approximate byte size of transaction IDs in pages written",
"reconciliation: fast-path pages deleted",
"reconciliation: leaf-page overflow keys",
- "reconciliation: maximum seconds spent in a reconciliation call",
- "reconciliation: maximum seconds spent in building a disk image in a reconciliation",
- "reconciliation: maximum seconds spent in moving updates to the history store in a "
+ "reconciliation: maximum milliseconds spent in a reconciliation call",
+ "reconciliation: maximum milliseconds spent in building a disk image in a reconciliation",
+ "reconciliation: maximum milliseconds spent in moving updates to the history store in a "
"reconciliation",
"reconciliation: page reconciliation calls",
"reconciliation: page reconciliation calls for eviction",
@@ -2090,8 +2091,8 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_eviction_split_internal = 0;
stats->cache_eviction_split_leaf = 0;
/* not clearing cache_bytes_max */
+ /* not clearing cache_eviction_maximum_milliseconds */
/* not clearing cache_eviction_maximum_page_size */
- /* not clearing cache_eviction_maximum_seconds */
stats->cache_eviction_dirty = 0;
stats->cache_eviction_app_dirty = 0;
stats->cache_timed_out_ops = 0;
@@ -2127,6 +2128,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_reverse_splits_skipped_vlcs = 0;
stats->cache_hs_insert_full_update = 0;
stats->cache_hs_insert_reverse_modify = 0;
+ /* not clearing cache_reentry_hs_eviction_milliseconds */
/* not clearing cache_bytes_internal */
/* not clearing cache_bytes_leaf */
/* not clearing cache_bytes_dirty */
@@ -2365,9 +2367,9 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->rec_time_window_bytes_txn = 0;
stats->rec_page_delete_fast = 0;
stats->rec_overflow_key_leaf = 0;
- /* not clearing rec_maximum_seconds */
- /* not clearing rec_maximum_image_build_seconds */
- /* not clearing rec_maximum_hs_wrapup_seconds */
+ /* not clearing rec_maximum_milliseconds */
+ /* not clearing rec_maximum_image_build_milliseconds */
+ /* not clearing rec_maximum_hs_wrapup_milliseconds */
stats->rec_pages = 0;
stats->rec_pages_eviction = 0;
stats->rec_pages_with_prepare = 0;
@@ -2724,8 +2726,9 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cache_eviction_split_internal += WT_STAT_READ(from, cache_eviction_split_internal);
to->cache_eviction_split_leaf += WT_STAT_READ(from, cache_eviction_split_leaf);
to->cache_bytes_max += WT_STAT_READ(from, cache_bytes_max);
+ to->cache_eviction_maximum_milliseconds +=
+ WT_STAT_READ(from, cache_eviction_maximum_milliseconds);
to->cache_eviction_maximum_page_size += WT_STAT_READ(from, cache_eviction_maximum_page_size);
- to->cache_eviction_maximum_seconds += WT_STAT_READ(from, cache_eviction_maximum_seconds);
to->cache_eviction_dirty += WT_STAT_READ(from, cache_eviction_dirty);
to->cache_eviction_app_dirty += WT_STAT_READ(from, cache_eviction_app_dirty);
to->cache_timed_out_ops += WT_STAT_READ(from, cache_timed_out_ops);
@@ -2772,6 +2775,8 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cache_reverse_splits_skipped_vlcs += WT_STAT_READ(from, cache_reverse_splits_skipped_vlcs);
to->cache_hs_insert_full_update += WT_STAT_READ(from, cache_hs_insert_full_update);
to->cache_hs_insert_reverse_modify += WT_STAT_READ(from, cache_hs_insert_reverse_modify);
+ to->cache_reentry_hs_eviction_milliseconds +=
+ WT_STAT_READ(from, cache_reentry_hs_eviction_milliseconds);
to->cache_bytes_internal += WT_STAT_READ(from, cache_bytes_internal);
to->cache_bytes_leaf += WT_STAT_READ(from, cache_bytes_leaf);
to->cache_bytes_dirty += WT_STAT_READ(from, cache_bytes_dirty);
@@ -3017,9 +3022,11 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->rec_time_window_bytes_txn += WT_STAT_READ(from, rec_time_window_bytes_txn);
to->rec_page_delete_fast += WT_STAT_READ(from, rec_page_delete_fast);
to->rec_overflow_key_leaf += WT_STAT_READ(from, rec_overflow_key_leaf);
- to->rec_maximum_seconds += WT_STAT_READ(from, rec_maximum_seconds);
- to->rec_maximum_image_build_seconds += WT_STAT_READ(from, rec_maximum_image_build_seconds);
- to->rec_maximum_hs_wrapup_seconds += WT_STAT_READ(from, rec_maximum_hs_wrapup_seconds);
+ to->rec_maximum_milliseconds += WT_STAT_READ(from, rec_maximum_milliseconds);
+ to->rec_maximum_image_build_milliseconds +=
+ WT_STAT_READ(from, rec_maximum_image_build_milliseconds);
+ to->rec_maximum_hs_wrapup_milliseconds +=
+ WT_STAT_READ(from, rec_maximum_hs_wrapup_milliseconds);
to->rec_pages += WT_STAT_READ(from, rec_pages);
to->rec_pages_eviction += WT_STAT_READ(from, rec_pages_eviction);
to->rec_pages_with_prepare += WT_STAT_READ(from, rec_pages_with_prepare);
diff --git a/src/third_party/wiredtiger/src/txn/txn_ckpt.c b/src/third_party/wiredtiger/src/txn/txn_ckpt.c
index 1bd5cd9524d..1d9c1741e42 100644
--- a/src/third_party/wiredtiger/src/txn/txn_ckpt.c
+++ b/src/third_party/wiredtiger/src/txn/txn_ckpt.c
@@ -1032,10 +1032,11 @@ __txn_checkpoint(WT_SESSION_IMPL *session, const char *cfg[])
/* Reset the statistics tracked per checkpoint. */
cache->evict_max_page_size = 0;
- cache->evict_max_seconds = 0;
- conn->rec_maximum_hs_wrapup_seconds = 0;
- conn->rec_maximum_image_build_seconds = 0;
- conn->rec_maximum_seconds = 0;
+ cache->evict_max_ms = 0;
+ cache->reentry_hs_eviction_ms = 0;
+ conn->rec_maximum_hs_wrapup_milliseconds = 0;
+ conn->rec_maximum_image_build_milliseconds = 0;
+ conn->rec_maximum_milliseconds = 0;
/* Initialize the verbose tracking timer */
__wt_epoch(session, &conn->ckpt_timer_start);