summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2023-11-06 09:58:58 +1100
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-11-05 23:23:16 +0000
commitacdc463fe60bdc85aeced25297041b4051a0fc33 (patch)
tree93da1ef5ae3a365b7358d7cc0f4b8b4011e2f699
parent70c1b18fae560cafd0913ac8d0f68868b1d04ec6 (diff)
Import wiredtiger: 5cb0a12c80a7edce61f72abea1bee37e14b70d5f from branch mongodb-4.4r4.4.26-rc0r4.4.26
ref: dd18293ae4..5cb0a12c80 for: 4.4.26 WT-10424, WT-8340 v4.4 group backport
-rwxr-xr-xsrc/third_party/wiredtiger/dist/flags.py26
-rw-r--r--src/third_party/wiredtiger/dist/stat_data.py1
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_debug.c14
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_discard.c10
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_page.c6
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_split.c8
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_lru.c86
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_stat.c2
-rw-r--r--src/third_party/wiredtiger/src/include/btmem.h25
-rw-r--r--src/third_party/wiredtiger/src/include/btree_inline.h10
-rw-r--r--src/third_party/wiredtiger/src/include/hardware.h31
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h1
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in725
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_write.c2
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c3
16 files changed, 514 insertions, 438 deletions
diff --git a/src/third_party/wiredtiger/dist/flags.py b/src/third_party/wiredtiger/dist/flags.py
index 9b0c87a6806..310babf2e7f 100755
--- a/src/third_party/wiredtiger/dist/flags.py
+++ b/src/third_party/wiredtiger/dist/flags.py
@@ -18,10 +18,22 @@ def flag_declare(name):
tfile = open(tmp_file, 'w')
lcnt = 0
+ max_flags = 0
parsing = False
start = 0
+ stopped = ''
for line in f:
lcnt = lcnt + 1
+ if stopped != '':
+ stopped = ''
+ m = re.search("\d+", line)
+ if m != None:
+ fld_size = int(m.group(0))
+ if max_flags > fld_size:
+ print("file: " + name + " line: " + str(lcnt))
+ print("Flag stop value of " + str(max_flags) \
+ + " is larger than field size " + str(fld_size))
+ sys.exit(1)
if line.find('AUTOMATIC FLAG VALUE GENERATION START') != -1:
m = re.search("\d+", line)
if m == None:
@@ -41,15 +53,22 @@ def flag_declare(name):
" GENERATION STOP 32", file=sys.stderr)
sys.exit(1)
end = int(m.group(0))
+
+ poweroftwo = (end != 0) and ((end & (end-1)) == 0)
+ if not poweroftwo and end != 12:
+ print(name + ": line " + str(lcnt) + ", the stop value " + str(end) +
+ " is not a power of 2", file=sys.stderr)
+ sys.exit(1)
# Compare the number of flags defined and against the number
# of flags allowed
- if len(defines) > end - start:
+ max_flags = len(defines)
+ if max_flags > end - start:
print(name + ": line " + str(lcnt) +\
": exceeds maximum {0} limit bit flags".format(end), file=sys.stderr)
sys.exit(1)
# Calculate number of hex bytes, create format string
- fmt = "0x%%0%dxu" % ((start + len(defines) + 3) / 4)
+ fmt = "0x%%0%dxu" % ((start + max_flags + 3) / 4)
# Generate the flags starting from an offset set from the start value.
tfile.write(header)
@@ -61,6 +80,8 @@ def flag_declare(name):
parsing = False
start = 0
+ stopped = line
+ continue
elif parsing and line.find('#define') == -1:
print(name + ": line " + str(lcnt) +\
": unexpected flag line, no #define", file=sys.stderr)
@@ -69,6 +90,7 @@ def flag_declare(name):
defines.append(line)
else:
tfile.write(line)
+ stopped = ''
tfile.close()
compare_srcfile(tmp_file, name)
diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py
index b0ad7db8830..d08ee38e013 100644
--- a/src/third_party/wiredtiger/dist/stat_data.py
+++ b/src/third_party/wiredtiger/dist/stat_data.py
@@ -206,6 +206,7 @@ conn_stats = [
CacheStat('cache_eviction_aggressive_set', 'eviction currently operating in aggressive mode', 'no_clear,no_scale'),
CacheStat('cache_eviction_app', 'pages evicted by application threads'),
CacheStat('cache_eviction_app_dirty', 'modified pages evicted by application threads'),
+ CacheStat('cache_eviction_clear_ordinary', 'pages removed from the ordinary queue to be queued for urgent eviction'),
CacheStat('cache_eviction_empty_score', 'eviction empty score', 'no_clear,no_scale'),
CacheStat('cache_eviction_fail', 'pages selected for eviction unable to be evicted'),
CacheStat('cache_eviction_fail_active_children_on_an_internal_page', 'pages selected for eviction unable to be evicted because of active children on an internal page'),
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 5815c68f418..17a25c7a71f 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-4.4",
- "commit": "dd18293ae4a93cdf0e6cbc59a90512b3119e81c1"
+ "commit": "5cb0a12c80a7edce61f72abea1bee37e14b70d5f"
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_debug.c b/src/third_party/wiredtiger/src/btree/bt_debug.c
index 2e594da3388..6e71e04851b 100644
--- a/src/third_party/wiredtiger/src/btree/bt_debug.c
+++ b/src/third_party/wiredtiger/src/btree/bt_debug.c
@@ -1120,19 +1120,19 @@ __debug_page_metadata(WT_DBG *ds, WT_REF *ref)
WT_RET(ds->f(ds, ", entries %" PRIu32, entries));
WT_RET(ds->f(ds, ", %s", __wt_page_is_modified(page) ? "dirty" : "clean"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_BUILD_KEYS))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_BUILD_KEYS))
WT_RET(ds->f(ds, ", keys-built"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_DISK_ALLOC))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_DISK_ALLOC))
WT_RET(ds->f(ds, ", disk-alloc"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_DISK_MAPPED))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_DISK_MAPPED))
WT_RET(ds->f(ds, ", disk-mapped"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU))
WT_RET(ds->f(ds, ", evict-lru"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_OVERFLOW_KEYS))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_OVERFLOW_KEYS))
WT_RET(ds->f(ds, ", overflow-keys"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_SPLIT_INSERT))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_SPLIT_INSERT))
WT_RET(ds->f(ds, ", split-insert"));
- if (F_ISSET_ATOMIC(page, WT_PAGE_UPDATE_IGNORE))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_UPDATE_IGNORE))
WT_RET(ds->f(ds, ", update-ignore"));
if (mod != NULL)
diff --git a/src/third_party/wiredtiger/src/btree/bt_discard.c b/src/third_party/wiredtiger/src/btree/bt_discard.c
index 2e8e333f9e6..d94bef594bb 100644
--- a/src/third_party/wiredtiger/src/btree/bt_discard.c
+++ b/src/third_party/wiredtiger/src/btree/bt_discard.c
@@ -74,7 +74,7 @@ __wt_page_out(WT_SESSION_IMPL *session, WT_PAGE **pagep)
/* Assert we never discard a dirty page or a page queue for eviction. */
WT_ASSERT(session, !__wt_page_is_modified(page));
- WT_ASSERT(session, !F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU));
+ WT_ASSERT(session, !F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU));
/*
* If a root page split, there may be one or more pages linked from the page; walk the list,
@@ -93,11 +93,11 @@ __wt_page_out(WT_SESSION_IMPL *session, WT_PAGE **pagep)
__wt_cache_page_evict(session, page);
dsk = (WT_PAGE_HEADER *)page->dsk;
- if (F_ISSET_ATOMIC(page, WT_PAGE_DISK_ALLOC))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_DISK_ALLOC))
__wt_cache_page_image_decr(session, page);
/* Discard any mapped image. */
- if (F_ISSET_ATOMIC(page, WT_PAGE_DISK_MAPPED))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_DISK_MAPPED))
(void)S2BT(session)->bm->map_discard(
S2BT(session)->bm, session, dsk, (size_t)dsk->mem_size);
@@ -128,7 +128,7 @@ __wt_page_out(WT_SESSION_IMPL *session, WT_PAGE **pagep)
}
/* Discard any allocated disk image. */
- if (F_ISSET_ATOMIC(page, WT_PAGE_DISK_ALLOC))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_DISK_ALLOC))
__wt_overwrite_and_free_len(session, dsk, dsk->mem_size);
__wt_overwrite_and_free(session, page);
@@ -150,7 +150,7 @@ __free_page_modify(WT_SESSION_IMPL *session, WT_PAGE *page)
mod = page->modify;
/* In some failed-split cases, we can't discard updates. */
- update_ignore = F_ISSET_ATOMIC(page, WT_PAGE_UPDATE_IGNORE);
+ update_ignore = F_ISSET_ATOMIC_16(page, WT_PAGE_UPDATE_IGNORE);
switch (mod->rec_result) {
case WT_PM_REC_MULTIBLOCK:
diff --git a/src/third_party/wiredtiger/src/btree/bt_page.c b/src/third_party/wiredtiger/src/btree/bt_page.c
index d37b3cdb204..beb894ef24e 100644
--- a/src/third_party/wiredtiger/src/btree/bt_page.c
+++ b/src/third_party/wiredtiger/src/btree/bt_page.c
@@ -361,7 +361,7 @@ __wt_page_inmem(WT_SESSION_IMPL *session, WT_REF *ref, const void *image, uint32
/* Allocate and initialize a new WT_PAGE. */
WT_RET(__wt_page_alloc(session, dsk->type, alloc_entries, true, &page));
page->dsk = dsk;
- F_SET_ATOMIC(page, flags);
+ F_SET_ATOMIC_16(page, flags);
/*
* Track the memory allocated to build this page so we can update the cache statistics in a
@@ -663,7 +663,7 @@ __inmem_row_int(WT_SESSION_IMPL *session, WT_PAGE *page, size_t *sizep)
* we can do during a checkpoint.
*/
if (overflow_keys)
- F_SET_ATOMIC(page, WT_PAGE_OVERFLOW_KEYS);
+ F_SET_ATOMIC_16(page, WT_PAGE_OVERFLOW_KEYS);
err:
__wt_scr_free(session, &current);
@@ -851,7 +851,7 @@ __inmem_row_leaf(WT_SESSION_IMPL *session, WT_PAGE *page, bool *preparedp)
* Mark the page as not needing that work if there aren't stretches of prefix-compressed keys.
*/
if (best_prefix_count <= 10)
- F_SET_ATOMIC(page, WT_PAGE_BUILD_KEYS);
+ F_SET_ATOMIC_16(page, WT_PAGE_BUILD_KEYS);
if (preparedp != NULL && prepare)
*preparedp = true;
diff --git a/src/third_party/wiredtiger/src/btree/bt_split.c b/src/third_party/wiredtiger/src/btree/bt_split.c
index 6e0e4cba67e..1135bb7ed38 100644
--- a/src/third_party/wiredtiger/src/btree/bt_split.c
+++ b/src/third_party/wiredtiger/src/btree/bt_split.c
@@ -160,7 +160,7 @@ __split_ovfl_key_cleanup(WT_SESSION_IMPL *session, WT_PAGE *page, WT_REF *ref)
uint32_t cell_offset;
/* There's a per-page flag if there are any overflow keys at all. */
- if (!F_ISSET_ATOMIC(page, WT_PAGE_OVERFLOW_KEYS))
+ if (!F_ISSET_ATOMIC_16(page, WT_PAGE_OVERFLOW_KEYS))
return (0);
/*
@@ -1620,7 +1620,7 @@ __split_multi_inmem_fail(WT_SESSION_IMPL *session, WT_PAGE *orig, WT_MULTI *mult
*/
if (ref != NULL) {
if (ref->page != NULL)
- F_SET_ATOMIC(ref->page, WT_PAGE_UPDATE_IGNORE);
+ F_SET_ATOMIC_16(ref->page, WT_PAGE_UPDATE_IGNORE);
__wt_free_ref(session, ref, orig->type, true);
}
}
@@ -1754,7 +1754,7 @@ __split_insert(WT_SESSION_IMPL *session, WT_REF *ref)
WT_ASSERT(session, __wt_page_is_modified(page));
WT_ASSERT(session, ref->ft_info.del == NULL);
- F_SET_ATOMIC(page, WT_PAGE_SPLIT_INSERT); /* Only split in-memory once. */
+ F_SET_ATOMIC_16(page, WT_PAGE_SPLIT_INSERT); /* Only split in-memory once. */
/* Find the last item on the page. */
if (type == WT_PAGE_ROW_LEAF)
@@ -2245,7 +2245,7 @@ __wt_split_rewrite(WT_SESSION_IMPL *session, WT_REF *ref, WT_MULTI *multi)
*/
__wt_page_modify_clear(session, page);
if (!F_ISSET(S2C(session)->cache, WT_CACHE_EVICT_SCRUB) || multi->supd_restore)
- F_SET_ATOMIC(page, WT_PAGE_EVICT_NO_PROGRESS);
+ F_SET_ATOMIC_16(page, WT_PAGE_EVICT_NO_PROGRESS);
__wt_ref_out(session, ref);
/* Swap the new page into place. */
diff --git a/src/third_party/wiredtiger/src/evict/evict_lru.c b/src/third_party/wiredtiger/src/evict/evict_lru.c
index 0eaf532ac60..5526f491741 100644
--- a/src/third_party/wiredtiger/src/evict/evict_lru.c
+++ b/src/third_party/wiredtiger/src/evict/evict_lru.c
@@ -9,6 +9,7 @@
#include "wt_internal.h"
static int __evict_clear_all_walks(WT_SESSION_IMPL *);
+static void __evict_list_clear_page_locked(WT_SESSION_IMPL *, WT_REF *, bool);
static int WT_CDECL __evict_lru_cmp(const void *, const void *);
static int __evict_lru_pages(WT_SESSION_IMPL *, bool);
static int __evict_lru_walk(WT_SESSION_IMPL *);
@@ -146,37 +147,32 @@ static inline void
__evict_list_clear(WT_SESSION_IMPL *session, WT_EVICT_ENTRY *e)
{
if (e->ref != NULL) {
- WT_ASSERT(session, F_ISSET_ATOMIC(e->ref->page, WT_PAGE_EVICT_LRU));
- F_CLR_ATOMIC(e->ref->page, WT_PAGE_EVICT_LRU);
+ WT_ASSERT(session, F_ISSET_ATOMIC_16(e->ref->page, WT_PAGE_EVICT_LRU));
+ F_CLR_ATOMIC_16(e->ref->page, WT_PAGE_EVICT_LRU | WT_PAGE_EVICT_LRU_URGENT);
}
e->ref = NULL;
e->btree = WT_DEBUG_POINT;
}
/*
- * __wt_evict_list_clear_page --
- * Make sure a page is not in the LRU eviction list. This called from the page eviction code to
- * make sure there is no attempt to evict a child page multiple times.
+ * __evict_list_clear_page_locked --
+ * This function searches for the page in all the eviction queues (skipping the urgent queue if
+ * requested) and clears it if found. It does not take the eviction queue lock, so the caller
+ * should hold the appropriate locks before calling this function.
*/
-void
-__wt_evict_list_clear_page(WT_SESSION_IMPL *session, WT_REF *ref)
+static void
+__evict_list_clear_page_locked(WT_SESSION_IMPL *session, WT_REF *ref, bool exclude_urgent)
{
WT_CACHE *cache;
WT_EVICT_ENTRY *evict;
- uint32_t i, elem, q;
+ uint32_t elem, i, q, last_queue_idx;
bool found;
- WT_ASSERT(session, __wt_ref_is_root(ref) || ref->state == WT_REF_LOCKED);
-
- /* Fast path: if the page isn't on the queue, don't bother searching. */
- if (!F_ISSET_ATOMIC(ref->page, WT_PAGE_EVICT_LRU))
- return;
-
+ last_queue_idx = exclude_urgent ? WT_EVICT_URGENT_QUEUE : WT_EVICT_QUEUE_MAX;
cache = S2C(session)->cache;
- __wt_spin_lock(session, &cache->evict_queue_lock);
-
found = false;
- for (q = 0; q < WT_EVICT_QUEUE_MAX && !found; q++) {
+
+ for (q = 0; q < last_queue_idx && !found; q++) {
__wt_spin_lock(session, &cache->evict_queues[q].evict_lock);
elem = cache->evict_queues[q].evict_max;
for (i = 0, evict = cache->evict_queues[q].evict_queue; i < elem; i++, evict++)
@@ -187,7 +183,31 @@ __wt_evict_list_clear_page(WT_SESSION_IMPL *session, WT_REF *ref)
}
__wt_spin_unlock(session, &cache->evict_queues[q].evict_lock);
}
- WT_ASSERT(session, !F_ISSET_ATOMIC(ref->page, WT_PAGE_EVICT_LRU));
+ WT_ASSERT(session, !F_ISSET_ATOMIC_16(ref->page, WT_PAGE_EVICT_LRU));
+}
+
+/*
+ * __wt_evict_list_clear_page --
+ * Check whether a page is present in the LRU eviction list. If the page is found in the list,
+ * remove it. This is called from the page eviction code to make sure there is no attempt to
+ * evict a child page multiple times.
+ */
+void
+__wt_evict_list_clear_page(WT_SESSION_IMPL *session, WT_REF *ref)
+{
+ WT_CACHE *cache;
+
+ WT_ASSERT(session, __wt_ref_is_root(ref) || ref->state == WT_REF_LOCKED);
+
+ /* Fast path: if the page isn't in the queue, don't bother searching. */
+ if (!F_ISSET_ATOMIC_16(ref->page, WT_PAGE_EVICT_LRU))
+ return;
+ cache = S2C(session)->cache;
+
+ __wt_spin_lock(session, &cache->evict_queue_lock);
+
+ /* Remove the reference from the eviction queues. */
+ __evict_list_clear_page_locked(session, ref, false);
__wt_spin_unlock(session, &cache->evict_queue_lock);
}
@@ -1582,7 +1602,7 @@ static bool
__evict_push_candidate(
WT_SESSION_IMPL *session, WT_EVICT_QUEUE *queue, WT_EVICT_ENTRY *evict, WT_REF *ref)
{
- uint8_t orig_flags, new_flags;
+ uint16_t orig_flags, new_flags;
u_int slot;
/*
@@ -1592,7 +1612,7 @@ __evict_push_candidate(
orig_flags = new_flags = ref->page->flags_atomic;
FLD_SET(new_flags, WT_PAGE_EVICT_LRU);
if (orig_flags == new_flags ||
- !__wt_atomic_cas8(&ref->page->flags_atomic, orig_flags, new_flags))
+ !__wt_atomic_cas16(&ref->page->flags_atomic, orig_flags, new_flags))
return (false);
/* Keep track of the maximum slot we are using. */
@@ -1923,7 +1943,7 @@ __evict_walk_tree(WT_SESSION_IMPL *session, WT_EVICT_QUEUE *queue, u_int max_ent
internal_pages_seen++;
/* Use the EVICT_LRU flag to avoid putting pages onto the list multiple times. */
- if (F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU)) {
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU)) {
pages_already_queued++;
if (F_ISSET(ref, WT_REF_FLAG_INTERNAL))
internal_pages_already_queued++;
@@ -2480,18 +2500,35 @@ __wt_page_evict_urgent(WT_SESSION_IMPL *session, WT_REF *ref)
WT_ASSERT(session, !__wt_ref_is_root(ref));
page = ref->page;
- if (F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU) || S2BT(session)->evict_disabled > 0)
+ if (S2BT(session)->evict_disabled > 0 || F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU_URGENT))
return (false);
- /* Append to the urgent queue if we can. */
cache = S2C(session)->cache;
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU) && F_ISSET(cache, WT_CACHE_EVICT_ALL))
+ return (false);
+
+ /* Append to the urgent queue if we can. */
urgent_queue = &cache->evict_queues[WT_EVICT_URGENT_QUEUE];
queued = false;
__wt_spin_lock(session, &cache->evict_queue_lock);
- if (F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU) || S2BT(session)->evict_disabled > 0)
+
+ /* Check again, in case we raced with another thread. */
+ if (S2BT(session)->evict_disabled > 0 || F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU_URGENT))
goto done;
+ /*
+ * If the page is already in the LRU eviction list, clear it from the list if eviction server is
+ * not running.
+ */
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU)) {
+ if (!F_ISSET(cache, WT_CACHE_EVICT_ALL)) {
+ __evict_list_clear_page_locked(session, ref, true);
+ WT_STAT_CONN_INCR(session, cache_eviction_clear_ordinary);
+ } else
+ goto done;
+ }
+
__wt_spin_lock(session, &urgent_queue->evict_lock);
if (__evict_queue_empty(urgent_queue, false)) {
urgent_queue->evict_current = urgent_queue->evict_queue;
@@ -2502,6 +2539,7 @@ __wt_page_evict_urgent(WT_SESSION_IMPL *session, WT_REF *ref)
__evict_push_candidate(session, urgent_queue, evict, ref)) {
++urgent_queue->evict_candidates;
queued = true;
+ FLD_SET(page->flags_atomic, WT_PAGE_EVICT_LRU_URGENT);
}
__wt_spin_unlock(session, &urgent_queue->evict_lock);
diff --git a/src/third_party/wiredtiger/src/evict/evict_stat.c b/src/third_party/wiredtiger/src/evict/evict_stat.c
index 6742fa734a1..96f3b84a823 100644
--- a/src/third_party/wiredtiger/src/evict/evict_stat.c
+++ b/src/third_party/wiredtiger/src/evict/evict_stat.c
@@ -52,7 +52,7 @@ __evict_stat_walk(WT_SESSION_IMPL *session)
if (!__wt_ref_is_root(next_walk) && !__wt_page_can_evict(session, next_walk, NULL))
++num_not_queueable;
- if (F_ISSET_ATOMIC(page, WT_PAGE_EVICT_LRU))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_LRU))
++num_queued;
if (size > max_pagesize)
diff --git a/src/third_party/wiredtiger/src/include/btmem.h b/src/third_party/wiredtiger/src/include/btmem.h
index 50e75b6d428..198f121f032 100644
--- a/src/third_party/wiredtiger/src/include/btmem.h
+++ b/src/third_party/wiredtiger/src/include/btmem.h
@@ -644,18 +644,19 @@ struct __wt_page {
uint8_t type; /* Page type */
/* AUTOMATIC FLAG VALUE GENERATION START 0 */
-#define WT_PAGE_BUILD_KEYS 0x01u /* Keys have been built in memory */
-#define WT_PAGE_DISK_ALLOC 0x02u /* Disk image in allocated memory */
-#define WT_PAGE_DISK_MAPPED 0x04u /* Disk image in mapped memory */
-#define WT_PAGE_EVICT_LRU 0x08u /* Page is on the LRU queue */
-#define WT_PAGE_EVICT_NO_PROGRESS 0x10u /* Eviction doesn't count as progress */
-#define WT_PAGE_OVERFLOW_KEYS 0x20u /* Page has overflow keys */
-#define WT_PAGE_SPLIT_INSERT 0x40u /* A leaf page was split for append */
-#define WT_PAGE_UPDATE_IGNORE 0x80u /* Ignore updates on page discard */
- /* AUTOMATIC FLAG VALUE GENERATION STOP 8 */
- uint8_t flags_atomic; /* Atomic flags, use F_*_ATOMIC */
-
- uint8_t unused[2]; /* Unused padding */
+#define WT_PAGE_BUILD_KEYS 0x001u /* Keys have been built in memory */
+#define WT_PAGE_DISK_ALLOC 0x002u /* Disk image in allocated memory */
+#define WT_PAGE_DISK_MAPPED 0x004u /* Disk image in mapped memory */
+#define WT_PAGE_EVICT_LRU 0x008u /* Page is on the LRU queue */
+#define WT_PAGE_EVICT_LRU_URGENT 0x010u /* Page is in the urgent queue */
+#define WT_PAGE_EVICT_NO_PROGRESS 0x020u /* Eviction doesn't count as progress */
+#define WT_PAGE_OVERFLOW_KEYS 0x040u /* Page has overflow keys */
+#define WT_PAGE_SPLIT_INSERT 0x080u /* A leaf page was split for append */
+#define WT_PAGE_UPDATE_IGNORE 0x100u /* Ignore updates on page discard */
+ /* AUTOMATIC FLAG VALUE GENERATION STOP 16 */
+ uint16_t flags_atomic; /* Atomic flags, use F_*_ATOMIC_16 */
+
+ uint8_t unused; /* Unused padding */
size_t memory_footprint; /* Memory attached to the page */
diff --git a/src/third_party/wiredtiger/src/include/btree_inline.h b/src/third_party/wiredtiger/src/include/btree_inline.h
index 0902817fdae..46283781b78 100644
--- a/src/third_party/wiredtiger/src/include/btree_inline.h
+++ b/src/third_party/wiredtiger/src/include/btree_inline.h
@@ -574,7 +574,7 @@ __wt_cache_page_evict(WT_SESSION_IMPL *session, WT_PAGE *page)
* Track if eviction makes progress. This is used in various places to determine whether
* eviction is stuck.
*/
- if (!F_ISSET_ATOMIC(page, WT_PAGE_EVICT_NO_PROGRESS))
+ if (!F_ISSET_ATOMIC_16(page, WT_PAGE_EVICT_NO_PROGRESS))
(void)__wt_atomic_addv64(&cache->eviction_progress, 1);
}
@@ -1249,9 +1249,9 @@ __wt_row_leaf_key_instantiate(WT_SESSION_IMPL *session, WT_PAGE *page)
* doing a cursor previous call, and this page has never been checked for excessively long
* stretches of prefix-compressed keys, do it now.
*/
- if (F_ISSET_ATOMIC(page, WT_PAGE_BUILD_KEYS))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_BUILD_KEYS))
return (0);
- F_SET_ATOMIC(page, WT_PAGE_BUILD_KEYS);
+ F_SET_ATOMIC_16(page, WT_PAGE_BUILD_KEYS);
/* Walk the keys, making sure there's something easy to work with periodically. */
skip = 0;
@@ -1543,7 +1543,7 @@ __wt_leaf_page_can_split(WT_SESSION_IMPL *session, WT_PAGE *page)
* Only split a page once, otherwise workloads that update in the middle of the page could
* continually split without benefit.
*/
- if (F_ISSET_ATOMIC(page, WT_PAGE_SPLIT_INSERT))
+ if (F_ISSET_ATOMIC_16(page, WT_PAGE_SPLIT_INSERT))
return (false);
/*
@@ -1694,7 +1694,7 @@ __wt_page_can_evict(WT_SESSION_IMPL *session, WT_REF *ref, bool *inmem_splitp)
* no-longer-used overflow keys, which will corrupt the checkpoint's block management.
*/
if (__wt_btree_syncing_by_other_session(session) &&
- F_ISSET_ATOMIC(ref->home, WT_PAGE_OVERFLOW_KEYS)) {
+ F_ISSET_ATOMIC_16(ref->home, WT_PAGE_OVERFLOW_KEYS)) {
WT_STAT_CONN_INCR(session, cache_eviction_fail_parent_has_overflow_items);
return (false);
}
diff --git a/src/third_party/wiredtiger/src/include/hardware.h b/src/third_party/wiredtiger/src/include/hardware.h
index 762613f0373..753874fd87f 100644
--- a/src/third_party/wiredtiger/src/include/hardware.h
+++ b/src/third_party/wiredtiger/src/include/hardware.h
@@ -28,22 +28,27 @@
/*
* Atomic versions of the flag set/clear macros.
*/
-#define F_ISSET_ATOMIC(p, mask) ((p)->flags_atomic & (uint8_t)(mask))
-#define F_SET_ATOMIC(p, mask) \
- do { \
- uint8_t __orig; \
- do { \
- __orig = (p)->flags_atomic; \
- } while (!__wt_atomic_cas8(&(p)->flags_atomic, __orig, __orig | (uint8_t)(mask))); \
+#define F_ISSET_ATOMIC_16(p, mask) ((p)->flags_atomic & (uint16_t)(mask))
+
+#define F_SET_ATOMIC_16(p, mask) \
+ do { \
+ uint16_t __orig; \
+ if (F_ISSET_ATOMIC_16(p, mask)) \
+ break; \
+ do { \
+ __orig = (p)->flags_atomic; \
+ } while (!__wt_atomic_cas16(&(p)->flags_atomic, __orig, __orig | (uint16_t)(mask))); \
} while (0)
-#define F_CLR_ATOMIC(p, mask) \
- do { \
- uint8_t __orig; \
- do { \
- __orig = (p)->flags_atomic; \
- } while (!__wt_atomic_cas8(&(p)->flags_atomic, __orig, __orig & ~(uint8_t)(mask))); \
+#define F_CLR_ATOMIC_16(p, mask) \
+ do { \
+ uint16_t __orig; \
+ if (!F_ISSET_ATOMIC_16(p, mask)) \
+ break; \
+ do { \
+ __orig = (p)->flags_atomic; \
+ } while (!__wt_atomic_cas16(&(p)->flags_atomic, __orig, __orig & ~(uint16_t)(mask))); \
} while (0)
/*
diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h
index c36509009c0..3acdc7fe9ec 100644
--- a/src/third_party/wiredtiger/src/include/stat.h
+++ b/src/third_party/wiredtiger/src/include/stat.h
@@ -455,6 +455,7 @@ struct __wt_connection_stats {
int64_t cache_read;
int64_t cache_read_deleted;
int64_t cache_read_deleted_prepared;
+ int64_t cache_eviction_clear_ordinary;
int64_t cache_pages_requested;
int64_t cache_eviction_pages_seen;
int64_t cache_eviction_pages_already_queued;
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in
index 9fcd8069707..4d47945553c 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger.in
+++ b/src/third_party/wiredtiger/src/include/wiredtiger.in
@@ -5388,876 +5388,881 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_READ_DELETED 1140
/*! cache: pages read into cache after truncate in prepare state */
#define WT_STAT_CONN_CACHE_READ_DELETED_PREPARED 1141
+/*!
+ * cache: pages removed from the ordinary queue to be queued for urgent
+ * eviction
+ */
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAR_ORDINARY 1142
/*! cache: pages requested from the cache */
-#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1142
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1143
/*! cache: pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1143
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1144
/*! cache: pages seen by eviction walk that are already queued */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_ALREADY_QUEUED 1144
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_ALREADY_QUEUED 1145
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1145
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1146
/*!
* cache: pages selected for eviction unable to be evicted as the parent
* page has overflow items
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_PARENT_HAS_OVERFLOW_ITEMS 1146
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_PARENT_HAS_OVERFLOW_ITEMS 1147
/*!
* cache: pages selected for eviction unable to be evicted because of
* active children on an internal page
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_ACTIVE_CHILDREN_ON_AN_INTERNAL_PAGE 1147
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_ACTIVE_CHILDREN_ON_AN_INTERNAL_PAGE 1148
/*!
* cache: pages selected for eviction unable to be evicted because of
* failure in reconciliation
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_IN_RECONCILIATION 1148
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_IN_RECONCILIATION 1149
/*!
* cache: pages selected for eviction unable to be evicted because of
* race between checkpoint and out of order timestamps handling
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL_CHECKPOINT_OUT_OF_ORDER_TS 1149
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL_CHECKPOINT_OUT_OF_ORDER_TS 1150
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1150
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1151
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1151
+#define WT_STAT_CONN_CACHE_WRITE 1152
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1152
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1153
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1153
+#define WT_STAT_CONN_CACHE_OVERHEAD 1154
/*! cache: the number of times full update inserted to history store */
-#define WT_STAT_CONN_CACHE_HS_INSERT_FULL_UPDATE 1154
+#define WT_STAT_CONN_CACHE_HS_INSERT_FULL_UPDATE 1155
/*! cache: the number of times reverse modify inserted to history store */
-#define WT_STAT_CONN_CACHE_HS_INSERT_REVERSE_MODIFY 1155
+#define WT_STAT_CONN_CACHE_HS_INSERT_REVERSE_MODIFY 1156
/*!
* cache: total milliseconds spent inside reentrant history store
* evictions in a reconciliation
*/
-#define WT_STAT_CONN_CACHE_REENTRY_HS_EVICTION_MILLISECONDS 1156
+#define WT_STAT_CONN_CACHE_REENTRY_HS_EVICTION_MILLISECONDS 1157
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1157
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1158
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1158
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1159
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1159
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1160
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1160
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1161
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1161
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1162
/*! capacity: background fsync file handles considered */
-#define WT_STAT_CONN_FSYNC_ALL_FH_TOTAL 1162
+#define WT_STAT_CONN_FSYNC_ALL_FH_TOTAL 1163
/*! capacity: background fsync file handles synced */
-#define WT_STAT_CONN_FSYNC_ALL_FH 1163
+#define WT_STAT_CONN_FSYNC_ALL_FH 1164
/*! capacity: background fsync time (msecs) */
-#define WT_STAT_CONN_FSYNC_ALL_TIME 1164
+#define WT_STAT_CONN_FSYNC_ALL_TIME 1165
/*! capacity: bytes read */
-#define WT_STAT_CONN_CAPACITY_BYTES_READ 1165
+#define WT_STAT_CONN_CAPACITY_BYTES_READ 1166
/*! capacity: bytes written for checkpoint */
-#define WT_STAT_CONN_CAPACITY_BYTES_CKPT 1166
+#define WT_STAT_CONN_CAPACITY_BYTES_CKPT 1167
/*! capacity: bytes written for eviction */
-#define WT_STAT_CONN_CAPACITY_BYTES_EVICT 1167
+#define WT_STAT_CONN_CAPACITY_BYTES_EVICT 1168
/*! capacity: bytes written for log */
-#define WT_STAT_CONN_CAPACITY_BYTES_LOG 1168
+#define WT_STAT_CONN_CAPACITY_BYTES_LOG 1169
/*! capacity: bytes written total */
-#define WT_STAT_CONN_CAPACITY_BYTES_WRITTEN 1169
+#define WT_STAT_CONN_CAPACITY_BYTES_WRITTEN 1170
/*! capacity: threshold to call fsync */
-#define WT_STAT_CONN_CAPACITY_THRESHOLD 1170
+#define WT_STAT_CONN_CAPACITY_THRESHOLD 1171
/*! capacity: time waiting due to total capacity (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_TOTAL 1171
+#define WT_STAT_CONN_CAPACITY_TIME_TOTAL 1172
/*! capacity: time waiting during checkpoint (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_CKPT 1172
+#define WT_STAT_CONN_CAPACITY_TIME_CKPT 1173
/*! capacity: time waiting during eviction (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_EVICT 1173
+#define WT_STAT_CONN_CAPACITY_TIME_EVICT 1174
/*! capacity: time waiting during logging (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_LOG 1174
+#define WT_STAT_CONN_CAPACITY_TIME_LOG 1175
/*! capacity: time waiting during read (usecs) */
-#define WT_STAT_CONN_CAPACITY_TIME_READ 1175
+#define WT_STAT_CONN_CAPACITY_TIME_READ 1176
/*! checkpoint-cleanup: pages added for eviction */
-#define WT_STAT_CONN_CC_PAGES_EVICT 1176
+#define WT_STAT_CONN_CC_PAGES_EVICT 1177
/*! checkpoint-cleanup: pages removed */
-#define WT_STAT_CONN_CC_PAGES_REMOVED 1177
+#define WT_STAT_CONN_CC_PAGES_REMOVED 1178
/*! checkpoint-cleanup: pages skipped during tree walk */
-#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1178
+#define WT_STAT_CONN_CC_PAGES_WALK_SKIPPED 1179
/*! checkpoint-cleanup: pages visited */
-#define WT_STAT_CONN_CC_PAGES_VISITED 1179
+#define WT_STAT_CONN_CC_PAGES_VISITED 1180
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1180
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1181
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1181
+#define WT_STAT_CONN_COND_AUTO_WAIT 1182
/*!
* connection: auto adjusting condition wait raced to update timeout and
* skipped updating
*/
-#define WT_STAT_CONN_COND_AUTO_WAIT_SKIPPED 1182
+#define WT_STAT_CONN_COND_AUTO_WAIT_SKIPPED 1183
/*! connection: detected system time went backwards */
-#define WT_STAT_CONN_TIME_TRAVEL 1183
+#define WT_STAT_CONN_TIME_TRAVEL 1184
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1184
+#define WT_STAT_CONN_FILE_OPEN 1185
/*! connection: hash bucket array size for data handles */
-#define WT_STAT_CONN_BUCKETS_DH 1185
+#define WT_STAT_CONN_BUCKETS_DH 1186
/*! connection: hash bucket array size general */
-#define WT_STAT_CONN_BUCKETS 1186
+#define WT_STAT_CONN_BUCKETS 1187
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1187
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1188
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1188
+#define WT_STAT_CONN_MEMORY_FREE 1189
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1189
+#define WT_STAT_CONN_MEMORY_GROW 1190
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1190
+#define WT_STAT_CONN_COND_WAIT 1191
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1191
+#define WT_STAT_CONN_RWLOCK_READ 1192
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1192
+#define WT_STAT_CONN_RWLOCK_WRITE 1193
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1193
+#define WT_STAT_CONN_FSYNC_IO 1194
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1194
+#define WT_STAT_CONN_READ_IO 1195
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1195
+#define WT_STAT_CONN_WRITE_IO 1196
/*! cursor: Total number of entries skipped by cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1196
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_TOTAL 1197
/*! cursor: Total number of entries skipped by cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1197
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_TOTAL 1198
/*!
* cursor: Total number of entries skipped to position the history store
* cursor
*/
-#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1198
+#define WT_STAT_CONN_CURSOR_SKIP_HS_CUR_POSITION 1199
/*!
* cursor: Total number of times a search near has exited due to prefix
* config
*/
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1199
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1200
/*! cursor: cached cursor count */
-#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1200
+#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1201
/*! cursor: cursor bulk loaded cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT_BULK 1201
+#define WT_STAT_CONN_CURSOR_INSERT_BULK 1202
/*! cursor: cursor close calls that result in cache */
-#define WT_STAT_CONN_CURSOR_CACHE 1202
+#define WT_STAT_CONN_CURSOR_CACHE 1203
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1203
+#define WT_STAT_CONN_CURSOR_CREATE 1204
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1204
+#define WT_STAT_CONN_CURSOR_INSERT 1205
/*! cursor: cursor insert key and value bytes */
-#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1205
+#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1206
/*! cursor: cursor modify calls */
-#define WT_STAT_CONN_CURSOR_MODIFY 1206
+#define WT_STAT_CONN_CURSOR_MODIFY 1207
/*! cursor: cursor modify key and value bytes affected */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1207
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1208
/*! cursor: cursor modify value bytes modified */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1208
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1209
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1209
+#define WT_STAT_CONN_CURSOR_NEXT 1210
/*!
* cursor: cursor next calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1210
+#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1211
/*!
* cursor: cursor next calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1211
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1212
/*! cursor: cursor next calls that skip less than 100 entries */
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1212
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1213
/*! cursor: cursor operation restarted */
-#define WT_STAT_CONN_CURSOR_RESTART 1213
+#define WT_STAT_CONN_CURSOR_RESTART 1214
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1214
+#define WT_STAT_CONN_CURSOR_PREV 1215
/*!
* cursor: cursor prev calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1215
+#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1216
/*!
* cursor: cursor prev calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1216
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1217
/*! cursor: cursor prev calls that skip less than 100 entries */
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1217
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1218
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1218
+#define WT_STAT_CONN_CURSOR_REMOVE 1219
/*! cursor: cursor remove key bytes removed */
-#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1219
+#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1220
/*! cursor: cursor reserve calls */
-#define WT_STAT_CONN_CURSOR_RESERVE 1220
+#define WT_STAT_CONN_CURSOR_RESERVE 1221
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1221
+#define WT_STAT_CONN_CURSOR_RESET 1222
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1222
+#define WT_STAT_CONN_CURSOR_SEARCH 1223
/*! cursor: cursor search history store calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_HS 1223
+#define WT_STAT_CONN_CURSOR_SEARCH_HS 1224
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1224
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1225
/*! cursor: cursor sweep buckets */
-#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1225
+#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1226
/*! cursor: cursor sweep cursors closed */
-#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1226
+#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1227
/*! cursor: cursor sweep cursors examined */
-#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1227
+#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1228
/*! cursor: cursor sweeps */
-#define WT_STAT_CONN_CURSOR_SWEEP 1228
+#define WT_STAT_CONN_CURSOR_SWEEP 1229
/*! cursor: cursor truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1229
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1230
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1230
+#define WT_STAT_CONN_CURSOR_UPDATE 1231
/*! cursor: cursor update key and value bytes */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1231
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1232
/*! cursor: cursor update value size change */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1232
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1233
/*! cursor: cursors reused from cache */
-#define WT_STAT_CONN_CURSOR_REOPEN 1233
+#define WT_STAT_CONN_CURSOR_REOPEN 1234
/*! cursor: open cursor count */
-#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1234
+#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1235
/*! data-handle: connection data handle size */
-#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1235
+#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1236
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1236
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1237
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1237
+#define WT_STAT_CONN_DH_SWEEP_REF 1238
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1238
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1239
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1239
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1240
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1240
+#define WT_STAT_CONN_DH_SWEEP_TOD 1241
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1241
+#define WT_STAT_CONN_DH_SWEEPS 1242
/*!
* data-handle: connection sweeps skipped due to checkpoint gathering
* handles
*/
-#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1242
+#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1243
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1243
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1244
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1244
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1245
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1245
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1246
/*! lock: checkpoint lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1246
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1247
/*! lock: checkpoint lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1247
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1248
/*! lock: dhandle lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1248
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1249
/*! lock: dhandle lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1249
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1250
/*! lock: dhandle read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1250
+#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1251
/*! lock: dhandle write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1251
+#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1252
/*!
* lock: durable timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1252
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1253
/*!
* lock: durable timestamp queue lock internal thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1253
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1254
/*! lock: durable timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1254
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1255
/*! lock: durable timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1255
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1256
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1256
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1257
/*! lock: metadata lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1257
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1258
/*! lock: metadata lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1258
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1259
/*!
* lock: read timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1259
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1260
/*! lock: read timestamp queue lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1260
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1261
/*! lock: read timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1261
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1262
/*! lock: read timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1262
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1263
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1263
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1264
/*! lock: schema lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1264
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1265
/*! lock: schema lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1265
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1266
/*!
* lock: table lock application thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1266
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1267
/*!
* lock: table lock internal thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1267
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1268
/*! lock: table read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1268
+#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1269
/*! lock: table write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1269
+#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1270
/*! lock: txn global lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1270
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1271
/*! lock: txn global lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1271
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1272
/*! lock: txn global read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1272
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1273
/*! lock: txn global write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1273
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1274
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1274
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1275
/*! log: force archive time sleeping (usecs) */
-#define WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP 1275
+#define WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP 1276
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1276
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1277
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1277
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1278
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1278
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1279
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1279
+#define WT_STAT_CONN_LOG_FLUSH 1280
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1280
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1281
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1281
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1282
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1282
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1283
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1283
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1284
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1284
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1285
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1285
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1286
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1286
+#define WT_STAT_CONN_LOG_SCANS 1287
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1287
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1288
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1288
+#define WT_STAT_CONN_LOG_WRITE_LSN 1289
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1289
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1290
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1290
+#define WT_STAT_CONN_LOG_SYNC 1291
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1291
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1292
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1292
+#define WT_STAT_CONN_LOG_SYNC_DIR 1293
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1293
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1294
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1294
+#define WT_STAT_CONN_LOG_WRITES 1295
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1295
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1296
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1296
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1297
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1297
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1298
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1298
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1299
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1299
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1300
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1300
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1301
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1301
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1302
/*! log: slot close lost race */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1302
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1303
/*! log: slot close unbuffered waits */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1303
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1304
/*! log: slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1304
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1305
/*! log: slot join atomic update races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1305
+#define WT_STAT_CONN_LOG_SLOT_RACES 1306
/*! log: slot join calls atomic updates raced */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1306
+#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1307
/*! log: slot join calls did not yield */
-#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1307
+#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1308
/*! log: slot join calls found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1308
+#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1309
/*! log: slot join calls slept */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1309
+#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1310
/*! log: slot join calls yielded */
-#define WT_STAT_CONN_LOG_SLOT_YIELD 1310
+#define WT_STAT_CONN_LOG_SLOT_YIELD 1311
/*! log: slot join found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1311
+#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1312
/*! log: slot joins yield time (usecs) */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1312
+#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1313
/*! log: slot transitions unable to find free slot */
-#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1313
+#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1314
/*! log: slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1314
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1315
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1315
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1316
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1316
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1317
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1317
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1318
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1318
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1319
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1319
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1320
/*! perf: file system read latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1320
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1321
/*! perf: file system read latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1321
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1322
/*! perf: file system read latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1322
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1323
/*! perf: file system read latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1323
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1324
/*! perf: file system read latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1324
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1325
/*! perf: file system read latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1325
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1326
/*! perf: file system write latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1326
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1327
/*! perf: file system write latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1327
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1328
/*! perf: file system write latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1328
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1329
/*! perf: file system write latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1329
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1330
/*! perf: file system write latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1330
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1331
/*! perf: file system write latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1331
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1332
/*! perf: operation read latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1332
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1333
/*! perf: operation read latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1333
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1334
/*! perf: operation read latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1334
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1335
/*! perf: operation read latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1335
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1336
/*! perf: operation read latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1336
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1337
/*! perf: operation write latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1337
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1338
/*! perf: operation write latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1338
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1339
/*! perf: operation write latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1339
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1340
/*! perf: operation write latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1340
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1341
/*! perf: operation write latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1341
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1342
/*! reconciliation: approximate byte size of timestamps in pages written */
-#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1342
+#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1343
/*!
* reconciliation: approximate byte size of transaction IDs in pages
* written
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1343
+#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1344
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1344
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1345
/*! reconciliation: internal-page overflow keys */
-#define WT_STAT_CONN_REC_OVERFLOW_KEY_INTERNAL 1345
+#define WT_STAT_CONN_REC_OVERFLOW_KEY_INTERNAL 1346
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1346
+#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1347
/*! reconciliation: maximum milliseconds spent in a reconciliation call */
-#define WT_STAT_CONN_REC_MAXIMUM_MILLISECONDS 1347
+#define WT_STAT_CONN_REC_MAXIMUM_MILLISECONDS 1348
/*!
* reconciliation: maximum milliseconds spent in building a disk image in
* a reconciliation
*/
-#define WT_STAT_CONN_REC_MAXIMUM_IMAGE_BUILD_MILLISECONDS 1348
+#define WT_STAT_CONN_REC_MAXIMUM_IMAGE_BUILD_MILLISECONDS 1349
/*!
* reconciliation: maximum milliseconds spent in moving updates to the
* history store in a reconciliation
*/
-#define WT_STAT_CONN_REC_MAXIMUM_HS_WRAPUP_MILLISECONDS 1349
+#define WT_STAT_CONN_REC_MAXIMUM_HS_WRAPUP_MILLISECONDS 1350
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1350
+#define WT_STAT_CONN_REC_PAGES 1351
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1351
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1352
/*!
* reconciliation: page reconciliation calls that resulted in values with
* prepared transaction metadata
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1352
+#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1353
/*!
* reconciliation: page reconciliation calls that resulted in values with
* timestamps
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_TS 1353
+#define WT_STAT_CONN_REC_PAGES_WITH_TS 1354
/*!
* reconciliation: page reconciliation calls that resulted in values with
* transaction ids
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1354
+#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1355
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1355
+#define WT_STAT_CONN_REC_PAGE_DELETE 1356
/*!
* reconciliation: pages written including an aggregated newest start
* durable timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1356
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1357
/*!
* reconciliation: pages written including an aggregated newest stop
* durable timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1357
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1358
/*!
* reconciliation: pages written including an aggregated newest stop
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1358
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1359
/*!
* reconciliation: pages written including an aggregated newest stop
* transaction ID
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1359
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1360
/*!
* reconciliation: pages written including an aggregated newest
* transaction ID
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1360
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1361
/*!
* reconciliation: pages written including an aggregated oldest start
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1361
+#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1362
/*! reconciliation: pages written including an aggregated prepare */
-#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1362
+#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1363
/*! reconciliation: pages written including at least one prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1363
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1364
/*!
* reconciliation: pages written including at least one start durable
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1364
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1365
/*! reconciliation: pages written including at least one start timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1365
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1366
/*!
* reconciliation: pages written including at least one start transaction
* ID
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1366
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1367
/*!
* reconciliation: pages written including at least one stop durable
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1367
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1368
/*! reconciliation: pages written including at least one stop timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1368
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1369
/*!
* reconciliation: pages written including at least one stop transaction
* ID
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1369
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1370
/*! reconciliation: records written including a prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1370
+#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1371
/*! reconciliation: records written including a start durable timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1371
+#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1372
/*! reconciliation: records written including a start timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1372
+#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1373
/*! reconciliation: records written including a start transaction ID */
-#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1373
+#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1374
/*! reconciliation: records written including a stop durable timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1374
+#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1375
/*! reconciliation: records written including a stop timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1375
+#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1376
/*! reconciliation: records written including a stop transaction ID */
-#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1376
+#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1377
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1377
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1378
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1378
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1379
/*! session: attempts to remove a local object and the object is in use */
-#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1379
+#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1380
/*! session: flush_tier operation calls */
-#define WT_STAT_CONN_FLUSH_TIER 1380
+#define WT_STAT_CONN_FLUSH_TIER 1381
/*! session: local objects removed */
-#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1381
+#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1382
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1382
+#define WT_STAT_CONN_SESSION_OPEN 1383
/*! session: session query timestamp calls */
-#define WT_STAT_CONN_SESSION_QUERY_TS 1383
+#define WT_STAT_CONN_SESSION_QUERY_TS 1384
/*! session: table alter failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1384
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1385
/*! session: table alter successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1385
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1386
/*! session: table alter triggering checkpoint calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1386
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1387
/*! session: table alter unchanged and skipped */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1387
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1388
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1388
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1389
/*! session: table compact failed calls due to cache pressure */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1389
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1390
/*! session: table compact running */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1390
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1391
/*! session: table compact skipped as process would not reduce file size */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1391
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1392
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1392
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1393
/*! session: table compact timeout */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1393
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1394
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1394
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1395
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1395
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1396
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1396
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1397
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1397
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1398
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1398
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1399
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1399
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1400
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1400
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1401
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1401
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1402
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1402
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1403
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1403
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1404
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1404
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1405
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1405
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1406
/*! session: tiered operations dequeued and processed */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1406
+#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1407
/*! session: tiered operations scheduled */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1407
+#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1408
/*! session: tiered storage local retention time (secs) */
-#define WT_STAT_CONN_TIERED_RETENTION 1408
+#define WT_STAT_CONN_TIERED_RETENTION 1409
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1409
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1410
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1410
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1411
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1411
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1412
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1412
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1413
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1413
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1414
/*!
* thread-yield: connection close blocked waiting for transaction state
* stabilization
*/
-#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1414
+#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1415
/*! thread-yield: connection close yielded for lsm manager shutdown */
-#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1415
+#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1416
/*! thread-yield: data handle lock yielded */
-#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1416
+#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1417
/*!
* thread-yield: get reference for page index and slot time sleeping
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1417
+#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1418
/*! thread-yield: page access yielded due to prepare state change */
-#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1418
+#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1419
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1419
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1420
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1420
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1421
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1421
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1422
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1422
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1423
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1423
+#define WT_STAT_CONN_PAGE_SLEEP 1424
/*!
* thread-yield: page delete rollback time sleeping for state change
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1424
+#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1425
/*! thread-yield: page reconciliation yielded due to child modification */
-#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1425
+#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1426
/*! transaction: Number of prepared updates */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1426
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1427
/*! transaction: Number of prepared updates committed */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1427
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1428
/*! transaction: Number of prepared updates repeated on the same key */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1428
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1429
/*! transaction: Number of prepared updates rolled back */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1429
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1430
/*! transaction: checkpoint has acquired a snapshot for its transaction */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SNAPSHOT_ACQUIRED 1430
+#define WT_STAT_CONN_TXN_CHECKPOINT_SNAPSHOT_ACQUIRED 1431
/*! transaction: oldest pinned transaction ID rolled back for eviction */
-#define WT_STAT_CONN_TXN_ROLLBACK_OLDEST_PINNED 1431
+#define WT_STAT_CONN_TXN_ROLLBACK_OLDEST_PINNED 1432
/*! transaction: prepared transactions */
-#define WT_STAT_CONN_TXN_PREPARE 1432
+#define WT_STAT_CONN_TXN_PREPARE 1433
/*! transaction: prepared transactions committed */
-#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1433
+#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1434
/*! transaction: prepared transactions currently active */
-#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1434
+#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1435
/*! transaction: prepared transactions rolled back */
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1435
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1436
/*!
* transaction: prepared transactions rolled back and do not remove the
* history store entry
*/
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_DO_NOT_REMOVE_HS_UPDATE 1436
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_DO_NOT_REMOVE_HS_UPDATE 1437
/*!
* transaction: prepared transactions rolled back and fix the history
* store entry with checkpoint reserved transaction id
*/
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_FIX_HS_UPDATE_WITH_CKPT_RESERVED_TXNID 1437
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_FIX_HS_UPDATE_WITH_CKPT_RESERVED_TXNID 1438
/*! transaction: query timestamp calls */
-#define WT_STAT_CONN_TXN_QUERY_TS 1438
+#define WT_STAT_CONN_TXN_QUERY_TS 1439
/*! transaction: race to read prepared update retry */
-#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1439
+#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1440
/*! transaction: rollback to stable calls */
-#define WT_STAT_CONN_TXN_RTS 1440
+#define WT_STAT_CONN_TXN_RTS 1441
/*!
* 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 1441
+#define WT_STAT_CONN_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 1442
/*! transaction: rollback to stable inconsistent checkpoint */
-#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1442
+#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1443
/*! transaction: rollback to stable keys removed */
-#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1443
+#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1444
/*! transaction: rollback to stable keys restored */
-#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1444
+#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1445
/*! transaction: rollback to stable pages visited */
-#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1445
+#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1446
/*! transaction: rollback to stable restored tombstones from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1446
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1447
/*! transaction: rollback to stable restored updates from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1447
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1448
/*! transaction: rollback to stable skipping delete rle */
-#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1448
+#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1449
/*! transaction: rollback to stable skipping stable rle */
-#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1449
+#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1450
/*! transaction: rollback to stable sweeping history store keys */
-#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1450
+#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1451
/*! transaction: rollback to stable tree walk skipping pages */
-#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1451
+#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1452
/*! transaction: rollback to stable updates aborted */
-#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1452
+#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1453
/*! transaction: rollback to stable updates removed from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1453
+#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1454
/*! transaction: sessions scanned in each walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1454
+#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1455
/*! transaction: set timestamp calls */
-#define WT_STAT_CONN_TXN_SET_TS 1455
+#define WT_STAT_CONN_TXN_SET_TS 1456
/*! transaction: set timestamp durable calls */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1456
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1457
/*! transaction: set timestamp durable updates */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1457
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1458
/*! transaction: set timestamp oldest calls */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1458
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1459
/*! transaction: set timestamp oldest updates */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1459
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1460
/*! transaction: set timestamp stable calls */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE 1460
+#define WT_STAT_CONN_TXN_SET_TS_STABLE 1461
/*! transaction: set timestamp stable updates */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1461
+#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1462
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1462
+#define WT_STAT_CONN_TXN_BEGIN 1463
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1463
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1464
/*!
* transaction: transaction checkpoint currently running for history
* store file
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1464
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1465
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1465
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1466
/*!
* transaction: transaction checkpoint history store file duration
* (usecs)
*/
-#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1466
+#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1467
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1467
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1468
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1468
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1469
/*!
* transaction: transaction checkpoint most recent duration for gathering
* all handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1469
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1470
/*!
* transaction: transaction checkpoint most recent duration for gathering
* applied handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1470
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1471
/*!
* transaction: transaction checkpoint most recent duration for gathering
* skipped handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1471
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1472
/*! transaction: transaction checkpoint most recent handles applied */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1472
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1473
/*! transaction: transaction checkpoint most recent handles skipped */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1473
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1474
/*! transaction: transaction checkpoint most recent handles walked */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1474
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1475
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1475
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1476
/*! transaction: transaction checkpoint prepare currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1476
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1477
/*! transaction: transaction checkpoint prepare max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1477
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1478
/*! transaction: transaction checkpoint prepare min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1478
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1479
/*! transaction: transaction checkpoint prepare most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1479
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1480
/*! transaction: transaction checkpoint prepare total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1480
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1481
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1481
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1482
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1482
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1483
/*! transaction: transaction checkpoint stop timing stress active */
-#define WT_STAT_CONN_TXN_CHECKPOINT_STOP_STRESS_ACTIVE 1483
+#define WT_STAT_CONN_TXN_CHECKPOINT_STOP_STRESS_ACTIVE 1484
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1484
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1485
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1485
+#define WT_STAT_CONN_TXN_CHECKPOINT 1486
/*! transaction: transaction checkpoints due to obsolete pages */
-#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1486
+#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1487
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1487
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1488
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1488
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1489
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1489
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1490
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1490
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1491
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1491
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1492
/*! transaction: transaction range of timestamps currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1492
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1493
/*! transaction: transaction range of timestamps pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1493
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1494
/*!
* transaction: transaction range of timestamps pinned by the oldest
* active read timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1494
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1495
/*!
* transaction: transaction range of timestamps pinned by the oldest
* timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1495
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1496
/*! transaction: transaction read timestamp of the oldest active reader */
-#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1496
+#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1497
/*! transaction: transaction rollback to stable currently running */
-#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1497
+#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1498
/*! transaction: transaction walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_WALK_SESSIONS 1498
+#define WT_STAT_CONN_TXN_WALK_SESSIONS 1499
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1499
+#define WT_STAT_CONN_TXN_COMMIT 1500
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1500
+#define WT_STAT_CONN_TXN_ROLLBACK 1501
/*! transaction: update conflicts */
-#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1501
+#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1502
/*!
* @}
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_write.c b/src/third_party/wiredtiger/src/reconcile/rec_write.c
index 332abde6bc3..671f96578d8 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_write.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_write.c
@@ -475,7 +475,7 @@ __rec_root_write(WT_SESSION_IMPL *session, WT_PAGE *page, uint32_t flags)
* discard these pages.
*/
WT_RET(__wt_page_alloc(session, page->type, mod->mod_multi_entries, false, &next));
- F_SET_ATOMIC(next, WT_PAGE_EVICT_NO_PROGRESS);
+ F_SET_ATOMIC_16(next, WT_PAGE_EVICT_NO_PROGRESS);
WT_INTL_INDEX_GET(session, next, pindex);
for (i = 0; i < mod->mod_multi_entries; ++i) {
diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c
index ea7d35fcef6..44866329fce 100644
--- a/src/third_party/wiredtiger/src/support/stat.c
+++ b/src/third_party/wiredtiger/src/support/stat.c
@@ -1180,6 +1180,7 @@ static const char *const __stats_connection_desc[] = {
"cache: pages read into cache",
"cache: pages read into cache after truncate",
"cache: pages read into cache after truncate in prepare state",
+ "cache: pages removed from the ordinary queue to be queued for urgent eviction",
"cache: pages requested from the cache",
"cache: pages seen by eviction walk",
"cache: pages seen by eviction walk that are already queued",
@@ -1729,6 +1730,7 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_read = 0;
stats->cache_read_deleted = 0;
stats->cache_read_deleted_prepared = 0;
+ stats->cache_eviction_clear_ordinary = 0;
stats->cache_pages_requested = 0;
stats->cache_eviction_pages_seen = 0;
stats->cache_eviction_pages_already_queued = 0;
@@ -2273,6 +2275,7 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cache_read += WT_STAT_READ(from, cache_read);
to->cache_read_deleted += WT_STAT_READ(from, cache_read_deleted);
to->cache_read_deleted_prepared += WT_STAT_READ(from, cache_read_deleted_prepared);
+ to->cache_eviction_clear_ordinary += WT_STAT_READ(from, cache_eviction_clear_ordinary);
to->cache_pages_requested += WT_STAT_READ(from, cache_pages_requested);
to->cache_eviction_pages_seen += WT_STAT_READ(from, cache_eviction_pages_seen);
to->cache_eviction_pages_already_queued +=