summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger
diff options
context:
space:
mode:
authorEtienne Petrel <etienne.petrel@mongodb.com>2022-05-02 22:57:00 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-05-03 00:19:52 +0000
commitbd073fd759459fd7eba6610bfba68308598c9953 (patch)
treeb559b1c6312ca34a99d4654b7e8462cf2474b93d /src/third_party/wiredtiger
parent7eced17c3b5e1cf85284cf0f18bdc53d4bc97263 (diff)
downloadmongo-bd073fd759459fd7eba6610bfba68308598c9953.tar.gz
Import wiredtiger: f73ace80077f974162340b762cc6f2a92c31bcf4 from branch mongodb-master
ref: 90a43c0b68..f73ace8007 for: 6.1.0-rc0 WT-8707 Mongod reader yielding with WT::commit_transaction instead of rollback pins WT pages such that pages cannot be split/evicted by writer threads
Diffstat (limited to 'src/third_party/wiredtiger')
-rw-r--r--src/third_party/wiredtiger/dist/api_data.py2
-rw-r--r--src/third_party/wiredtiger/dist/s_string.ok1
-rw-r--r--src/third_party/wiredtiger/dist/stat_data.py2
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_curnext.c4
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_curprev.c4
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_cursor.c168
-rw-r--r--src/third_party/wiredtiger/src/config/config_def.c15
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_api.c1
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_file.c8
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_hs.c6
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_table.c9
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_page.c3
-rw-r--r--src/third_party/wiredtiger/src/include/api.h16
-rw-r--r--src/third_party/wiredtiger/src/include/btree_inline.h55
-rw-r--r--src/third_party/wiredtiger/src/include/connection.h27
-rw-r--r--src/third_party/wiredtiger/src/include/cursor.h12
-rw-r--r--src/third_party/wiredtiger/src/include/extern.h4
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h4
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in811
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c18
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c13
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h1
-rwxr-xr-xsrc/third_party/wiredtiger/test/evergreen.yml15
-rw-r--r--src/third_party/wiredtiger/test/format/config.h35
-rwxr-xr-x[-rw-r--r--]src/third_party/wiredtiger/test/format/config.sh2
-rw-r--r--src/third_party/wiredtiger/test/format/config_def.c354
-rw-r--r--src/third_party/wiredtiger/test/format/wts.c2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_hs30.py4
29 files changed, 943 insertions, 655 deletions
diff --git a/src/third_party/wiredtiger/dist/api_data.py b/src/third_party/wiredtiger/dist/api_data.py
index dbf9ca584cd..982de7b99a1 100644
--- a/src/third_party/wiredtiger/dist/api_data.py
+++ b/src/third_party/wiredtiger/dist/api_data.py
@@ -838,7 +838,7 @@ connection_runtime_config = [
type='list', undoc=True,
choices=[
'aggressive_sweep', 'backup_rename', 'checkpoint_reserved_txnid_delay', 'checkpoint_slow',
- 'compact_slow', 'failpoint_history_store_delete_key_from_ts',
+ 'compact_slow', 'evict_reposition', 'failpoint_history_store_delete_key_from_ts',
'history_store_checkpoint_delay', 'history_store_search', 'history_store_sweep_race',
'prepare_checkpoint_delay', 'split_1', 'split_2', 'split_3', 'split_4', 'split_5',
'split_6', 'split_7', 'tiered_flush_finish']),
diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok
index d24dc2be5bc..bbc00e4a34e 100644
--- a/src/third_party/wiredtiger/dist/s_string.ok
+++ b/src/third_party/wiredtiger/dist/s_string.ok
@@ -1187,6 +1187,7 @@ nd
needkey
needvalue
negint
+neighboring
nentries
nentriesp
newbar
diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py
index 8cd75906d5f..1d4f153f14d 100644
--- a/src/third_party/wiredtiger/dist/stat_data.py
+++ b/src/third_party/wiredtiger/dist/stat_data.py
@@ -872,6 +872,8 @@ conn_dsrc_stats = [
CursorStat('cursor_prev_skip_ge_100', 'cursor prev calls that skip greater than or equal to 100 entries'),
CursorStat('cursor_prev_skip_lt_100', 'cursor prev calls that skip less than 100 entries'),
CursorStat('cursor_prev_skip_total', 'Total number of entries skipped by cursor prev calls'),
+ CursorStat('cursor_reposition', 'Total number of times cursor temporarily releases pinned page to encourage eviction of hot or large page'),
+ CursorStat('cursor_reposition_failed', 'Total number of times cursor fails to temporarily release pinned page to encourage eviction of hot or large page'),
CursorStat('cursor_search_near_prefix_fast_paths', 'Total number of times a search near has exited due to prefix config'),
CursorStat('cursor_skip_hs_cur_position', 'Total number of entries skipped to position the history store cursor'),
##########################################
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 7a2e9e5c17e..51bb9159c87 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-master",
- "commit": "90a43c0b6817da8dd8ad2712119709338a82201b"
+ "commit": "f73ace80077f974162340b762cc6f2a92c31bcf4"
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_curnext.c b/src/third_party/wiredtiger/src/btree/bt_curnext.c
index 252c08cefad..c617ffadf38 100644
--- a/src/third_party/wiredtiger/src/btree/bt_curnext.c
+++ b/src/third_party/wiredtiger/src/btree/bt_curnext.c
@@ -903,6 +903,10 @@ err:
WT_TRET(__cursor_reset(cbt));
}
F_CLR(cbt, WT_CBT_ITERATE_RETRY_PREV);
+
+ if (ret == 0)
+ WT_RET(__wt_btcur_evict_reposition(cbt));
+
return (ret);
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_curprev.c b/src/third_party/wiredtiger/src/btree/bt_curprev.c
index 11cf44bd784..4ab32c10a15 100644
--- a/src/third_party/wiredtiger/src/btree/bt_curprev.c
+++ b/src/third_party/wiredtiger/src/btree/bt_curprev.c
@@ -845,5 +845,9 @@ err:
WT_TRET(__cursor_reset(cbt));
}
F_CLR(cbt, WT_CBT_ITERATE_RETRY_NEXT);
+
+ if (ret == 0)
+ WT_RET(__wt_btcur_evict_reposition(cbt));
+
return (ret);
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_cursor.c b/src/third_party/wiredtiger/src/btree/bt_cursor.c
index a8876758e81..3204880d267 100644
--- a/src/third_party/wiredtiger/src/btree/bt_cursor.c
+++ b/src/third_party/wiredtiger/src/btree/bt_cursor.c
@@ -446,6 +446,60 @@ __cursor_restart(WT_SESSION_IMPL *session, uint64_t *yield_count, uint64_t *slee
}
/*
+ * __cursor_search_neighboring --
+ * Try after the search key, then before. At low isolation levels, new records could appear as
+ * we are stepping through the tree.
+ */
+static int
+__cursor_search_neighboring(WT_CURSOR_BTREE *cbt, WT_CURFILE_STATE *state, int *exact)
+{
+ WT_BTREE *btree;
+ WT_CURSOR *cursor;
+ WT_DECL_RET;
+ WT_SESSION_IMPL *session;
+
+ btree = CUR2BT(cbt);
+ cursor = &cbt->iface;
+ session = CUR2S(cbt);
+
+ while ((ret = __wt_btcur_next_prefix(cbt, &state->key, false)) != WT_NOTFOUND) {
+ WT_RET(ret);
+ if (btree->type == BTREE_ROW)
+ WT_RET(__wt_compare(session, btree->collator, &cursor->key, &state->key, exact));
+ else
+ *exact = cbt->recno < state->recno ? -1 : cbt->recno == state->recno ? 0 : 1;
+ if (*exact >= 0)
+ return (ret);
+ }
+
+ /*
+ * It is not necessary to go backwards when search_near is used with a prefix, as cursor row
+ * search places us on the first key of the prefix range. All the entries before the key we were
+ * placed on will not match the prefix.
+ *
+ * For example, if we search with the prefix "b", the cursor will be positioned at the first key
+ * starting with "b". All the entries before this one will start with "a", hence not matching
+ * the prefix.
+ */
+ if (F_ISSET(cursor, WT_CURSTD_PREFIX_SEARCH))
+ return (ret);
+
+ /*
+ * We walked to the end of the tree without finding a match. Walk backwards instead.
+ */
+ while ((ret = __wt_btcur_prev(cbt, false)) != WT_NOTFOUND) {
+ WT_RET(ret);
+ if (btree->type == BTREE_ROW)
+ WT_RET(__wt_compare(session, btree->collator, &cursor->key, &state->key, exact));
+ else
+ *exact = cbt->recno < state->recno ? -1 : cbt->recno == state->recno ? 0 : 1;
+ if (*exact <= 0)
+ return (ret);
+ }
+ return (ret);
+}
+
+/*
* __wt_btcur_reset --
* Invalidate the cursor position.
*/
@@ -531,6 +585,73 @@ __wt_btcur_search_prepared(WT_CURSOR *cursor, WT_UPDATE **updp)
}
/*
+ * __cursor_reposition_timing_stress --
+ * Optionally reposition the cursor 10% of times
+ */
+static inline bool
+__cursor_reposition_timing_stress(WT_SESSION_IMPL *session)
+{
+ WT_CONNECTION_IMPL *conn;
+
+ conn = S2C(session);
+
+ if (FLD_ISSET(conn->timing_stress_flags, WT_TIMING_STRESS_EVICT_REPOSITION) &&
+ __wt_random(&session->rnd) % 10 == 0)
+ return (true);
+
+ return (false);
+}
+
+/*
+ * __wt_btcur_evict_reposition --
+ * Try to evict the page and reposition the cursor on the saved key.
+ */
+int
+__wt_btcur_evict_reposition(WT_CURSOR_BTREE *cbt)
+{
+ WT_CURSOR *cursor;
+ WT_DECL_RET;
+ WT_SESSION_IMPL *session;
+
+ cursor = &cbt->iface;
+ session = CUR2S(cbt);
+
+ /* It's not always OK to release the cursor position */
+ if (!F_ISSET(cursor, WT_CURSTD_EVICT_REPOSITION))
+ return (0);
+
+ /*
+ * Try to evict the page and then reposition the cursor back to the page for operations with
+ * snapshot isolation and for pages that require urgent eviction. Snapshot isolation level
+ * maintains a snapshot allowing the cursor to point at the correct value after a reposition
+ * unlike read committed isolation level.
+ */
+ if (session->txn->isolation == WT_ISO_SNAPSHOT && F_ISSET(session->txn, WT_TXN_RUNNING) &&
+ (__wt_page_evict_soon_check(session, cbt->ref, NULL) ||
+ __cursor_reposition_timing_stress(session))) {
+
+ WT_STAT_CONN_DATA_INCR(session, cursor_reposition);
+ WT_ERR(__wt_cursor_localkey(cursor));
+ WT_ERR(__cursor_reset(cbt));
+ WT_WITHOUT_EVICT_REPOSITION(ret = __wt_btcur_search(cbt));
+ WT_ERR(ret);
+ }
+
+err:
+ if (ret != 0) {
+ WT_STAT_CONN_DATA_INCR(session, cursor_reposition_failed);
+ /*
+ * If we got a WT_ROLLBACK it is because there is a lot of cache pressure and the
+ * transaction is being killed - don't panic in that case.
+ */
+ if (ret != WT_ROLLBACK)
+ WT_RET_PANIC(session, ret, "failed to reposition the cursor");
+ }
+
+ return (ret);
+}
+
+/*
* __wt_btcur_search --
* Search for a matching record in the tree.
*/
@@ -633,6 +754,9 @@ __wt_btcur_search(WT_CURSOR_BTREE *cbt)
WT_ERR(__wt_cursor_key_order_init(cbt));
#endif
+ if (ret == 0)
+ WT_ERR(__wt_btcur_evict_reposition(cbt));
+
err:
if (ret != 0) {
WT_TRET(__cursor_reset(cbt));
@@ -771,48 +895,14 @@ __wt_btcur_search_near(WT_CURSOR_BTREE *cbt, int *exactp)
F_CLR(cursor, WT_CURSTD_KEY_SET | WT_CURSTD_VALUE_SET);
F_SET(cursor, WT_CURSTD_KEY_INT | WT_CURSTD_VALUE_INT);
} else {
- /*
- * We didn't find an exact match: try after the search key, then before. We have to loop
- * here because at low isolation levels, new records could appear as we are stepping through
- * the tree.
- */
- while ((ret = __wt_btcur_next_prefix(cbt, &state.key, false)) != WT_NOTFOUND) {
- WT_ERR(ret);
- if (btree->type == BTREE_ROW)
- WT_ERR(__wt_compare(session, btree->collator, &cursor->key, &state.key, &exact));
- else
- exact = cbt->recno < state.recno ? -1 : cbt->recno == state.recno ? 0 : 1;
- if (exact >= 0)
- goto done;
- }
-
- /*
- * It is not necessary to go backwards when search_near is used with a prefix, as cursor row
- * search places us on the first key of the prefix range. All the entries before the key we
- * were placed on will not match the prefix.
- *
- * For example, if we search with the prefix "b", the cursor will be positioned at the first
- * key starting with "b". All the entries before this one will start with "a", hence not
- * matching the prefix.
- */
- if (F_ISSET(cursor, WT_CURSTD_PREFIX_SEARCH))
- goto done;
-
- /*
- * We walked to the end of the tree without finding a match. Walk backwards instead.
- */
- while ((ret = __wt_btcur_prev(cbt, false)) != WT_NOTFOUND) {
- WT_ERR(ret);
- if (btree->type == BTREE_ROW)
- WT_ERR(__wt_compare(session, btree->collator, &cursor->key, &state.key, &exact));
- else
- exact = cbt->recno < state.recno ? -1 : cbt->recno == state.recno ? 0 : 1;
- if (exact <= 0)
- goto done;
- }
+ /* We didn't find an exact match, try to find the nearest one. */
+ WT_WITHOUT_EVICT_REPOSITION(ret = __cursor_search_neighboring(cbt, &state, &exact));
+ WT_ERR(ret);
}
done:
+ if (ret == 0)
+ WT_ERR(__wt_btcur_evict_reposition(cbt));
err:
if (ret == 0 && exactp != NULL)
*exactp = exact;
diff --git a/src/third_party/wiredtiger/src/config/config_def.c b/src/third_party/wiredtiger/src/config/config_def.c
index 4890d54ba95..9b718e49d6b 100644
--- a/src/third_party/wiredtiger/src/config/config_def.c
+++ b/src/third_party/wiredtiger/src/config/config_def.c
@@ -155,7 +155,8 @@ static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure[] = {
{"timing_stress_for_test", "list", NULL,
"choices=[\"aggressive_sweep\",\"backup_rename\","
"\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
- "\"compact_slow\",\"failpoint_history_store_delete_key_from_ts\","
+ "\"compact_slow\",\"evict_reposition\","
+ "\"failpoint_history_store_delete_key_from_ts\","
"\"history_store_checkpoint_delay\",\"history_store_search\","
"\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
"\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
@@ -892,7 +893,8 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open[] = {
{"timing_stress_for_test", "list", NULL,
"choices=[\"aggressive_sweep\",\"backup_rename\","
"\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
- "\"compact_slow\",\"failpoint_history_store_delete_key_from_ts\","
+ "\"compact_slow\",\"evict_reposition\","
+ "\"failpoint_history_store_delete_key_from_ts\","
"\"history_store_checkpoint_delay\",\"history_store_search\","
"\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
"\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
@@ -974,7 +976,8 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_all[] = {
{"timing_stress_for_test", "list", NULL,
"choices=[\"aggressive_sweep\",\"backup_rename\","
"\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
- "\"compact_slow\",\"failpoint_history_store_delete_key_from_ts\","
+ "\"compact_slow\",\"evict_reposition\","
+ "\"failpoint_history_store_delete_key_from_ts\","
"\"history_store_checkpoint_delay\",\"history_store_search\","
"\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
"\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
@@ -1054,7 +1057,8 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_basecfg[] = {
{"timing_stress_for_test", "list", NULL,
"choices=[\"aggressive_sweep\",\"backup_rename\","
"\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
- "\"compact_slow\",\"failpoint_history_store_delete_key_from_ts\","
+ "\"compact_slow\",\"evict_reposition\","
+ "\"failpoint_history_store_delete_key_from_ts\","
"\"history_store_checkpoint_delay\",\"history_store_search\","
"\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
"\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
@@ -1132,7 +1136,8 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_usercfg[] = {
{"timing_stress_for_test", "list", NULL,
"choices=[\"aggressive_sweep\",\"backup_rename\","
"\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
- "\"compact_slow\",\"failpoint_history_store_delete_key_from_ts\","
+ "\"compact_slow\",\"evict_reposition\","
+ "\"failpoint_history_store_delete_key_from_ts\","
"\"history_store_checkpoint_delay\",\"history_store_search\","
"\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
"\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
diff --git a/src/third_party/wiredtiger/src/conn/conn_api.c b/src/third_party/wiredtiger/src/conn/conn_api.c
index 799b199bfb2..96b785737d6 100644
--- a/src/third_party/wiredtiger/src/conn/conn_api.c
+++ b/src/third_party/wiredtiger/src/conn/conn_api.c
@@ -2243,6 +2243,7 @@ __wt_timing_stress_config(WT_SESSION_IMPL *session, const char *cfg[])
{"checkpoint_reserved_txnid_delay", WT_TIMING_STRESS_CHECKPOINT_RESERVED_TXNID_DELAY},
{"checkpoint_slow", WT_TIMING_STRESS_CHECKPOINT_SLOW},
{"compact_slow", WT_TIMING_STRESS_COMPACT_SLOW},
+ {"evict_reposition", WT_TIMING_STRESS_EVICT_REPOSITION},
{"failpoint_history_delete_key_from_ts",
WT_TIMING_STRESS_FAILPOINT_HISTORY_STORE_DELETE_KEY_FROM_TS},
{"history_store_checkpoint_delay", WT_TIMING_STRESS_HS_CHECKPOINT_DELAY},
diff --git a/src/third_party/wiredtiger/src/cursor/cur_file.c b/src/third_party/wiredtiger/src/cursor/cur_file.c
index 310c8d4c442..58651522c1f 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_file.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_file.c
@@ -179,6 +179,7 @@ __curfile_next(WT_CURSOR *cursor)
cbt = (WT_CURSOR_BTREE *)cursor;
CURSOR_API_CALL(cursor, session, next, CUR2BT(cbt));
+ CURSOR_REPOSITION_ENTER(cursor, session);
WT_ERR(__cursor_copy_release(cursor));
WT_ERR(__curfile_check_cbt_txn(session, cbt));
@@ -192,6 +193,7 @@ __curfile_next(WT_CURSOR *cursor)
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
@@ -238,6 +240,7 @@ __curfile_prev(WT_CURSOR *cursor)
cbt = (WT_CURSOR_BTREE *)cursor;
CURSOR_API_CALL(cursor, session, prev, CUR2BT(cbt));
+ CURSOR_REPOSITION_ENTER(cursor, session);
WT_ERR(__cursor_copy_release(cursor));
WT_ERR(__curfile_check_cbt_txn(session, cbt));
@@ -251,6 +254,7 @@ __curfile_prev(WT_CURSOR *cursor)
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
@@ -294,6 +298,7 @@ __curfile_search(WT_CURSOR *cursor)
cbt = (WT_CURSOR_BTREE *)cursor;
CURSOR_API_CALL(cursor, session, search, CUR2BT(cbt));
+ CURSOR_REPOSITION_ENTER(cursor, session);
WT_ERR(__cursor_copy_release(cursor));
WT_ERR(__cursor_checkkey(cursor));
@@ -311,6 +316,7 @@ __curfile_search(WT_CURSOR *cursor)
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
@@ -328,6 +334,7 @@ __curfile_search_near(WT_CURSOR *cursor, int *exact)
cbt = (WT_CURSOR_BTREE *)cursor;
CURSOR_API_CALL(cursor, session, search_near, CUR2BT(cbt));
+ CURSOR_REPOSITION_ENTER(cursor, session);
WT_ERR(__cursor_copy_release(cursor));
WT_ERR(__cursor_checkkey(cursor));
@@ -345,6 +352,7 @@ __curfile_search_near(WT_CURSOR *cursor, int *exact)
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
diff --git a/src/third_party/wiredtiger/src/cursor/cur_hs.c b/src/third_party/wiredtiger/src/cursor/cur_hs.c
index c6f0ba703d7..6c6796a3718 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_hs.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_hs.c
@@ -972,8 +972,10 @@ __curhs_insert(WT_CURSOR *cursor)
#ifdef HAVE_DIAGNOSTIC
/* Do a search again and call next to check the key order. */
ret = __curhs_file_cursor_search_near(session, file_cursor, &exact);
- WT_ASSERT(session, ret == 0 && exact == 0);
- WT_ERR_NOTFOUND_OK(__curhs_file_cursor_next(session, file_cursor), false);
+ WT_ASSERT(session, ret == 0);
+ /* FIXME: WT-9164 Figure out whether we need to assert exact. */
+ if (exact == 0)
+ WT_ERR_NOTFOUND_OK(__curhs_file_cursor_next(session, file_cursor), false);
#endif
/* Insert doesn't maintain a position across calls, clear resources. */
diff --git a/src/third_party/wiredtiger/src/cursor/cur_table.c b/src/third_party/wiredtiger/src/cursor/cur_table.c
index 0fe18bdfd3c..0f2e290938a 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_table.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_table.c
@@ -362,9 +362,11 @@ __curtable_next(WT_CURSOR *cursor)
ctable = (WT_CURSOR_TABLE *)cursor;
JOINABLE_CURSOR_API_CALL(cursor, session, next, NULL);
+ CURSOR_REPOSITION_ENTER(cursor, session);
APPLY_CG(ctable, next);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
@@ -415,9 +417,11 @@ __curtable_prev(WT_CURSOR *cursor)
ctable = (WT_CURSOR_TABLE *)cursor;
JOINABLE_CURSOR_API_CALL(cursor, session, prev, NULL);
+ CURSOR_REPOSITION_ENTER(cursor, session);
APPLY_CG(ctable, prev);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
@@ -453,9 +457,11 @@ __curtable_search(WT_CURSOR *cursor)
ctable = (WT_CURSOR_TABLE *)cursor;
JOINABLE_CURSOR_API_CALL(cursor, session, search, NULL);
+ CURSOR_REPOSITION_ENTER(cursor, session);
APPLY_CG(ctable, search);
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
@@ -474,6 +480,8 @@ __curtable_search_near(WT_CURSOR *cursor, int *exact)
ctable = (WT_CURSOR_TABLE *)cursor;
JOINABLE_CURSOR_API_CALL(cursor, session, search_near, NULL);
+ CURSOR_REPOSITION_ENTER(cursor, session);
+
cp = ctable->cg_cursors;
primary = *cp;
WT_ERR(primary->search_near(primary, exact));
@@ -487,6 +495,7 @@ __curtable_search_near(WT_CURSOR *cursor, int *exact)
}
err:
+ CURSOR_REPOSITION_END(cursor, session);
API_END_RET(session, ret);
}
diff --git a/src/third_party/wiredtiger/src/evict/evict_page.c b/src/third_party/wiredtiger/src/evict/evict_page.c
index ea9e8f99b66..daca6ccf705 100644
--- a/src/third_party/wiredtiger/src/evict/evict_page.c
+++ b/src/third_party/wiredtiger/src/evict/evict_page.c
@@ -134,6 +134,9 @@ __wt_evict(WT_SESSION_IMPL *session, WT_REF *ref, uint8_t previous_state, uint32
*/
time_start = 0;
if (LF_ISSET(WT_EVICT_CALL_URGENT)) {
+ /* Set this page to be evicted as soon as possible. */
+ __wt_page_evict_soon(session, ref);
+
time_start = __wt_clock(session);
WT_STAT_CONN_INCR(session, cache_eviction_force);
diff --git a/src/third_party/wiredtiger/src/include/api.h b/src/third_party/wiredtiger/src/include/api.h
index 14b26fbfe14..c5958a2c6a0 100644
--- a/src/third_party/wiredtiger/src/include/api.h
+++ b/src/third_party/wiredtiger/src/include/api.h
@@ -275,3 +275,19 @@
TXN_API_END(s, ret, retry)
#define CURSOR_UPDATE_API_END(s, ret) CURSOR_UPDATE_API_END_RETRY(s, ret, true)
+
+/*
+ * Calling certain top level APIs allows for internal repositioning of cursors to facilitate
+ * eviction of hot pages. These macros facilitate tracking when that is OK.
+ */
+#define CURSOR_REPOSITION_ENTER(c, s) \
+ do { \
+ if ((s)->api_call_counter == 1) \
+ F_SET((c), WT_CURSTD_EVICT_REPOSITION);
+
+#define CURSOR_REPOSITION_END(c, s) \
+ if ((s)->api_call_counter == 1) \
+ F_CLR((c), WT_CURSTD_EVICT_REPOSITION); \
+ } \
+ while (0) \
+ ;
diff --git a/src/third_party/wiredtiger/src/include/btree_inline.h b/src/third_party/wiredtiger/src/include/btree_inline.h
index 796bd93cf24..01e383fcbc0 100644
--- a/src/third_party/wiredtiger/src/include/btree_inline.h
+++ b/src/third_party/wiredtiger/src/include/btree_inline.h
@@ -92,6 +92,36 @@ __wt_page_is_empty(WT_PAGE *page)
}
/*
+ * __wt_page_evict_soon_check --
+ * Check whether the page should be evicted urgently.
+ */
+static inline bool
+__wt_page_evict_soon_check(WT_SESSION_IMPL *session, WT_REF *ref, bool *inmem_split)
+{
+ WT_BTREE *btree;
+ WT_PAGE *page;
+
+ btree = S2BT(session);
+ page = ref->page;
+
+ /*
+ * Attempt to evict pages with the special "oldest" read generation. This is set for pages that
+ * grow larger than the configured memory_page_max setting, when we see many deleted items, and
+ * when we are attempting to scan without trashing the cache.
+ *
+ * Checkpoint should not queue pages for urgent eviction if they require dirty eviction: there
+ * is a special exemption that allows checkpoint to evict dirty pages in a tree that is being
+ * checkpointed, and no other thread can help with that. Checkpoints don't rely on this code for
+ * dirty eviction: that is handled explicitly in __wt_sync_file.
+ */
+ if (WT_READGEN_EVICT_SOON(page->read_gen) && btree->evict_disabled == 0 &&
+ __wt_page_can_evict(session, ref, inmem_split) &&
+ (!WT_SESSION_IS_CHECKPOINT(session) || __wt_page_evict_clean(page)))
+ return (true);
+ return (false);
+}
+
+/*
* __wt_page_evict_clean --
* Return if the page can be evicted without dirtying the tree.
*/
@@ -1777,7 +1807,6 @@ __wt_page_release(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags)
{
WT_BTREE *btree;
WT_DECL_RET;
- WT_PAGE *page;
bool inmem_split;
btree = S2BT(session);
@@ -1804,24 +1833,12 @@ __wt_page_release(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags)
return (0);
}
- /*
- * Attempt to evict pages with the special "oldest" read generation. This is set for pages that
- * grow larger than the configured memory_page_max setting, when we see many deleted items, and
- * when we are attempting to scan without trashing the cache.
- *
- * Checkpoint should not queue pages for urgent eviction if they require dirty eviction: there
- * is a special exemption that allows checkpoint to evict dirty pages in a tree that is being
- * checkpointed, and no other thread can help with that. Checkpoints don't rely on this code for
- * dirty eviction: that is handled explicitly in __wt_sync_file.
- *
- * If the operation has disabled eviction or splitting, or the session is preventing from
- * reconciling, then just queue the page for urgent eviction. Otherwise, attempt to release and
- * evict it.
- */
- page = ref->page;
- if (WT_READGEN_EVICT_SOON(page->read_gen) && btree->evict_disabled == 0 &&
- __wt_page_can_evict(session, ref, &inmem_split) &&
- (!WT_SESSION_IS_CHECKPOINT(session) || __wt_page_evict_clean(page))) {
+ if (__wt_page_evict_soon_check(session, ref, &inmem_split)) {
+ /*
+ * If the operation has disabled eviction or splitting, or the session is preventing from
+ * reconciling, then just queue the page for urgent eviction. Otherwise, attempt to release
+ * and evict it.
+ */
if (LF_ISSET(WT_READ_NO_EVICT) ||
(inmem_split ? LF_ISSET(WT_READ_NO_SPLIT) : F_ISSET(session, WT_SESSION_NO_RECONCILE)))
WT_IGNORE_RET_BOOL(__wt_page_evict_urgent(session, ref));
diff --git a/src/third_party/wiredtiger/src/include/connection.h b/src/third_party/wiredtiger/src/include/connection.h
index 161f066b8d5..804d816bcd2 100644
--- a/src/third_party/wiredtiger/src/include/connection.h
+++ b/src/third_party/wiredtiger/src/include/connection.h
@@ -582,19 +582,20 @@ struct __wt_connection_impl {
#define WT_TIMING_STRESS_CHECKPOINT_RESERVED_TXNID_DELAY 0x00004u
#define WT_TIMING_STRESS_CHECKPOINT_SLOW 0x00008u
#define WT_TIMING_STRESS_COMPACT_SLOW 0x00010u
-#define WT_TIMING_STRESS_FAILPOINT_HISTORY_STORE_DELETE_KEY_FROM_TS 0x00020u
-#define WT_TIMING_STRESS_HS_CHECKPOINT_DELAY 0x00040u
-#define WT_TIMING_STRESS_HS_SEARCH 0x00080u
-#define WT_TIMING_STRESS_HS_SWEEP 0x00100u
-#define WT_TIMING_STRESS_PREPARE_CHECKPOINT_DELAY 0x00200u
-#define WT_TIMING_STRESS_SPLIT_1 0x00400u
-#define WT_TIMING_STRESS_SPLIT_2 0x00800u
-#define WT_TIMING_STRESS_SPLIT_3 0x01000u
-#define WT_TIMING_STRESS_SPLIT_4 0x02000u
-#define WT_TIMING_STRESS_SPLIT_5 0x04000u
-#define WT_TIMING_STRESS_SPLIT_6 0x08000u
-#define WT_TIMING_STRESS_SPLIT_7 0x10000u
-#define WT_TIMING_STRESS_TIERED_FLUSH_FINISH 0x20000u
+#define WT_TIMING_STRESS_EVICT_REPOSITION 0x00020u
+#define WT_TIMING_STRESS_FAILPOINT_HISTORY_STORE_DELETE_KEY_FROM_TS 0x00040u
+#define WT_TIMING_STRESS_HS_CHECKPOINT_DELAY 0x00080u
+#define WT_TIMING_STRESS_HS_SEARCH 0x00100u
+#define WT_TIMING_STRESS_HS_SWEEP 0x00200u
+#define WT_TIMING_STRESS_PREPARE_CHECKPOINT_DELAY 0x00400u
+#define WT_TIMING_STRESS_SPLIT_1 0x00800u
+#define WT_TIMING_STRESS_SPLIT_2 0x01000u
+#define WT_TIMING_STRESS_SPLIT_3 0x02000u
+#define WT_TIMING_STRESS_SPLIT_4 0x04000u
+#define WT_TIMING_STRESS_SPLIT_5 0x08000u
+#define WT_TIMING_STRESS_SPLIT_6 0x10000u
+#define WT_TIMING_STRESS_SPLIT_7 0x20000u
+#define WT_TIMING_STRESS_TIERED_FLUSH_FINISH 0x40000u
/* AUTOMATIC FLAG VALUE GENERATION STOP 64 */
uint64_t timing_stress_flags;
diff --git a/src/third_party/wiredtiger/src/include/cursor.h b/src/third_party/wiredtiger/src/include/cursor.h
index d51db10de8f..6d606de5cc2 100644
--- a/src/third_party/wiredtiger/src/include/cursor.h
+++ b/src/third_party/wiredtiger/src/include/cursor.h
@@ -35,6 +35,16 @@
0 /* uint32_t flags */ \
}
+/* Call a function without the evict reposition cursor flag, restore afterwards. */
+#define WT_WITHOUT_EVICT_REPOSITION(e) \
+ do { \
+ bool __evict_reposition_flag = F_ISSET(cursor, WT_CURSTD_EVICT_REPOSITION); \
+ F_CLR(cursor, WT_CURSTD_EVICT_REPOSITION); \
+ e; \
+ if (__evict_reposition_flag) \
+ F_SET(cursor, WT_CURSTD_EVICT_REPOSITION); \
+ } while (0)
+
struct __wt_cursor_backup {
WT_CURSOR iface;
@@ -232,7 +242,7 @@ struct __wt_cursor_btree {
/* AUTOMATIC FLAG VALUE GENERATION START 0 */
#define WT_CBT_ACTIVE 0x001u /* Active in the tree */
-#define WT_CBT_CACHEABLE_RLE_CELL 0x002u /* Col-store: value in RLE cell valid for all its keys */
+#define WT_CBT_CACHEABLE_RLE_CELL 0x002u /* Col-store: value in RLE cell valid for its keys */
#define WT_CBT_ITERATE_APPEND 0x004u /* Col-store: iterating append list */
#define WT_CBT_ITERATE_NEXT 0x008u /* Next iteration configuration */
#define WT_CBT_ITERATE_PREV 0x010u /* Prev iteration configuration */
diff --git a/src/third_party/wiredtiger/src/include/extern.h b/src/third_party/wiredtiger/src/include/extern.h
index d83f3be685b..78c9962a4ae 100644
--- a/src/third_party/wiredtiger/src/include/extern.h
+++ b/src/third_party/wiredtiger/src/include/extern.h
@@ -262,6 +262,8 @@ extern int __wt_btcur_compare(WT_CURSOR_BTREE *a_arg, WT_CURSOR_BTREE *b_arg, in
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_btcur_equals(WT_CURSOR_BTREE *a_arg, WT_CURSOR_BTREE *b_arg, int *equalp)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_btcur_evict_reposition(WT_CURSOR_BTREE *cbt)
+ WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_btcur_insert(WT_CURSOR_BTREE *cbt) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_btcur_insert_check(WT_CURSOR_BTREE *cbt)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
@@ -1964,6 +1966,8 @@ static inline bool __wt_page_evict_clean(WT_PAGE *page)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
static inline bool __wt_page_evict_retry(WT_SESSION_IMPL *session, WT_PAGE *page)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+static inline bool __wt_page_evict_soon_check(WT_SESSION_IMPL *session, WT_REF *ref,
+ bool *inmem_split) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
static inline bool __wt_page_is_empty(WT_PAGE *page)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
static inline bool __wt_page_is_modified(WT_PAGE *page)
diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h
index 91e5ae7f0f5..8c1281a984c 100644
--- a/src/third_party/wiredtiger/src/include/stat.h
+++ b/src/third_party/wiredtiger/src/include/stat.h
@@ -548,6 +548,8 @@ struct __wt_connection_stats {
int64_t cursor_prev_skip_total;
int64_t cursor_skip_hs_cur_position;
int64_t cursor_search_near_prefix_fast_paths;
+ int64_t cursor_reposition_failed;
+ int64_t cursor_reposition;
int64_t cursor_cached_count;
int64_t cursor_insert_bulk;
int64_t cursor_cache;
@@ -1001,6 +1003,8 @@ struct __wt_dsrc_stats {
int64_t cursor_prev_skip_total;
int64_t cursor_skip_hs_cur_position;
int64_t cursor_search_near_prefix_fast_paths;
+ int64_t cursor_reposition_failed;
+ int64_t cursor_reposition;
int64_t cursor_insert_bulk;
int64_t cursor_reopen;
int64_t cursor_cache;
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in
index 668a6e0f3a7..2b01cffaa33 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger.in
+++ b/src/third_party/wiredtiger/src/include/wiredtiger.in
@@ -724,22 +724,23 @@ struct __wt_cursor {
#define WT_CURSTD_DUMP_PRETTY 0x00000400u
#define WT_CURSTD_DUMP_PRINT 0x00000800u
#define WT_CURSTD_DUP_NO_VALUE 0x00001000u
-#define WT_CURSTD_HS_READ_ALL 0x00002000u
-#define WT_CURSTD_HS_READ_COMMITTED 0x00004000u
-#define WT_CURSTD_IGNORE_TOMBSTONE 0x00008000u
-#define WT_CURSTD_JOINED 0x00010000u
-#define WT_CURSTD_KEY_EXT 0x00020000u /* Key points out of tree. */
-#define WT_CURSTD_KEY_INT 0x00040000u /* Key points into tree. */
-#define WT_CURSTD_KEY_ONLY 0x00080000u
-#define WT_CURSTD_META_INUSE 0x00100000u
-#define WT_CURSTD_OPEN 0x00200000u
-#define WT_CURSTD_OVERWRITE 0x00400000u
-#define WT_CURSTD_PREFIX_SEARCH 0x00800000u
-#define WT_CURSTD_RAW 0x01000000u
-#define WT_CURSTD_RAW_SEARCH 0x02000000u
-#define WT_CURSTD_VALUE_EXT 0x04000000u /* Value points out of tree. */
-#define WT_CURSTD_VALUE_INT 0x08000000u /* Value points into tree. */
-#define WT_CURSTD_VERSION_CURSOR 0x10000000u /* Version cursor. */
+#define WT_CURSTD_EVICT_REPOSITION 0x00002000u
+#define WT_CURSTD_HS_READ_ALL 0x00004000u
+#define WT_CURSTD_HS_READ_COMMITTED 0x00008000u
+#define WT_CURSTD_IGNORE_TOMBSTONE 0x00010000u
+#define WT_CURSTD_JOINED 0x00020000u
+#define WT_CURSTD_KEY_EXT 0x00040000u /* Key points out of tree. */
+#define WT_CURSTD_KEY_INT 0x00080000u /* Key points into tree. */
+#define WT_CURSTD_KEY_ONLY 0x00100000u
+#define WT_CURSTD_META_INUSE 0x00200000u
+#define WT_CURSTD_OPEN 0x00400000u
+#define WT_CURSTD_OVERWRITE 0x00800000u
+#define WT_CURSTD_PREFIX_SEARCH 0x01000000u
+#define WT_CURSTD_RAW 0x02000000u
+#define WT_CURSTD_RAW_SEARCH 0x04000000u
+#define WT_CURSTD_VALUE_EXT 0x08000000u /* Value points out of tree. */
+#define WT_CURSTD_VALUE_INT 0x10000000u /* Value points into tree. */
+#define WT_CURSTD_VERSION_CURSOR 0x20000000u /* Version cursor. */
/* AUTOMATIC FLAG VALUE GENERATION STOP 32 */
#define WT_CURSTD_KEY_SET (WT_CURSTD_KEY_EXT | WT_CURSTD_KEY_INT)
#define WT_CURSTD_VALUE_SET (WT_CURSTD_VALUE_EXT | WT_CURSTD_VALUE_INT)
@@ -5692,724 +5693,734 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
* config
*/
#define WT_STAT_CONN_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 1215
+/*!
+ * cursor: Total number of times cursor fails to temporarily release
+ * pinned page to encourage eviction of hot or large page
+ */
+#define WT_STAT_CONN_CURSOR_REPOSITION_FAILED 1216
+/*!
+ * cursor: Total number of times cursor temporarily releases pinned page
+ * to encourage eviction of hot or large page
+ */
+#define WT_STAT_CONN_CURSOR_REPOSITION 1217
/*! cursor: cached cursor count */
-#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1216
+#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1218
/*! cursor: cursor bulk loaded cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT_BULK 1217
+#define WT_STAT_CONN_CURSOR_INSERT_BULK 1219
/*! cursor: cursor close calls that result in cache */
-#define WT_STAT_CONN_CURSOR_CACHE 1218
+#define WT_STAT_CONN_CURSOR_CACHE 1220
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1219
+#define WT_STAT_CONN_CURSOR_CREATE 1221
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1220
+#define WT_STAT_CONN_CURSOR_INSERT 1222
/*! cursor: cursor insert key and value bytes */
-#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1221
+#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1223
/*! cursor: cursor modify calls */
-#define WT_STAT_CONN_CURSOR_MODIFY 1222
+#define WT_STAT_CONN_CURSOR_MODIFY 1224
/*! cursor: cursor modify key and value bytes affected */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1223
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1225
/*! cursor: cursor modify value bytes modified */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1224
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1226
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1225
+#define WT_STAT_CONN_CURSOR_NEXT 1227
/*!
* cursor: cursor next calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1226
+#define WT_STAT_CONN_CURSOR_NEXT_HS_TOMBSTONE 1228
/*!
* cursor: cursor next calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1227
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_GE_100 1229
/*! cursor: cursor next calls that skip less than 100 entries */
-#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1228
+#define WT_STAT_CONN_CURSOR_NEXT_SKIP_LT_100 1230
/*! cursor: cursor operation restarted */
-#define WT_STAT_CONN_CURSOR_RESTART 1229
+#define WT_STAT_CONN_CURSOR_RESTART 1231
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1230
+#define WT_STAT_CONN_CURSOR_PREV 1232
/*!
* cursor: cursor prev calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1231
+#define WT_STAT_CONN_CURSOR_PREV_HS_TOMBSTONE 1233
/*!
* cursor: cursor prev calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1232
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_GE_100 1234
/*! cursor: cursor prev calls that skip less than 100 entries */
-#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1233
+#define WT_STAT_CONN_CURSOR_PREV_SKIP_LT_100 1235
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1234
+#define WT_STAT_CONN_CURSOR_REMOVE 1236
/*! cursor: cursor remove key bytes removed */
-#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1235
+#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1237
/*! cursor: cursor reserve calls */
-#define WT_STAT_CONN_CURSOR_RESERVE 1236
+#define WT_STAT_CONN_CURSOR_RESERVE 1238
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1237
+#define WT_STAT_CONN_CURSOR_RESET 1239
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1238
+#define WT_STAT_CONN_CURSOR_SEARCH 1240
/*! cursor: cursor search history store calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_HS 1239
+#define WT_STAT_CONN_CURSOR_SEARCH_HS 1241
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1240
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1242
/*! cursor: cursor sweep buckets */
-#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1241
+#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1243
/*! cursor: cursor sweep cursors closed */
-#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1242
+#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1244
/*! cursor: cursor sweep cursors examined */
-#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1243
+#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1245
/*! cursor: cursor sweeps */
-#define WT_STAT_CONN_CURSOR_SWEEP 1244
+#define WT_STAT_CONN_CURSOR_SWEEP 1246
/*! cursor: cursor truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1245
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1247
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1246
+#define WT_STAT_CONN_CURSOR_UPDATE 1248
/*! cursor: cursor update key and value bytes */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1247
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1249
/*! cursor: cursor update value size change */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1248
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1250
/*! cursor: cursors reused from cache */
-#define WT_STAT_CONN_CURSOR_REOPEN 1249
+#define WT_STAT_CONN_CURSOR_REOPEN 1251
/*! cursor: open cursor count */
-#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1250
+#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1252
/*! data-handle: connection data handle size */
-#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1251
+#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1253
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1252
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1254
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1253
+#define WT_STAT_CONN_DH_SWEEP_REF 1255
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1254
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1256
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1255
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1257
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1256
+#define WT_STAT_CONN_DH_SWEEP_TOD 1258
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1257
+#define WT_STAT_CONN_DH_SWEEPS 1259
/*!
* data-handle: connection sweeps skipped due to checkpoint gathering
* handles
*/
-#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1258
+#define WT_STAT_CONN_DH_SWEEP_SKIP_CKPT 1260
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1259
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1261
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1260
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1262
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1261
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1263
/*! lock: checkpoint lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1262
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1264
/*! lock: checkpoint lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1263
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1265
/*! lock: dhandle lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1264
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1266
/*! lock: dhandle lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1265
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1267
/*! lock: dhandle read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1266
+#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1268
/*! lock: dhandle write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1267
+#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1269
/*!
* lock: durable timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1268
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1270
/*!
* lock: durable timestamp queue lock internal thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1269
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1271
/*! lock: durable timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1270
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1272
/*! lock: durable timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1271
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1273
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1272
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1274
/*! lock: metadata lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1273
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1275
/*! lock: metadata lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1274
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1276
/*!
* lock: read timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1275
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1277
/*! lock: read timestamp queue lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1276
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1278
/*! lock: read timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1277
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1279
/*! lock: read timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1278
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1280
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1279
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1281
/*! lock: schema lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1280
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1282
/*! lock: schema lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1281
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1283
/*!
* lock: table lock application thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1282
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1284
/*!
* lock: table lock internal thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1283
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1285
/*! lock: table read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1284
+#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1286
/*! lock: table write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1285
+#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1287
/*! lock: txn global lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1286
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1288
/*! lock: txn global lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1287
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1289
/*! lock: txn global read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1288
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1290
/*! lock: txn global write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1289
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1291
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1290
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1292
/*! log: force log remove time sleeping (usecs) */
-#define WT_STAT_CONN_LOG_FORCE_REMOVE_SLEEP 1291
+#define WT_STAT_CONN_LOG_FORCE_REMOVE_SLEEP 1293
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1292
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1294
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1293
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1295
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1294
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1296
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1295
+#define WT_STAT_CONN_LOG_FLUSH 1297
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1296
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1298
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1297
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1299
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1298
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1300
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1299
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1301
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1300
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1302
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1301
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1303
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1302
+#define WT_STAT_CONN_LOG_SCANS 1304
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1303
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1305
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1304
+#define WT_STAT_CONN_LOG_WRITE_LSN 1306
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1305
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1307
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1306
+#define WT_STAT_CONN_LOG_SYNC 1308
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1307
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1309
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1308
+#define WT_STAT_CONN_LOG_SYNC_DIR 1310
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1309
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1311
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1310
+#define WT_STAT_CONN_LOG_WRITES 1312
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1311
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1313
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1312
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1314
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1313
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1315
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1314
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1316
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1315
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1317
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1316
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1318
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1317
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1319
/*! log: slot close lost race */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1318
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1320
/*! log: slot close unbuffered waits */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1319
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1321
/*! log: slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1320
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1322
/*! log: slot join atomic update races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1321
+#define WT_STAT_CONN_LOG_SLOT_RACES 1323
/*! log: slot join calls atomic updates raced */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1322
+#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1324
/*! log: slot join calls did not yield */
-#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1323
+#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1325
/*! log: slot join calls found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1324
+#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1326
/*! log: slot join calls slept */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1325
+#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1327
/*! log: slot join calls yielded */
-#define WT_STAT_CONN_LOG_SLOT_YIELD 1326
+#define WT_STAT_CONN_LOG_SLOT_YIELD 1328
/*! log: slot join found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1327
+#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1329
/*! log: slot joins yield time (usecs) */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1328
+#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1330
/*! log: slot transitions unable to find free slot */
-#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1329
+#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1331
/*! log: slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1330
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1332
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1331
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1333
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1332
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1334
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1333
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1335
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1334
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1336
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1335
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1337
/*! perf: file system read latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1336
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1338
/*! perf: file system read latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1337
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1339
/*! perf: file system read latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1338
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1340
/*! perf: file system read latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1339
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1341
/*! perf: file system read latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1340
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1342
/*! perf: file system read latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1341
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1343
/*! perf: file system write latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1342
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1344
/*! perf: file system write latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1343
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1345
/*! perf: file system write latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1344
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1346
/*! perf: file system write latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1345
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1347
/*! perf: file system write latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1346
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1348
/*! perf: file system write latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1347
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1349
/*! perf: operation read latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1348
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1350
/*! perf: operation read latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1349
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1351
/*! perf: operation read latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1350
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1352
/*! perf: operation read latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1351
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1353
/*! perf: operation read latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1352
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1354
/*! perf: operation write latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1353
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1355
/*! perf: operation write latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1354
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1356
/*! perf: operation write latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1355
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1357
/*! perf: operation write latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1356
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1358
/*! perf: operation write latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1357
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1359
/*! reconciliation: approximate byte size of timestamps in pages written */
-#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1358
+#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TS 1360
/*!
* reconciliation: approximate byte size of transaction IDs in pages
* written
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1359
+#define WT_STAT_CONN_REC_TIME_WINDOW_BYTES_TXN 1361
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1360
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1362
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1361
+#define WT_STAT_CONN_REC_OVERFLOW_KEY_LEAF 1363
/*! reconciliation: maximum seconds spent in a reconciliation call */
-#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1362
+#define WT_STAT_CONN_REC_MAXIMUM_SECONDS 1364
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1363
+#define WT_STAT_CONN_REC_PAGES 1365
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1364
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1366
/*!
* reconciliation: page reconciliation calls that resulted in values with
* prepared transaction metadata
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1365
+#define WT_STAT_CONN_REC_PAGES_WITH_PREPARE 1367
/*!
* reconciliation: page reconciliation calls that resulted in values with
* timestamps
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_TS 1366
+#define WT_STAT_CONN_REC_PAGES_WITH_TS 1368
/*!
* reconciliation: page reconciliation calls that resulted in values with
* transaction ids
*/
-#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1367
+#define WT_STAT_CONN_REC_PAGES_WITH_TXN 1369
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1368
+#define WT_STAT_CONN_REC_PAGE_DELETE 1370
/*!
* reconciliation: pages written including an aggregated newest start
* durable timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1369
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 1371
/*!
* reconciliation: pages written including an aggregated newest stop
* durable timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1370
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 1372
/*!
* reconciliation: pages written including an aggregated newest stop
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1371
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TS 1373
/*!
* reconciliation: pages written including an aggregated newest stop
* transaction ID
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1372
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_STOP_TXN 1374
/*!
* reconciliation: pages written including an aggregated newest
* transaction ID
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1373
+#define WT_STAT_CONN_REC_TIME_AGGR_NEWEST_TXN 1375
/*!
* reconciliation: pages written including an aggregated oldest start
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1374
+#define WT_STAT_CONN_REC_TIME_AGGR_OLDEST_START_TS 1376
/*! reconciliation: pages written including an aggregated prepare */
-#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1375
+#define WT_STAT_CONN_REC_TIME_AGGR_PREPARED 1377
/*! reconciliation: pages written including at least one prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1376
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_PREPARED 1378
/*!
* reconciliation: pages written including at least one start durable
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1377
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 1379
/*! reconciliation: pages written including at least one start timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1378
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TS 1380
/*!
* reconciliation: pages written including at least one start transaction
* ID
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1379
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_START_TXN 1381
/*!
* reconciliation: pages written including at least one stop durable
* timestamp
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1380
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 1382
/*! reconciliation: pages written including at least one stop timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1381
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TS 1383
/*!
* reconciliation: pages written including at least one stop transaction
* ID
*/
-#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1382
+#define WT_STAT_CONN_REC_TIME_WINDOW_PAGES_STOP_TXN 1384
/*! reconciliation: records written including a prepare state */
-#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1383
+#define WT_STAT_CONN_REC_TIME_WINDOW_PREPARED 1385
/*! reconciliation: records written including a start durable timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1384
+#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_START_TS 1386
/*! reconciliation: records written including a start timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1385
+#define WT_STAT_CONN_REC_TIME_WINDOW_START_TS 1387
/*! reconciliation: records written including a start transaction ID */
-#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1386
+#define WT_STAT_CONN_REC_TIME_WINDOW_START_TXN 1388
/*! reconciliation: records written including a stop durable timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1387
+#define WT_STAT_CONN_REC_TIME_WINDOW_DURABLE_STOP_TS 1389
/*! reconciliation: records written including a stop timestamp */
-#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1388
+#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TS 1390
/*! reconciliation: records written including a stop transaction ID */
-#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1389
+#define WT_STAT_CONN_REC_TIME_WINDOW_STOP_TXN 1391
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1390
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1392
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1391
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1393
/*! session: attempts to remove a local object and the object is in use */
-#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1392
+#define WT_STAT_CONN_LOCAL_OBJECTS_INUSE 1394
/*! session: flush_tier operation calls */
-#define WT_STAT_CONN_FLUSH_TIER 1393
+#define WT_STAT_CONN_FLUSH_TIER 1395
/*! session: flush_tier tables skipped due to no checkpoint */
-#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1394
+#define WT_STAT_CONN_FLUSH_TIER_SKIPPED 1396
/*! session: flush_tier tables switched */
-#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1395
+#define WT_STAT_CONN_FLUSH_TIER_SWITCHED 1397
/*! session: local objects removed */
-#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1396
+#define WT_STAT_CONN_LOCAL_OBJECTS_REMOVED 1398
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1397
+#define WT_STAT_CONN_SESSION_OPEN 1399
/*! session: session query timestamp calls */
-#define WT_STAT_CONN_SESSION_QUERY_TS 1398
+#define WT_STAT_CONN_SESSION_QUERY_TS 1400
/*! session: table alter failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1399
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1401
/*! session: table alter successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1400
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1402
/*! session: table alter triggering checkpoint calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1401
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_TRIGGER_CHECKPOINT 1403
/*! session: table alter unchanged and skipped */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1402
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1404
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1403
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1405
/*! session: table compact failed calls due to cache pressure */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1404
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL_CACHE_PRESSURE 1406
/*! session: table compact running */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1405
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_RUNNING 1407
/*! session: table compact skipped as process would not reduce file size */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1406
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SKIPPED 1408
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1407
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1409
/*! session: table compact timeout */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1408
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_TIMEOUT 1410
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1409
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1411
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1410
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1412
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1411
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1413
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1412
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1414
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1413
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1415
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1414
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1416
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1415
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1417
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1416
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1418
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1417
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1419
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1418
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1420
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1419
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1421
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1420
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1422
/*! session: tiered operations dequeued and processed */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1421
+#define WT_STAT_CONN_TIERED_WORK_UNITS_DEQUEUED 1423
/*! session: tiered operations scheduled */
-#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1422
+#define WT_STAT_CONN_TIERED_WORK_UNITS_CREATED 1424
/*! session: tiered storage local retention time (secs) */
-#define WT_STAT_CONN_TIERED_RETENTION 1423
+#define WT_STAT_CONN_TIERED_RETENTION 1425
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1424
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1426
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1425
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1427
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1426
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1428
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1427
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1429
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1428
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1430
/*!
* thread-yield: connection close blocked waiting for transaction state
* stabilization
*/
-#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1429
+#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1431
/*! thread-yield: connection close yielded for lsm manager shutdown */
-#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1430
+#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1432
/*! thread-yield: data handle lock yielded */
-#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1431
+#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1433
/*!
* thread-yield: get reference for page index and slot time sleeping
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1432
+#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1434
/*! thread-yield: page access yielded due to prepare state change */
-#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1433
+#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1435
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1434
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1436
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1435
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1437
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1436
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1438
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1437
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1439
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1438
+#define WT_STAT_CONN_PAGE_SLEEP 1440
/*!
* thread-yield: page delete rollback time sleeping for state change
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1439
+#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1441
/*! thread-yield: page reconciliation yielded due to child modification */
-#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1440
+#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1442
/*! transaction: Number of prepared updates */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1441
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES 1443
/*! transaction: Number of prepared updates committed */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1442
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COMMITTED 1444
/*! transaction: Number of prepared updates repeated on the same key */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1443
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_KEY_REPEATED 1445
/*! transaction: Number of prepared updates rolled back */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1444
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_ROLLEDBACK 1446
/*! transaction: prepared transactions */
-#define WT_STAT_CONN_TXN_PREPARE 1445
+#define WT_STAT_CONN_TXN_PREPARE 1447
/*! transaction: prepared transactions committed */
-#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1446
+#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1448
/*! transaction: prepared transactions currently active */
-#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1447
+#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1449
/*! transaction: prepared transactions rolled back */
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1448
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1450
/*!
* 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 1449
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_DO_NOT_REMOVE_HS_UPDATE 1451
/*!
* 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 1450
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK_FIX_HS_UPDATE_WITH_CKPT_RESERVED_TXNID 1452
/*! transaction: query timestamp calls */
-#define WT_STAT_CONN_TXN_QUERY_TS 1451
+#define WT_STAT_CONN_TXN_QUERY_TS 1453
/*! transaction: race to read prepared update retry */
-#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1452
+#define WT_STAT_CONN_TXN_READ_RACE_PREPARE_UPDATE 1454
/*! transaction: rollback to stable calls */
-#define WT_STAT_CONN_TXN_RTS 1453
+#define WT_STAT_CONN_TXN_RTS 1455
/*!
* 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 1454
+#define WT_STAT_CONN_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 1456
/*! transaction: rollback to stable inconsistent checkpoint */
-#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1455
+#define WT_STAT_CONN_TXN_RTS_INCONSISTENT_CKPT 1457
/*! transaction: rollback to stable keys removed */
-#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1456
+#define WT_STAT_CONN_TXN_RTS_KEYS_REMOVED 1458
/*! transaction: rollback to stable keys restored */
-#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1457
+#define WT_STAT_CONN_TXN_RTS_KEYS_RESTORED 1459
/*! transaction: rollback to stable pages visited */
-#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1458
+#define WT_STAT_CONN_TXN_RTS_PAGES_VISITED 1460
/*! transaction: rollback to stable restored tombstones from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1459
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_TOMBSTONES 1461
/*! transaction: rollback to stable restored updates from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1460
+#define WT_STAT_CONN_TXN_RTS_HS_RESTORE_UPDATES 1462
/*! transaction: rollback to stable skipping delete rle */
-#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1461
+#define WT_STAT_CONN_TXN_RTS_DELETE_RLE_SKIPPED 1463
/*! transaction: rollback to stable skipping stable rle */
-#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1462
+#define WT_STAT_CONN_TXN_RTS_STABLE_RLE_SKIPPED 1464
/*! transaction: rollback to stable sweeping history store keys */
-#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1463
+#define WT_STAT_CONN_TXN_RTS_SWEEP_HS_KEYS 1465
/*! transaction: rollback to stable tree walk skipping pages */
-#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1464
+#define WT_STAT_CONN_TXN_RTS_TREE_WALK_SKIP_PAGES 1466
/*! transaction: rollback to stable updates aborted */
-#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1465
+#define WT_STAT_CONN_TXN_RTS_UPD_ABORTED 1467
/*! transaction: rollback to stable updates removed from history store */
-#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1466
+#define WT_STAT_CONN_TXN_RTS_HS_REMOVED 1468
/*! transaction: sessions scanned in each walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1467
+#define WT_STAT_CONN_TXN_SESSIONS_WALKED 1469
/*! transaction: set timestamp calls */
-#define WT_STAT_CONN_TXN_SET_TS 1468
+#define WT_STAT_CONN_TXN_SET_TS 1470
/*! transaction: set timestamp durable calls */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1469
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1471
/*! transaction: set timestamp durable updates */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1470
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1472
/*! transaction: set timestamp oldest calls */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1471
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1473
/*! transaction: set timestamp oldest updates */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1472
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1474
/*! transaction: set timestamp stable calls */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE 1473
+#define WT_STAT_CONN_TXN_SET_TS_STABLE 1475
/*! transaction: set timestamp stable updates */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1474
+#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1476
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1475
+#define WT_STAT_CONN_TXN_BEGIN 1477
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1476
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1478
/*!
* transaction: transaction checkpoint currently running for history
* store file
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1477
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING_HS 1479
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1478
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1480
/*!
* transaction: transaction checkpoint history store file duration
* (usecs)
*/
-#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1479
+#define WT_STAT_CONN_TXN_HS_CKPT_DURATION 1481
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1480
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1482
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1481
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1483
/*!
* transaction: transaction checkpoint most recent duration for gathering
* all handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1482
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1484
/*!
* transaction: transaction checkpoint most recent duration for gathering
* applied handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1483
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1485
/*!
* transaction: transaction checkpoint most recent duration for gathering
* skipped handles (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1484
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1486
/*! transaction: transaction checkpoint most recent handles applied */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1485
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1487
/*! transaction: transaction checkpoint most recent handles skipped */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1486
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1488
/*! transaction: transaction checkpoint most recent handles walked */
-#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1487
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1489
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1488
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1490
/*! transaction: transaction checkpoint prepare currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1489
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RUNNING 1491
/*! transaction: transaction checkpoint prepare max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1490
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MAX 1492
/*! transaction: transaction checkpoint prepare min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1491
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_MIN 1493
/*! transaction: transaction checkpoint prepare most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1492
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_RECENT 1494
/*! transaction: transaction checkpoint prepare total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1493
+#define WT_STAT_CONN_TXN_CHECKPOINT_PREP_TOTAL 1495
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1494
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1496
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1495
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1497
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1496
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1498
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1497
+#define WT_STAT_CONN_TXN_CHECKPOINT 1499
/*! transaction: transaction checkpoints due to obsolete pages */
-#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1498
+#define WT_STAT_CONN_TXN_CHECKPOINT_OBSOLETE_APPLIED 1500
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1499
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1501
/*! transaction: transaction failures due to history store */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1500
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1502
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1501
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1503
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1502
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1504
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1503
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1505
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1504
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1506
/*! transaction: transaction range of timestamps currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1505
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1507
/*! transaction: transaction range of timestamps pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1506
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1508
/*!
* transaction: transaction range of timestamps pinned by the oldest
* active read timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1507
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1509
/*!
* transaction: transaction range of timestamps pinned by the oldest
* timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1508
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1510
/*! transaction: transaction read timestamp of the oldest active reader */
-#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1509
+#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1511
/*! transaction: transaction rollback to stable currently running */
-#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1510
+#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE_RUNNING 1512
/*! transaction: transaction walk of concurrent sessions */
-#define WT_STAT_CONN_TXN_WALK_SESSIONS 1511
+#define WT_STAT_CONN_TXN_WALK_SESSIONS 1513
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1512
+#define WT_STAT_CONN_TXN_COMMIT 1514
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1513
+#define WT_STAT_CONN_TXN_ROLLBACK 1515
/*! transaction: update conflicts */
-#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1514
+#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1516
/*!
* @}
@@ -6868,217 +6879,227 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
* config
*/
#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR_PREFIX_FAST_PATHS 2146
+/*!
+ * cursor: Total number of times cursor fails to temporarily release
+ * pinned page to encourage eviction of hot or large page
+ */
+#define WT_STAT_DSRC_CURSOR_REPOSITION_FAILED 2147
+/*!
+ * cursor: Total number of times cursor temporarily releases pinned page
+ * to encourage eviction of hot or large page
+ */
+#define WT_STAT_DSRC_CURSOR_REPOSITION 2148
/*! cursor: bulk loaded cursor insert calls */
-#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2147
+#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2149
/*! cursor: cache cursors reuse count */
-#define WT_STAT_DSRC_CURSOR_REOPEN 2148
+#define WT_STAT_DSRC_CURSOR_REOPEN 2150
/*! cursor: close calls that result in cache */
-#define WT_STAT_DSRC_CURSOR_CACHE 2149
+#define WT_STAT_DSRC_CURSOR_CACHE 2151
/*! cursor: create calls */
-#define WT_STAT_DSRC_CURSOR_CREATE 2150
+#define WT_STAT_DSRC_CURSOR_CREATE 2152
/*!
* cursor: cursor next calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_DSRC_CURSOR_NEXT_HS_TOMBSTONE 2151
+#define WT_STAT_DSRC_CURSOR_NEXT_HS_TOMBSTONE 2153
/*!
* cursor: cursor next calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_GE_100 2152
+#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_GE_100 2154
/*! cursor: cursor next calls that skip less than 100 entries */
-#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_LT_100 2153
+#define WT_STAT_DSRC_CURSOR_NEXT_SKIP_LT_100 2155
/*!
* cursor: cursor prev calls that skip due to a globally visible history
* store tombstone
*/
-#define WT_STAT_DSRC_CURSOR_PREV_HS_TOMBSTONE 2154
+#define WT_STAT_DSRC_CURSOR_PREV_HS_TOMBSTONE 2156
/*!
* cursor: cursor prev calls that skip greater than or equal to 100
* entries
*/
-#define WT_STAT_DSRC_CURSOR_PREV_SKIP_GE_100 2155
+#define WT_STAT_DSRC_CURSOR_PREV_SKIP_GE_100 2157
/*! cursor: cursor prev calls that skip less than 100 entries */
-#define WT_STAT_DSRC_CURSOR_PREV_SKIP_LT_100 2156
+#define WT_STAT_DSRC_CURSOR_PREV_SKIP_LT_100 2158
/*! cursor: insert calls */
-#define WT_STAT_DSRC_CURSOR_INSERT 2157
+#define WT_STAT_DSRC_CURSOR_INSERT 2159
/*! cursor: insert key and value bytes */
-#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2158
+#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2160
/*! cursor: modify */
-#define WT_STAT_DSRC_CURSOR_MODIFY 2159
+#define WT_STAT_DSRC_CURSOR_MODIFY 2161
/*! cursor: modify key and value bytes affected */
-#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES 2160
+#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES 2162
/*! cursor: modify value bytes modified */
-#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES_TOUCH 2161
+#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES_TOUCH 2163
/*! cursor: next calls */
-#define WT_STAT_DSRC_CURSOR_NEXT 2162
+#define WT_STAT_DSRC_CURSOR_NEXT 2164
/*! cursor: open cursor count */
-#define WT_STAT_DSRC_CURSOR_OPEN_COUNT 2163
+#define WT_STAT_DSRC_CURSOR_OPEN_COUNT 2165
/*! cursor: operation restarted */
-#define WT_STAT_DSRC_CURSOR_RESTART 2164
+#define WT_STAT_DSRC_CURSOR_RESTART 2166
/*! cursor: prev calls */
-#define WT_STAT_DSRC_CURSOR_PREV 2165
+#define WT_STAT_DSRC_CURSOR_PREV 2167
/*! cursor: remove calls */
-#define WT_STAT_DSRC_CURSOR_REMOVE 2166
+#define WT_STAT_DSRC_CURSOR_REMOVE 2168
/*! cursor: remove key bytes removed */
-#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2167
+#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2169
/*! cursor: reserve calls */
-#define WT_STAT_DSRC_CURSOR_RESERVE 2168
+#define WT_STAT_DSRC_CURSOR_RESERVE 2170
/*! cursor: reset calls */
-#define WT_STAT_DSRC_CURSOR_RESET 2169
+#define WT_STAT_DSRC_CURSOR_RESET 2171
/*! cursor: search calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH 2170
+#define WT_STAT_DSRC_CURSOR_SEARCH 2172
/*! cursor: search history store calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH_HS 2171
+#define WT_STAT_DSRC_CURSOR_SEARCH_HS 2173
/*! cursor: search near calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2172
+#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2174
/*! cursor: truncate calls */
-#define WT_STAT_DSRC_CURSOR_TRUNCATE 2173
+#define WT_STAT_DSRC_CURSOR_TRUNCATE 2175
/*! cursor: update calls */
-#define WT_STAT_DSRC_CURSOR_UPDATE 2174
+#define WT_STAT_DSRC_CURSOR_UPDATE 2176
/*! cursor: update key and value bytes */
-#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2175
+#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2177
/*! cursor: update value size change */
-#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES_CHANGED 2176
+#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES_CHANGED 2178
/*! reconciliation: approximate byte size of timestamps in pages written */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TS 2177
+#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TS 2179
/*!
* reconciliation: approximate byte size of transaction IDs in pages
* written
*/
-#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TXN 2178
+#define WT_STAT_DSRC_REC_TIME_WINDOW_BYTES_TXN 2180
/*! reconciliation: dictionary matches */
-#define WT_STAT_DSRC_REC_DICTIONARY 2179
+#define WT_STAT_DSRC_REC_DICTIONARY 2181
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2180
+#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2182
/*!
* reconciliation: internal page key bytes discarded using suffix
* compression
*/
-#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2181
+#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2183
/*! reconciliation: internal page multi-block writes */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2182
+#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2184
/*! reconciliation: leaf page key bytes discarded using prefix compression */
-#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2183
+#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2185
/*! reconciliation: leaf page multi-block writes */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2184
+#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2186
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2185
+#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2187
/*! reconciliation: maximum blocks required for a page */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2186
+#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2188
/*! reconciliation: overflow values written */
-#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2187
+#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2189
/*! reconciliation: page checksum matches */
-#define WT_STAT_DSRC_REC_PAGE_MATCH 2188
+#define WT_STAT_DSRC_REC_PAGE_MATCH 2190
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_DSRC_REC_PAGES 2189
+#define WT_STAT_DSRC_REC_PAGES 2191
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_DSRC_REC_PAGES_EVICTION 2190
+#define WT_STAT_DSRC_REC_PAGES_EVICTION 2192
/*! reconciliation: pages deleted */
-#define WT_STAT_DSRC_REC_PAGE_DELETE 2191
+#define WT_STAT_DSRC_REC_PAGE_DELETE 2193
/*!
* reconciliation: pages written including an aggregated newest start
* durable timestamp
*/
-#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 2192
+#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_START_DURABLE_TS 2194
/*!
* reconciliation: pages written including an aggregated newest stop
* durable timestamp
*/
-#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 2193
+#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_DURABLE_TS 2195
/*!
* reconciliation: pages written including an aggregated newest stop
* timestamp
*/
-#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TS 2194
+#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TS 2196
/*!
* reconciliation: pages written including an aggregated newest stop
* transaction ID
*/
-#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TXN 2195
+#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_STOP_TXN 2197
/*!
* reconciliation: pages written including an aggregated newest
* transaction ID
*/
-#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_TXN 2196
+#define WT_STAT_DSRC_REC_TIME_AGGR_NEWEST_TXN 2198
/*!
* reconciliation: pages written including an aggregated oldest start
* timestamp
*/
-#define WT_STAT_DSRC_REC_TIME_AGGR_OLDEST_START_TS 2197
+#define WT_STAT_DSRC_REC_TIME_AGGR_OLDEST_START_TS 2199
/*! reconciliation: pages written including an aggregated prepare */
-#define WT_STAT_DSRC_REC_TIME_AGGR_PREPARED 2198
+#define WT_STAT_DSRC_REC_TIME_AGGR_PREPARED 2200
/*! reconciliation: pages written including at least one prepare */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_PREPARED 2199
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_PREPARED 2201
/*!
* reconciliation: pages written including at least one start durable
* timestamp
*/
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 2200
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_START_TS 2202
/*! reconciliation: pages written including at least one start timestamp */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TS 2201
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TS 2203
/*!
* reconciliation: pages written including at least one start transaction
* ID
*/
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TXN 2202
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_START_TXN 2204
/*!
* reconciliation: pages written including at least one stop durable
* timestamp
*/
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 2203
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_DURABLE_STOP_TS 2205
/*! reconciliation: pages written including at least one stop timestamp */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TS 2204
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TS 2206
/*!
* reconciliation: pages written including at least one stop transaction
* ID
*/
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TXN 2205
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PAGES_STOP_TXN 2207
/*! reconciliation: records written including a prepare */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_PREPARED 2206
+#define WT_STAT_DSRC_REC_TIME_WINDOW_PREPARED 2208
/*! reconciliation: records written including a start durable timestamp */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_START_TS 2207
+#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_START_TS 2209
/*! reconciliation: records written including a start timestamp */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TS 2208
+#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TS 2210
/*! reconciliation: records written including a start transaction ID */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TXN 2209
+#define WT_STAT_DSRC_REC_TIME_WINDOW_START_TXN 2211
/*! reconciliation: records written including a stop durable timestamp */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_STOP_TS 2210
+#define WT_STAT_DSRC_REC_TIME_WINDOW_DURABLE_STOP_TS 2212
/*! reconciliation: records written including a stop timestamp */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TS 2211
+#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TS 2213
/*! reconciliation: records written including a stop transaction ID */
-#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TXN 2212
+#define WT_STAT_DSRC_REC_TIME_WINDOW_STOP_TXN 2214
/*! session: object compaction */
-#define WT_STAT_DSRC_SESSION_COMPACT 2213
+#define WT_STAT_DSRC_SESSION_COMPACT 2215
/*! transaction: race to read prepared update retry */
-#define WT_STAT_DSRC_TXN_READ_RACE_PREPARE_UPDATE 2214
+#define WT_STAT_DSRC_TXN_READ_RACE_PREPARE_UPDATE 2216
/*!
* transaction: rollback to stable history store records with stop
* timestamps older than newer records
*/
-#define WT_STAT_DSRC_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 2215
+#define WT_STAT_DSRC_TXN_RTS_HS_STOP_OLDER_THAN_NEWER_START 2217
/*! transaction: rollback to stable inconsistent checkpoint */
-#define WT_STAT_DSRC_TXN_RTS_INCONSISTENT_CKPT 2216
+#define WT_STAT_DSRC_TXN_RTS_INCONSISTENT_CKPT 2218
/*! transaction: rollback to stable keys removed */
-#define WT_STAT_DSRC_TXN_RTS_KEYS_REMOVED 2217
+#define WT_STAT_DSRC_TXN_RTS_KEYS_REMOVED 2219
/*! transaction: rollback to stable keys restored */
-#define WT_STAT_DSRC_TXN_RTS_KEYS_RESTORED 2218
+#define WT_STAT_DSRC_TXN_RTS_KEYS_RESTORED 2220
/*! transaction: rollback to stable restored tombstones from history store */
-#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_TOMBSTONES 2219
+#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_TOMBSTONES 2221
/*! transaction: rollback to stable restored updates from history store */
-#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_UPDATES 2220
+#define WT_STAT_DSRC_TXN_RTS_HS_RESTORE_UPDATES 2222
/*! transaction: rollback to stable skipping delete rle */
-#define WT_STAT_DSRC_TXN_RTS_DELETE_RLE_SKIPPED 2221
+#define WT_STAT_DSRC_TXN_RTS_DELETE_RLE_SKIPPED 2223
/*! transaction: rollback to stable skipping stable rle */
-#define WT_STAT_DSRC_TXN_RTS_STABLE_RLE_SKIPPED 2222
+#define WT_STAT_DSRC_TXN_RTS_STABLE_RLE_SKIPPED 2224
/*! transaction: rollback to stable sweeping history store keys */
-#define WT_STAT_DSRC_TXN_RTS_SWEEP_HS_KEYS 2223
+#define WT_STAT_DSRC_TXN_RTS_SWEEP_HS_KEYS 2225
/*! transaction: rollback to stable updates removed from history store */
-#define WT_STAT_DSRC_TXN_RTS_HS_REMOVED 2224
+#define WT_STAT_DSRC_TXN_RTS_HS_REMOVED 2226
/*! transaction: transaction checkpoints due to obsolete pages */
-#define WT_STAT_DSRC_TXN_CHECKPOINT_OBSOLETE_APPLIED 2225
+#define WT_STAT_DSRC_TXN_CHECKPOINT_OBSOLETE_APPLIED 2227
/*! transaction: update conflicts */
-#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2226
+#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2228
/*!
* @}
diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c
index e26093d3353..f4bdb221d77 100644
--- a/src/third_party/wiredtiger/src/support/stat.c
+++ b/src/third_party/wiredtiger/src/support/stat.c
@@ -159,6 +159,10 @@ static const char *const __stats_dsrc_desc[] = {
"cursor: Total number of entries skipped by cursor prev calls",
"cursor: Total number of entries skipped to position the history store cursor",
"cursor: Total number of times a search near has exited due to prefix config",
+ "cursor: Total number of times cursor fails to temporarily release pinned page to encourage "
+ "eviction of hot or large page",
+ "cursor: Total number of times cursor temporarily releases pinned page to encourage eviction of "
+ "hot or large page",
"cursor: bulk loaded cursor insert calls",
"cursor: cache cursors reuse count",
"cursor: close calls that result in cache",
@@ -427,6 +431,8 @@ __wt_stat_dsrc_clear_single(WT_DSRC_STATS *stats)
stats->cursor_prev_skip_total = 0;
stats->cursor_skip_hs_cur_position = 0;
stats->cursor_search_near_prefix_fast_paths = 0;
+ stats->cursor_reposition_failed = 0;
+ stats->cursor_reposition = 0;
stats->cursor_insert_bulk = 0;
stats->cursor_reopen = 0;
stats->cursor_cache = 0;
@@ -683,6 +689,8 @@ __wt_stat_dsrc_aggregate_single(WT_DSRC_STATS *from, WT_DSRC_STATS *to)
to->cursor_prev_skip_total += from->cursor_prev_skip_total;
to->cursor_skip_hs_cur_position += from->cursor_skip_hs_cur_position;
to->cursor_search_near_prefix_fast_paths += from->cursor_search_near_prefix_fast_paths;
+ to->cursor_reposition_failed += from->cursor_reposition_failed;
+ to->cursor_reposition += from->cursor_reposition;
to->cursor_insert_bulk += from->cursor_insert_bulk;
to->cursor_reopen += from->cursor_reopen;
to->cursor_cache += from->cursor_cache;
@@ -943,6 +951,8 @@ __wt_stat_dsrc_aggregate(WT_DSRC_STATS **from, WT_DSRC_STATS *to)
to->cursor_skip_hs_cur_position += WT_STAT_READ(from, cursor_skip_hs_cur_position);
to->cursor_search_near_prefix_fast_paths +=
WT_STAT_READ(from, cursor_search_near_prefix_fast_paths);
+ to->cursor_reposition_failed += WT_STAT_READ(from, cursor_reposition_failed);
+ to->cursor_reposition += WT_STAT_READ(from, cursor_reposition);
to->cursor_insert_bulk += WT_STAT_READ(from, cursor_insert_bulk);
to->cursor_reopen += WT_STAT_READ(from, cursor_reopen);
to->cursor_cache += WT_STAT_READ(from, cursor_cache);
@@ -1261,6 +1271,10 @@ static const char *const __stats_connection_desc[] = {
"cursor: Total number of entries skipped by cursor prev calls",
"cursor: Total number of entries skipped to position the history store cursor",
"cursor: Total number of times a search near has exited due to prefix config",
+ "cursor: Total number of times cursor fails to temporarily release pinned page to encourage "
+ "eviction of hot or large page",
+ "cursor: Total number of times cursor temporarily releases pinned page to encourage eviction of "
+ "hot or large page",
"cursor: cached cursor count",
"cursor: cursor bulk loaded cursor insert calls",
"cursor: cursor close calls that result in cache",
@@ -1820,6 +1834,8 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cursor_prev_skip_total = 0;
stats->cursor_skip_hs_cur_position = 0;
stats->cursor_search_near_prefix_fast_paths = 0;
+ stats->cursor_reposition_failed = 0;
+ stats->cursor_reposition = 0;
/* not clearing cursor_cached_count */
stats->cursor_insert_bulk = 0;
stats->cursor_cache = 0;
@@ -2381,6 +2397,8 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cursor_skip_hs_cur_position += WT_STAT_READ(from, cursor_skip_hs_cur_position);
to->cursor_search_near_prefix_fast_paths +=
WT_STAT_READ(from, cursor_search_near_prefix_fast_paths);
+ to->cursor_reposition_failed += WT_STAT_READ(from, cursor_reposition_failed);
+ to->cursor_reposition += WT_STAT_READ(from, cursor_reposition);
to->cursor_cached_count += WT_STAT_READ(from, cursor_cached_count);
to->cursor_insert_bulk += WT_STAT_READ(from, cursor_insert_bulk);
to->cursor_cache += WT_STAT_READ(from, cursor_cache);
diff --git a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
index 29b04378b92..0194ccd3ab1 100644
--- a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
+++ b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
@@ -67,6 +67,7 @@ main(int argc, char *argv[])
g.nops = 100000;
g.ntables = 3;
g.nworkers = 1;
+ g.evict_reposition_timing_stress = false;
g.sweep_stress = g.use_timestamps = false;
g.failpoint_hs_delete_key_from_ts = false;
g.hs_checkpoint_timing_stress = g.reserved_txnid_timing_stress = false;
@@ -127,6 +128,9 @@ main(int argc, char *argv[])
case '5':
g.checkpoint_slow_timing_stress = true;
break;
+ case '6':
+ g.evict_reposition_timing_stress = true;
+ break;
default:
return (usage());
}
@@ -270,11 +274,14 @@ wt_connect(const char *config_open)
fast_eviction = false;
timing_stress = false;
- if (g.sweep_stress || g.failpoint_hs_delete_key_from_ts || g.hs_checkpoint_timing_stress ||
- g.reserved_txnid_timing_stress || g.checkpoint_slow_timing_stress) {
+ if (g.evict_reposition_timing_stress || g.sweep_stress || g.failpoint_hs_delete_key_from_ts ||
+ g.hs_checkpoint_timing_stress || g.reserved_txnid_timing_stress ||
+ g.checkpoint_slow_timing_stress) {
timing_stress = true;
testutil_check(__wt_snprintf(timing_stress_config, sizeof(timing_stress_config),
- ",timing_stress_for_test=[%s%s%s%s%s]", g.sweep_stress ? "aggressive_sweep" : "",
+ ",timing_stress_for_test=[%s%s%s%s%s%s]",
+ g.evict_reposition_timing_stress ? "evict_reposition" : "",
+ g.sweep_stress ? "aggressive_sweep" : "",
g.failpoint_hs_delete_key_from_ts ? "failpoint_history_store_delete_key_from_ts" : "",
g.hs_checkpoint_timing_stress ? "history_store_checkpoint_delay" : "",
g.reserved_txnid_timing_stress ? "checkpoint_reserved_txnid_delay" : "",
diff --git a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h
index 280a6bfac24..77cdb9cb356 100644
--- a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h
+++ b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h
@@ -67,6 +67,7 @@ typedef struct {
int ntables_created; /* Number tables opened */
volatile int running; /* Whether to stop */
int status; /* Exit status */
+ bool evict_reposition_timing_stress; /* Reposition the cursor for read operations */
bool sweep_stress; /* Sweep stress test */
bool failpoint_hs_delete_key_from_ts; /* Failpoint for hs key deletion. */
bool hs_checkpoint_timing_stress; /* History store checkpoint timing stress */
diff --git a/src/third_party/wiredtiger/test/evergreen.yml b/src/third_party/wiredtiger/test/evergreen.yml
index 348b6d9ca46..af47f0d9385 100755
--- a/src/third_party/wiredtiger/test/evergreen.yml
+++ b/src/third_party/wiredtiger/test/evergreen.yml
@@ -2611,6 +2611,20 @@ tasks:
set -o verbose
${test_env_vars|} ../../../tools/run_parallel.sh 'nice ./recovery-test.sh "${data_validation_stress_test_args} -s 5" WT_TEST.$t test_checkpoint' 120
+ - name: data-validation-stress-test-checkpoint-fp-hs-insert-s6
+ depends_on:
+ - name: compile
+ commands:
+ - func: "fetch artifacts"
+ - command: shell.exec
+ params:
+ working_dir: "wiredtiger/cmake_build/test/checkpoint"
+ shell: bash
+ script: |
+ set -o errexit
+ set -o verbose
+ ${test_env_vars|} ../../../tools/run_parallel.sh 'nice ./recovery-test.sh "${data_validation_stress_test_args} -x -s 6" WT_TEST.$t test_checkpoint' 120
+
- name: format-failure-configs-test
depends_on:
- name: compile
@@ -3829,6 +3843,7 @@ buildvariants:
- name: data-validation-stress-test-checkpoint-fp-hs-insert-s4
- name: data-validation-stress-test-checkpoint-fp-hs-insert-s5
- name: data-validation-stress-test-checkpoint-fp-hs-insert-s5-no-timestamp
+ - name: data-validation-stress-test-checkpoint-fp-hs-insert-s6
- name: data-validation-stress-test-checkpoint-no-timestamp
- name: unittest-test
- name: tiered-storage-extensions-test
diff --git a/src/third_party/wiredtiger/test/format/config.h b/src/third_party/wiredtiger/test/format/config.h
index 14fb612d31d..be88a9511e0 100644
--- a/src/third_party/wiredtiger/test/format/config.h
+++ b/src/third_party/wiredtiger/test/format/config.h
@@ -115,21 +115,22 @@ typedef struct {
#define V_GLOBAL_STRESS_CHECKPOINT 83
#define V_GLOBAL_STRESS_CHECKPOINT_RESERVED_TXNID_DELAY 84
#define V_GLOBAL_STRESS_CHECKPOINT_PREPARE 85
-#define V_GLOBAL_STRESS_FAILPOINT_HS_DELETE_KEY_FROM_TS 86
-#define V_GLOBAL_STRESS_HS_CHECKPOINT_DELAY 87
-#define V_GLOBAL_STRESS_HS_SEARCH 88
-#define V_GLOBAL_STRESS_HS_SWEEP 89
-#define V_GLOBAL_STRESS_SPLIT_1 90
-#define V_GLOBAL_STRESS_SPLIT_2 91
-#define V_GLOBAL_STRESS_SPLIT_3 92
-#define V_GLOBAL_STRESS_SPLIT_4 93
-#define V_GLOBAL_STRESS_SPLIT_5 94
-#define V_GLOBAL_STRESS_SPLIT_6 95
-#define V_GLOBAL_STRESS_SPLIT_7 96
-#define V_GLOBAL_TRANSACTION_IMPLICIT 97
-#define V_GLOBAL_TRANSACTION_TIMESTAMPS 98
-#define V_GLOBAL_WIREDTIGER_CONFIG 99
-#define V_GLOBAL_WIREDTIGER_RWLOCK 100
-#define V_GLOBAL_WIREDTIGER_LEAK_MEMORY 101
+#define V_GLOBAL_STRESS_EVICT_REPOSITION 86
+#define V_GLOBAL_STRESS_FAILPOINT_HS_DELETE_KEY_FROM_TS 87
+#define V_GLOBAL_STRESS_HS_CHECKPOINT_DELAY 88
+#define V_GLOBAL_STRESS_HS_SEARCH 89
+#define V_GLOBAL_STRESS_HS_SWEEP 90
+#define V_GLOBAL_STRESS_SPLIT_1 91
+#define V_GLOBAL_STRESS_SPLIT_2 92
+#define V_GLOBAL_STRESS_SPLIT_3 93
+#define V_GLOBAL_STRESS_SPLIT_4 94
+#define V_GLOBAL_STRESS_SPLIT_5 95
+#define V_GLOBAL_STRESS_SPLIT_6 96
+#define V_GLOBAL_STRESS_SPLIT_7 97
+#define V_GLOBAL_TRANSACTION_IMPLICIT 98
+#define V_GLOBAL_TRANSACTION_TIMESTAMPS 99
+#define V_GLOBAL_WIREDTIGER_CONFIG 100
+#define V_GLOBAL_WIREDTIGER_RWLOCK 101
+#define V_GLOBAL_WIREDTIGER_LEAK_MEMORY 102
-#define V_ELEMENT_COUNT 102
+#define V_ELEMENT_COUNT 103
diff --git a/src/third_party/wiredtiger/test/format/config.sh b/src/third_party/wiredtiger/test/format/config.sh
index 23af56e2724..fcbbd617df2 100644..100755
--- a/src/third_party/wiredtiger/test/format/config.sh
+++ b/src/third_party/wiredtiger/test/format/config.sh
@@ -248,6 +248,8 @@ CONFIG configuration_list[] = {
{"stress.checkpoint_prepare", "stress checkpoint prepare", C_BOOL, 2, 0, 0}
+{"stress.evict_reposition", "stress evict reposition", C_BOOL, 2, 0, 0}
+
{"stress.failpoint_hs_delete_key_from_ts", "stress failpoint history store delete key from ts", C_BOOL, 30, 0, 0}
{"stress.hs_checkpoint_delay", "stress history store checkpoint delay", C_BOOL, 2, 0, 0}
diff --git a/src/third_party/wiredtiger/test/format/config_def.c b/src/third_party/wiredtiger/test/format/config_def.c
index 78613c1c1ab..3f6d2179358 100644
--- a/src/third_party/wiredtiger/test/format/config_def.c
+++ b/src/third_party/wiredtiger/test/format/config_def.c
@@ -2,32 +2,36 @@
#include "format.h"
-CONFIG configuration_list[] = {{"assert.read_timestamp", "assert read_timestamp", C_BOOL, 2, 0, 0,
- V_GLOBAL_ASSERT_READ_TIMESTAMP},
+CONFIG configuration_list[] = {
+ {"assert.read_timestamp", "assert read_timestamp",
+ C_BOOL, 2, 0, 0, V_GLOBAL_ASSERT_READ_TIMESTAMP},
- {"assert.write_timestamp", "set write_timestamp_usage and assert write_timestamp", C_BOOL, 2, 0,
- 0, V_GLOBAL_ASSERT_WRITE_TIMESTAMP},
+ {"assert.write_timestamp", "set write_timestamp_usage and assert write_timestamp",
+ C_BOOL, 2, 0, 0, V_GLOBAL_ASSERT_WRITE_TIMESTAMP},
- {"backup", "configure backups", C_BOOL, 20, 0, 0, V_GLOBAL_BACKUP},
+ {"backup", "configure backups",
+ C_BOOL, 20, 0, 0, V_GLOBAL_BACKUP},
- {"backup.incremental", "backup type (off | block | log)", C_IGNORE | C_STRING, 0, 0, 0,
- V_GLOBAL_BACKUP_INCREMENTAL},
+ {"backup.incremental", "backup type (off | block | log)",
+ C_IGNORE | C_STRING, 0, 0, 0, V_GLOBAL_BACKUP_INCREMENTAL},
- {"backup.incr_granularity", "incremental backup block granularity (KB)", 0x0, 4, 16384, 16384,
- V_GLOBAL_BACKUP_INCR_GRANULARITY},
+ {"backup.incr_granularity", "incremental backup block granularity (KB)",
+ 0x0, 4, 16384, 16384, V_GLOBAL_BACKUP_INCR_GRANULARITY},
- {"block_cache", "enable the block cache", C_BOOL, 10, 0, 0, V_GLOBAL_BLOCK_CACHE},
+ {"block_cache", "enable the block cache",
+ C_BOOL, 10, 0, 0, V_GLOBAL_BLOCK_CACHE},
- {"block_cache.cache_on_checkpoint", "block cache: cache checkpoint writes", C_BOOL, 30, 0, 0,
- V_GLOBAL_BLOCK_CACHE_CACHE_ON_CHECKPOINT},
+ {"block_cache.cache_on_checkpoint", "block cache: cache checkpoint writes",
+ C_BOOL, 30, 0, 0, V_GLOBAL_BLOCK_CACHE_CACHE_ON_CHECKPOINT},
- {"block_cache.cache_on_writes", "block cache: populate the cache on writes", C_BOOL, 60, 0, 0,
- V_GLOBAL_BLOCK_CACHE_CACHE_ON_WRITES},
+ {"block_cache.cache_on_writes", "block cache: populate the cache on writes",
+ C_BOOL, 60, 0, 0, V_GLOBAL_BLOCK_CACHE_CACHE_ON_WRITES},
- {"block_cache.size", "block cache size (MB)", 0x0, 1, 100, 100 * 1024, V_GLOBAL_BLOCK_CACHE_SIZE},
+ {"block_cache.size", "block cache size (MB)",
+ 0x0, 1, 100, 100 * 1024, V_GLOBAL_BLOCK_CACHE_SIZE},
- {"btree.bitcnt", "fixed-length column-store object size (number of bits)", C_TABLE | C_TYPE_FIX,
- 1, 8, 8, V_TABLE_BTREE_BITCNT},
+ {"btree.bitcnt", "fixed-length column-store object size (number of bits)",
+ C_TABLE | C_TYPE_FIX, 1, 8, 8, V_TABLE_BTREE_BITCNT},
{"btree.compression", "data compression (off | lz4 | snappy | zlib | zstd)",
C_IGNORE | C_STRING | C_TABLE, 0, 0, 0, V_TABLE_BTREE_COMPRESSION},
@@ -38,244 +42,280 @@ CONFIG configuration_list[] = {{"assert.read_timestamp", "assert read_timestamp"
{"btree.huffman_value", "configure huffman encoded values",
C_BOOL | C_TABLE | C_TYPE_ROW | C_TYPE_VAR, 20, 0, 0, V_TABLE_BTREE_HUFFMAN_VALUE},
- {"btree.internal_key_truncation", "truncate internal keys", C_BOOL | C_TABLE, 95, 0, 0,
- V_TABLE_BTREE_INTERNAL_KEY_TRUNCATION},
+ {"btree.internal_key_truncation", "truncate internal keys",
+ C_BOOL | C_TABLE, 95, 0, 0, V_TABLE_BTREE_INTERNAL_KEY_TRUNCATION},
- {"btree.internal_page_max", "btree internal node maximum size", C_TABLE, 9, 17, 27,
- V_TABLE_BTREE_INTERNAL_PAGE_MAX},
+ {"btree.internal_page_max", "btree internal node maximum size",
+ C_TABLE, 9, 17, 27, V_TABLE_BTREE_INTERNAL_PAGE_MAX},
- {"btree.key_max", "maximum key size", C_TABLE | C_TYPE_ROW, 20, 128, MEGABYTE(10),
- V_TABLE_BTREE_KEY_MAX},
+ {"btree.key_max", "maximum key size",
+ C_TABLE | C_TYPE_ROW, 20, 128, MEGABYTE(10), V_TABLE_BTREE_KEY_MAX},
- {"btree.key_min", "minimum key size", C_TABLE | C_TYPE_ROW, KEY_LEN_CONFIG_MIN, 32, 256,
- V_TABLE_BTREE_KEY_MIN},
+ {"btree.key_min", "minimum key size",
+ C_TABLE | C_TYPE_ROW, KEY_LEN_CONFIG_MIN, 32, 256, V_TABLE_BTREE_KEY_MIN},
- {"btree.leaf_page_max", "btree leaf node maximum size", C_TABLE, 9, 17, 27,
- V_TABLE_BTREE_LEAF_PAGE_MAX},
+ {"btree.leaf_page_max", "btree leaf node maximum size",
+ C_TABLE, 9, 17, 27, V_TABLE_BTREE_LEAF_PAGE_MAX},
- {"btree.memory_page_max", "maximum cache page size", C_TABLE, 1, 10, 128,
- V_TABLE_BTREE_MEMORY_PAGE_MAX},
+ {"btree.memory_page_max", "maximum cache page size",
+ C_TABLE, 1, 10, 128, V_TABLE_BTREE_MEMORY_PAGE_MAX},
- {"btree.prefix_len", "common key prefix", C_TABLE | C_TYPE_ROW | C_ZERO_NOTSET,
- PREFIX_LEN_CONFIG_MIN, PREFIX_LEN_CONFIG_MAX, PREFIX_LEN_CONFIG_MAX, V_TABLE_BTREE_PREFIX_LEN},
+ {"btree.prefix_len", "common key prefix",
+ C_TABLE | C_TYPE_ROW | C_ZERO_NOTSET, PREFIX_LEN_CONFIG_MIN, PREFIX_LEN_CONFIG_MAX, PREFIX_LEN_CONFIG_MAX, V_TABLE_BTREE_PREFIX_LEN},
- {"btree.prefix_compression", "configure prefix compressed keys", C_BOOL | C_TABLE | C_TYPE_ROW,
- 80, 0, 0, V_TABLE_BTREE_PREFIX_COMPRESSION},
+ {"btree.prefix_compression", "configure prefix compressed keys",
+ C_BOOL | C_TABLE | C_TYPE_ROW, 80, 0, 0, V_TABLE_BTREE_PREFIX_COMPRESSION},
{"btree.prefix_compression_min", "minimum gain before prefix compression is used (bytes)",
C_TABLE | C_TYPE_ROW, 0, 8, 256, V_TABLE_BTREE_PREFIX_COMPRESSION_MIN},
- {"btree.repeat_data_pct", "duplicate values (percentage)", C_TABLE | C_TYPE_VAR, 0, 90, 90,
- V_TABLE_BTREE_REPEAT_DATA_PCT},
+ {"btree.repeat_data_pct", "duplicate values (percentage)",
+ C_TABLE | C_TYPE_VAR, 0, 90, 90, V_TABLE_BTREE_REPEAT_DATA_PCT},
- {"btree.reverse", "reverse order collation", C_BOOL | C_TABLE | C_TYPE_ROW, 10, 0, 0,
- V_TABLE_BTREE_REVERSE},
+ {"btree.reverse", "reverse order collation",
+ C_BOOL | C_TABLE | C_TYPE_ROW, 10, 0, 0, V_TABLE_BTREE_REVERSE},
- {"btree.split_pct", "page split size as a percentage of the maximum page size", C_TABLE, 50, 100,
- 100, V_TABLE_BTREE_SPLIT_PCT},
+ {"btree.split_pct", "page split size as a percentage of the maximum page size",
+ C_TABLE, 50, 100, 100, V_TABLE_BTREE_SPLIT_PCT},
- {"btree.value_max", "maximum value size", C_TABLE | C_TYPE_ROW | C_TYPE_VAR, 32, 4096,
- MEGABYTE(10), V_TABLE_BTREE_VALUE_MAX},
+ {"btree.value_max", "maximum value size",
+ C_TABLE | C_TYPE_ROW | C_TYPE_VAR, 32, 4096, MEGABYTE(10), V_TABLE_BTREE_VALUE_MAX},
- {"btree.value_min", "minimum value size", C_TABLE | C_TYPE_ROW | C_TYPE_VAR, 0, 20, 4096,
- V_TABLE_BTREE_VALUE_MIN},
+ {"btree.value_min", "minimum value size",
+ C_TABLE | C_TYPE_ROW | C_TYPE_VAR, 0, 20, 4096, V_TABLE_BTREE_VALUE_MIN},
- {"cache", "cache size (MB)", 0x0, 1, 100, 100 * 1024, V_GLOBAL_CACHE},
+ {"cache", "cache size (MB)",
+ 0x0, 1, 100, 100 * 1024, V_GLOBAL_CACHE},
- {"cache.evict_max", "maximum number of eviction workers", 0x0, 0, 5, 100,
- V_GLOBAL_CACHE_EVICT_MAX},
+ {"cache.evict_max", "maximum number of eviction workers",
+ 0x0, 0, 5, 100, V_GLOBAL_CACHE_EVICT_MAX},
- {"cache.minimum", "minimum cache size (MB)", C_IGNORE, 0, 0, 100 * 1024, V_GLOBAL_CACHE_MINIMUM},
+ {"cache.minimum", "minimum cache size (MB)",
+ C_IGNORE, 0, 0, 100 * 1024, V_GLOBAL_CACHE_MINIMUM},
- {"checkpoint", "checkpoint type (on | off | wiredtiger)", C_IGNORE | C_STRING, 0, 0, 0,
- V_GLOBAL_CHECKPOINT},
+ {"checkpoint", "checkpoint type (on | off | wiredtiger)",
+ C_IGNORE | C_STRING, 0, 0, 0, V_GLOBAL_CHECKPOINT},
- {"checkpoint.log_size", "MB of log to wait if wiredtiger checkpoints configured", 0x0, 20, 200,
- 1024, V_GLOBAL_CHECKPOINT_LOG_SIZE},
+ {"checkpoint.log_size", "MB of log to wait if wiredtiger checkpoints configured",
+ 0x0, 20, 200, 1024, V_GLOBAL_CHECKPOINT_LOG_SIZE},
- {"checkpoint.wait", "seconds to wait if wiredtiger checkpoints configured", 0x0, 5, 100, 3600,
- V_GLOBAL_CHECKPOINT_WAIT},
+ {"checkpoint.wait", "seconds to wait if wiredtiger checkpoints configured",
+ 0x0, 5, 100, 3600, V_GLOBAL_CHECKPOINT_WAIT},
{"disk.checksum", "checksum type (on | off | uncompressed | unencrypted)",
C_IGNORE | C_STRING | C_TABLE, 0, 0, 0, V_TABLE_DISK_CHECKSUM},
- {"disk.data_extend", "configure data file extension", C_BOOL, 5, 0, 0, V_GLOBAL_DISK_DATA_EXTEND},
+ {"disk.data_extend", "configure data file extension",
+ C_BOOL, 5, 0, 0, V_GLOBAL_DISK_DATA_EXTEND},
- {"disk.direct_io", "configure direct I/O for data objects", C_BOOL | C_IGNORE, 0, 0, 1,
- V_GLOBAL_DISK_DIRECT_IO},
+ {"disk.direct_io", "configure direct I/O for data objects",
+ C_BOOL | C_IGNORE, 0, 0, 1, V_GLOBAL_DISK_DIRECT_IO},
- {"disk.encryption", "encryption type (off | rotn-7)", C_IGNORE | C_STRING, 0, 0, 0,
- V_GLOBAL_DISK_ENCRYPTION},
+ {"disk.encryption", "encryption type (off | rotn-7)",
+ C_IGNORE | C_STRING, 0, 0, 0, V_GLOBAL_DISK_ENCRYPTION},
- {"disk.firstfit", "configure first-fit allocation", C_BOOL | C_TABLE, 10, 0, 0,
- V_TABLE_DISK_FIRSTFIT},
+ {"disk.firstfit", "configure first-fit allocation",
+ C_BOOL | C_TABLE, 10, 0, 0, V_TABLE_DISK_FIRSTFIT},
- {"disk.mmap", "configure mmap operations (reads only)", C_BOOL, 90, 0, 0, V_GLOBAL_DISK_MMAP},
+ {"disk.mmap", "configure mmap operations (reads only)",
+ C_BOOL, 90, 0, 0, V_GLOBAL_DISK_MMAP},
- {"disk.mmap_all", "configure mmap operations (read and write)", C_BOOL, 5, 0, 0,
- V_GLOBAL_DISK_MMAP_ALL},
+ {"disk.mmap_all", "configure mmap operations (read and write)",
+ C_BOOL, 5, 0, 0, V_GLOBAL_DISK_MMAP_ALL},
- {"format.abort", "drop core during timed run", C_BOOL, 0, 0, 0, V_GLOBAL_FORMAT_ABORT},
+ {"format.abort", "drop core during timed run",
+ C_BOOL, 0, 0, 0, V_GLOBAL_FORMAT_ABORT},
- {"format.independent_thread_rng", "configure independent thread RNG space", C_BOOL, 75, 0, 0,
- V_GLOBAL_FORMAT_INDEPENDENT_THREAD_RNG},
+ {"format.independent_thread_rng", "configure independent thread RNG space",
+ C_BOOL, 75, 0, 0, V_GLOBAL_FORMAT_INDEPENDENT_THREAD_RNG},
- {"format.major_timeout", "long-running operations timeout (minutes)", C_IGNORE, 0, 0, 1000,
- V_GLOBAL_FORMAT_MAJOR_TIMEOUT},
+ {"format.major_timeout", "long-running operations timeout (minutes)",
+ C_IGNORE, 0, 0, 1000, V_GLOBAL_FORMAT_MAJOR_TIMEOUT},
- /*
- * 0%
- * FIXME-WT-7418: Temporarily disable import until WT_ROLLBACK error and wt_copy_and_sync error is
- * fixed. It should be (C_BOOL, 20, 0, 0).
- */
- {"import", "import table from newly created database", C_BOOL, 0, 0, 0, V_GLOBAL_IMPORT},
+/*
+ * 0%
+ * FIXME-WT-7418: Temporarily disable import until WT_ROLLBACK error and wt_copy_and_sync error is
+ * fixed. It should be (C_BOOL, 20, 0, 0).
+ */
+ {"import", "import table from newly created database",
+ C_BOOL, 0, 0, 0, V_GLOBAL_IMPORT},
- {"logging", "configure logging", C_BOOL, 50, 0, 0, V_GLOBAL_LOGGING},
+ {"logging", "configure logging",
+ C_BOOL, 50, 0, 0, V_GLOBAL_LOGGING},
{"logging.compression", "logging compression (off | lz4 | snappy | zlib | zstd)",
C_IGNORE | C_STRING, 0, 0, 0, V_GLOBAL_LOGGING_COMPRESSION},
- {"logging.file_max", "maximum log file size (KB)", 0x0, 100, 512000, 2097152,
- V_GLOBAL_LOGGING_FILE_MAX},
+ {"logging.file_max", "maximum log file size (KB)",
+ 0x0, 100, 512000, 2097152, V_GLOBAL_LOGGING_FILE_MAX},
- {"logging.prealloc", "configure log file pre-allocation", C_BOOL, 50, 0, 0,
- V_GLOBAL_LOGGING_PREALLOC},
+ {"logging.prealloc", "configure log file pre-allocation",
+ C_BOOL, 50, 0, 0, V_GLOBAL_LOGGING_PREALLOC},
- {"logging.remove", "configure log file removal", C_BOOL, 50, 0, 0, V_GLOBAL_LOGGING_REMOVE},
+ {"logging.remove", "configure log file removal",
+ C_BOOL, 50, 0, 0, V_GLOBAL_LOGGING_REMOVE},
- {"lsm.auto_throttle", "throttle LSM inserts", C_BOOL | C_TABLE | C_TYPE_LSM, 90, 0, 0,
- V_TABLE_LSM_AUTO_THROTTLE},
+ {"lsm.auto_throttle", "throttle LSM inserts",
+ C_BOOL | C_TABLE | C_TYPE_LSM, 90, 0, 0, V_TABLE_LSM_AUTO_THROTTLE},
- {"lsm.bloom", "configure bloom filters", C_BOOL | C_TABLE | C_TYPE_LSM, 95, 0, 0,
- V_TABLE_LSM_BLOOM},
+ {"lsm.bloom", "configure bloom filters",
+ C_BOOL | C_TABLE | C_TYPE_LSM, 95, 0, 0, V_TABLE_LSM_BLOOM},
- {"lsm.bloom_bit_count", "number of bits per item for bloom filters", C_TABLE | C_TYPE_LSM, 4, 64,
- 1000, V_TABLE_LSM_BLOOM_BIT_COUNT},
+ {"lsm.bloom_bit_count", "number of bits per item for bloom filters",
+ C_TABLE | C_TYPE_LSM, 4, 64, 1000, V_TABLE_LSM_BLOOM_BIT_COUNT},
- {"lsm.bloom_hash_count", "number of hash values per item for bloom filters", C_TABLE | C_TYPE_LSM,
- 4, 32, 100, V_TABLE_LSM_BLOOM_HASH_COUNT},
+ {"lsm.bloom_hash_count", "number of hash values per item for bloom filters",
+ C_TABLE | C_TYPE_LSM, 4, 32, 100, V_TABLE_LSM_BLOOM_HASH_COUNT},
- {"lsm.bloom_oldest", "configure bloom_oldest=true", C_BOOL | C_TABLE | C_TYPE_LSM, 10, 0, 0,
- V_TABLE_LSM_BLOOM_OLDEST},
+ {"lsm.bloom_oldest", "configure bloom_oldest=true",
+ C_BOOL | C_TABLE | C_TYPE_LSM, 10, 0, 0, V_TABLE_LSM_BLOOM_OLDEST},
- {"lsm.chunk_size", "LSM chunk size (MB)", C_TABLE | C_TYPE_LSM, 1, 10, 100,
- V_TABLE_LSM_CHUNK_SIZE},
+ {"lsm.chunk_size", "LSM chunk size (MB)",
+ C_TABLE | C_TYPE_LSM, 1, 10, 100, V_TABLE_LSM_CHUNK_SIZE},
{"lsm.merge_max", "maximum number of chunks to include in an LSM merge operation",
C_TABLE | C_TYPE_LSM, 4, 20, 100, V_TABLE_LSM_MERGE_MAX},
- {"lsm.worker_threads", "number of LSM worker threads", C_TYPE_LSM, 3, 4, 20,
- V_GLOBAL_LSM_WORKER_THREADS},
+ {"lsm.worker_threads", "number of LSM worker threads",
+ C_TYPE_LSM, 3, 4, 20, V_GLOBAL_LSM_WORKER_THREADS},
- {"ops.alter", "configure table alterations", C_BOOL, 10, 0, 0, V_GLOBAL_OPS_ALTER},
+ {"ops.alter", "configure table alterations",
+ C_BOOL, 10, 0, 0, V_GLOBAL_OPS_ALTER},
- {"ops.compaction", "configure compaction", C_BOOL, 10, 0, 0, V_GLOBAL_OPS_COMPACTION},
+ {"ops.compaction", "configure compaction",
+ C_BOOL, 10, 0, 0, V_GLOBAL_OPS_COMPACTION},
- {"ops.hs_cursor", "configure history store cursor reads", C_BOOL, 50, 0, 0,
- V_GLOBAL_OPS_HS_CURSOR},
+ {"ops.hs_cursor", "configure history store cursor reads",
+ C_BOOL, 50, 0, 0, V_GLOBAL_OPS_HS_CURSOR},
- {"ops.pct.delete", "delete operations (percentage)", C_IGNORE | C_TABLE, 0, 0, 100,
- V_TABLE_OPS_PCT_DELETE},
+ {"ops.pct.delete", "delete operations (percentage)",
+ C_IGNORE | C_TABLE, 0, 0, 100, V_TABLE_OPS_PCT_DELETE},
- {"ops.pct.insert", "insert operations (percentage)", C_IGNORE | C_TABLE, 0, 0, 100,
- V_TABLE_OPS_PCT_INSERT},
+ {"ops.pct.insert", "insert operations (percentage)",
+ C_IGNORE | C_TABLE, 0, 0, 100, V_TABLE_OPS_PCT_INSERT},
- {"ops.pct.modify", "modify operations (percentage)", C_IGNORE | C_TABLE, 0, 0, 100,
- V_TABLE_OPS_PCT_MODIFY},
+ {"ops.pct.modify", "modify operations (percentage)",
+ C_IGNORE | C_TABLE, 0, 0, 100, V_TABLE_OPS_PCT_MODIFY},
- {"ops.pct.read", "read operations (percentage)", C_IGNORE | C_TABLE, 0, 0, 100,
- V_TABLE_OPS_PCT_READ},
+ {"ops.pct.read", "read operations (percentage)",
+ C_IGNORE | C_TABLE, 0, 0, 100, V_TABLE_OPS_PCT_READ},
- {"ops.pct.write", "update operations (percentage)", C_IGNORE | C_TABLE, 0, 0, 100,
- V_TABLE_OPS_PCT_WRITE},
+ {"ops.pct.write", "update operations (percentage)",
+ C_IGNORE | C_TABLE, 0, 0, 100, V_TABLE_OPS_PCT_WRITE},
- {"ops.prepare", "configure transaction prepare", C_BOOL, 5, 0, 0, V_GLOBAL_OPS_PREPARE},
+ {"ops.prepare", "configure transaction prepare",
+ C_BOOL, 5, 0, 0, V_GLOBAL_OPS_PREPARE},
- {"ops.random_cursor", "configure random cursor reads", C_BOOL, 10, 0, 0,
- V_GLOBAL_OPS_RANDOM_CURSOR},
+ {"ops.random_cursor", "configure random cursor reads",
+ C_BOOL, 10, 0, 0, V_GLOBAL_OPS_RANDOM_CURSOR},
- {"ops.salvage", "configure salvage", C_BOOL, 100, 1, 0, V_GLOBAL_OPS_SALVAGE},
+ {"ops.salvage", "configure salvage",
+ C_BOOL, 100, 1, 0, V_GLOBAL_OPS_SALVAGE},
- {"ops.truncate", "configure truncation", C_BOOL | C_TABLE, 100, 0, 0, V_TABLE_OPS_TRUNCATE},
+ {"ops.truncate", "configure truncation",
+ C_BOOL | C_TABLE, 100, 0, 0, V_TABLE_OPS_TRUNCATE},
- {"ops.verify", "configure verify", C_BOOL, 100, 1, 0, V_GLOBAL_OPS_VERIFY},
+ {"ops.verify", "configure verify",
+ C_BOOL, 100, 1, 0, V_GLOBAL_OPS_VERIFY},
- {"quiet", "quiet run (same as -q)", C_BOOL | C_IGNORE, 0, 0, 1, V_GLOBAL_QUIET},
+ {"quiet", "quiet run (same as -q)",
+ C_BOOL | C_IGNORE, 0, 0, 1, V_GLOBAL_QUIET},
- {"runs.in_memory", "configure in-memory", C_BOOL | C_IGNORE, 0, 0, 1, V_GLOBAL_RUNS_IN_MEMORY},
+ {"runs.in_memory", "configure in-memory",
+ C_BOOL | C_IGNORE, 0, 0, 1, V_GLOBAL_RUNS_IN_MEMORY},
- {"runs.ops", "operations per run", 0x0, 0, M(2), M(100), V_GLOBAL_RUNS_OPS},
+ {"runs.ops", "operations per run",
+ 0x0, 0, M(2), M(100), V_GLOBAL_RUNS_OPS},
- {"runs.rows", "number of rows", C_TABLE, 10, M(1), M(100), V_TABLE_RUNS_ROWS},
+ {"runs.rows", "number of rows",
+ C_TABLE, 10, M(1), M(100), V_TABLE_RUNS_ROWS},
- {"runs.source", "data source type (file | lsm | table)", C_IGNORE | C_STRING | C_TABLE, 0, 0, 0,
- V_TABLE_RUNS_SOURCE},
+ {"runs.source", "data source type (file | lsm | table)",
+ C_IGNORE | C_STRING | C_TABLE, 0, 0, 0, V_TABLE_RUNS_SOURCE},
- {"runs.tables", "number of tables", 0x0, 1, 32, V_MAX_TABLES_CONFIG, V_GLOBAL_RUNS_TABLES},
+ {"runs.tables", "number of tables",
+ 0x0, 1, 32, V_MAX_TABLES_CONFIG, V_GLOBAL_RUNS_TABLES},
- {"runs.threads", "number of worker threads", 0x0, 1, 32, 128, V_GLOBAL_RUNS_THREADS},
+ {"runs.threads", "number of worker threads",
+ 0x0, 1, 32, 128, V_GLOBAL_RUNS_THREADS},
- {"runs.timer", "run time (minutes)", C_IGNORE, 0, 0, UINT_MAX, V_GLOBAL_RUNS_TIMER},
+ {"runs.timer", "run time (minutes)",
+ C_IGNORE, 0, 0, UINT_MAX, V_GLOBAL_RUNS_TIMER},
- {"runs.type", "object type (fix | row | var)", C_IGNORE | C_STRING | C_TABLE, 0, 0, 0,
- V_TABLE_RUNS_TYPE},
+ {"runs.type", "object type (fix | row | var)",
+ C_IGNORE | C_STRING | C_TABLE, 0, 0, 0, V_TABLE_RUNS_TYPE},
- {"runs.verify_failure_dump", "configure page dump on repeatable read error", C_BOOL | C_IGNORE, 0,
- 0, 1, V_GLOBAL_RUNS_VERIFY_FAILURE_DUMP},
+ {"runs.verify_failure_dump", "configure page dump on repeatable read error",
+ C_BOOL | C_IGNORE, 0, 0, 1, V_GLOBAL_RUNS_VERIFY_FAILURE_DUMP},
- {"statistics", "configure statistics", C_BOOL, 20, 0, 0, V_GLOBAL_STATISTICS},
+ {"statistics", "configure statistics",
+ C_BOOL, 20, 0, 0, V_GLOBAL_STATISTICS},
- {"statistics.server", "configure statistics server thread", C_BOOL, 5, 0, 0,
- V_GLOBAL_STATISTICS_SERVER},
+ {"statistics.server", "configure statistics server thread",
+ C_BOOL, 5, 0, 0, V_GLOBAL_STATISTICS_SERVER},
- {"stress.aggressive_sweep", "stress aggressive sweep", C_BOOL, 2, 0, 0,
- V_GLOBAL_STRESS_AGGRESSIVE_SWEEP},
+ {"stress.aggressive_sweep", "stress aggressive sweep",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_AGGRESSIVE_SWEEP},
- {"stress.checkpoint", "stress checkpoints", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_CHECKPOINT},
+ {"stress.checkpoint", "stress checkpoints",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_CHECKPOINT},
{"stress.checkpoint_reserved_txnid_delay", "stress checkpoint invisible transaction id delay",
C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_CHECKPOINT_RESERVED_TXNID_DELAY},
- {"stress.checkpoint_prepare", "stress checkpoint prepare", C_BOOL, 2, 0, 0,
- V_GLOBAL_STRESS_CHECKPOINT_PREPARE},
+ {"stress.checkpoint_prepare", "stress checkpoint prepare",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_CHECKPOINT_PREPARE},
+
+ {"stress.evict_reposition", "stress evict reposition",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_EVICT_REPOSITION},
{"stress.failpoint_hs_delete_key_from_ts", "stress failpoint history store delete key from ts",
C_BOOL, 30, 0, 0, V_GLOBAL_STRESS_FAILPOINT_HS_DELETE_KEY_FROM_TS},
- {"stress.hs_checkpoint_delay", "stress history store checkpoint delay", C_BOOL, 2, 0, 0,
- V_GLOBAL_STRESS_HS_CHECKPOINT_DELAY},
+ {"stress.hs_checkpoint_delay", "stress history store checkpoint delay",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_HS_CHECKPOINT_DELAY},
- {"stress.hs_search", "stress history store search", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_HS_SEARCH},
+ {"stress.hs_search", "stress history store search",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_HS_SEARCH},
- {"stress.hs_sweep", "stress history store sweep", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_HS_SWEEP},
+ {"stress.hs_sweep", "stress history store sweep",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_HS_SWEEP},
- {"stress.split_1", "stress splits (#1)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_1},
+ {"stress.split_1", "stress splits (#1)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_1},
- {"stress.split_2", "stress splits (#2)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_2},
+ {"stress.split_2", "stress splits (#2)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_2},
- {"stress.split_3", "stress splits (#3)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_3},
+ {"stress.split_3", "stress splits (#3)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_3},
- {"stress.split_4", "stress splits (#4)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_4},
+ {"stress.split_4", "stress splits (#4)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_4},
- {"stress.split_5", "stress splits (#5)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_5},
+ {"stress.split_5", "stress splits (#5)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_5},
- {"stress.split_6", "stress splits (#6)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_6},
+ {"stress.split_6", "stress splits (#6)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_6},
- {"stress.split_7", "stress splits (#7)", C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_7},
+ {"stress.split_7", "stress splits (#7)",
+ C_BOOL, 2, 0, 0, V_GLOBAL_STRESS_SPLIT_7},
- {"transaction.implicit", "implicit, without timestamps, transactions (percentage)", 0, 0, 100,
- 100, V_GLOBAL_TRANSACTION_IMPLICIT},
+ {"transaction.implicit", "implicit, without timestamps, transactions (percentage)",
+ 0, 0, 100, 100, V_GLOBAL_TRANSACTION_IMPLICIT},
- {"transaction.timestamps", "all transactions (or none), have timestamps", C_BOOL, 80, 0, 0,
- V_GLOBAL_TRANSACTION_TIMESTAMPS},
+ {"transaction.timestamps", "all transactions (or none), have timestamps",
+ C_BOOL, 80, 0, 0, V_GLOBAL_TRANSACTION_TIMESTAMPS},
- {"wiredtiger.config", "wiredtiger_open API configuration string", C_IGNORE | C_STRING, 0, 0, 0,
- V_GLOBAL_WIREDTIGER_CONFIG},
+ {"wiredtiger.config", "wiredtiger_open API configuration string",
+ C_IGNORE | C_STRING, 0, 0, 0, V_GLOBAL_WIREDTIGER_CONFIG},
- {"wiredtiger.rwlock", "configure wiredtiger read/write mutexes", C_BOOL, 80, 0, 0,
- V_GLOBAL_WIREDTIGER_RWLOCK},
+ {"wiredtiger.rwlock", "configure wiredtiger read/write mutexes",
+ C_BOOL, 80, 0, 0, V_GLOBAL_WIREDTIGER_RWLOCK},
- {"wiredtiger.leak_memory", "leak memory on wiredtiger shutdown", C_BOOL, 0, 0, 0,
- V_GLOBAL_WIREDTIGER_LEAK_MEMORY},
+ {"wiredtiger.leak_memory", "leak memory on wiredtiger shutdown",
+ C_BOOL, 0, 0, 0, V_GLOBAL_WIREDTIGER_LEAK_MEMORY},
- {NULL, NULL, 0x0, 0, 0, 0, 0}};
+ {NULL, NULL, 0x0, 0, 0, 0, 0}
+};
diff --git a/src/third_party/wiredtiger/test/format/wts.c b/src/third_party/wiredtiger/test/format/wts.c
index 01abbe755ff..0d2153e3207 100644
--- a/src/third_party/wiredtiger/test/format/wts.c
+++ b/src/third_party/wiredtiger/test/format/wts.c
@@ -158,6 +158,8 @@ configure_timing_stress(char *p, size_t max)
CONFIG_APPEND(p, ",prepare_checkpoint_delay");
if (GV(STRESS_CHECKPOINT_RESERVED_TXNID_DELAY))
CONFIG_APPEND(p, ",checkpoint_reserved_txnid_delay");
+ if (GV(STRESS_EVICT_REPOSITION))
+ CONFIG_APPEND(p, ",evict_reposition");
if (GV(STRESS_FAILPOINT_HS_DELETE_KEY_FROM_TS))
CONFIG_APPEND(p, ",failpoint_history_store_delete_key_from_ts");
if (GV(STRESS_HS_CHECKPOINT_DELAY))
diff --git a/src/third_party/wiredtiger/test/suite/test_hs30.py b/src/third_party/wiredtiger/test/suite/test_hs30.py
index 6a2d170d058..16b138cc00e 100644
--- a/src/third_party/wiredtiger/test/suite/test_hs30.py
+++ b/src/third_party/wiredtiger/test/suite/test_hs30.py
@@ -182,8 +182,8 @@ class test_hs30(wttest.WiredTigerTestCase):
stat_cursor.close()
if self.do_evict:
- # Should have read nrows twice.
- self.assertEqual(hs_read, nrows * 2)
+ # Should have at least read nrows twice.
+ self.assertGreaterEqual(hs_read, nrows * 2)
else:
# Apparently even if we checkpoint, without an explicit evict the old in-memory
# updates hang around and the history store isn't accessed.