diff options
| author | Luke Chen <luke.chen@mongodb.com> | 2023-11-06 09:58:58 +1100 |
|---|---|---|
| committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-11-05 23:23:16 +0000 |
| commit | acdc463fe60bdc85aeced25297041b4051a0fc33 (patch) | |
| tree | 93da1ef5ae3a365b7358d7cc0f4b8b4011e2f699 | |
| parent | 70c1b18fae560cafd0913ac8d0f68868b1d04ec6 (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-x | src/third_party/wiredtiger/dist/flags.py | 26 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/dist/stat_data.py | 1 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/import.data | 2 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_debug.c | 14 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_discard.c | 10 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_page.c | 6 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_split.c | 8 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/evict/evict_lru.c | 86 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/evict/evict_stat.c | 2 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/include/btmem.h | 25 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/include/btree_inline.h | 10 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/include/hardware.h | 31 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/include/stat.h | 1 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/include/wiredtiger.in | 725 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/reconcile/rec_write.c | 2 | ||||
| -rw-r--r-- | src/third_party/wiredtiger/src/support/stat.c | 3 |
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, ¤t); @@ -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 += |
