summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2020-09-22 15:59:08 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-09-22 06:22:27 +0000
commit1c0bb27ce1d10d0ebc29d072881ee295e6cde5ad (patch)
treefdb70a60b41f0ecdaedab9978fe87c59996109e5
parent54b81a78baea133a6b28d9df26f796191fe2c7d0 (diff)
downloadmongo-1c0bb27ce1d10d0ebc29d072881ee295e6cde5ad.tar.gz
Import wiredtiger: 58afeb82a68fde5a3c3eb47cd6e652edb0f62b3a from branch mongodb-4.2
ref: f8cec30ecb..58afeb82a6 for: 4.2.10 WT-5940 Migrate to Clang Format 10 WT-6000 Enhance incremental backup testing in format to support restart WT-6215 Clear backup block information on rename: Reverted WT-6421 Avoid parsing metadata checkpoint for clean files WT-6539 Fix backup and rename memory leak WT-6559 Use the session id from the new session to determine statistics bucket WT-6598 Add new API allowing changing dhandle hash bucket size WT-6610 Fix incremental backup checkpoint parsing to handle upgrades WT-6611 Revert enhancement allowing rename and incremental backup
-rw-r--r--src/third_party/wiredtiger/.clang-format56
-rw-r--r--src/third_party/wiredtiger/bench/wtperf/config.c79
-rw-r--r--src/third_party/wiredtiger/bench/wtperf/idle_table_cycle.c6
-rw-r--r--src/third_party/wiredtiger/bench/wtperf/wtperf.c46
-rw-r--r--src/third_party/wiredtiger/bench/wtperf/wtperf_opt.i109
-rw-r--r--src/third_party/wiredtiger/dist/api_data.py14
-rwxr-xr-xsrc/third_party/wiredtiger/dist/s_clang-format21
-rw-r--r--src/third_party/wiredtiger/dist/s_copyright.list1
-rw-r--r--src/third_party/wiredtiger/dist/s_goto.py18
-rwxr-xr-xsrc/third_party/wiredtiger/dist/s_stat1
-rw-r--r--src/third_party/wiredtiger/dist/s_string.ok1
-rw-r--r--src/third_party/wiredtiger/dist/stat_data.py9
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_all.c53
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_async.c6
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_call_center.c9
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_cursor.c3
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_encrypt.c22
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_extractor.c3
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_file_system.c6
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_log.c6
-rw-r--r--src/third_party/wiredtiger/examples/c/ex_schema.c6
-rw-r--r--src/third_party/wiredtiger/ext/compressors/lz4/lz4_compress.c5
-rw-r--r--src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c5
-rw-r--r--src/third_party/wiredtiger/ext/compressors/zlib/zlib_compress.c6
-rw-r--r--src/third_party/wiredtiger/ext/compressors/zstd/zstd_compress.c5
-rw-r--r--src/third_party/wiredtiger/ext/test/fail_fs/fail_fs.c5
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/block/block_ckpt.c17
-rw-r--r--src/third_party/wiredtiger/src/block/block_compact.c21
-rw-r--r--src/third_party/wiredtiger/src/block/block_ext.c12
-rw-r--r--src/third_party/wiredtiger/src/block/block_open.c9
-rw-r--r--src/third_party/wiredtiger/src/block/block_read.c23
-rw-r--r--src/third_party/wiredtiger/src/block/block_vrfy.c25
-rw-r--r--src/third_party/wiredtiger/src/block/block_write.c2
-rw-r--r--src/third_party/wiredtiger/src/bloom/bloom.c9
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_compact.c6
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_curnext.c20
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_curprev.c7
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_cursor.c20
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_delete.c9
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_handle.c34
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_huffman.c24
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_import.c4
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_io.c11
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_random.c12
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_read.c13
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_rebalance.c6
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_slvg.c11
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_split.c20
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_vrfy.c138
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_vrfy_dsk.c136
-rw-r--r--src/third_party/wiredtiger/src/btree/col_modify.c7
-rw-r--r--src/third_party/wiredtiger/src/btree/row_modify.c2
-rw-r--r--src/third_party/wiredtiger/src/btree/row_srch.c6
-rw-r--r--src/third_party/wiredtiger/src/cache/cache_las.c34
-rw-r--r--src/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.c8
-rw-r--r--src/third_party/wiredtiger/src/checksum/power8/crc32_constants.h1390
-rw-r--r--src/third_party/wiredtiger/src/config/config_api.c8
-rw-r--r--src/third_party/wiredtiger/src/config/config_check.c19
-rw-r--r--src/third_party/wiredtiger/src/config/config_collapse.c4
-rw-r--r--src/third_party/wiredtiger/src/config/config_def.c121
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_api.c127
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_cache.c18
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_cache_pool.c11
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_ckpt.c3
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_dhandle.c51
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_handle.c16
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_log.c31
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_reconfig.c35
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_stat.c3
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_sweep.c2
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_backup_incr.c27
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_bulk.c10
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_dump.c2
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_file.c37
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_index.c3
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_join.c36
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_json.c6
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_metadata.c14
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_stat.c16
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_std.c28
-rw-r--r--src/third_party/wiredtiger/src/docs/wtperf.dox40
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_file.c5
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_lru.c19
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_page.c11
-rw-r--r--src/third_party/wiredtiger/src/include/btmem.h3
-rw-r--r--src/third_party/wiredtiger/src/include/btree.h15
-rw-r--r--src/third_party/wiredtiger/src/include/btree.i9
-rw-r--r--src/third_party/wiredtiger/src/include/cache.i13
-rw-r--r--src/third_party/wiredtiger/src/include/cell.i9
-rw-r--r--src/third_party/wiredtiger/src/include/column.i6
-rw-r--r--src/third_party/wiredtiger/src/include/connection.h44
-rw-r--r--src/third_party/wiredtiger/src/include/cursor.h63
-rw-r--r--src/third_party/wiredtiger/src/include/cursor.i8
-rw-r--r--src/third_party/wiredtiger/src/include/error.h15
-rw-r--r--src/third_party/wiredtiger/src/include/extern.h6
-rw-r--r--src/third_party/wiredtiger/src/include/log.h7
-rw-r--r--src/third_party/wiredtiger/src/include/meta.h5
-rw-r--r--src/third_party/wiredtiger/src/include/misc.h19
-rw-r--r--src/third_party/wiredtiger/src/include/os.h12
-rw-r--r--src/third_party/wiredtiger/src/include/os_fhandle.i8
-rw-r--r--src/third_party/wiredtiger/src/include/packing.i6
-rw-r--r--src/third_party/wiredtiger/src/include/schema.h27
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h9
-rw-r--r--src/third_party/wiredtiger/src/include/txn.h7
-rw-r--r--src/third_party/wiredtiger/src/include/txn.i26
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in773
-rw-r--r--src/third_party/wiredtiger/src/log/log.c49
-rw-r--r--src/third_party/wiredtiger/src/log/log_sys.c16
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_cursor.c19
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_manager.c8
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_merge.c23
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_meta.c8
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_tree.c16
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_work_unit.c3
-rw-r--r--src/third_party/wiredtiger/src/meta/meta_ckpt.c98
-rw-r--r--src/third_party/wiredtiger/src/meta/meta_turtle.c8
-rw-r--r--src/third_party/wiredtiger/src/os_common/os_alloc.c6
-rw-r--r--src/third_party/wiredtiger/src/os_common/os_fhandle.c6
-rw-r--r--src/third_party/wiredtiger/src/os_common/os_fs_inmemory.c41
-rw-r--r--src/third_party/wiredtiger/src/os_posix/os_fs.c22
-rw-r--r--src/third_party/wiredtiger/src/os_win/os_fs.c22
-rw-r--r--src/third_party/wiredtiger/src/os_win/os_winerr.c73
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_col.c12
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_visibility.c14
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_write.c40
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_create.c23
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_list.c4
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_open.c11
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_plan.c11
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_project.c4
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_rename.c39
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_util.c8
-rw-r--r--src/third_party/wiredtiger/src/session/session_api.c105
-rw-r--r--src/third_party/wiredtiger/src/session/session_compact.c9
-rw-r--r--src/third_party/wiredtiger/src/session/session_dhandle.c11
-rw-r--r--src/third_party/wiredtiger/src/support/crypto.c5
-rw-r--r--src/third_party/wiredtiger/src/support/err.c5
-rw-r--r--src/third_party/wiredtiger/src/support/global.c4
-rw-r--r--src/third_party/wiredtiger/src/support/hazard.c18
-rw-r--r--src/third_party/wiredtiger/src/support/huffman.c26
-rw-r--r--src/third_party/wiredtiger/src/support/modify.c6
-rw-r--r--src/third_party/wiredtiger/src/support/scratch.c4
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c590
-rw-r--r--src/third_party/wiredtiger/src/support/thread_group.c13
-rw-r--r--src/third_party/wiredtiger/src/txn/txn.c70
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_ckpt.c96
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_log.c2
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_nsnap.c39
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_recover.c10
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c3
-rw-r--r--src/third_party/wiredtiger/src/txn/txn_timestamp.c62
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_alter.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_backup.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_compact.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_create.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_downgrade.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_drop.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_dump.c4
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_import.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_list.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_load.c29
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_loadtext.c9
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_misc.c2
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_printlog.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_read.c14
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_rebalance.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_rename.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_salvage.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_stat.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_truncate.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_upgrade.c5
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_verify.c14
-rw-r--r--src/third_party/wiredtiger/src/utilities/util_write.c14
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/checkpointer.c4
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c6
-rw-r--r--src/third_party/wiredtiger/test/csuite/incr_backup/main.c11
-rw-r--r--src/third_party/wiredtiger/test/csuite/random_abort/main.c12
-rw-r--r--src/third_party/wiredtiger/test/csuite/random_directio/main.c4
-rw-r--r--src/third_party/wiredtiger/test/csuite/schema_abort/main.c30
-rw-r--r--src/third_party/wiredtiger/test/csuite/scope/main.c86
-rw-r--r--src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c28
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c6
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c8
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c14
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c11
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c6
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c11
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c5
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c15
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt3363_checkpoint_op_races/main.c6
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt4105_large_doc_small_upd/main.c13
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt4156_metadata_salvage/main.c4
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt4333_handle_locks/main.c24
-rw-r--r--src/third_party/wiredtiger/test/fops/t.c11
-rw-r--r--src/third_party/wiredtiger/test/format/backup.c192
-rw-r--r--src/third_party/wiredtiger/test/format/config.c12
-rw-r--r--src/third_party/wiredtiger/test/format/config_compat.c216
-rw-r--r--src/third_party/wiredtiger/test/format/format.h4
-rw-r--r--src/third_party/wiredtiger/test/format/util.c28
-rw-r--r--src/third_party/wiredtiger/test/format/wts.c12
-rw-r--r--src/third_party/wiredtiger/test/huge/huge.c5
-rw-r--r--src/third_party/wiredtiger/test/packing/intpack-test3.c15
-rw-r--r--src/third_party/wiredtiger/test/readonly/readonly.c5
-rw-r--r--src/third_party/wiredtiger/test/salvage/salvage.c18
-rw-r--r--src/third_party/wiredtiger/test/suite/test_checkpoint05.py2
-rwxr-xr-xsrc/third_party/wiredtiger/test/suite/test_checkpoint07.py182
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config09.py106
-rw-r--r--src/third_party/wiredtiger/test/utility/misc.c8
209 files changed, 4157 insertions, 3118 deletions
diff --git a/src/third_party/wiredtiger/.clang-format b/src/third_party/wiredtiger/.clang-format
index 573572df901..46f50c08693 100644
--- a/src/third_party/wiredtiger/.clang-format
+++ b/src/third_party/wiredtiger/.clang-format
@@ -3,24 +3,29 @@ Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: 0
AlignAfterOpenBracket: DontAlign
+AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
-AlignEscapedNewlinesLeft: true
+AlignEscapedNewlines: Left
AlignOperands: false
AlignTrailingComments: true
+AllowAllArgumentsOnNextLine: true
+AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
-AllowShortBlocksOnASingleLine: false
+AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
-AllowShortIfStatementsOnASingleLine: false
+AllowShortLambdasOnASingleLine: All
+AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: AllDefinitions
AlwaysBreakBeforeMultilineStrings: true
-AlwaysBreakTemplateDeclarations: false
+AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
+ AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
@@ -29,22 +34,34 @@ BraceWrapping:
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
+ AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
+ SplitEmptyFunction: true
+ SplitEmptyRecord: true
+ SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
+BreakBeforeInheritanceComma: false
+BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
+BreakConstructorInitializers: BeforeColon
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
+CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 2
Cpp11BracedListStyle: true
+DeriveLineEnding: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: true
ForEachMacros:
- Q_FOREACH
- BOOST_FOREACH
@@ -61,44 +78,71 @@ ForEachMacros:
- WT_MODIFY_FOREACH_REVERSE
- WT_ROW_FOREACH
- WT_SKIP_FOREACH
+IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- - Regex: '^(<|"(gtest|isl|json)/)'
+ SortPriority: 0
+ - Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
+ SortPriority: 0
- Regex: '.*'
Priority: 1
+ SortPriority: 0
+IncludeIsMainRegex: '(Test)?$'
+IncludeIsMainSourceRegex: ''
IndentCaseLabels: false
+IndentGotoLabels: false
+IndentPPDirectives: None
IndentWidth: 4
IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: '^WT_PACKED_STRUCT_BEGIN$'
MacroBlockEnd: '^WT_PACKED_STRUCT_END$'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
+PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
ReflowComments: true
SortIncludes: false
+SortUsingDeclarations: true
SpaceAfterCStyleCast: false
+SpaceAfterLogicalNot: false
+SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
+SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
-Standard: Cpp11
+SpaceBeforeSquareBrackets: false
+Standard: Latest
+StatementMacros:
+ - Q_UNUSED
+ - QT_REQUIRE_VERSION
TabWidth: 8
+UseCRLF: false
UseTab: Never
...
diff --git a/src/third_party/wiredtiger/bench/wtperf/config.c b/src/third_party/wiredtiger/bench/wtperf/config.c
index 70e7ea75e7c..e10a9408e20 100644
--- a/src/third_party/wiredtiger/bench/wtperf/config.c
+++ b/src/third_party/wiredtiger/bench/wtperf/config.c
@@ -200,10 +200,8 @@ config_threads(WTPERF *wtperf, const char *config, size_t len)
/* Move to the next workload slot. */
if (wtperf->workload_cnt == WORKLOAD_MAX) {
- fprintf(stderr,
- "too many workloads configured, only %d workloads "
- "supported\n",
- WORKLOAD_MAX);
+ fprintf(
+ stderr, "too many workloads configured, only %d workloads supported\n", WORKLOAD_MAX);
return (EINVAL);
}
workp = &wtperf->workload[wtperf->workload_cnt++];
@@ -394,10 +392,7 @@ config_opt(WTPERF *wtperf, WT_CONFIG_ITEM *k, WT_CONFIG_ITEM *v)
break;
}
if (desc == NULL) {
- fprintf(stderr,
- "wtperf: Error: "
- "unknown option \'%.*s\'\n",
- (int)k->len, k->str);
+ fprintf(stderr, "wtperf: Error: unknown option \'%.*s\'\n", (int)k->len, k->str);
fprintf(stderr, "Options:\n");
for (i = 0; i < WT_ELEMENTS(config_opts_desc); i++)
fprintf(stderr, "\t%s\n", config_opts_desc[i].name);
@@ -407,26 +402,20 @@ config_opt(WTPERF *wtperf, WT_CONFIG_ITEM *k, WT_CONFIG_ITEM *v)
switch (desc->type) {
case BOOL_TYPE:
if (v->type != WT_CONFIG_ITEM_BOOL) {
- fprintf(stderr,
- "wtperf: Error: "
- "bad bool value for \'%.*s=%.*s\'\n",
- (int)k->len, k->str, (int)v->len, v->str);
+ fprintf(stderr, "wtperf: Error: bad bool value for \'%.*s=%.*s\'\n", (int)k->len,
+ k->str, (int)v->len, v->str);
return (EINVAL);
}
*(int *)valueloc = (int)v->val;
break;
case INT_TYPE:
if (v->type != WT_CONFIG_ITEM_NUM) {
- fprintf(stderr,
- "wtperf: Error: "
- "bad int value for \'%.*s=%.*s\'\n",
- (int)k->len, k->str, (int)v->len, v->str);
+ fprintf(stderr, "wtperf: Error: bad int value for \'%.*s=%.*s\'\n", (int)k->len, k->str,
+ (int)v->len, v->str);
return (EINVAL);
}
if (v->val > INT_MAX) {
- fprintf(stderr,
- "wtperf: Error: "
- "int value out of range for \'%.*s=%.*s\'\n",
+ fprintf(stderr, "wtperf: Error: int value out of range for \'%.*s=%.*s\'\n",
(int)k->len, k->str, (int)v->len, v->str);
return (EINVAL);
}
@@ -434,16 +423,12 @@ config_opt(WTPERF *wtperf, WT_CONFIG_ITEM *k, WT_CONFIG_ITEM *v)
break;
case UINT32_TYPE:
if (v->type != WT_CONFIG_ITEM_NUM) {
- fprintf(stderr,
- "wtperf: Error: "
- "bad uint32 value for \'%.*s=%.*s\'\n",
- (int)k->len, k->str, (int)v->len, v->str);
+ fprintf(stderr, "wtperf: Error: bad uint32 value for \'%.*s=%.*s\'\n", (int)k->len,
+ k->str, (int)v->len, v->str);
return (EINVAL);
}
if (v->val < 0 || v->val > UINT_MAX) {
- fprintf(stderr,
- "wtperf: Error: "
- "uint32 value out of range for \'%.*s=%.*s\'\n",
+ fprintf(stderr, "wtperf: Error: uint32 value out of range for \'%.*s=%.*s\'\n",
(int)k->len, k->str, (int)v->len, v->str);
return (EINVAL);
}
@@ -454,10 +439,8 @@ config_opt(WTPERF *wtperf, WT_CONFIG_ITEM *k, WT_CONFIG_ITEM *v)
* Configuration parsing uses string/ID to distinguish between quoted and unquoted values.
*/
if (v->type != WT_CONFIG_ITEM_STRING && v->type != WT_CONFIG_ITEM_ID) {
- fprintf(stderr,
- "wtperf: Error: "
- "bad string value for \'%.*s=%.*s\'\n",
- (int)k->len, k->str, (int)v->len, v->str);
+ fprintf(stderr, "wtperf: Error: bad string value for \'%.*s=%.*s\'\n", (int)k->len,
+ k->str, (int)v->len, v->str);
return (EINVAL);
}
strp = (char **)valueloc;
@@ -486,10 +469,8 @@ config_opt(WTPERF *wtperf, WT_CONFIG_ITEM *k, WT_CONFIG_ITEM *v)
return (config_threads(wtperf, v->str, v->len));
if (v->type != WT_CONFIG_ITEM_STRING && v->type != WT_CONFIG_ITEM_ID) {
- fprintf(stderr,
- "wtperf: Error: "
- "bad string value for \'%.*s=%.*s\'\n",
- (int)k->len, k->str, (int)v->len, v->str);
+ fprintf(stderr, "wtperf: Error: bad string value for \'%.*s=%.*s\'\n", (int)k->len,
+ k->str, (int)v->len, v->str);
return (EINVAL);
}
strp = (char **)valueloc;
@@ -741,8 +722,8 @@ config_sanity(WTPERF *wtperf)
/* Various intervals should be less than the run-time. */
if (opts->run_time > 0 &&
((opts->checkpoint_threads != 0 && opts->checkpoint_interval > opts->run_time) ||
- opts->report_interval > opts->run_time || opts->sample_interval > opts->run_time ||
- opts->scan_interval > opts->run_time)) {
+ opts->report_interval > opts->run_time || opts->sample_interval > opts->run_time ||
+ opts->scan_interval > opts->run_time)) {
fprintf(stderr, "interval value longer than the run-time\n");
return (EINVAL);
}
@@ -769,8 +750,9 @@ config_sanity(WTPERF *wtperf)
/* If we have separate tables for scanning, we need a separate count. */
if ((opts->scan_icount > 0 && opts->scan_table_count == 0) ||
(opts->scan_icount == 0 && opts->scan_table_count > 0)) {
- fprintf(stderr, "scan_icount %" PRIu32 " and scan_table_count %" PRIu32
- " must both be zero or nonzero.\n",
+ fprintf(stderr,
+ "scan_icount %" PRIu32 " and scan_table_count %" PRIu32
+ " must both be zero or nonzero.\n",
opts->scan_icount, opts->scan_table_count);
return (EINVAL);
}
@@ -800,17 +782,15 @@ config_sanity(WTPERF *wtperf)
if (wtperf->workload != NULL)
for (i = 0, workp = wtperf->workload; i < wtperf->workload_cnt; ++i, ++workp) {
- if (opts->readonly && (workp->insert != 0 || workp->modify != 0 ||
- workp->truncate != 0 || workp->update != 0)) {
+ if (opts->readonly &&
+ (workp->insert != 0 || workp->modify != 0 || workp->truncate != 0 ||
+ workp->update != 0)) {
fprintf(stderr,
- "Invalid workload: insert, modify, truncate or update specified with "
- "readonly\n");
+ "Invalid workload: insert, modify, truncate or update specified with readonly\n");
return (EINVAL);
}
if (workp->insert != 0 && workp->table_index != INT32_MAX) {
- fprintf(stderr,
- "Invalid workload: Cannot insert into "
- "specific table only\n");
+ fprintf(stderr, "Invalid workload: Cannot insert into specific table only\n");
return (EINVAL);
}
if (workp->table_index != INT32_MAX &&
@@ -906,8 +886,7 @@ config_opt_log(CONFIG_OPTS *opts, const char *path)
config_consolidate(opts);
fprintf(fp,
- "# Warning: This config includes "
- "unwritten, implicit configuration defaults.\n"
+ "# Warning: This config includes unwritten, implicit configuration defaults.\n"
"# Changes to those values may cause differences in behavior.\n");
TAILQ_FOREACH (config_line, &opts->config_head, q)
fprintf(fp, "%s\n", config_line->string);
@@ -1028,12 +1007,10 @@ config_opt_usage(void)
const char *defaultval, *typestr;
pretty_print(
- "The following are options settable using -o or -O, showing the "
- "type and default value.\n",
+ "The following are options settable using -o or -O, showing the type and default value.\n",
NULL);
pretty_print(
- "String values must be enclosed in \" quotes, boolean values must "
- "be either true or false.\n",
+ "String values must be enclosed in \" quotes, boolean values must be either true or false.\n",
NULL);
for (i = 0; i < WT_ELEMENTS(config_opts_desc); i++) {
diff --git a/src/third_party/wiredtiger/bench/wtperf/idle_table_cycle.c b/src/third_party/wiredtiger/bench/wtperf/idle_table_cycle.c
index d2be4f5454e..ee9182b0e40 100644
--- a/src/third_party/wiredtiger/bench/wtperf/idle_table_cycle.c
+++ b/src/third_party/wiredtiger/bench/wtperf/idle_table_cycle.c
@@ -41,9 +41,9 @@ check_timing(WTPERF *wtperf, const char *name, struct timespec start, struct tim
last_interval = (uint64_t)(WT_TIMEDIFF_SEC(*stop, start));
if (last_interval > opts->idle_table_cycle) {
- lprintf(wtperf, ETIMEDOUT, 0, "Cycling idle table failed because %s took %" PRIu64
- " seconds which is longer than configured acceptable"
- " maximum of %" PRIu32 ".",
+ lprintf(wtperf, ETIMEDOUT, 0,
+ "Cycling idle table failed because %s took %" PRIu64
+ " seconds which is longer than configured acceptable maximum of %" PRIu32 ".",
name, last_interval, opts->idle_table_cycle);
wtperf->error = true;
return (ETIMEDOUT);
diff --git a/src/third_party/wiredtiger/bench/wtperf/wtperf.c b/src/third_party/wiredtiger/bench/wtperf/wtperf.c
index 6328b408fc8..b286ff43008 100644
--- a/src/third_party/wiredtiger/bench/wtperf/wtperf.c
+++ b/src/third_party/wiredtiger/bench/wtperf/wtperf.c
@@ -868,15 +868,11 @@ op_err:
if (ret == WT_ROLLBACK && ops_per_txn == 0) {
lprintf(wtperf, ret, 1, "log-table: ROLLBACK");
if ((ret = session->rollback_transaction(session, NULL)) != 0) {
- lprintf(wtperf, ret, 0,
- "Failed"
- " rollback_transaction");
+ lprintf(wtperf, ret, 0, "Failed rollback_transaction");
goto err;
}
if ((ret = session->begin_transaction(session, NULL)) != 0) {
- lprintf(wtperf, ret, 0,
- "Worker begin "
- "transaction failed");
+ lprintf(wtperf, ret, 0, "Worker begin transaction failed");
goto err;
}
} else
@@ -1409,10 +1405,9 @@ monitor(void *arg)
cur_updates = (updates - last_updates) / opts->sample_interval;
(void)fprintf(fp,
- "%s,%" PRIu32 ",%" PRIu64 ",%" PRIu64 ",%" PRIu64 ",%" PRIu64
- ",%c,%c"
+ "%s,%" PRIu32 ",%" PRIu64 ",%" PRIu64 ",%" PRIu64 ",%" PRIu64 ",%c,%c,%" PRIu32
",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32
- ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 "\n",
+ ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" PRIu32 "\n",
buf, wtperf->totalsec, cur_inserts, cur_modifies, cur_reads, cur_updates,
wtperf->ckpt ? 'Y' : 'N', wtperf->scan ? 'Y' : 'N', insert_avg, insert_min, insert_max,
modify_avg, modify_min, modify_max, read_avg, read_min, read_max, update_avg, update_min,
@@ -1437,8 +1432,9 @@ monitor(void *arg)
",\"modify\":{\"ops per sec\":%" PRIu64 ",\"average latency\":%" PRIu32
",\"min latency\":%" PRIu32 ",\"max latency\":%" PRIu32 "}",
cur_modifies, modify_avg, modify_min, modify_max);
- (void)fprintf(jfp, ",\"read\":{\"ops per sec\":%" PRIu64 ",\"average latency\":%" PRIu32
- ",\"min latency\":%" PRIu32 ",\"max latency\":%" PRIu32 "}",
+ (void)fprintf(jfp,
+ ",\"read\":{\"ops per sec\":%" PRIu64 ",\"average latency\":%" PRIu32
+ ",\"min latency\":%" PRIu32 ",\"max latency\":%" PRIu32 "}",
cur_reads, read_avg, read_min, read_max);
(void)fprintf(jfp,
",\"update\":{\"ops per sec\":%" PRIu64 ",\"average latency\":%" PRIu32
@@ -1447,8 +1443,9 @@ monitor(void *arg)
fprintf(jfp, "}}\n");
}
- if (latency_max != 0 && (insert_max > latency_max || modify_max > latency_max ||
- read_max > latency_max || update_max > latency_max)) {
+ if (latency_max != 0 &&
+ (insert_max > latency_max || modify_max > latency_max || read_max > latency_max ||
+ update_max > latency_max)) {
if (opts->max_latency_fatal) {
level = 1;
msg_err = WT_PANIC;
@@ -1463,10 +1460,11 @@ monitor(void *arg)
" modify max %" PRIu32 " read max %" PRIu32 " update max %" PRIu32,
str, latency_max, insert_max, modify_max, read_max, update_max);
}
- if (min_thr != 0 && ((cur_inserts != 0 && cur_inserts < min_thr) ||
- (cur_modifies != 0 && cur_modifies < min_thr) ||
- (cur_reads != 0 && cur_reads < min_thr) ||
- (cur_updates != 0 && cur_updates < min_thr))) {
+ if (min_thr != 0 &&
+ ((cur_inserts != 0 && cur_inserts < min_thr) ||
+ (cur_modifies != 0 && cur_modifies < min_thr) ||
+ (cur_reads != 0 && cur_reads < min_thr) ||
+ (cur_updates != 0 && cur_updates < min_thr))) {
if (opts->min_throughput_fatal) {
level = 1;
msg_err = WT_PANIC;
@@ -1645,10 +1643,7 @@ scan_worker(void *arg)
generate_key(opts, key_buf, cur_id);
cursor->set_key(cursor, key_buf);
if ((ret = cursor->search(cursor)) != 0) {
- lprintf(wtperf, ret, 0,
- "Failed scan search "
- "key %s, items %d",
- key_buf, (int)items);
+ lprintf(wtperf, ret, 0, "Failed scan search key %s, items %d", key_buf, (int)items);
goto err;
}
@@ -1731,8 +1726,9 @@ execute_populate(WTPERF *wtperf)
interval = 0;
wtperf->totalsec += opts->report_interval;
wtperf->insert_ops = sum_pop_ops(wtperf);
- lprintf(wtperf, 0, 1, "%" PRIu64 " populate inserts (%" PRIu64 " of %" PRIu32
- ") in %" PRIu32 " secs (%" PRIu32 " total secs)",
+ lprintf(wtperf, 0, 1,
+ "%" PRIu64 " populate inserts (%" PRIu64 " of %" PRIu32 ") in %" PRIu32 " secs (%" PRIu32
+ " total secs)",
wtperf->insert_ops - last_ops, wtperf->insert_ops, opts->icount, opts->report_interval,
wtperf->totalsec);
last_ops = wtperf->insert_ops;
@@ -2523,9 +2519,7 @@ extern char *__wt_optarg;
static void
usage(void)
{
- printf(
- "wtperf [-C config] "
- "[-h home] [-O file] [-o option] [-T config]\n");
+ printf("wtperf [-C config] [-h home] [-O file] [-o option] [-T config]\n");
printf("\t-C <string> additional connection configuration\n");
printf("\t (added to option conn_config)\n");
printf("\t-h <string> Wired Tiger home must exist, default WT_TEST\n");
diff --git a/src/third_party/wiredtiger/bench/wtperf/wtperf_opt.i b/src/third_party/wiredtiger/bench/wtperf/wtperf_opt.i
index cf310d33046..1c495630c66 100644
--- a/src/third_party/wiredtiger/bench/wtperf/wtperf_opt.i
+++ b/src/third_party/wiredtiger/bench/wtperf/wtperf_opt.i
@@ -84,71 +84,61 @@ DEF_OPT_AS_UINT32(async_threads, 0, "number of async worker threads")
DEF_OPT_AS_UINT32(
checkpoint_interval, 120, "checkpoint every interval seconds during the workload phase.")
DEF_OPT_AS_UINT32(checkpoint_stress_rate, 0,
- "checkpoint every rate operations during the populate phase in the "
- "populate thread(s), 0 to disable")
+ "checkpoint every rate operations during the populate phase in the populate thread(s), 0 to "
+ "disable")
DEF_OPT_AS_UINT32(checkpoint_threads, 0, "number of checkpoint threads")
DEF_OPT_AS_CONFIG_STRING(conn_config, "create,statistics=(fast),statistics_log=(json,wait=1)",
"connection configuration string")
DEF_OPT_AS_BOOL(close_conn, 1,
- "properly close connection at end of test. "
- "Setting to false does not sync data to disk and can result in lost "
- "data after test exits.")
+ "properly close connection at end of test. Setting to false does not sync data to disk and can "
+ "result in lost data after test exits.")
DEF_OPT_AS_BOOL(compact, 0, "post-populate compact for LSM merging activity")
DEF_OPT_AS_STRING(compression, "none",
- "compression extension. Allowed configuration values are: "
- "'none', 'lz4', 'snappy', 'zlib', 'zstd'")
+ "compression extension. Allowed configuration values are: 'none', 'lz4', 'snappy', 'zlib', "
+ "'zstd'")
DEF_OPT_AS_BOOL(create, 1, "do population phase; false to use existing database")
DEF_OPT_AS_UINT32(database_count, 1,
- "number of WiredTiger databases to use. Each database will execute the"
- " workload using a separate home directory and complete set of worker"
- " threads")
+ "number of WiredTiger databases to use. Each database will execute the workload using a separate "
+ "home directory and complete set of worker threads")
DEF_OPT_AS_BOOL(drop_tables, 0,
- "Whether to drop all tables at the end of the run, and report time taken"
- " to do the drop.")
+ "Whether to drop all tables at the end of the run, and report time taken to do the drop.")
DEF_OPT_AS_BOOL(in_memory, 0, "Whether to create the database in-memory.")
DEF_OPT_AS_UINT32(icount, 5000,
- "number of records to initially populate. If multiple tables are "
- "configured the count is spread evenly across all tables.")
+ "number of records to initially populate. If multiple tables are configured the count is spread "
+ "evenly across all tables.")
DEF_OPT_AS_UINT32(idle_table_cycle, 0,
- "Enable regular create and drop of idle tables, value is the maximum "
- "number of seconds a create or drop is allowed before flagging an error. "
- "Default 0 which means disabled.")
+ "Enable regular create and drop of idle tables, value is the maximum number of seconds a create "
+ "or drop is allowed before flagging an error. Default 0 which means disabled.")
DEF_OPT_AS_BOOL(index, 0, "Whether to create an index on the value field.")
DEF_OPT_AS_BOOL(insert_rmw, 0, "execute a read prior to each insert in workload phase")
DEF_OPT_AS_UINT32(key_sz, 20, "key size")
DEF_OPT_AS_BOOL(log_partial, 0, "perform partial logging on first table only.")
DEF_OPT_AS_BOOL(log_like_table, 0, "Append all modification operations to another shared table.")
DEF_OPT_AS_UINT32(min_throughput, 0,
- "notify if any throughput measured is less than this amount. "
- "Aborts or prints warning based on min_throughput_fatal setting. "
- "Requires sample_interval to be configured")
+ "notify if any throughput measured is less than this amount. Aborts or prints warning based on "
+ "min_throughput_fatal setting. Requires sample_interval to be configured")
DEF_OPT_AS_BOOL(
min_throughput_fatal, 0, "print warning (false) or abort (true) of min_throughput failure.")
DEF_OPT_AS_UINT32(max_latency, 0,
- "notify if any latency measured exceeds this number of milliseconds."
- "Aborts or prints warning based on min_throughput_fatal setting. "
- "Requires sample_interval to be configured")
+ "notify if any latency measured exceeds this number of milliseconds.Aborts or prints warning "
+ "based on min_throughput_fatal setting. Requires sample_interval to be configured")
DEF_OPT_AS_BOOL(
max_latency_fatal, 0, "print warning (false) or abort (true) of max_latency failure.")
DEF_OPT_AS_UINT32(pareto, 0,
- "use pareto distribution for random numbers. Zero "
- "to disable, otherwise a percentage indicating how aggressive the "
- "distribution should be.")
+ "use pareto distribution for random numbers. Zero to disable, otherwise a percentage indicating "
+ "how aggressive the distribution should be.")
DEF_OPT_AS_UINT32(populate_ops_per_txn, 0,
- "number of operations to group into each transaction in the populate "
- "phase, zero for auto-commit")
+ "number of operations to group into each transaction in the populate phase, zero for auto-commit")
DEF_OPT_AS_UINT32(populate_threads, 1, "number of populate threads, 1 for bulk load")
DEF_OPT_AS_BOOL(
pre_load_data, 0, "Scan all data prior to starting the workload phase to warm the cache")
DEF_OPT_AS_UINT32(random_range, 0,
- "if non zero choose a value from within this range as the key for "
- "insert operations")
+ "if non zero choose a value from within this range as the key for insert operations")
DEF_OPT_AS_BOOL(random_value, 0, "generate random content for the value")
DEF_OPT_AS_BOOL(range_partition, 0, "partition data by range (vs hash)")
DEF_OPT_AS_BOOL(readonly, 0,
- "reopen the connection between populate and workload phases in readonly "
- "mode. Requires reopen_connection turned on (default). Requires that "
- "read be the only workload specified")
+ "reopen the connection between populate and workload phases in readonly mode. Requires "
+ "reopen_connection turned on (default). Requires that read be the only workload specified")
DEF_OPT_AS_BOOL(
reopen_connection, 1, "close and reopen the connection between populate and workload phases")
DEF_OPT_AS_UINT32(
@@ -157,49 +147,42 @@ DEF_OPT_AS_UINT32(run_ops, 0, "total insert, modify, read and update workload op
DEF_OPT_AS_UINT32(run_time, 0, "total workload seconds")
DEF_OPT_AS_UINT32(sample_interval, 0, "performance logging every interval seconds, 0 to disable")
DEF_OPT_AS_UINT32(sample_rate, 50,
- "how often the latency of operations is measured. One for every operation,"
- "two for every second operation, three for every third operation etc.")
+ "how often the latency of operations is measured. One for every operation, two for every second "
+ "operation, three for every third operation etc.")
DEF_OPT_AS_UINT32(scan_icount, 0, "number of records in scan tables to populate")
-DEF_OPT_AS_UINT32(scan_interval, 0,
- "scan tables every interval seconds during the workload phase,"
- " 0 to disable")
+DEF_OPT_AS_UINT32(
+ scan_interval, 0, "scan tables every interval seconds during the workload phase, 0 to disable")
DEF_OPT_AS_UINT32(
scan_pct, 10, "percentage of entire data set scanned, if scan_interval is enabled")
DEF_OPT_AS_UINT32(scan_table_count, 0,
- "number of separate tables to be used for scanning. Zero indicates "
- "that tables are shared with other operations")
+ "number of separate tables to be used for scanning. Zero indicates that tables are shared with "
+ "other operations")
DEF_OPT_AS_CONFIG_STRING(sess_config, "", "session configuration string")
DEF_OPT_AS_UINT32(session_count_idle, 0, "number of idle sessions to create. Default 0.")
DEF_OPT_AS_CONFIG_STRING(table_config,
- "key_format=S,value_format=S,type=lsm,exclusive=true,"
- "allocation_size=4kb,internal_page_max=64kb,leaf_page_max=4kb,"
- "split_pct=100",
+ "key_format=S,value_format=S,type=lsm,exclusive=true,allocation_size=4kb,internal_page_max=64kb,"
+ "leaf_page_max=4kb,split_pct=100",
"table configuration string")
DEF_OPT_AS_UINT32(table_count, 1,
- "number of tables to run operations over. Keys are divided evenly "
- "over the tables. Cursors are held open on all tables. Default 1, maximum "
- "99999.")
+ "number of tables to run operations over. Keys are divided evenly over the tables. Cursors are "
+ "held open on all tables. Default 1, maximum 99999.")
DEF_OPT_AS_UINT32(
table_count_idle, 0, "number of tables to create, that won't be populated. Default 0.")
DEF_OPT_AS_STRING(threads, "",
- "workload configuration: each 'count' "
- "entry is the total number of threads, and the 'insert', 'modify', 'read' and "
- "'update' entries are the ratios of insert, modify, read and update operations "
- "done by each worker thread; If a throttle value is provided each thread "
- "will do a maximum of that number of operations per second; multiple "
- "workload configurations may be specified per threads configuration; "
- "for example, a more complex threads configuration might be "
- "'threads=((count=2,reads=1)(count=8,reads=1,inserts=2,updates=1))' "
- "which would create 2 threads doing nothing but reads and 8 threads "
- "each doing 50% inserts and 25% reads and updates. Allowed configuration "
- "values are 'count', 'throttle', 'inserts', 'reads', 'read_range', 'modify', "
- "'modify_delta', 'modify_distribute', 'modify_force_update', 'updates', 'update_delta', "
- "'truncate', 'truncate_pct' and 'truncate_count'. "
- "There are also behavior modifiers, supported modifiers are "
- "'ops_per_txn'")
+ "workload configuration: each 'count' entry is the total number of threads, and the 'insert', "
+ "'modify', 'read' and 'update' entries are the ratios of insert, modify, read and update "
+ "operations done by each worker thread; If a throttle value is provided each thread will do a "
+ "maximum of that number of operations per second; multiple workload configurations may be "
+ "specified per threads configuration; for example, a more complex threads configuration might be "
+ "'threads=((count=2,reads=1)(count=8,reads=1,inserts=2,updates=1))' which would create 2 threads "
+ "doing nothing but reads and 8 threads each doing 50% inserts and 25% reads and updates. "
+ "Allowed configuration values are 'count', 'throttle', 'inserts', 'reads', 'read_range', "
+ "'modify', 'modify_delta', 'modify_distribute', 'modify_force_update', 'updates', "
+ "'update_delta', 'truncate', 'truncate_pct' and 'truncate_count'. There are also behavior "
+ "modifiers, supported modifiers are 'ops_per_txn'")
DEF_OPT_AS_CONFIG_STRING(transaction_config, "",
- "WT_SESSION.begin_transaction configuration string, applied during the "
- "populate phase when populate_ops_per_txn is nonzero")
+ "WT_SESSION.begin_transaction configuration string, applied during the populate phase when "
+ "populate_ops_per_txn is nonzero")
DEF_OPT_AS_STRING(table_name, "test", "table name")
DEF_OPT_AS_BOOL(
truncate_single_ops, 0, "Implement truncate via cursor remove instead of session API")
diff --git a/src/third_party/wiredtiger/dist/api_data.py b/src/third_party/wiredtiger/dist/api_data.py
index 5eb48bcda59..473c6a62a36 100644
--- a/src/third_party/wiredtiger/dist/api_data.py
+++ b/src/third_party/wiredtiger/dist/api_data.py
@@ -687,7 +687,7 @@ connection_runtime_config = [
intended for use with internal stress testing of WiredTiger.''',
type='list', undoc=True,
choices=[
- 'aggressive_sweep', 'checkpoint_slow', 'lookaside_sweep_race',
+ 'aggressive_sweep', 'backup_rename', 'checkpoint_slow', 'lookaside_sweep_race',
'split_1', 'split_2', 'split_3', 'split_4', 'split_5', 'split_6',
'split_7', 'split_8']),
Config('verbose', '', r'''
@@ -969,6 +969,18 @@ wiredtiger_open_common =\
size and the default config would extend log files in allocations of
the maximum log file size.''',
type='list', choices=['data', 'log']),
+ Config('hash', '', r'''
+ manage resources around hash bucket arrays. All values must be a power of two.
+ Note that setting large values can significantly increase memory usage inside
+ WiredTiger''',
+ type='category', subconfig=[
+ Config('buckets', 512, r'''
+ configure the number of hash buckets for most system hash arrays''',
+ min='64', max='65536'),
+ Config('dhandle_buckets', 512, r'''
+ configure the number of hash buckets for hash arrays relating to data handles''',
+ min='64', max='65536'),
+ ]),
Config('hazard_max', '1000', r'''
maximum number of simultaneous hazard pointers per session
handle''',
diff --git a/src/third_party/wiredtiger/dist/s_clang-format b/src/third_party/wiredtiger/dist/s_clang-format
index 1673946ee08..be1611fa1e7 100755
--- a/src/third_party/wiredtiger/dist/s_clang-format
+++ b/src/third_party/wiredtiger/dist/s_clang-format
@@ -7,11 +7,11 @@ trap 'rm -rf $t' 0 1 2 3 13 15
download_clang_format() {
if [ `uname` = "Linux" ]; then
- curl https://s3.amazonaws.com/boxes.10gen.com/build/clang-format-3.8-rhel55.tar.gz -o dist/clang-format.tar.gz
- tar --strip=2 -C dist/ -xf dist/clang-format.tar.gz build/bin/clang-format && rm dist/clang-format.tar.gz
+ curl https://s3.amazonaws.com/boxes.10gen.com/build/build/clang-format-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.gz -o dist/clang-format.tar.gz
+ tar --strip=1 -C dist/ -xf dist/clang-format.tar.gz clang-format-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/clang-format && rm dist/clang-format.tar.gz
elif [ `uname` = "Darwin" ]; then
- curl https://s3.amazonaws.com/boxes.10gen.com/build/clang%2Bllvm-3.8.0-x86_64-apple-darwin.tar.xz -o dist/clang-format.tar.gz
- tar --strip=2 -C dist/ -xf dist/clang-format.tar.gz clang+llvm-3.8.0-x86_64-apple-darwin/bin/clang-format && rm dist/clang-format.tar.gz
+ curl https://s3.amazonaws.com/boxes.10gen.com/build/build/clang-format-llvm-10.0.0-x86_64-apple-darwin.tar.gz -o dist/clang-format.tar.gz
+ tar --strip=1 -C dist/ -xf dist/clang-format.tar.gz clang-format-llvm-10.0.0-x86_64-apple-darwin/clang-format && rm dist/clang-format.tar.gz
else
echo "$0: unsupported environment $(uname)"
exit 1
@@ -24,9 +24,17 @@ cd `git rev-parse --show-toplevel` || exit 1
# Override existing Clang Format versions in the PATH.
export PATH="${PWD}/dist":$PATH
+# Download the clang-format binary if it's not in place.
+[ ! -x "$(command -v clang-format)" ] && download_clang_format
+
# Ensure that we have the correct version of clang-format.
-clang_format_version="3.8.0"
-clang-format --version | grep "version $clang_format_version" >/dev/null 2>&1
+desired_version="10.0.0"
+
+# On macOS Catalina, users need to manually approve binaries.
+# If we're not allowed to run clang-format, let's exit (should be obvious from the dialog).
+current_version=`clang-format --version` || exit 1
+
+echo $current_version | grep "version $desired_version" >/dev/null 2>&1
if test $? -ne 0; then
download_clang_format
fi
@@ -50,7 +58,6 @@ esac
for f in $search; do
cat "$f" | \
clang-format --fallback-style=none | \
- python dist/s_goto.py | \
python dist/s_comment.py > "$t" || exit 1
cmp --silent "$f" "$t"
if test $? -ne 0; then
diff --git a/src/third_party/wiredtiger/dist/s_copyright.list b/src/third_party/wiredtiger/dist/s_copyright.list
index 03475f5c602..b79fae5fc6e 100644
--- a/src/third_party/wiredtiger/dist/s_copyright.list
+++ b/src/third_party/wiredtiger/dist/s_copyright.list
@@ -14,7 +14,6 @@ skip dist/log_data.py
skip dist/prototypes.py
skip dist/s_comment.py
skip dist/s_function_loop.py
-skip dist/s_goto.py
skip dist/stat.py
skip dist/stat_data.py
skip dist/style.py
diff --git a/src/third_party/wiredtiger/dist/s_goto.py b/src/third_party/wiredtiger/dist/s_goto.py
deleted file mode 100644
index a7f35488603..00000000000
--- a/src/third_party/wiredtiger/dist/s_goto.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Trim all trailing whitespace in front of goto labels.
-# This is a workaround for a Clang Format limitation where goto labels are
-# automatically indented according to nesting.
-import re, sys
-
-# 1. Zero or more whitespace characters.
-# 2. One or more lowercase ASCII characters.
-# 3. Colon character.
-p = re.compile('^\s*[a-z_]+:$')
-for line in sys.stdin:
- m = p.search(line)
- if m is not None:
- sline = line.lstrip()
- # The "default" tag in a switch statement looks identical so we need
- # to filter these out here.
- if not sline.startswith('default'):
- line = sline
- sys.stdout.write(line)
diff --git a/src/third_party/wiredtiger/dist/s_stat b/src/third_party/wiredtiger/dist/s_stat
index 17d3bd64f34..f1eae589959 100755
--- a/src/third_party/wiredtiger/dist/s_stat
+++ b/src/third_party/wiredtiger/dist/s_stat
@@ -22,6 +22,7 @@ search=`sed \
# There are some fields that are used, but we can't detect it.
cat << UNUSED_STAT_FIELDS
+btree_clean_checkpoint_timer
lock_checkpoint_count
lock_checkpoint_wait_application
lock_checkpoint_wait_internal
diff --git a/src/third_party/wiredtiger/dist/s_string.ok b/src/third_party/wiredtiger/dist/s_string.ok
index d12c125a6eb..0a17906a297 100644
--- a/src/third_party/wiredtiger/dist/s_string.ok
+++ b/src/third_party/wiredtiger/dist/s_string.ok
@@ -381,6 +381,7 @@ TCMalloc
TESTUTIL
TIMESTAMP
TIMESTAMPS
+TMP
TODO
TORTIOUS
TSO
diff --git a/src/third_party/wiredtiger/dist/stat_data.py b/src/third_party/wiredtiger/dist/stat_data.py
index aa9ed2cd3fa..8ca4327861f 100644
--- a/src/third_party/wiredtiger/dist/stat_data.py
+++ b/src/third_party/wiredtiger/dist/stat_data.py
@@ -153,6 +153,8 @@ connection_stats = [
##########################################
# System statistics
##########################################
+ ConnStat('buckets', 'hash bucket array size general', 'no_clear,no_scale,size'),
+ ConnStat('buckets_dh', 'hash bucket array size for data handles', 'no_clear,no_scale,size'),
ConnStat('cond_auto_wait', 'auto adjusting condition wait calls'),
ConnStat('cond_auto_wait_reset', 'auto adjusting condition resets'),
ConnStat('cond_wait', 'pthread mutex condition wait calls'),
@@ -556,6 +558,12 @@ connection_stats = [
TxnStat('txn_checkpoint', 'transaction checkpoints'),
TxnStat('txn_checkpoint_fsync_post', 'transaction fsync calls for checkpoint after allocating the transaction ID'),
TxnStat('txn_checkpoint_fsync_post_duration', 'transaction fsync duration for checkpoint after allocating the transaction ID (usecs)', 'no_clear,no_scale'),
+ TxnStat('txn_checkpoint_handle_applied', 'transaction checkpoint most recent handles applied'),
+ TxnStat('txn_checkpoint_handle_skipped', 'transaction checkpoint most recent handles skipped'),
+ TxnStat('txn_checkpoint_handle_walked', 'transaction checkpoint most recent handles walked'),
+ TxnStat('txn_checkpoint_handle_duration', 'transaction checkpoint most recent duration for gathering all handles (usecs)', 'no_clear,no_scale'),
+ TxnStat('txn_checkpoint_handle_duration_apply', 'transaction checkpoint most recent duration for gathering applied handles (usecs)', 'no_clear,no_scale'),
+ TxnStat('txn_checkpoint_handle_duration_skip', 'transaction checkpoint most recent duration for gathering skipped handles (usecs)', 'no_clear,no_scale'),
TxnStat('txn_checkpoint_generation', 'transaction checkpoint generation', 'no_clear,no_scale'),
TxnStat('txn_checkpoint_running', 'transaction checkpoint currently running', 'no_clear,no_scale'),
TxnStat('txn_checkpoint_scrub_target', 'transaction checkpoint scrub dirty target', 'no_clear,no_scale'),
@@ -652,6 +660,7 @@ dsrc_stats = [
# Btree statistics
##########################################
BtreeStat('btree_checkpoint_generation', 'btree checkpoint generation', 'no_clear,no_scale'),
+ BtreeStat('btree_clean_checkpoint_timer', 'btree clean tree checkpoint expiration time', 'no_clear,no_scale'),
BtreeStat('btree_column_deleted', 'column-store variable-size deleted values', 'no_scale,tree_walk'),
BtreeStat('btree_column_fix', 'column-store fixed-size leaf pages', 'no_scale,tree_walk'),
BtreeStat('btree_column_internal', 'column-store internal pages', 'no_scale,tree_walk'),
diff --git a/src/third_party/wiredtiger/examples/c/ex_all.c b/src/third_party/wiredtiger/examples/c/ex_all.c
index cfb0099ad9c..8094a7b001b 100644
--- a/src/third_party/wiredtiger/examples/c/ex_all.c
+++ b/src/third_party/wiredtiger/examples/c/ex_all.c
@@ -589,22 +589,19 @@ session_ops_create(WT_SESSION *session)
* (string, signed 32-bit integer, unsigned 16-bit integer).
*/
error_check(session->create(session, "table:mytable",
- "key_format=r,value_format=SiH,"
- "columns=(id,department,salary,year-started)"));
+ "key_format=r,value_format=SiH,columns=(id,department,salary,year-started)"));
/*! [Create a table with columns] */
error_check(session->drop(session, "table:mytable", NULL));
/*! [Create a table and configure the page size] */
error_check(session->create(session, "table:mytable",
- "key_format=S,value_format=S,"
- "internal_page_max=16KB,leaf_page_max=1MB,leaf_value_max=64KB"));
+ "key_format=S,value_format=S,internal_page_max=16KB,leaf_page_max=1MB,leaf_value_max=64KB"));
/*! [Create a table and configure the page size] */
error_check(session->drop(session, "table:mytable", NULL));
/*! [Create a table and configure a large leaf value max] */
error_check(session->create(session, "table:mytable",
- "key_format=S,value_format=S,"
- "leaf_page_max=16KB,leaf_value_max=256KB"));
+ "key_format=S,value_format=S,leaf_page_max=16KB,leaf_value_max=256KB"));
/*! [Create a table and configure a large leaf value max] */
error_check(session->drop(session, "table:mytable", NULL));
@@ -705,7 +702,7 @@ session_ops(WT_SESSION *session)
/*! [Compact a table] */
error_check(session->compact(session, "table:mytable", NULL));
-/*! [Compact a table] */
+ /*! [Compact a table] */
#ifdef MIGHT_NOT_RUN
/*! [Import a file] */
@@ -1164,9 +1161,9 @@ main(int argc, char *argv[])
/*! [Open a connection] */
connection_ops(conn);
-/*
- * The connection has been closed.
- */
+ /*
+ * The connection has been closed.
+ */
#ifdef MIGHT_NOT_RUN
/*
@@ -1174,51 +1171,39 @@ main(int argc, char *argv[])
* open to fail. The documentation requires the code snippets, use #ifdef's to avoid running it.
*/
/*! [Configure lz4 extension] */
- error_check(wiredtiger_open(home, NULL,
- "create,"
- "extensions=[/usr/local/lib/libwiredtiger_lz4.so]",
- &conn));
+ error_check(wiredtiger_open(
+ home, NULL, "create,extensions=[/usr/local/lib/libwiredtiger_lz4.so]", &conn));
/*! [Configure lz4 extension] */
error_check(conn->close(conn, NULL));
/*! [Configure snappy extension] */
- error_check(wiredtiger_open(home, NULL,
- "create,"
- "extensions=[/usr/local/lib/libwiredtiger_snappy.so]",
- &conn));
+ error_check(wiredtiger_open(
+ home, NULL, "create,extensions=[/usr/local/lib/libwiredtiger_snappy.so]", &conn));
/*! [Configure snappy extension] */
error_check(conn->close(conn, NULL));
/*! [Configure zlib extension] */
- error_check(wiredtiger_open(home, NULL,
- "create,"
- "extensions=[/usr/local/lib/libwiredtiger_zlib.so]",
- &conn));
+ error_check(wiredtiger_open(
+ home, NULL, "create,extensions=[/usr/local/lib/libwiredtiger_zlib.so]", &conn));
/*! [Configure zlib extension] */
error_check(conn->close(conn, NULL));
/*! [Configure zlib extension with compression level] */
error_check(wiredtiger_open(home, NULL,
- "create,"
- "extensions=[/usr/local/lib/"
- "libwiredtiger_zlib.so=[config=[compression_level=3]]]",
+ "create,extensions=[/usr/local/lib/libwiredtiger_zlib.so=[config=[compression_level=3]]]",
&conn));
/*! [Configure zlib extension with compression level] */
error_check(conn->close(conn, NULL));
/*! [Configure zstd extension] */
- error_check(wiredtiger_open(home, NULL,
- "create,"
- "extensions=[/usr/local/lib/libwiredtiger_zstd.so]",
- &conn));
+ error_check(wiredtiger_open(
+ home, NULL, "create,extensions=[/usr/local/lib/libwiredtiger_zstd.so]", &conn));
/*! [Configure zstd extension] */
error_check(conn->close(conn, NULL));
/*! [Configure zstd extension with compression level] */
error_check(wiredtiger_open(home, NULL,
- "create,"
- "extensions=[/usr/local/lib/"
- "libwiredtiger_zstd.so=[config=[compression_level=9]]]",
+ "create,extensions=[/usr/local/lib/libwiredtiger_zstd.so=[config=[compression_level=9]]]",
&conn));
/*! [Configure zstd extension with compression level] */
error_check(conn->close(conn, NULL));
@@ -1276,9 +1261,7 @@ main(int argc, char *argv[])
*/
/*! [Statistics logging with a table] */
error_check(wiredtiger_open(home, NULL,
- "create, statistics_log=("
- "sources=(\"table:table1\",\"table:table2\"), wait=5)",
- &conn));
+ "create, statistics_log=(sources=(\"table:table1\",\"table:table2\"), wait=5)", &conn));
/*! [Statistics logging with a table] */
error_check(conn->close(conn, NULL));
diff --git a/src/third_party/wiredtiger/examples/c/ex_async.c b/src/third_party/wiredtiger/examples/c/ex_async.c
index 54df30e3ef2..b4d01d6d57f 100644
--- a/src/third_party/wiredtiger/examples/c/ex_async.c
+++ b/src/third_party/wiredtiger/examples/c/ex_async.c
@@ -110,10 +110,8 @@ main(int argc, char *argv[])
home = example_setup(argc, argv);
/*! [async example connection] */
- error_check(wiredtiger_open(home, NULL,
- "create,cache_size=100MB,"
- "async=(enabled=true,ops_max=20,threads=2)",
- &conn));
+ error_check(wiredtiger_open(
+ home, NULL, "create,cache_size=100MB,async=(enabled=true,ops_max=20,threads=2)", &conn));
/*! [async example connection] */
/*! [async example table create] */
diff --git a/src/third_party/wiredtiger/examples/c/ex_call_center.c b/src/third_party/wiredtiger/examples/c/ex_call_center.c
index c3475535ab2..b73ba5d7282 100644
--- a/src/third_party/wiredtiger/examples/c/ex_call_center.c
+++ b/src/third_party/wiredtiger/examples/c/ex_call_center.c
@@ -95,10 +95,7 @@ main(int argc, char *argv[])
* in two groups: "main" and "address", created below.
*/
error_check(session->create(session, "table:customers",
- "key_format=r,"
- "value_format=SSS,"
- "columns=(id,name,address,phone),"
- "colgroups=(main,address)"));
+ "key_format=r,value_format=SSS,columns=(id,name,address,phone),colgroups=(main,address)"));
/* Create the main column group with value columns except address. */
error_check(session->create(session, "colgroup:customers:main", "columns=(name,phone)"));
@@ -122,9 +119,7 @@ main(int argc, char *argv[])
* together, so no column groups are declared.
*/
error_check(session->create(session, "table:calls",
- "key_format=r,"
- "value_format=qrrSS,"
- "columns=(id,call_date,cust_id,emp_id,call_type,notes)"));
+ "key_format=r,value_format=qrrSS,columns=(id,call_date,cust_id,emp_id,call_type,notes)"));
/*
* Create an index on the calls table with a composite key of cust_id and call_date.
diff --git a/src/third_party/wiredtiger/examples/c/ex_cursor.c b/src/third_party/wiredtiger/examples/c/ex_cursor.c
index beb4c9cc007..61861a05264 100644
--- a/src/third_party/wiredtiger/examples/c/ex_cursor.c
+++ b/src/third_party/wiredtiger/examples/c/ex_cursor.c
@@ -171,8 +171,7 @@ main(int argc, char *argv[])
error_check(conn->open_session(conn, NULL, NULL, &session));
error_check(session->create(session, "table:world",
- "key_format=r,value_format=5sii,"
- "columns=(id,country,population,area)"));
+ "key_format=r,value_format=5sii,columns=(id,country,population,area)"));
/*! [open cursor #1] */
error_check(session->open_cursor(session, "table:world", NULL, NULL, &cursor));
diff --git a/src/third_party/wiredtiger/examples/c/ex_encrypt.c b/src/third_party/wiredtiger/examples/c/ex_encrypt.c
index 9512ad89600..66fb2504aba 100644
--- a/src/third_party/wiredtiger/examples/c/ex_encrypt.c
+++ b/src/third_party/wiredtiger/examples/c/ex_encrypt.c
@@ -431,25 +431,21 @@ main(int argc, char *argv[])
* Create and open some encrypted and not encrypted tables. Also use column store and
* compression for some tables.
*/
- error_check(
- session->create(session, "table:crypto1", "encryption=(name=rotn,keyid=" USER1_KEYID "),"
- "columns=(key0,value0),"
- "key_format=S,value_format=S"));
- error_check(session->create(session,
- "index:crypto1:byvalue", "encryption=(name=rotn,keyid=" USER1_KEYID "),"
- "columns=(value0,key0)"));
- error_check(
- session->create(session, "table:crypto2", "encryption=(name=rotn,keyid=" USER2_KEYID "),"
- "key_format=S,value_format=S"));
+ error_check(session->create(session, "table:crypto1",
+ "encryption=(name=rotn,keyid=" USER1_KEYID
+ "),columns=(key0,value0),key_format=S,value_format=S"));
+ error_check(session->create(session, "index:crypto1:byvalue",
+ "encryption=(name=rotn,keyid=" USER1_KEYID "),columns=(value0,key0)"));
+ error_check(session->create(session, "table:crypto2",
+ "encryption=(name=rotn,keyid=" USER2_KEYID "),key_format=S,value_format=S"));
error_check(session->create(session, "table:nocrypto", "key_format=S,value_format=S"));
/*
* Send in an unknown keyid. WiredTiger will try to add in the new keyid, but the customize
* function above will return an error since it is unrecognized.
*/
- ret = session->create(session, "table:cryptobad", "encryption=(name=rotn,keyid=" USERBAD_KEYID
- "),"
- "key_format=S,value_format=S");
+ ret = session->create(session, "table:cryptobad",
+ "encryption=(name=rotn,keyid=" USERBAD_KEYID "),key_format=S,value_format=S");
if (ret == 0) {
fprintf(stderr, "Did not detect bad/unknown keyid error\n");
exit(EXIT_FAILURE);
diff --git a/src/third_party/wiredtiger/examples/c/ex_extractor.c b/src/third_party/wiredtiger/examples/c/ex_extractor.c
index ed6c7b671a6..99826fff253 100644
--- a/src/third_party/wiredtiger/examples/c/ex_extractor.c
+++ b/src/third_party/wiredtiger/examples/c/ex_extractor.c
@@ -185,8 +185,7 @@ setup_table(WT_SESSION *session)
/* Create the primary table. It has a key of the unique ID. */
error_check(session->create(session, "table:presidents",
- "key_format=I,value_format=SSHH,"
- "columns=(ID,last_name,first_name,term_begin,term_end)"));
+ "key_format=I,value_format=SSHH,columns=(ID,last_name,first_name,term_begin,term_end)"));
/*
* Create the index that is generated with an extractor. The index will generate an entry in the
diff --git a/src/third_party/wiredtiger/examples/c/ex_file_system.c b/src/third_party/wiredtiger/examples/c/ex_file_system.c
index 993e5b5f30c..1f213a07ff6 100644
--- a/src/third_party/wiredtiger/examples/c/ex_file_system.c
+++ b/src/third_party/wiredtiger/examples/c/ex_file_system.c
@@ -852,10 +852,8 @@ main(void)
* function as the "config" value.
*/
open_config =
- "create,log=(enabled=true),extensions=(local={"
- "entry=demo_file_system_create,early_load=true,"
- "config={config_string=\"demo-file-system\",config_value=37}"
- "})";
+ "create,log=(enabled=true),extensions=(local={entry=demo_file_system_create,early_load=true,"
+ "config={config_string=\"demo-file-system\",config_value=37}})";
/* Open a connection to the database, creating it if necessary. */
if ((ret = wiredtiger_open(home, NULL, open_config, &conn)) != 0) {
fprintf(stderr, "Error connecting to %s: %s\n", home == NULL ? "." : home,
diff --git a/src/third_party/wiredtiger/examples/c/ex_log.c b/src/third_party/wiredtiger/examples/c/ex_log.c
index f02ffb15678..14c96fd839d 100644
--- a/src/third_party/wiredtiger/examples/c/ex_log.c
+++ b/src/third_party/wiredtiger/examples/c/ex_log.c
@@ -64,10 +64,8 @@ compare_tables(WT_SESSION *session, WT_SESSION *sess_copy)
error_check(curs_copy->get_key(curs_copy, &key_copy));
error_check(curs_copy->get_value(curs_copy, &value_copy));
if (strcmp(key, key_copy) != 0 || strcmp(value, value_copy) != 0) {
- fprintf(stderr,
- "Mismatched: key %s, key_copy %s "
- "value %s value_copy %s\n",
- key, key_copy, value, value_copy);
+ fprintf(stderr, "Mismatched: key %s, key_copy %s value %s value_copy %s\n", key,
+ key_copy, value, value_copy);
exit(1);
}
}
diff --git a/src/third_party/wiredtiger/examples/c/ex_schema.c b/src/third_party/wiredtiger/examples/c/ex_schema.c
index d9249efecc6..4d9e1aa0edc 100644
--- a/src/third_party/wiredtiger/examples/c/ex_schema.c
+++ b/src/third_party/wiredtiger/examples/c/ex_schema.c
@@ -72,10 +72,8 @@ main(int argc, char *argv[])
* string, uint16_t, uint64_t). See ::wiredtiger_struct_pack for details of the format strings.
*/
error_check(session->create(session, "table:poptable",
- "key_format=r,"
- "value_format=5sHQ,"
- "columns=(id,country,year,population),"
- "colgroups=(main,population)"));
+ "key_format=r,value_format=5sHQ,columns=(id,country,year,population),colgroups=(main,"
+ "population)"));
/*
* Create two column groups: a primary column group with the country code, year and population
diff --git a/src/third_party/wiredtiger/ext/compressors/lz4/lz4_compress.c b/src/third_party/wiredtiger/ext/compressors/lz4/lz4_compress.c
index 1778fa55b9f..3208489bbdb 100644
--- a/src/third_party/wiredtiger/ext/compressors/lz4/lz4_compress.c
+++ b/src/third_party/wiredtiger/ext/compressors/lz4/lz4_compress.c
@@ -183,9 +183,8 @@ lz4_decompress(WT_COMPRESSOR *compressor, WT_SESSION *session, uint8_t *src, siz
lz4_prefix_swap(&prefix);
#endif
if (prefix.compressed_len + sizeof(LZ4_PREFIX) > src_len) {
- (void)wt_api->err_printf(wt_api, session,
- "WT_COMPRESSOR.decompress: stored size exceeds source "
- "size");
+ (void)wt_api->err_printf(
+ wt_api, session, "WT_COMPRESSOR.decompress: stored size exceeds source size");
return (WT_ERROR);
}
diff --git a/src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c b/src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c
index 5e37a01147d..bc8a5576472 100644
--- a/src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c
+++ b/src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c
@@ -168,9 +168,8 @@ snappy_decompression(WT_COMPRESSOR *compressor, WT_SESSION *session, uint8_t *sr
snaplen = snappy_bswap64(snaplen);
#endif
if (snaplen + SNAPPY_PREFIX > src_len) {
- (void)wt_api->err_printf(wt_api, session,
- "WT_COMPRESSOR.decompress: stored size exceeds source "
- "size");
+ (void)wt_api->err_printf(
+ wt_api, session, "WT_COMPRESSOR.decompress: stored size exceeds source size");
return (WT_ERROR);
}
diff --git a/src/third_party/wiredtiger/ext/compressors/zlib/zlib_compress.c b/src/third_party/wiredtiger/ext/compressors/zlib/zlib_compress.c
index 80db373a597..42eed08304c 100644
--- a/src/third_party/wiredtiger/ext/compressors/zlib/zlib_compress.c
+++ b/src/third_party/wiredtiger/ext/compressors/zlib/zlib_compress.c
@@ -257,10 +257,8 @@ zlib_init_config(WT_CONNECTION *connection, WT_CONFIG_ARG *config, int *zlib_lev
*/
zlib_level = (int)v.val;
if (zlib_level < 0 || zlib_level > 9) {
- (void)wt_api->err_printf(wt_api, NULL,
- "zlib_init_config: "
- "unsupported compression level %d",
- zlib_level);
+ (void)wt_api->err_printf(
+ wt_api, NULL, "zlib_init_config: unsupported compression level %d", zlib_level);
return (EINVAL);
}
*zlib_levelp = zlib_level;
diff --git a/src/third_party/wiredtiger/ext/compressors/zstd/zstd_compress.c b/src/third_party/wiredtiger/ext/compressors/zstd/zstd_compress.c
index f6a0e09a809..f4e48ad61fd 100644
--- a/src/third_party/wiredtiger/ext/compressors/zstd/zstd_compress.c
+++ b/src/third_party/wiredtiger/ext/compressors/zstd/zstd_compress.c
@@ -157,9 +157,8 @@ zstd_decompress(WT_COMPRESSOR *compressor, WT_SESSION *session, uint8_t *src, si
zstd_len = zstd_bswap64(zstd_len);
#endif
if (zstd_len + ZSTD_PREFIX > src_len) {
- (void)wt_api->err_printf(wt_api, session,
- "WT_COMPRESSOR.decompress: stored size exceeds source "
- "size");
+ (void)wt_api->err_printf(
+ wt_api, session, "WT_COMPRESSOR.decompress: stored size exceeds source size");
return (WT_ERROR);
}
diff --git a/src/third_party/wiredtiger/ext/test/fail_fs/fail_fs.c b/src/third_party/wiredtiger/ext/test/fail_fs/fail_fs.c
index 02ca4fab2d1..15799625e1b 100644
--- a/src/third_party/wiredtiger/ext/test/fail_fs/fail_fs.c
+++ b/src/third_party/wiredtiger/ext/test/fail_fs/fail_fs.c
@@ -763,9 +763,8 @@ wiredtiger_extension_init(WT_CONNECTION *conn, WT_CONFIG_ARG *config)
continue;
(void)wtext->err_printf(wtext, NULL,
- "WT_CONFIG_PARSER.next: unexpected configuration "
- "information: %.*s=%.*s: %s",
- (int)k.len, k.str, (int)v.len, v.str, wtext->strerror(wtext, NULL, ret));
+ "WT_CONFIG_PARSER.next: unexpected configuration information: %.*s=%.*s: %s", (int)k.len,
+ k.str, (int)v.len, v.str, wtext->strerror(wtext, NULL, ret));
goto err;
}
if (ret != WT_NOTFOUND) {
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index f39760f2745..ddd8c152f5f 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-4.2",
- "commit": "f8cec30ecb2e471b600ce42a740082d55c2434e2"
+ "commit": "58afeb82a68fde5a3c3eb47cd6e652edb0f62b3a"
}
diff --git a/src/third_party/wiredtiger/src/block/block_ckpt.c b/src/third_party/wiredtiger/src/block/block_ckpt.c
index 4f41c5f0120..786a66c9c67 100644
--- a/src/third_party/wiredtiger/src/block/block_ckpt.c
+++ b/src/third_party/wiredtiger/src/block/block_ckpt.c
@@ -197,8 +197,8 @@ __wt_block_checkpoint_start(WT_SESSION_IMPL *session, WT_BLOCK *block)
case WT_CKPT_PANIC_ON_FAILURE:
case WT_CKPT_SALVAGE:
__wt_err(session, EINVAL,
- "%s: an unexpected checkpoint start: the checkpoint "
- "has already started or was configured for salvage",
+ "%s: an unexpected checkpoint start: the checkpoint has already started or was "
+ "configured for salvage",
block->name);
ret = __wt_block_panic(session);
break;
@@ -506,8 +506,8 @@ __ckpt_process(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_CKPT *ckptbase)
case WT_CKPT_NONE:
case WT_CKPT_PANIC_ON_FAILURE:
__wt_err(session, EINVAL,
- "%s: an unexpected checkpoint attempt: the checkpoint "
- "was never started or has already completed",
+ "%s: an unexpected checkpoint attempt: the checkpoint was never started or has already "
+ "completed",
block->name);
ret = __wt_block_panic(session);
break;
@@ -751,9 +751,8 @@ live_update:
if ((a = ckpt->bpriv) == NULL)
a = &block->live;
if (a->discard.entries != 0)
- WT_ERR_MSG(session, WT_ERROR,
- "first checkpoint incorrectly has blocks on the discard "
- "list");
+ WT_ERR_MSG(
+ session, WT_ERROR, "first checkpoint incorrectly has blocks on the discard list");
#endif
err:
@@ -913,8 +912,8 @@ __wt_block_checkpoint_resolve(WT_SESSION_IMPL *session, WT_BLOCK *block, bool fa
case WT_CKPT_NONE:
case WT_CKPT_SALVAGE:
__wt_err(session, EINVAL,
- "%s: an unexpected checkpoint resolution: the checkpoint "
- "was never started or completed, or configured for salvage",
+ "%s: an unexpected checkpoint resolution: the checkpoint was never started or completed, "
+ "or configured for salvage",
block->name);
ret = __wt_block_panic(session);
break;
diff --git a/src/third_party/wiredtiger/src/block/block_compact.c b/src/third_party/wiredtiger/src/block/block_compact.c
index 0189da70acb..19ee0b664f6 100644
--- a/src/third_party/wiredtiger/src/block/block_compact.c
+++ b/src/third_party/wiredtiger/src/block/block_compact.c
@@ -108,17 +108,15 @@ __wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp)
block->compact_pct_tenths = 1;
}
- __wt_verbose(session, WT_VERB_COMPACT, "%s: %" PRIuMAX "MB (%" PRIuMAX
- ") available space in the first "
- "80%% of the file",
+ __wt_verbose(session, WT_VERB_COMPACT,
+ "%s: %" PRIuMAX "MB (%" PRIuMAX ") available space in the first 80%% of the file",
block->name, (uintmax_t)avail_eighty / WT_MEGABYTE, (uintmax_t)avail_eighty);
- __wt_verbose(session, WT_VERB_COMPACT, "%s: %" PRIuMAX "MB (%" PRIuMAX
- ") available space in the first "
- "90%% of the file",
+ __wt_verbose(session, WT_VERB_COMPACT,
+ "%s: %" PRIuMAX "MB (%" PRIuMAX ") available space in the first 90%% of the file",
block->name, (uintmax_t)avail_ninety / WT_MEGABYTE, (uintmax_t)avail_ninety);
- __wt_verbose(session, WT_VERB_COMPACT, "%s: require 10%% or %" PRIuMAX "MB (%" PRIuMAX
- ") in the first "
- "90%% of the file to perform compaction, compaction %s",
+ __wt_verbose(session, WT_VERB_COMPACT,
+ "%s: require 10%% or %" PRIuMAX "MB (%" PRIuMAX
+ ") in the first 90%% of the file to perform compaction, compaction %s",
block->name, (uintmax_t)(block->size / 10) / WT_MEGABYTE, (uintmax_t)block->size / 10,
*skipp ? "skipped" : "proceeding");
@@ -206,8 +204,9 @@ __block_dump_avail(WT_SESSION_IMPL *session, WT_BLOCK *block, bool start)
session, WT_VERB_COMPACT, "pages written: %" PRIu64, block->compact_pages_written);
}
- __wt_verbose(session, WT_VERB_COMPACT, "file size %" PRIuMAX "MB (%" PRIuMAX ") with %" PRIuMAX
- "%% space available %" PRIuMAX "MB (%" PRIuMAX ")",
+ __wt_verbose(session, WT_VERB_COMPACT,
+ "file size %" PRIuMAX "MB (%" PRIuMAX ") with %" PRIuMAX "%% space available %" PRIuMAX
+ "MB (%" PRIuMAX ")",
(uintmax_t)size / WT_MEGABYTE, (uintmax_t)size,
((uintmax_t)el->bytes * 100) / (uintmax_t)size, (uintmax_t)el->bytes / WT_MEGABYTE,
(uintmax_t)el->bytes);
diff --git a/src/third_party/wiredtiger/src/block/block_ext.c b/src/third_party/wiredtiger/src/block/block_ext.c
index e8d100d6df7..5122a09759c 100644
--- a/src/third_party/wiredtiger/src/block/block_ext.c
+++ b/src/third_party/wiredtiger/src/block/block_ext.c
@@ -298,10 +298,8 @@ __wt_block_misplaced(WT_SESSION_IMPL *session, WT_BLOCK *block, const char *list
name = "discard";
__wt_spin_unlock(session, &block->live_lock);
if (name != NULL) {
- __wt_errx(session, "%s failed: %" PRIuMAX "/%" PRIu32
- " is on the %s list "
- "(%s, %d)",
- list, (uintmax_t)offset, size, name, func, line);
+ __wt_errx(session, "%s failed: %" PRIuMAX "/%" PRIu32 " is on the %s list (%s, %d)", list,
+ (uintmax_t)offset, size, name, func, line);
return (__wt_panic(session));
}
return (0);
@@ -496,9 +494,9 @@ __wt_block_alloc(WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t *offp, wt_o
WT_STAT_DATA_INCR(session, block_alloc);
if (size % block->allocsize != 0)
- WT_RET_MSG(session, EINVAL, "cannot allocate a block size %" PRIdMAX
- " that is not "
- "a multiple of the allocation size %" PRIu32,
+ WT_RET_MSG(session, EINVAL,
+ "cannot allocate a block size %" PRIdMAX
+ " that is not a multiple of the allocation size %" PRIu32,
(intmax_t)size, block->allocsize);
/*
diff --git a/src/third_party/wiredtiger/src/block/block_open.c b/src/third_party/wiredtiger/src/block/block_open.c
index 32b40d56128..bc4b8cd5a03 100644
--- a/src/third_party/wiredtiger/src/block/block_open.c
+++ b/src/third_party/wiredtiger/src/block/block_open.c
@@ -93,7 +93,7 @@ __block_destroy(WT_SESSION_IMPL *session, WT_BLOCK *block)
uint64_t bucket;
conn = S2C(session);
- bucket = block->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = block->name_hash & (conn->hash_size - 1);
WT_CONN_BLOCK_REMOVE(conn, block, bucket);
__wt_free(session, block->name);
@@ -147,7 +147,7 @@ __wt_block_open(WT_SESSION_IMPL *session, const char *filename, const char *cfg[
conn = S2C(session);
hash = __wt_hash_city64(filename, strlen(filename));
- bucket = hash % WT_HASH_ARRAY_SIZE;
+ bucket = hash & (conn->hash_size - 1);
__wt_spin_lock(session, &conn->block_lock);
TAILQ_FOREACH (block, &conn->blockhash[bucket], hashq) {
if (strcmp(filename, block->name) == 0) {
@@ -354,9 +354,8 @@ __desc_read(WT_SESSION_IMPL *session, uint32_t allocsize, WT_BLOCK *block)
if (desc->majorv > WT_BLOCK_MAJOR_VERSION ||
(desc->majorv == WT_BLOCK_MAJOR_VERSION && desc->minorv > WT_BLOCK_MINOR_VERSION))
WT_ERR_MSG(session, WT_ERROR,
- "unsupported WiredTiger file version: this build only "
- "supports major/minor versions up to %d/%d, and the file "
- "is version %" PRIu16 "/%" PRIu16,
+ "unsupported WiredTiger file version: this build only supports major/minor versions up "
+ "to %d/%d, and the file is version %" PRIu16 "/%" PRIu16,
WT_BLOCK_MAJOR_VERSION, WT_BLOCK_MINOR_VERSION, desc->majorv, desc->minorv);
__wt_verbose(session, WT_VERB_BLOCK, "%s: magic %" PRIu32 ", major/minor: %" PRIu32 "/%" PRIu32,
diff --git a/src/third_party/wiredtiger/src/block/block_read.c b/src/third_party/wiredtiger/src/block/block_read.c
index 9c0d17fe28f..543724c1494 100644
--- a/src/third_party/wiredtiger/src/block/block_read.c
+++ b/src/third_party/wiredtiger/src/block/block_read.c
@@ -238,9 +238,8 @@ __wt_block_read_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_
* test.
*/
if (size < block->allocsize)
- WT_RET_MSG(session, EINVAL, "%s: impossibly small block size of %" PRIu32
- "B, less than "
- "allocation size of %" PRIu32,
+ WT_RET_MSG(session, EINVAL,
+ "%s: impossibly small block size of %" PRIu32 "B, less than allocation size of %" PRIu32,
block->name, size, block->allocsize);
WT_RET(__wt_buf_init(session, buf, bufsize));
@@ -266,20 +265,14 @@ __wt_block_read_off(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_ITEM *buf, wt_
}
if (!F_ISSET(session, WT_SESSION_QUIET_CORRUPT_FILE))
- __wt_errx(session, "%s: read checksum error for %" PRIu32
- "B block at "
- "offset %" PRIuMAX
- ": calculated block checksum "
- " doesn't match expected checksum",
+ __wt_errx(session,
+ "%s: read checksum error for %" PRIu32 "B block at offset %" PRIuMAX
+ ": calculated block checksum doesn't match expected checksum",
block->name, size, (uintmax_t)offset);
} else if (!F_ISSET(session, WT_SESSION_QUIET_CORRUPT_FILE))
- __wt_errx(session, "%s: read checksum error for %" PRIu32
- "B block at "
- "offset %" PRIuMAX
- ": block header checksum "
- "of %#" PRIx32
- " doesn't match expected checksum "
- "of %#" PRIx32,
+ __wt_errx(session,
+ "%s: read checksum error for %" PRIu32 "B block at offset %" PRIuMAX
+ ": block header checksum of %#" PRIx32 " doesn't match expected checksum of %#" PRIx32,
block->name, size, (uintmax_t)offset, swap.checksum, checksum);
if (!F_ISSET(session, WT_SESSION_QUIET_CORRUPT_FILE))
diff --git a/src/third_party/wiredtiger/src/block/block_vrfy.c b/src/third_party/wiredtiger/src/block/block_vrfy.c
index bb00d280419..57bba04e5da 100644
--- a/src/third_party/wiredtiger/src/block/block_vrfy.c
+++ b/src/third_party/wiredtiger/src/block/block_vrfy.c
@@ -361,9 +361,8 @@ __verify_filefrag_add(WT_SESSION_IMPL *session, WT_BLOCK *block, const char *typ
/* Check each chunk against the total file size. */
if (offset + size > block->size)
- WT_RET_MSG(session, WT_ERROR, "fragment %" PRIuMAX "-%" PRIuMAX
- " references "
- "non-existent file blocks",
+ WT_RET_MSG(session, WT_ERROR,
+ "fragment %" PRIuMAX "-%" PRIuMAX " references non-existent file blocks",
(uintmax_t)offset, (uintmax_t)(offset + size));
frag = (uint64_t)WT_wt_off_TO_FRAG(block, offset);
@@ -373,10 +372,8 @@ __verify_filefrag_add(WT_SESSION_IMPL *session, WT_BLOCK *block, const char *typ
if (nodup)
for (f = frag, i = 0; i < frags; ++f, ++i)
if (__bit_test(block->fragfile, f))
- WT_RET_MSG(session, WT_ERROR, "file fragment at %" PRIuMAX
- " referenced "
- "multiple times",
- (uintmax_t)offset);
+ WT_RET_MSG(session, WT_ERROR,
+ "file fragment at %" PRIuMAX " referenced multiple times", (uintmax_t)offset);
/* Add fragments to the file's fragment list. */
__bit_nset(block->fragfile, frag, frag + (frags - 1));
@@ -458,9 +455,8 @@ __verify_ckptfrag_add(WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t offset
* outside of the checkpoint's stored size.
*/
if (offset + size > block->verify_size)
- WT_RET_MSG(session, WT_ERROR, "fragment %" PRIuMAX "-%" PRIuMAX
- " references "
- "file blocks outside the checkpoint",
+ WT_RET_MSG(session, WT_ERROR,
+ "fragment %" PRIuMAX "-%" PRIuMAX " references file blocks outside the checkpoint",
(uintmax_t)offset, (uintmax_t)(offset + size));
frag = (uint64_t)WT_wt_off_TO_FRAG(block, offset);
@@ -469,11 +465,10 @@ __verify_ckptfrag_add(WT_SESSION_IMPL *session, WT_BLOCK *block, wt_off_t offset
/* It is illegal to reference a particular chunk more than once. */
for (f = frag, i = 0; i < frags; ++f, ++i)
if (!__bit_test(block->fragckpt, f))
- WT_RET_MSG(session, WT_ERROR, "fragment at %" PRIuMAX
- " referenced multiple "
- "times in a single checkpoint or found in the "
- "checkpoint but not listed in the checkpoint's "
- "allocation list",
+ WT_RET_MSG(session, WT_ERROR,
+ "fragment at %" PRIuMAX
+ " referenced multiple times in a single checkpoint or found in the checkpoint but "
+ "not listed in the checkpoint's allocation list",
(uintmax_t)offset);
/* Remove fragments from the checkpoint's allocation list. */
diff --git a/src/third_party/wiredtiger/src/block/block_write.c b/src/third_party/wiredtiger/src/block/block_write.c
index a8a0091d854..c5890efd038 100644
--- a/src/third_party/wiredtiger/src/block/block_write.c
+++ b/src/third_party/wiredtiger/src/block/block_write.c
@@ -118,7 +118,7 @@ __wt_block_extend(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_FH *fh, wt_off_t
*/
if (block->extend_size > block->size &&
(offset > block->extend_size ||
- offset + block->extend_len + (wt_off_t)align_size < block->extend_size))
+ offset + block->extend_len + (wt_off_t)align_size < block->extend_size))
return (0);
/*
diff --git a/src/third_party/wiredtiger/src/bloom/bloom.c b/src/third_party/wiredtiger/src/bloom/bloom.c
index 99aacc24bea..ff48eb2db54 100644
--- a/src/third_party/wiredtiger/src/bloom/bloom.c
+++ b/src/third_party/wiredtiger/src/bloom/bloom.c
@@ -63,8 +63,7 @@ __bloom_setup(WT_BLOOM *bloom, uint64_t n, uint64_t m, uint32_t factor, uint32_t
{
if (k < 2)
WT_RET_MSG(bloom->session, EINVAL,
- "bloom filter hash values to be set/tested must be "
- "greater than 2");
+ "bloom filter hash values to be set/tested must be greater than 2");
bloom->k = k;
bloom->factor = factor;
@@ -350,10 +349,8 @@ __wt_bloom_intersection(WT_BLOOM *bloom, WT_BLOOM *other)
if (bloom->k != other->k || bloom->factor != other->factor || bloom->m != other->m ||
bloom->n != other->n)
WT_RET_MSG(bloom->session, EINVAL,
- "bloom filter intersection configuration mismatch: ("
- "%" PRIu32 "/%" PRIu32 ", %" PRIu32 "/%" PRIu32
- ", "
- "%" PRIu64 "/%" PRIu64 ", %" PRIu64 "/%" PRIu64 ")",
+ "bloom filter intersection configuration mismatch: (%" PRIu32 "/%" PRIu32 ", %" PRIu32
+ "/%" PRIu32 ", %" PRIu64 "/%" PRIu64 ", %" PRIu64 "/%" PRIu64 ")",
bloom->k, other->k, bloom->factor, other->factor, bloom->m, other->m, bloom->n, other->n);
nbytes = __bitstr_size(bloom->m);
diff --git a/src/third_party/wiredtiger/src/btree/bt_compact.c b/src/third_party/wiredtiger/src/btree/bt_compact.c
index 649ccf6c39e..b02f9c9b3af 100644
--- a/src/third_party/wiredtiger/src/btree/bt_compact.c
+++ b/src/third_party/wiredtiger/src/btree/bt_compact.c
@@ -117,10 +117,8 @@ __compact_progress(WT_SESSION_IMPL *session)
time_diff = WT_TIMEDIFF_SEC(cur_time, session->compact->begin);
if (time_diff / WT_PROGRESS_MSG_PERIOD > session->compact->prog_msg_count) {
__wt_verbose(session, WT_VERB_COMPACT_PROGRESS,
- "Compact running"
- " for %" PRIu64 " seconds; reviewed %" PRIu64 " pages, skipped %" PRIu64
- " pages,"
- " wrote %" PRIu64 " pages",
+ "Compact running for %" PRIu64 " seconds; reviewed %" PRIu64 " pages, skipped %" PRIu64
+ " pages, wrote %" PRIu64 " pages",
time_diff, bm->block->compact_pages_reviewed, bm->block->compact_pages_skipped,
bm->block->compact_pages_written);
session->compact->prog_msg_count++;
diff --git a/src/third_party/wiredtiger/src/btree/bt_curnext.c b/src/third_party/wiredtiger/src/btree/bt_curnext.c
index 23967190d7d..d8f77841ee9 100644
--- a/src/third_party/wiredtiger/src/btree/bt_curnext.c
+++ b/src/third_party/wiredtiger/src/btree/bt_curnext.c
@@ -112,7 +112,7 @@ new_page:
cbt->ins = NULL;
if (cbt->ins != NULL)
restart_read:
- WT_RET(__wt_txn_read(session, cbt->ins->upd, &upd));
+ WT_RET(__wt_txn_read(session, cbt->ins->upd, &upd));
if (upd == NULL) {
cbt->v = __bit_getv_recno(cbt->ref, cbt->recno, btree->bitcnt);
cbt->iface.value.data = &cbt->v;
@@ -410,9 +410,8 @@ __cursor_key_order_check_col(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, boo
return (0);
}
- WT_PANIC_RET(session, EINVAL, "WT_CURSOR.%s out-of-order returns: returned key %" PRIu64
- " then "
- "key %" PRIu64,
+ WT_PANIC_RET(session, EINVAL,
+ "WT_CURSOR.%s out-of-order returns: returned key %" PRIu64 " then key %" PRIu64,
next ? "next" : "prev", cbt->lastrecno, cbt->recno);
}
@@ -444,10 +443,10 @@ __cursor_key_order_check_row(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, boo
WT_ERR(__wt_scr_alloc(session, 512, &b));
WT_PANIC_ERR(session, EINVAL,
- "WT_CURSOR.%s out-of-order returns: returned key %.1024s then "
- "key %.1024s",
- next ? "next" : "prev", __wt_buf_set_printable_format(session, cbt->lastkey->data,
- cbt->lastkey->size, btree->key_format, a),
+ "WT_CURSOR.%s out-of-order returns: returned key %.1024s then key %.1024s",
+ next ? "next" : "prev",
+ __wt_buf_set_printable_format(
+ session, cbt->lastkey->data, cbt->lastkey->size, btree->key_format, a),
__wt_buf_set_printable_format(session, key->data, key->size, btree->key_format, b));
err:
@@ -674,8 +673,9 @@ __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating)
* repeatedly deleting from the beginning of a tree can have quadratic performance. Take
* care not to force eviction of pages that are genuinely empty, in new trees.
*/
- if (page != NULL && (cbt->page_deleted_count > WT_BTREE_DELETE_THRESHOLD ||
- (newpage && cbt->page_deleted_count > 0))) {
+ if (page != NULL &&
+ (cbt->page_deleted_count > WT_BTREE_DELETE_THRESHOLD ||
+ (newpage && cbt->page_deleted_count > 0))) {
__wt_page_evict_soon(session, cbt->ref);
WT_STAT_CONN_INCR(session, cache_eviction_force_delete);
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_curprev.c b/src/third_party/wiredtiger/src/btree/bt_curprev.c
index 087df4b1a8a..acab2a005dc 100644
--- a/src/third_party/wiredtiger/src/btree/bt_curprev.c
+++ b/src/third_party/wiredtiger/src/btree/bt_curprev.c
@@ -253,7 +253,7 @@ new_page:
upd = NULL;
if (cbt->ins != NULL)
restart_read:
- WT_RET(__wt_txn_read(session, cbt->ins->upd, &upd));
+ WT_RET(__wt_txn_read(session, cbt->ins->upd, &upd));
if (upd == NULL) {
cbt->v = __bit_getv_recno(cbt->ref, cbt->recno, btree->bitcnt);
cbt->iface.value.data = &cbt->v;
@@ -633,8 +633,9 @@ __wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating)
* repeatedly deleting from the beginning of a tree can have quadratic performance. Take
* care not to force eviction of pages that are genuinely empty, in new trees.
*/
- if (page != NULL && (cbt->page_deleted_count > WT_BTREE_DELETE_THRESHOLD ||
- (newpage && cbt->page_deleted_count > 0))) {
+ if (page != NULL &&
+ (cbt->page_deleted_count > WT_BTREE_DELETE_THRESHOLD ||
+ (newpage && cbt->page_deleted_count > 0))) {
__wt_page_evict_soon(session, cbt->ref);
WT_STAT_CONN_INCR(session, cache_eviction_force_delete);
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_cursor.c b/src/third_party/wiredtiger/src/btree/bt_cursor.c
index 9996f5fcd7a..e2b47769729 100644
--- a/src/third_party/wiredtiger/src/btree/bt_cursor.c
+++ b/src/third_party/wiredtiger/src/btree/bt_cursor.c
@@ -131,9 +131,9 @@ __cursor_size_chk(WT_SESSION_IMPL *session, WT_ITEM *kv)
if (btree->type == BTREE_COL_FIX) {
/* Fixed-size column-stores take a single byte. */
if (kv->size != 1)
- WT_RET_MSG(session, EINVAL, "item size of %" WT_SIZET_FMT
- " does not match "
- "fixed-length file requirement of 1 byte",
+ WT_RET_MSG(session, EINVAL,
+ "item size of %" WT_SIZET_FMT
+ " does not match fixed-length file requirement of 1 byte",
kv->size);
return (0);
}
@@ -144,9 +144,9 @@ __cursor_size_chk(WT_SESSION_IMPL *session, WT_ITEM *kv)
/* Check what we are willing to store in the tree. */
if (kv->size > WT_BTREE_MAX_OBJECT_SIZE)
- WT_RET_MSG(session, EINVAL, "item size of %" WT_SIZET_FMT
- " exceeds the maximum "
- "supported WiredTiger size of %" PRIu32,
+ WT_RET_MSG(session, EINVAL,
+ "item size of %" WT_SIZET_FMT
+ " exceeds the maximum supported WiredTiger size of %" PRIu32,
kv->size, WT_BTREE_MAX_OBJECT_SIZE);
/* Check what the block manager can actually write. */
@@ -513,7 +513,8 @@ __wt_btcur_search_uncommitted(WT_CURSOR *cursor, WT_UPDATE **updp)
if (cbt->ins != NULL)
upd = cbt->ins->upd;
else if (cbt->btree->type == BTREE_ROW) {
- WT_ASSERT(session, cbt->btree->type == BTREE_ROW && cbt->ref->page->modify != NULL &&
+ WT_ASSERT(session,
+ cbt->btree->type == BTREE_ROW && cbt->ref->page->modify != NULL &&
cbt->ref->page->modify->mod_row_update != NULL);
upd = cbt->ref->page->modify->mod_row_update[cbt->slot];
}
@@ -1444,9 +1445,8 @@ __wt_btcur_modify(WT_CURSOR_BTREE *cbt, WT_MODIFY *entries, int nentries)
* operations.
*/
if (session->txn.isolation != WT_ISO_SNAPSHOT)
- WT_ERR_MSG(session, ENOTSUP,
- "not supported in read-committed or read-uncommitted "
- "transactions");
+ WT_ERR_MSG(
+ session, ENOTSUP, "not supported in read-committed or read-uncommitted transactions");
if (F_ISSET(&session->txn, WT_TXN_AUTOCOMMIT))
WT_ERR_MSG(session, ENOTSUP, "not supported in implicit transactions");
diff --git a/src/third_party/wiredtiger/src/btree/bt_delete.c b/src/third_party/wiredtiger/src/btree/bt_delete.c
index 87f1e4f3d6f..7de9c7dcb9b 100644
--- a/src/third_party/wiredtiger/src/btree/bt_delete.c
+++ b/src/third_party/wiredtiger/src/btree/bt_delete.c
@@ -116,9 +116,10 @@ __wt_delete_page(WT_SESSION_IMPL *session, WT_REF *ref, bool *skipp)
* version of it we read, as long as we don't read it twice.
*/
WT_ORDERED_READ(ref_addr, ref->addr);
- if (ref_addr != NULL && (__wt_off_page(ref->home, ref_addr) ?
- ref_addr->type != WT_ADDR_LEAF_NO :
- __wt_cell_type_raw((WT_CELL *)ref_addr) != WT_CELL_ADDR_LEAF_NO))
+ if (ref_addr != NULL &&
+ (__wt_off_page(ref->home, ref_addr) ?
+ ref_addr->type != WT_ADDR_LEAF_NO :
+ __wt_cell_type_raw((WT_CELL *)ref_addr) != WT_CELL_ADDR_LEAF_NO))
goto err;
/*
@@ -253,7 +254,7 @@ __wt_delete_page_skip(WT_SESSION_IMPL *session, WT_REF *ref, bool visible_all)
*/
if (skip && ref->page_del != NULL &&
(visible_all ||
- __wt_txn_visible_all(session, ref->page_del->txnid, ref->page_del->timestamp))) {
+ __wt_txn_visible_all(session, ref->page_del->txnid, ref->page_del->timestamp))) {
__wt_free(session, ref->page_del->update_list);
__wt_free(session, ref->page_del);
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_handle.c b/src/third_party/wiredtiger/src/btree/bt_handle.c
index c7865c4eeab..738351d7ff6 100644
--- a/src/third_party/wiredtiger/src/btree/bt_handle.c
+++ b/src/third_party/wiredtiger/src/btree/bt_handle.c
@@ -183,8 +183,10 @@ __wt_btree_open(WT_SESSION_IMPL *session, const char *op_cfg[])
* eviction, it must either clear the evict-disabled-open flag or restore the eviction
* configuration when finished so that handle close behaves correctly.
*/
- if (btree->original || F_ISSET(btree, WT_BTREE_IN_MEMORY | WT_BTREE_REBALANCE |
- WT_BTREE_SALVAGE | WT_BTREE_UPGRADE | WT_BTREE_VERIFY)) {
+ if (btree->original ||
+ F_ISSET(btree,
+ WT_BTREE_IN_MEMORY | WT_BTREE_REBALANCE | WT_BTREE_SALVAGE | WT_BTREE_UPGRADE |
+ WT_BTREE_VERIFY)) {
WT_ERR(__wt_evict_file_exclusive_on(session));
btree->evict_disabled_open = true;
}
@@ -373,8 +375,7 @@ __btree_conf(WT_SESSION_IMPL *session, WT_CKPT *ckpt)
if (fixed) {
if (bitcnt == 0 || bitcnt > 8)
WT_RET_MSG(session, EINVAL,
- "fixed-width field sizes must be greater "
- "than 0 and less than or equal to 8");
+ "fixed-width field sizes must be greater than 0 and less than or equal to 8");
btree->bitcnt = (uint8_t)bitcnt;
btree->type = BTREE_COL_FIX;
}
@@ -393,8 +394,8 @@ __btree_conf(WT_SESSION_IMPL *session, WT_CKPT *ckpt)
if (cval.val) {
if (!F_ISSET(conn, WT_CONN_IN_MEMORY))
WT_RET_MSG(session, EINVAL,
- "ignore_in_memory_cache_size setting is only valid "
- "with databases configured to run in-memory");
+ "ignore_in_memory_cache_size setting is only valid with databases configured to run "
+ "in-memory");
F_SET(btree, WT_BTREE_IGNORE_CACHE);
} else
F_CLR(btree, WT_BTREE_IGNORE_CACHE);
@@ -603,13 +604,11 @@ __wt_btree_tree_open(WT_SESSION_IMPL *session, const uint8_t *addr, size_t addr_
if (ret != 0 && WT_IS_METADATA(session->dhandle)) {
__wt_err(session, ret, "WiredTiger has failed to open its metadata");
__wt_err(session, ret,
- "This may be due to the database"
- " files being encrypted, being from an older"
- " version or due to corruption on disk");
+ "This may be due to the database files being encrypted, being from an older version or "
+ "due to corruption on disk");
__wt_err(session, ret,
- "You should confirm that you have"
- " opened the database with the correct options including"
- " all encryption and compression options");
+ "You should confirm that you have opened the database with the correct options including "
+ "all encryption and compression options");
}
WT_ERR(ret);
@@ -826,8 +825,7 @@ __btree_page_sizes(WT_SESSION_IMPL *session)
if (btree->maxintlpage < btree->allocsize || btree->maxintlpage % btree->allocsize != 0 ||
btree->maxleafpage < btree->allocsize || btree->maxleafpage % btree->allocsize != 0)
WT_RET_MSG(session, EINVAL,
- "page sizes must be a multiple of the page allocation "
- "size (%" PRIu32 "B)",
+ "page sizes must be a multiple of the page allocation size (%" PRIu32 "B)",
btree->allocsize);
/*
@@ -841,8 +839,8 @@ __btree_page_sizes(WT_SESSION_IMPL *session)
btree->maxmempage_image = 4 * max;
else if (btree->maxmempage_image < max)
WT_RET_MSG(session, EINVAL,
- "in-memory page image size must be larger than the maximum "
- "page size (%" PRIu32 "B < %" PRIu32 "B)",
+ "in-memory page image size must be larger than the maximum page size (%" PRIu32
+ "B < %" PRIu32 "B)",
btree->maxmempage_image, max);
/*
@@ -878,9 +876,7 @@ __btree_page_sizes(WT_SESSION_IMPL *session)
WT_RET(__wt_config_gets(session, cfg, "split_pct", &cval));
if (cval.val < WT_BTREE_MIN_SPLIT_PCT) {
btree->split_pct = WT_BTREE_MIN_SPLIT_PCT;
- WT_RET(__wt_msg(session,
- "Re-setting split_pct for %s to the minimum allowed of "
- "%d%%",
+ WT_RET(__wt_msg(session, "Re-setting split_pct for %s to the minimum allowed of %d%%",
session->dhandle->name, WT_BTREE_MIN_SPLIT_PCT));
} else
btree->split_pct = (int)cval.val;
diff --git a/src/third_party/wiredtiger/src/btree/bt_huffman.c b/src/third_party/wiredtiger/src/btree/bt_huffman.c
index 0e5597da756..8496339d666 100644
--- a/src/third_party/wiredtiger/src/btree/bt_huffman.c
+++ b/src/third_party/wiredtiger/src/btree/bt_huffman.c
@@ -219,8 +219,7 @@ __wt_btree_huffman_open(WT_SESSION_IMPL *session)
case BTREE_COL_VAR:
if (key_conf.len != 0)
WT_RET_MSG(session, EINVAL,
- "the keys of variable-length column-store files "
- "may not be Huffman encoded");
+ "the keys of variable-length column-store files may not be Huffman encoded");
break;
case BTREE_ROW:
break;
@@ -330,27 +329,22 @@ __wt_huffman_read(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *ip, struct __wt_huff
*/
if (lineno > entries + 1)
WT_ERR_MSG(session, EINVAL,
- "Huffman table file %.*s is corrupted, "
- "more than %" PRIu32 " entries",
- (int)ip->len, ip->str, entries + 1);
+ "Huffman table file %.*s is corrupted, more than %" PRIu32 " entries", (int)ip->len,
+ ip->str, entries + 1);
if (n != 2)
WT_ERR_MSG(session, EINVAL,
- "line %u of Huffman table file %.*s is corrupted: "
- "expected two unsigned integral values",
+ "line %u of Huffman table file %.*s is corrupted: expected two unsigned integral "
+ "values",
lineno, (int)ip->len, ip->str);
if (symbol < 0 || symbol > entries)
WT_ERR_MSG(session, EINVAL,
- "line %u of Huffman file %.*s is corrupted; "
- "symbol %" PRId64
- " not in range, maximum "
- "value is %u",
+ "line %u of Huffman file %.*s is corrupted; symbol %" PRId64
+ " not in range, maximum value is %u",
lineno, (int)ip->len, ip->str, symbol, entries);
if (frequency < 0 || frequency > UINT32_MAX)
WT_ERR_MSG(session, EINVAL,
- "line %u of Huffman file %.*s is corrupted; "
- "frequency %" PRId64
- " not in range, maximum "
- "value is %" PRIu32,
+ "line %u of Huffman file %.*s is corrupted; frequency %" PRId64
+ " not in range, maximum value is %" PRIu32,
lineno, (int)ip->len, ip->str, frequency, (uint32_t)UINT32_MAX);
tp->symbol = (uint32_t)symbol;
diff --git a/src/third_party/wiredtiger/src/btree/bt_import.c b/src/third_party/wiredtiger/src/btree/bt_import.c
index 9bf09711ac4..074d05bd331 100644
--- a/src/third_party/wiredtiger/src/btree/bt_import.c
+++ b/src/third_party/wiredtiger/src/btree/bt_import.c
@@ -58,8 +58,8 @@ __wt_import(WT_SESSION_IMPL *session, const char *uri)
WT_ERR(__wt_btree_config_encryptor(session, filecfg, &kencryptor));
if ((kencryptor == NULL && v.val != 0) || (kencryptor != NULL && v.val == 0))
WT_ERR_MSG(session, EINVAL,
- "%s: loaded object's encryption configuration doesn't "
- "match the database's encryption configuration",
+ "%s: loaded object's encryption configuration doesn't match the database's encryption "
+ "configuration",
filename);
/*
* The metadata was quoted to avoid configuration string characters acting as separators.
diff --git a/src/third_party/wiredtiger/src/btree/bt_io.c b/src/third_party/wiredtiger/src/btree/bt_io.c
index d4d83783a1b..902eb1228e7 100644
--- a/src/third_party/wiredtiger/src/btree/bt_io.c
+++ b/src/third_party/wiredtiger/src/btree/bt_io.c
@@ -52,9 +52,7 @@ __wt_bt_read(WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t
if (F_ISSET(dsk, WT_PAGE_ENCRYPTED)) {
if (btree->kencryptor == NULL || (encryptor = btree->kencryptor->encryptor) == NULL ||
encryptor->decrypt == NULL) {
- fail_msg =
- "encrypted block in file for which no encryption "
- "configured";
+ fail_msg = "encrypted block in file for which no encryption configured";
goto corrupt;
}
@@ -73,9 +71,7 @@ __wt_bt_read(WT_SESSION_IMPL *session, WT_ITEM *buf, const uint8_t *addr, size_t
if (F_ISSET(dsk, WT_PAGE_COMPRESSED)) {
if (btree->compressor == NULL || btree->compressor->decompress == NULL) {
- fail_msg =
- "compressed block in file for which no compression "
- "configured";
+ fail_msg = "compressed block in file for which no compression configured";
goto corrupt;
}
@@ -181,7 +177,8 @@ __wt_bt_write(WT_SESSION_IMPL *session, WT_ITEM *buf, uint8_t *addr, size_t *add
time_start = time_stop = 0;
/* Checkpoint calls are different than standard calls. */
- WT_ASSERT(session, (!checkpoint && addr != NULL && addr_sizep != NULL) ||
+ WT_ASSERT(session,
+ (!checkpoint && addr != NULL && addr_sizep != NULL) ||
(checkpoint && addr == NULL && addr_sizep == NULL));
/* In-memory databases shouldn't write pages. */
diff --git a/src/third_party/wiredtiger/src/btree/bt_random.c b/src/third_party/wiredtiger/src/btree/bt_random.c
index 78f073a653e..fa59f785757 100644
--- a/src/third_party/wiredtiger/src/btree/bt_random.c
+++ b/src/third_party/wiredtiger/src/btree/bt_random.c
@@ -439,12 +439,12 @@ restart:
return (WT_NOTFOUND);
}
- /*
- * Swap the current page for the child page. If the page splits while we're retrieving it,
- * restart the search at the root.
- *
- * On other error, simply return, the swap call ensures we're holding nothing on failure.
- */
+ /*
+ * Swap the current page for the child page. If the page splits while we're retrieving it,
+ * restart the search at the root.
+ *
+ * On other error, simply return, the swap call ensures we're holding nothing on failure.
+ */
descend:
if ((ret = __wt_page_swap(session, current, descent, flags)) == 0) {
current = descent;
diff --git a/src/third_party/wiredtiger/src/btree/bt_read.c b/src/third_party/wiredtiger/src/btree/bt_read.c
index 2af497c066e..069dc08b5d8 100644
--- a/src/third_party/wiredtiger/src/btree/bt_read.c
+++ b/src/third_party/wiredtiger/src/btree/bt_read.c
@@ -95,8 +95,7 @@ __las_page_instantiate_verbose(WT_SESSION_IMPL *session, uint64_t las_pageid)
*/
if (__wt_atomic_casv64(&cache->las_verb_gen_read, ckpt_gen_last, ckpt_gen_current)) {
__wt_verbose(session, WT_VERB_LOOKASIDE | WT_VERB_LOOKASIDE_ACTIVITY,
- "Read from lookaside file triggered for "
- "file ID %" PRIu32 ", page ID %" PRIu64,
+ "Read from lookaside file triggered for file ID %" PRIu32 ", page ID %" PRIu64,
S2BT(session)->id, las_pageid);
}
}
@@ -504,7 +503,8 @@ __page_read(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags)
/*
* The WT_REF lookaside state should match the page-header state of any page we read.
*/
- WT_ASSERT(session, (previous_state != WT_REF_LIMBO && previous_state != WT_REF_LOOKASIDE) ||
+ WT_ASSERT(session,
+ (previous_state != WT_REF_LIMBO && previous_state != WT_REF_LOOKASIDE) ||
ref->page->dsk == NULL || F_ISSET(ref->page->dsk, WT_PAGE_LAS_UPDATE));
skip_read:
@@ -573,7 +573,7 @@ __wt_page_in_func(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags
,
const char *func, int line
#endif
- )
+)
{
WT_BTREE *btree;
WT_DECL_RET;
@@ -589,7 +589,8 @@ __wt_page_in_func(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags
LF_SET(WT_READ_IGNORE_CACHE_SIZE);
/* Sanity check flag combinations. */
- WT_ASSERT(session, !LF_ISSET(WT_READ_DELETED_SKIP | WT_READ_NO_WAIT | WT_READ_LOOKASIDE) ||
+ WT_ASSERT(session,
+ !LF_ISSET(WT_READ_DELETED_SKIP | WT_READ_NO_WAIT | WT_READ_LOOKASIDE) ||
LF_ISSET(WT_READ_CACHE));
WT_ASSERT(session, !LF_ISSET(WT_READ_DELETED_CHECK) || !LF_ISSET(WT_READ_DELETED_SKIP));
@@ -702,7 +703,7 @@ read:
*/
if (current_state == WT_REF_LIMBO &&
((!LF_ISSET(WT_READ_CACHE) || LF_ISSET(WT_READ_LOOKASIDE)) &&
- !__wt_las_page_skip_locked(session, ref))) {
+ !__wt_las_page_skip_locked(session, ref))) {
WT_RET(__wt_hazard_clear(session, ref));
goto read;
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_rebalance.c b/src/third_party/wiredtiger/src/btree/bt_rebalance.c
index 4a66db142f3..7ba2b1bff3c 100644
--- a/src/third_party/wiredtiger/src/btree/bt_rebalance.c
+++ b/src/third_party/wiredtiger/src/btree/bt_rebalance.c
@@ -133,9 +133,9 @@ __rebalance_internal(WT_SESSION_IMPL *session, WT_REBALANCE_STUFF *rs)
* a 4B quantity and it's technically possible there could be more pages than that in a tree.
*/
if (rs->leaf_next > UINT32_MAX)
- WT_RET_MSG(session, ENOTSUP, "too many leaf pages to rebalance, %" WT_SIZET_FMT
- " pages "
- "exceeds the maximum of %" PRIu32,
+ WT_RET_MSG(session, ENOTSUP,
+ "too many leaf pages to rebalance, %" WT_SIZET_FMT
+ " pages exceeds the maximum of %" PRIu32,
rs->leaf_next, UINT32_MAX);
leaf_next = (uint32_t)rs->leaf_next;
diff --git a/src/third_party/wiredtiger/src/btree/bt_slvg.c b/src/third_party/wiredtiger/src/btree/bt_slvg.c
index 894bbbe2bfc..a303d1a3859 100644
--- a/src/third_party/wiredtiger/src/btree/bt_slvg.c
+++ b/src/third_party/wiredtiger/src/btree/bt_slvg.c
@@ -505,8 +505,7 @@ __slvg_read(WT_SESSION_IMPL *session, WT_STUFF *ss)
ss->page_type = dsk->type;
if (ss->page_type != dsk->type)
WT_ERR_MSG(session, WT_ERROR,
- "file contains multiple file formats (both "
- "%s and %s), and cannot be salvaged",
+ "file contains multiple file formats (both %s and %s), and cannot be salvaged",
__wt_page_type_string(ss->page_type), __wt_page_type_string(dsk->type));
WT_ERR(__slvg_trk_leaf(session, dsk, addr, addr_size, ss));
@@ -1237,9 +1236,8 @@ __slvg_col_build_leaf(WT_SESSION_IMPL *session, WT_TRACK *trk, WT_REF *ref)
cookie->skip = skip = trk->col_start - recno;
cookie->take = take = (trk->col_stop - trk->col_start) + 1;
- __wt_verbose(session, WT_VERB_SALVAGE, "%s merge discarding first %" PRIu64
- " records, "
- "then taking %" PRIu64 " records",
+ __wt_verbose(session, WT_VERB_SALVAGE,
+ "%s merge discarding first %" PRIu64 " records, then taking %" PRIu64 " records",
__wt_addr_string(session, trk->trk_addr, trk->trk_addr_size, trk->ss->tmp1), skip, take);
/* Set the referenced flag on overflow pages we're using. */
@@ -2265,8 +2263,7 @@ __slvg_ovfl_ref(WT_SESSION_IMPL *session, WT_TRACK *trk, bool multi_panic)
if (!multi_panic)
return (__wt_set_return(session, EBUSY));
WT_PANIC_RET(session, EINVAL,
- "overflow record unexpectedly referenced multiple times "
- "during leaf page merge");
+ "overflow record unexpectedly referenced multiple times during leaf page merge");
}
F_SET(trk, WT_TRACK_OVFL_REFD);
diff --git a/src/third_party/wiredtiger/src/btree/bt_split.c b/src/third_party/wiredtiger/src/btree/bt_split.c
index 17bfdf40969..329ee184b2f 100644
--- a/src/third_party/wiredtiger/src/btree/bt_split.c
+++ b/src/third_party/wiredtiger/src/btree/bt_split.c
@@ -579,9 +579,8 @@ err:
break;
case WT_ERR_IGNORE:
if (ret != 0 && ret != WT_PANIC) {
- __wt_err(session, ret,
- "ignoring not-fatal error during root page split "
- "to deepen the tree");
+ __wt_err(
+ session, ret, "ignoring not-fatal error during root page split to deepen the tree");
ret = 0;
}
break;
@@ -646,8 +645,8 @@ __split_parent(WT_SESSION_IMPL *session, WT_REF *ref, WT_REF **ref_new, uint32_t
WT_ASSERT(session, next_ref->state != WT_REF_SPLIT);
if ((discard && next_ref == ref) ||
((!WT_BTREE_SYNCING(btree) || WT_SESSION_BTREE_SYNC(session)) &&
- next_ref->state == WT_REF_DELETED && __wt_delete_page_skip(session, next_ref, true) &&
- WT_REF_CAS_STATE(session, next_ref, WT_REF_DELETED, WT_REF_SPLIT))) {
+ next_ref->state == WT_REF_DELETED && __wt_delete_page_skip(session, next_ref, true) &&
+ WT_REF_CAS_STATE(session, next_ref, WT_REF_DELETED, WT_REF_SPLIT))) {
WT_ERR(__wt_buf_grow(session, scr, (deleted_entries + 1) * sizeof(uint32_t)));
deleted_refs = scr->mem;
deleted_refs[deleted_entries++] = i;
@@ -866,9 +865,7 @@ err:
break;
case WT_ERR_IGNORE:
if (ret != 0 && ret != WT_PANIC) {
- __wt_err(session, ret,
- "ignoring not-fatal error during parent page "
- "split");
+ __wt_err(session, ret, "ignoring not-fatal error during parent page split");
ret = 0;
}
break;
@@ -1141,9 +1138,7 @@ err:
break;
case WT_ERR_IGNORE:
if (ret != 0 && ret != WT_PANIC) {
- __wt_err(session, ret,
- "ignoring not-fatal error during internal page "
- "split");
+ __wt_err(session, ret, "ignoring not-fatal error during internal page split");
ret = 0;
}
break;
@@ -1617,7 +1612,8 @@ __wt_multi_to_ref(WT_SESSION_IMPL *session, WT_PAGE *page, WT_MULTI *multi, WT_R
WT_ASSERT(session, multi->supd == NULL || multi->disk_image != NULL);
/* Verify any disk image we have. */
- WT_ASSERT(session, multi->disk_image == NULL ||
+ WT_ASSERT(session,
+ multi->disk_image == NULL ||
__wt_verify_dsk_image(
session, "[page instantiate]", multi->disk_image, 0, &multi->addr, true) == 0);
diff --git a/src/third_party/wiredtiger/src/btree/bt_vrfy.c b/src/third_party/wiredtiger/src/btree/bt_vrfy.c
index 3ab7023222b..20bbb16661c 100644
--- a/src/third_party/wiredtiger/src/btree/bt_vrfy.c
+++ b/src/third_party/wiredtiger/src/btree/bt_vrfy.c
@@ -314,27 +314,23 @@ __verify_addr_ts(WT_SESSION_IMPL *session, WT_REF *ref, WT_CELL_UNPACK *unpack,
if (unpack->newest_stop_ts == WT_TS_NONE)
WT_RET_MSG(session, WT_ERROR,
- "internal page reference at %s has a newest stop "
- "timestamp of 0",
+ "internal page reference at %s has a newest stop timestamp of 0",
__wt_page_addr_string(session, ref, vs->tmp1));
if (unpack->oldest_start_ts > unpack->newest_stop_ts)
WT_RET_MSG(session, WT_ERROR,
- "internal page reference at %s has an oldest start "
- "timestamp %s newer than its newest stop timestamp %s",
+ "internal page reference at %s has an oldest start timestamp %s newer than its newest "
+ "stop timestamp %s",
__wt_page_addr_string(session, ref, vs->tmp1),
__wt_timestamp_to_string(unpack->oldest_start_ts, ts_string[0]),
__wt_timestamp_to_string(unpack->newest_stop_ts, ts_string[1]));
if (unpack->newest_stop_txn == WT_TXN_NONE)
WT_RET_MSG(session, WT_ERROR,
- "internal page reference at %s has a newest stop "
- "transaction of 0",
+ "internal page reference at %s has a newest stop transaction of 0",
__wt_page_addr_string(session, ref, vs->tmp1));
if (unpack->oldest_start_txn > unpack->newest_stop_txn)
WT_RET_MSG(session, WT_ERROR,
- "internal page reference at %s has an oldest start "
- "transaction (%" PRIu64
- ") newer than its newest stop "
- "transaction (%" PRIu64 ")",
+ "internal page reference at %s has an oldest start transaction (%" PRIu64
+ ") newer than its newest stop transaction (%" PRIu64 ")",
__wt_page_addr_string(session, ref, vs->tmp1), unpack->oldest_start_txn,
unpack->newest_stop_txn);
return (0);
@@ -427,8 +423,9 @@ __verify_tree(WT_SESSION_IMPL *session, WT_REF *ref, WT_CELL_UNPACK *addr_unpack
recno = ref->ref_recno;
recno_chk:
if (recno != vs->record_total + 1)
- WT_RET_MSG(session, WT_ERROR, "page at %s has a starting record of %" PRIu64
- " when the expected starting record is %" PRIu64,
+ WT_RET_MSG(session, WT_ERROR,
+ "page at %s has a starting record of %" PRIu64
+ " when the expected starting record is %" PRIu64,
__wt_page_addr_string(session, ref, vs->tmp1), recno, vs->record_total + 1);
break;
}
@@ -476,11 +473,10 @@ recno_chk:
case WT_PAGE_ROW_INT:
if (addr_unpack->raw != WT_CELL_ADDR_INT)
celltype_err:
- WT_RET_MSG(session, WT_ERROR,
- "page at %s, of type %s, is referenced in "
- "its parent by a cell of type %s",
- __wt_page_addr_string(session, ref, vs->tmp1), __wt_page_type_string(page->type),
- __wt_cell_type_string(addr_unpack->raw));
+ WT_RET_MSG(session, WT_ERROR,
+ "page at %s, of type %s, is referenced in its parent by a cell of type %s",
+ __wt_page_addr_string(session, ref, vs->tmp1), __wt_page_type_string(page->type),
+ __wt_cell_type_string(addr_unpack->raw));
break;
}
@@ -509,11 +505,10 @@ celltype_err:
*/
++entry;
if (child_ref->ref_recno != vs->record_total + 1) {
- WT_RET_MSG(session, WT_ERROR, "the starting record number in entry %" PRIu32
- " of the column internal page at "
- "%s is %" PRIu64
- " and the expected "
- "starting record number is %" PRIu64,
+ WT_RET_MSG(session, WT_ERROR,
+ "the starting record number in entry %" PRIu32
+ " of the column internal page at %s is %" PRIu64
+ " and the expected starting record number is %" PRIu64,
entry, __wt_page_addr_string(session, child_ref, vs->tmp1), child_ref->ref_recno,
vs->record_total + 1);
}
@@ -596,10 +591,10 @@ __verify_row_int_key_order(
/* Compare the key against the largest key we've seen so far. */
WT_RET(__wt_compare(session, btree->collator, &item, vs->max_key, &cmp));
if (cmp <= 0)
- WT_RET_MSG(session, WT_ERROR, "the internal key in entry %" PRIu32
- " on the page at %s "
- "sorts before the last key appearing on page %s, earlier "
- "in the tree: %s, %s",
+ WT_RET_MSG(session, WT_ERROR,
+ "the internal key in entry %" PRIu32
+ " on the page at %s sorts before the last key appearing on page %s, earlier in the tree: "
+ "%s, %s",
entry, __wt_page_addr_string(session, ref, vs->tmp1), (char *)vs->max_addr->data,
__wt_buf_set_printable(session, item.data, item.size, vs->tmp2),
__wt_buf_set_printable(session, vs->max_key->data, vs->max_key->size, vs->tmp3));
@@ -650,9 +645,8 @@ __verify_row_leaf_key_order(WT_SESSION_IMPL *session, WT_REF *ref, WT_VSTUFF *vs
WT_RET(__wt_compare(session, btree->collator, vs->tmp1, (WT_ITEM *)vs->max_key, &cmp));
if (cmp < 0)
WT_RET_MSG(session, WT_ERROR,
- "the first key on the page at %s sorts equal to "
- "or less than the last key appearing on the page "
- "at %s, earlier in the tree: %s, %s",
+ "the first key on the page at %s sorts equal to or less than the last key appearing "
+ "on the page at %s, earlier in the tree: %s, %s",
__wt_page_addr_string(session, ref, vs->tmp2), (char *)vs->max_addr->data,
__wt_buf_set_printable(session, vs->tmp1->data, vs->tmp1->size, vs->tmp3),
__wt_buf_set_printable(session, vs->max_key->data, vs->max_key->size, vs->tmp4));
@@ -732,9 +726,10 @@ __verify_ts_addr_cmp(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t cell_num, c
ts2_bp = __wt_timestamp_to_string(ts2, ts_string[1]);
break;
}
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s failed verification with %s "
- "timestamp of %s, %s the parent's %s timestamp of %s",
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32
+ " on page at %s failed verification with %s timestamp of %s, %s the parent's %s timestamp of "
+ "%s",
cell_num, __wt_page_addr_string(session, ref, vs->tmp1), ts1_name, ts1_bp,
gt ? "less than" : "greater than", ts2_name, ts2_bp);
}
@@ -753,11 +748,9 @@ __verify_txn_addr_cmp(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t cell_num,
if (!gt && txn1 <= txn2)
return (0);
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s failed verification with %s "
- "transaction of %" PRIu64
- ", %s the parent's %s transaction of "
- "%" PRIu64,
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s failed verification with %s transaction of %" PRIu64
+ ", %s the parent's %s transaction of %" PRIu64,
cell_num, __wt_page_addr_string(session, ref, vs->tmp1), txn1_name, txn1,
gt ? "less than" : "greater than", txn2_name, txn2);
}
@@ -800,10 +793,9 @@ __verify_page_cell(
case WT_CELL_VALUE_OVFL:
found_ovfl = true;
if ((ret = __verify_overflow(session, unpack.data, unpack.size, vs)) != 0)
- WT_RET_MSG(session, ret, "cell %" PRIu32
- " on page at %s references "
- "an overflow item at %s that failed "
- "verification",
+ WT_RET_MSG(session, ret,
+ "cell %" PRIu32
+ " on page at %s references an overflow item at %s that failed verification",
cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1),
__wt_addr_string(session, unpack.data, unpack.size, vs->tmp2));
break;
@@ -820,30 +812,25 @@ __verify_page_cell(
case WT_CELL_ADDR_LEAF_NO:
#ifdef MONGODB42_WITH_TIMESTAMP_AND_TXN_VALIDATE
if (unpack.newest_stop_ts == WT_TS_NONE)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has a "
- "newest stop timestamp of 0",
- cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1));
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s has a newest stop timestamp of 0", cell_num - 1,
+ __wt_page_addr_string(session, ref, vs->tmp1));
if (unpack.newest_stop_txn == WT_TXN_NONE)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has a "
- "newest stop transaction of 0",
- cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1));
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s has a newest stop transaction of 0", cell_num - 1,
+ __wt_page_addr_string(session, ref, vs->tmp1));
if (unpack.oldest_start_ts > unpack.newest_stop_ts)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has an "
- "oldest start timestamp %s newer than "
- "its newest stop timestamp %s",
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32
+ " on page at %s has an oldest start timestamp %s newer than its newest stop "
+ "timestamp %s",
cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1),
__wt_timestamp_to_string(unpack.oldest_start_ts, ts_string[0]),
__wt_timestamp_to_string(unpack.newest_stop_ts, ts_string[1]));
if (unpack.oldest_start_txn > unpack.newest_stop_txn) {
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has an "
- "oldest start transaction (%" PRIu64
- ") "
- "newer than its newest stop transaction "
- "(%" PRIu64 ")",
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s has an oldest start transaction (%" PRIu64
+ ") newer than its newest stop transaction (%" PRIu64 ")",
cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1),
unpack.oldest_start_txn, unpack.newest_stop_txn);
}
@@ -868,29 +855,24 @@ __verify_page_cell(
case WT_CELL_VALUE_SHORT:
#ifdef MONGODB42_WITH_TIMESTAMP_AND_TXN_VALIDATE
if (unpack.stop_ts == WT_TS_NONE)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has a stop "
- "timestamp of 0",
- cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1));
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s has a stop timestamp of 0", cell_num - 1,
+ __wt_page_addr_string(session, ref, vs->tmp1));
if (unpack.start_ts > unpack.stop_ts)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has a "
- "start timestamp %s newer than its stop "
- "timestamp %s",
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32
+ " on page at %s has a start timestamp %s newer than its stop timestamp %s",
cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1),
__wt_timestamp_to_string(unpack.start_ts, ts_string[0]),
__wt_timestamp_to_string(unpack.stop_ts, ts_string[1]));
if (unpack.stop_txn == WT_TXN_NONE)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has a stop "
- "transaction of 0",
- cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1));
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s has a stop transaction of 0", cell_num - 1,
+ __wt_page_addr_string(session, ref, vs->tmp1));
if (unpack.start_txn > unpack.stop_txn)
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s has a "
- "start transaction %" PRIu64
- "newer than "
- "its stop transaction %" PRIu64,
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s has a start transaction %" PRIu64
+ "newer than its stop transaction %" PRIu64,
cell_num - 1, __wt_page_addr_string(session, ref, vs->tmp1), unpack.start_txn,
unpack.stop_txn);
@@ -915,8 +897,8 @@ __verify_page_cell(
*/
if (found_ovfl && addr_unpack->raw == WT_CELL_ADDR_LEAF_NO)
WT_RET_MSG(session, WT_ERROR,
- "page at %s, of type %s and referenced in its parent by a "
- "cell of type %s, contains overflow items",
+ "page at %s, of type %s and referenced in its parent by a cell of type %s, contains "
+ "overflow items",
__wt_page_addr_string(session, ref, vs->tmp1), __wt_page_type_string(ref->page->type),
__wt_cell_type_string(addr_unpack->raw));
diff --git a/src/third_party/wiredtiger/src/btree/bt_vrfy_dsk.c b/src/third_party/wiredtiger/src/btree/bt_vrfy_dsk.c
index fa270a7754f..de3c1e9d66f 100644
--- a/src/third_party/wiredtiger/src/btree/bt_vrfy_dsk.c
+++ b/src/third_party/wiredtiger/src/btree/bt_vrfy_dsk.c
@@ -90,8 +90,7 @@ __wt_verify_dsk_image(WT_SESSION_IMPL *session, const char *tag, const WT_PAGE_H
if (dsk->recno == WT_RECNO_OOB)
break;
WT_RET_VRFY(session,
- "%s page at %s has a record number, which is illegal for "
- "this page type",
+ "%s page at %s has a record number, which is illegal for this page type",
__wt_page_type_string(dsk->type), tag);
}
@@ -227,9 +226,10 @@ __verify_dsk_ts_addr_cmp(WT_SESSION_IMPL *session, uint32_t cell_num, const char
ts2_bp = __wt_timestamp_to_string(ts2, ts_string[1]);
break;
}
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s failed verification with %s "
- "timestamp of %s, %s the parent's %s timestamp of %s",
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32
+ " on page at %s failed verification with %s timestamp of %s, %s the parent's %s timestamp of "
+ "%s",
cell_num, tag, ts1_name, ts1_bp, gt ? "less than" : "greater than", ts2_name, ts2_bp);
}
@@ -246,11 +246,9 @@ __verify_dsk_txn_addr_cmp(WT_SESSION_IMPL *session, uint32_t cell_num, const cha
if (!gt && txn1 <= txn2)
return (0);
- WT_RET_MSG(session, WT_ERROR, "cell %" PRIu32
- " on page at %s failed verification with %s "
- "transaction of %" PRIu64
- ", %s the parent's %s transaction of "
- "%" PRIu64,
+ WT_RET_MSG(session, WT_ERROR,
+ "cell %" PRIu32 " on page at %s failed verification with %s transaction of %" PRIu64
+ ", %s the parent's %s transaction of %" PRIu64,
cell_num, tag, txn1_name, txn1, gt ? "less than" : "greater than", txn2_name, txn2);
}
@@ -279,28 +277,23 @@ __verify_dsk_validity(WT_SESSION_IMPL *session, WT_CELL_UNPACK *unpack, uint32_t
case WT_CELL_ADDR_LEAF:
case WT_CELL_ADDR_LEAF_NO:
if (unpack->newest_stop_ts == WT_TS_NONE)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has a newest stop "
- "timestamp of 0",
+ WT_RET_VRFY(session, "cell %" PRIu32 " on page at %s has a newest stop timestamp of 0",
cell_num - 1, tag);
if (unpack->newest_stop_txn == WT_TXN_NONE)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has a newest stop "
- "transaction of 0",
- cell_num - 1, tag);
+ WT_RET_VRFY(session,
+ "cell %" PRIu32 " on page at %s has a newest stop transaction of 0", cell_num - 1,
+ tag);
if (unpack->oldest_start_ts > unpack->newest_stop_ts)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has an oldest "
- "start timestamp %s newer than its newest stop "
- "timestamp %s",
+ WT_RET_VRFY(session,
+ "cell %" PRIu32
+ " on page at %s has an oldest start timestamp %s newer than its newest stop "
+ "timestamp %s",
cell_num - 1, tag, __wt_timestamp_to_string(unpack->oldest_start_ts, ts_string[0]),
__wt_timestamp_to_string(unpack->newest_stop_ts, ts_string[1]));
if (unpack->oldest_start_txn > unpack->newest_stop_txn)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has an oldest "
- "start transaction %" PRIu64
- " newer than its "
- "newest stop transaction %" PRIu64,
+ WT_RET_VRFY(session,
+ "cell %" PRIu32 " on page at %s has an oldest start transaction %" PRIu64
+ " newer than its newest stop transaction %" PRIu64,
cell_num - 1, tag, unpack->oldest_start_txn, unpack->newest_stop_txn);
if (addr == NULL)
@@ -324,27 +317,21 @@ __verify_dsk_validity(WT_SESSION_IMPL *session, WT_CELL_UNPACK *unpack, uint32_t
case WT_CELL_VALUE_OVFL_RM:
case WT_CELL_VALUE_SHORT:
if (unpack->stop_ts == WT_TS_NONE)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has a stop "
- "timestamp of 0",
+ WT_RET_VRFY(session, "cell %" PRIu32 " on page at %s has a stop timestamp of 0",
cell_num - 1, tag);
if (unpack->start_ts > unpack->stop_ts)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has a start "
- "timestamp %s newer than its stop timestamp %s",
+ WT_RET_VRFY(session,
+ "cell %" PRIu32
+ " on page at %s has a start timestamp %s newer than its stop timestamp %s",
cell_num - 1, tag, __wt_timestamp_to_string(unpack->start_ts, ts_string[0]),
__wt_timestamp_to_string(unpack->stop_ts, ts_string[1]));
if (unpack->stop_txn == WT_TXN_NONE)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has a stop "
- "transaction of 0",
+ WT_RET_VRFY(session, "cell %" PRIu32 " on page at %s has a stop transaction of 0",
cell_num - 1, tag);
if (unpack->start_txn > unpack->stop_txn)
- WT_RET_VRFY(session, "cell %" PRIu32
- " on page at %s has a start "
- "transaction %" PRIu64
- " newer than its stop "
- "transaction %" PRIu64,
+ WT_RET_VRFY(session,
+ "cell %" PRIu32 " on page at %s has a start transaction %" PRIu64
+ " newer than its stop transaction %" PRIu64,
cell_num - 1, tag, unpack->start_txn, unpack->stop_txn);
if (addr == NULL)
@@ -444,10 +431,9 @@ __verify_dsk_row(
case WAS_KEY:
if (dsk->type == WT_PAGE_ROW_LEAF)
break;
- WT_ERR_VRFY(session, "cell %" PRIu32
- " on page at %s is the "
- "first of two adjacent keys",
- cell_num - 1, tag);
+ WT_ERR_VRFY(session,
+ "cell %" PRIu32 " on page at %s is the first of two adjacent keys", cell_num - 1,
+ tag);
}
last_cell_type = WAS_KEY;
break;
@@ -463,9 +449,8 @@ __verify_dsk_row(
case WAS_KEY:
break;
case WAS_VALUE:
- WT_ERR_VRFY(session, "cell %" PRIu32
- " on page at %s is the "
- "first of two adjacent values",
+ WT_ERR_VRFY(session,
+ "cell %" PRIu32 " on page at %s is the first of two adjacent values",
cell_num - 1, tag);
}
last_cell_type = WAS_VALUE;
@@ -516,18 +501,17 @@ __verify_dsk_row(
*/
prefix = unpack->prefix;
if (last_pfx->size == 0 && prefix != 0)
- WT_ERR_VRFY(session, "the %" PRIu32
- " key on page at %s is the first "
- "non-overflow key on the page and has a non-zero "
- "prefix compression value",
+ WT_ERR_VRFY(session,
+ "the %" PRIu32
+ " key on page at %s is the first non-overflow key on the page and has a non-zero "
+ "prefix compression value",
cell_num, tag);
/* Confirm the prefix compression count is possible. */
if (cell_num > 1 && prefix > last->size)
- WT_ERR_VRFY(session, "key %" PRIu32
- " on page at %s has a prefix "
- "compression count of %" WT_SIZET_FMT
- ", larger than the length of the previous key, %" WT_SIZET_FMT,
+ WT_ERR_VRFY(session,
+ "key %" PRIu32 " on page at %s has a prefix compression count of %" WT_SIZET_FMT
+ ", larger than the length of the previous key, %" WT_SIZET_FMT,
cell_num, tag, prefix, last->size);
/*
@@ -574,9 +558,9 @@ key_compare:
(dsk->type != WT_PAGE_ROW_INT && cell_num > 1)) {
WT_ERR(__wt_compare(session, btree->collator, last, current, &cmp));
if (cmp >= 0)
- WT_ERR_VRFY(session, "the %" PRIu32 " and %" PRIu32
- " keys on "
- "page at %s are incorrectly sorted: %s, %s",
+ WT_ERR_VRFY(session,
+ "the %" PRIu32 " and %" PRIu32
+ " keys on page at %s are incorrectly sorted: %s, %s",
cell_num - 2, cell_num, tag,
__wt_buf_set_printable(session, last->data, last->size, tmp1),
__wt_buf_set_printable(session, current->data, current->size, tmp2));
@@ -607,21 +591,20 @@ key_compare:
* number of physical entries.
*/
if (dsk->type == WT_PAGE_ROW_INT && key_cnt * 2 != dsk->u.entries)
- WT_ERR_VRFY(session, "%s page at %s has a key count of %" PRIu32
- " and a "
- "physical entry count of %" PRIu32,
+ WT_ERR_VRFY(session,
+ "%s page at %s has a key count of %" PRIu32 " and a physical entry count of %" PRIu32,
__wt_page_type_string(dsk->type), tag, key_cnt, dsk->u.entries);
if (dsk->type == WT_PAGE_ROW_LEAF && F_ISSET(dsk, WT_PAGE_EMPTY_V_ALL) &&
key_cnt != dsk->u.entries)
WT_ERR_VRFY(session,
- "%s page at %s with the 'all empty values' flag set has a "
- "key count of %" PRIu32 " and a physical entry count of %" PRIu32,
+ "%s page at %s with the 'all empty values' flag set has a key count of %" PRIu32
+ " and a physical entry count of %" PRIu32,
__wt_page_type_string(dsk->type), tag, key_cnt, dsk->u.entries);
if (dsk->type == WT_PAGE_ROW_LEAF && F_ISSET(dsk, WT_PAGE_EMPTY_V_NONE) &&
key_cnt * 2 != dsk->u.entries)
WT_ERR_VRFY(session,
- "%s page at %s with the 'no empty values' flag set has a "
- "key count of %" PRIu32 " and a physical entry count of %" PRIu32,
+ "%s page at %s with the 'no empty values' flag set has a key count of %" PRIu32
+ " and a physical entry count of %" PRIu32,
__wt_page_type_string(dsk->type), tag, key_cnt, dsk->u.entries);
if (0) {
@@ -785,10 +768,10 @@ __verify_dsk_col_var(
} else if (cell_type == WT_CELL_VALUE && last.data != NULL && last.size == unpack->size &&
memcmp(last.data, unpack->data, last.size) == 0)
match_err:
- WT_RET_VRFY(session, "data entries %" PRIu32 " and %" PRIu32
- " on page at %s are identical and should "
- "have been run-length encoded",
- cell_num - 1, cell_num, tag);
+ WT_RET_VRFY(session,
+ "data entries %" PRIu32 " and %" PRIu32
+ " on page at %s are identical and should have been run-length encoded",
+ cell_num - 1, cell_num, tag);
last.start_ts = unpack->start_ts;
last.start_txn = unpack->start_txn;
@@ -833,9 +816,8 @@ __verify_dsk_memsize(
len = WT_PTRDIFF((uint8_t *)dsk + dsk->mem_size, cell);
if (len == 0)
return (0);
- WT_RET_VRFY(session, "%s page at %s has %" WT_SIZET_FMT
- " unexpected bytes of data "
- "after the last cell",
+ WT_RET_VRFY(session,
+ "%s page at %s has %" WT_SIZET_FMT " unexpected bytes of data after the last cell",
__wt_page_type_string(dsk->type), tag, len);
}
@@ -888,9 +870,8 @@ __err_cell_corrupt(WT_SESSION_IMPL *session, int retval, uint32_t entry_num, con
static int
__err_cell_corrupt_or_eof(WT_SESSION_IMPL *session, int retval, uint32_t entry_num, const char *tag)
{
- WT_RET_VRFY_RETVAL(session, retval, "item %" PRIu32
- " on page at %s is a corrupted cell or references "
- "non-existent file pages",
+ WT_RET_VRFY_RETVAL(session, retval,
+ "item %" PRIu32 " on page at %s is a corrupted cell or references non-existent file pages",
entry_num, tag);
}
@@ -942,7 +923,8 @@ __err_cell_type(WT_SESSION_IMPL *session, uint32_t entry_num, const char *tag, u
break;
}
- WT_RET_VRFY(session, "illegal cell and page type combination: cell %" PRIu32
- " on page at %s is a %s cell on a %s page",
+ WT_RET_VRFY(session,
+ "illegal cell and page type combination: cell %" PRIu32
+ " on page at %s is a %s cell on a %s page",
entry_num, tag, __wt_cell_type_string(cell_type), __wt_page_type_string(dsk_type));
}
diff --git a/src/third_party/wiredtiger/src/btree/col_modify.c b/src/third_party/wiredtiger/src/btree/col_modify.c
index 8262c0eb227..101cc4f5d28 100644
--- a/src/third_party/wiredtiger/src/btree/col_modify.c
+++ b/src/third_party/wiredtiger/src/btree/col_modify.c
@@ -58,8 +58,8 @@ __wt_col_modify(WT_CURSOR_BTREE *cbt, uint64_t recno, const WT_ITEM *value, WT_U
WT_ASSERT(session, recno != WT_RECNO_OOB || cbt->compare != 0);
if (cbt->compare != 0 &&
(recno == WT_RECNO_OOB ||
- recno > (btree->type == BTREE_COL_VAR ? __col_var_last_recno(cbt->ref) :
- __col_fix_last_recno(cbt->ref)))) {
+ recno > (btree->type == BTREE_COL_VAR ? __col_var_last_recno(cbt->ref) :
+ __col_fix_last_recno(cbt->ref)))) {
append = true;
cbt->ins = NULL;
cbt->ins_head = NULL;
@@ -175,7 +175,8 @@ __wt_col_modify(WT_CURSOR_BTREE *cbt, uint64_t recno, const WT_ITEM *value, WT_U
* Check for insert split and checkpoint races in column-store: it's easy (as opposed to in
* row-store) and a difficult bug to otherwise diagnose.
*/
- WT_ASSERT(session, mod->mod_col_split_recno == WT_RECNO_OOB ||
+ WT_ASSERT(session,
+ mod->mod_col_split_recno == WT_RECNO_OOB ||
(recno != WT_RECNO_OOB && mod->mod_col_split_recno > recno));
if (upd_arg == NULL) {
diff --git a/src/third_party/wiredtiger/src/btree/row_modify.c b/src/third_party/wiredtiger/src/btree/row_modify.c
index ca03d888c73..57a4d106af7 100644
--- a/src/third_party/wiredtiger/src/btree/row_modify.c
+++ b/src/third_party/wiredtiger/src/btree/row_modify.c
@@ -32,7 +32,7 @@ __wt_page_modify_alloc(WT_SESSION_IMPL *session, WT_PAGE *page)
__wt_cache_page_inmem_incr(session, page, sizeof(*modify));
else
err:
- __wt_free(session, modify);
+ __wt_free(session, modify);
return (ret);
}
diff --git a/src/third_party/wiredtiger/src/btree/row_srch.c b/src/third_party/wiredtiger/src/btree/row_srch.c
index 6a1f4af0619..f3f91256e1f 100644
--- a/src/third_party/wiredtiger/src/btree/row_srch.c
+++ b/src/third_party/wiredtiger/src/btree/row_srch.c
@@ -53,9 +53,9 @@ __search_insert_append(WT_SESSION_IMPL *session, WT_CURSOR_BTREE *cbt, WT_INSERT
* serialized insert function.
*/
for (i = WT_SKIP_MAXDEPTH - 1; i >= 0; i--) {
- cbt->ins_stack[i] = (i == 0) ? &ins->next[0] : (ins_head->tail[i] != NULL) ?
- &ins_head->tail[i]->next[i] :
- &ins_head->head[i];
+ cbt->ins_stack[i] = (i == 0) ?
+ &ins->next[0] :
+ (ins_head->tail[i] != NULL) ? &ins_head->tail[i]->next[i] : &ins_head->head[i];
cbt->next_stack[i] = NULL;
}
cbt->compare = -cmp;
diff --git a/src/third_party/wiredtiger/src/cache/cache_las.c b/src/third_party/wiredtiger/src/cache/cache_las.c
index e64782a9a12..72fc61dc6e3 100644
--- a/src/third_party/wiredtiger/src/cache/cache_las.c
+++ b/src/third_party/wiredtiger/src/cache/cache_las.c
@@ -573,21 +573,15 @@ __las_insert_block_verbose(WT_SESSION_IMPL *session, WT_BTREE *btree, WT_MULTI *
*/
if (WT_VERBOSE_ISSET(session, WT_VERB_LOOKASIDE) ||
(ckpt_gen_current > ckpt_gen_last &&
- __wt_atomic_casv64(&cache->las_verb_gen_write, ckpt_gen_last, ckpt_gen_current))) {
+ __wt_atomic_casv64(&cache->las_verb_gen_write, ckpt_gen_last, ckpt_gen_current))) {
WT_IGNORE_RET_BOOL(__wt_eviction_clean_needed(session, &pct_full));
WT_IGNORE_RET_BOOL(__wt_eviction_dirty_needed(session, &pct_dirty));
__wt_verbose(session, WT_VERB_LOOKASIDE | WT_VERB_LOOKASIDE_ACTIVITY,
- "Page reconciliation triggered lookaside write "
- "file ID %" PRIu32 ", page ID %" PRIu64
- ". "
- "Max txn ID %" PRIu64
- ", max ondisk timestamp %s, "
- "first skipped ts %s. "
- "Entries now in lookaside file: %" PRId64
- ", "
- "cache dirty: %2.3f%% , "
- "cache use: %2.3f%%",
+ "Page reconciliation triggered lookaside write file ID %" PRIu32 ", page ID %" PRIu64
+ ". Max txn ID %" PRIu64
+ ", max ondisk timestamp %s, first skipped ts %s. Entries now in lookaside file: %" PRId64
+ ", cache dirty: %2.3f%% , cache use: %2.3f%%",
btree_id, multi->page_las.las_pageid, multi->page_las.max_txn,
__wt_timestamp_to_string(multi->page_las.max_ondisk_ts, ts_string[0]),
__wt_timestamp_to_string(multi->page_las.min_skipped_ts, ts_string[1]),
@@ -766,9 +760,8 @@ __wt_las_insert_block(
WT_STAT_CONN_SET(session, cache_lookaside_ondisk, las_size);
max_las_size = ((WT_CURSOR_BTREE *)cursor)->btree->file_max;
if (max_las_size != 0 && (uint64_t)las_size > max_las_size)
- WT_PANIC_MSG(session, WT_PANIC, "WiredTigerLAS: file size of %" PRIu64
- " exceeds maximum "
- "size %" PRIu64,
+ WT_PANIC_MSG(session, WT_PANIC,
+ "WiredTigerLAS: file size of %" PRIu64 " exceeds maximum size %" PRIu64,
(uint64_t)las_size, max_las_size);
err:
@@ -1087,8 +1080,8 @@ __wt_las_sweep(WT_SESSION_IMPL *session)
WT_ERR(cursor->get_key(cursor, &las_pageid, &las_id, &las_counter, &las_key));
__wt_verbose(session, WT_VERB_LOOKASIDE_ACTIVITY,
- "Sweep reviewing lookaside entry with lookaside "
- "page ID %" PRIu64 " btree ID %" PRIu32 " saved key size: %" WT_SIZET_FMT,
+ "Sweep reviewing lookaside entry with lookaside page ID %" PRIu64 " btree ID %" PRIu32
+ " saved key size: %" WT_SIZET_FMT,
las_pageid, las_id, saved_key->size);
/*
@@ -1169,8 +1162,8 @@ __wt_las_sweep(WT_SESSION_IMPL *session)
* 4. no restriction on durable timestamp value
* for other updates.
*/
- WT_ASSERT(session, prepare_state != WT_PREPARE_LOCKED &&
- durable_timestamp != WT_TS_MAX &&
+ WT_ASSERT(session,
+ prepare_state != WT_PREPARE_LOCKED && durable_timestamp != WT_TS_MAX &&
(prepare_state != WT_PREPARE_INPROGRESS || durable_timestamp == 0));
WT_ASSERT(session,
@@ -1196,9 +1189,8 @@ __wt_las_sweep(WT_SESSION_IMPL *session)
continue;
__wt_verbose(session, WT_VERB_LOOKASIDE_ACTIVITY,
- "Sweep removing lookaside entry with "
- "page ID: %" PRIu64 " btree ID: %" PRIu32 " saved key size: %" WT_SIZET_FMT
- ", record type: %" PRIu8 " transaction ID: %" PRIu64,
+ "Sweep removing lookaside entry with page ID: %" PRIu64 " btree ID: %" PRIu32
+ " saved key size: %" WT_SIZET_FMT ", record type: %" PRIu8 " transaction ID: %" PRIu64,
las_pageid, las_id, saved_key->size, upd_type, las_txnid);
WT_ERR(cursor->remove(cursor));
++remove_cnt;
diff --git a/src/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.c b/src/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.c
index afbab3182de..91d59615fdd 100644
--- a/src/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.c
+++ b/src/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.c
@@ -39,13 +39,13 @@
#endif
#define CRC32CX(crc, value) \
- __asm__("crc32cx %w[c], %w[c], %x[v]" : [c] "+r"(*&crc) : [v] "r"(+value))
+ __asm__("crc32cx %w[c], %w[c], %x[v]" : [ c ] "+r"(*&crc) : [ v ] "r"(+value))
#define CRC32CW(crc, value) \
- __asm__("crc32cw %w[c], %w[c], %w[v]" : [c] "+r"(*&crc) : [v] "r"(+value))
+ __asm__("crc32cw %w[c], %w[c], %w[v]" : [ c ] "+r"(*&crc) : [ v ] "r"(+value))
#define CRC32CH(crc, value) \
- __asm__("crc32ch %w[c], %w[c], %w[v]" : [c] "+r"(*&crc) : [v] "r"(+value))
+ __asm__("crc32ch %w[c], %w[c], %w[v]" : [ c ] "+r"(*&crc) : [ v ] "r"(+value))
#define CRC32CB(crc, value) \
- __asm__("crc32cb %w[c], %w[c], %w[v]" : [c] "+r"(*&crc) : [v] "r"(+value))
+ __asm__("crc32cb %w[c], %w[c], %w[v]" : [ c ] "+r"(*&crc) : [ v ] "r"(+value))
/*
* __wt_checksum_hw --
diff --git a/src/third_party/wiredtiger/src/checksum/power8/crc32_constants.h b/src/third_party/wiredtiger/src/checksum/power8/crc32_constants.h
index 886858ef2b5..bcdf3a8b8a3 100644
--- a/src/third_party/wiredtiger/src/checksum/power8/crc32_constants.h
+++ b/src/third_party/wiredtiger/src/checksum/power8/crc32_constants.h
@@ -5,38 +5,262 @@
#ifndef __ASSEMBLY__
#ifdef CRC_TABLE
static const unsigned int crc_table[] = {
- 0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,
- 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,
- 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,
- 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,
- 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,
- 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,
- 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,
- 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,
- 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,
- 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,
- 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,
- 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,
- 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,
- 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,
- 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,
- 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,
- 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,
- 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,
- 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,
- 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,
- 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,
- 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,
- 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,
- 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,
- 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,
- 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,
- 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,
- 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,
- 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,
- 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,
- 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,
- 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351,
+ 0x00000000,
+ 0xf26b8303,
+ 0xe13b70f7,
+ 0x1350f3f4,
+ 0xc79a971f,
+ 0x35f1141c,
+ 0x26a1e7e8,
+ 0xd4ca64eb,
+ 0x8ad958cf,
+ 0x78b2dbcc,
+ 0x6be22838,
+ 0x9989ab3b,
+ 0x4d43cfd0,
+ 0xbf284cd3,
+ 0xac78bf27,
+ 0x5e133c24,
+ 0x105ec76f,
+ 0xe235446c,
+ 0xf165b798,
+ 0x030e349b,
+ 0xd7c45070,
+ 0x25afd373,
+ 0x36ff2087,
+ 0xc494a384,
+ 0x9a879fa0,
+ 0x68ec1ca3,
+ 0x7bbcef57,
+ 0x89d76c54,
+ 0x5d1d08bf,
+ 0xaf768bbc,
+ 0xbc267848,
+ 0x4e4dfb4b,
+ 0x20bd8ede,
+ 0xd2d60ddd,
+ 0xc186fe29,
+ 0x33ed7d2a,
+ 0xe72719c1,
+ 0x154c9ac2,
+ 0x061c6936,
+ 0xf477ea35,
+ 0xaa64d611,
+ 0x580f5512,
+ 0x4b5fa6e6,
+ 0xb93425e5,
+ 0x6dfe410e,
+ 0x9f95c20d,
+ 0x8cc531f9,
+ 0x7eaeb2fa,
+ 0x30e349b1,
+ 0xc288cab2,
+ 0xd1d83946,
+ 0x23b3ba45,
+ 0xf779deae,
+ 0x05125dad,
+ 0x1642ae59,
+ 0xe4292d5a,
+ 0xba3a117e,
+ 0x4851927d,
+ 0x5b016189,
+ 0xa96ae28a,
+ 0x7da08661,
+ 0x8fcb0562,
+ 0x9c9bf696,
+ 0x6ef07595,
+ 0x417b1dbc,
+ 0xb3109ebf,
+ 0xa0406d4b,
+ 0x522bee48,
+ 0x86e18aa3,
+ 0x748a09a0,
+ 0x67dafa54,
+ 0x95b17957,
+ 0xcba24573,
+ 0x39c9c670,
+ 0x2a993584,
+ 0xd8f2b687,
+ 0x0c38d26c,
+ 0xfe53516f,
+ 0xed03a29b,
+ 0x1f682198,
+ 0x5125dad3,
+ 0xa34e59d0,
+ 0xb01eaa24,
+ 0x42752927,
+ 0x96bf4dcc,
+ 0x64d4cecf,
+ 0x77843d3b,
+ 0x85efbe38,
+ 0xdbfc821c,
+ 0x2997011f,
+ 0x3ac7f2eb,
+ 0xc8ac71e8,
+ 0x1c661503,
+ 0xee0d9600,
+ 0xfd5d65f4,
+ 0x0f36e6f7,
+ 0x61c69362,
+ 0x93ad1061,
+ 0x80fde395,
+ 0x72966096,
+ 0xa65c047d,
+ 0x5437877e,
+ 0x4767748a,
+ 0xb50cf789,
+ 0xeb1fcbad,
+ 0x197448ae,
+ 0x0a24bb5a,
+ 0xf84f3859,
+ 0x2c855cb2,
+ 0xdeeedfb1,
+ 0xcdbe2c45,
+ 0x3fd5af46,
+ 0x7198540d,
+ 0x83f3d70e,
+ 0x90a324fa,
+ 0x62c8a7f9,
+ 0xb602c312,
+ 0x44694011,
+ 0x5739b3e5,
+ 0xa55230e6,
+ 0xfb410cc2,
+ 0x092a8fc1,
+ 0x1a7a7c35,
+ 0xe811ff36,
+ 0x3cdb9bdd,
+ 0xceb018de,
+ 0xdde0eb2a,
+ 0x2f8b6829,
+ 0x82f63b78,
+ 0x709db87b,
+ 0x63cd4b8f,
+ 0x91a6c88c,
+ 0x456cac67,
+ 0xb7072f64,
+ 0xa457dc90,
+ 0x563c5f93,
+ 0x082f63b7,
+ 0xfa44e0b4,
+ 0xe9141340,
+ 0x1b7f9043,
+ 0xcfb5f4a8,
+ 0x3dde77ab,
+ 0x2e8e845f,
+ 0xdce5075c,
+ 0x92a8fc17,
+ 0x60c37f14,
+ 0x73938ce0,
+ 0x81f80fe3,
+ 0x55326b08,
+ 0xa759e80b,
+ 0xb4091bff,
+ 0x466298fc,
+ 0x1871a4d8,
+ 0xea1a27db,
+ 0xf94ad42f,
+ 0x0b21572c,
+ 0xdfeb33c7,
+ 0x2d80b0c4,
+ 0x3ed04330,
+ 0xccbbc033,
+ 0xa24bb5a6,
+ 0x502036a5,
+ 0x4370c551,
+ 0xb11b4652,
+ 0x65d122b9,
+ 0x97baa1ba,
+ 0x84ea524e,
+ 0x7681d14d,
+ 0x2892ed69,
+ 0xdaf96e6a,
+ 0xc9a99d9e,
+ 0x3bc21e9d,
+ 0xef087a76,
+ 0x1d63f975,
+ 0x0e330a81,
+ 0xfc588982,
+ 0xb21572c9,
+ 0x407ef1ca,
+ 0x532e023e,
+ 0xa145813d,
+ 0x758fe5d6,
+ 0x87e466d5,
+ 0x94b49521,
+ 0x66df1622,
+ 0x38cc2a06,
+ 0xcaa7a905,
+ 0xd9f75af1,
+ 0x2b9cd9f2,
+ 0xff56bd19,
+ 0x0d3d3e1a,
+ 0x1e6dcdee,
+ 0xec064eed,
+ 0xc38d26c4,
+ 0x31e6a5c7,
+ 0x22b65633,
+ 0xd0ddd530,
+ 0x0417b1db,
+ 0xf67c32d8,
+ 0xe52cc12c,
+ 0x1747422f,
+ 0x49547e0b,
+ 0xbb3ffd08,
+ 0xa86f0efc,
+ 0x5a048dff,
+ 0x8ecee914,
+ 0x7ca56a17,
+ 0x6ff599e3,
+ 0x9d9e1ae0,
+ 0xd3d3e1ab,
+ 0x21b862a8,
+ 0x32e8915c,
+ 0xc083125f,
+ 0x144976b4,
+ 0xe622f5b7,
+ 0xf5720643,
+ 0x07198540,
+ 0x590ab964,
+ 0xab613a67,
+ 0xb831c993,
+ 0x4a5a4a90,
+ 0x9e902e7b,
+ 0x6cfbad78,
+ 0x7fab5e8c,
+ 0x8dc0dd8f,
+ 0xe330a81a,
+ 0x115b2b19,
+ 0x020bd8ed,
+ 0xf0605bee,
+ 0x24aa3f05,
+ 0xd6c1bc06,
+ 0xc5914ff2,
+ 0x37faccf1,
+ 0x69e9f0d5,
+ 0x9b8273d6,
+ 0x88d28022,
+ 0x7ab90321,
+ 0xae7367ca,
+ 0x5c18e4c9,
+ 0x4f48173d,
+ 0xbd23943e,
+ 0xf36e6f75,
+ 0x0105ec76,
+ 0x12551f82,
+ 0xe03e9c81,
+ 0x34f4f86a,
+ 0xc69f7b69,
+ 0xd5cf889d,
+ 0x27a40b9e,
+ 0x79b737ba,
+ 0x8bdcb4b9,
+ 0x988c474d,
+ 0x6ae7c44e,
+ 0xbe2da0a5,
+ 0x4c4623a6,
+ 0x5f16d052,
+ 0xad7d5351,
};
#endif
@@ -44,827 +268,827 @@ static const unsigned int crc_table[] = {
#define MAX_SIZE 32768
.constants :
- /* Reduce 262144 kbits to 1024 bits */
- /* x^261120 mod p(x)` << 1, x^261184 mod p(x)` << 1 */
- .octa 0x00000000b6ca9e20000000009c37c408
+ /* Reduce 262144 kbits to 1024 bits */
+ /* x^261120 mod p(x)` << 1, x^261184 mod p(x)` << 1 */
+ .octa 0x00000000b6ca9e20000000009c37c408
- /* x^260096 mod p(x)` << 1, x^260160 mod p(x)` << 1 */
- .octa 0x00000000350249a800000001b51df26c
+ /* x^260096 mod p(x)` << 1, x^260160 mod p(x)` << 1 */
+ .octa 0x00000000350249a800000001b51df26c
- /* x^259072 mod p(x)` << 1, x^259136 mod p(x)` << 1 */
- .octa 0x00000001862dac54000000000724b9d0
+ /* x^259072 mod p(x)` << 1, x^259136 mod p(x)` << 1 */
+ .octa 0x00000001862dac54000000000724b9d0
- /* x^258048 mod p(x)` << 1, x^258112 mod p(x)` << 1 */
- .octa 0x00000001d87fb48c00000001c00532fe
+ /* x^258048 mod p(x)` << 1, x^258112 mod p(x)` << 1 */
+ .octa 0x00000001d87fb48c00000001c00532fe
- /* x^257024 mod p(x)` << 1, x^257088 mod p(x)` << 1 */
- .octa 0x00000001f39b699e00000000f05a9362
+ /* x^257024 mod p(x)` << 1, x^257088 mod p(x)` << 1 */
+ .octa 0x00000001f39b699e00000000f05a9362
- /* x^256000 mod p(x)` << 1, x^256064 mod p(x)` << 1 */
- .octa 0x0000000101da11b400000001e1007970
+ /* x^256000 mod p(x)` << 1, x^256064 mod p(x)` << 1 */
+ .octa 0x0000000101da11b400000001e1007970
- /* x^254976 mod p(x)` << 1, x^255040 mod p(x)` << 1 */
- .octa 0x00000001cab571e000000000a57366ee
+ /* x^254976 mod p(x)` << 1, x^255040 mod p(x)` << 1 */
+ .octa 0x00000001cab571e000000000a57366ee
- /* x^253952 mod p(x)` << 1, x^254016 mod p(x)` << 1 */
- .octa 0x00000000c7020cfe0000000192011284
+ /* x^253952 mod p(x)` << 1, x^254016 mod p(x)` << 1 */
+ .octa 0x00000000c7020cfe0000000192011284
- /* x^252928 mod p(x)` << 1, x^252992 mod p(x)` << 1 */
- .octa 0x00000000cdaed1ae0000000162716d9a
+ /* x^252928 mod p(x)` << 1, x^252992 mod p(x)` << 1 */
+ .octa 0x00000000cdaed1ae0000000162716d9a
- /* x^251904 mod p(x)` << 1, x^251968 mod p(x)` << 1 */
- .octa 0x00000001e804effc00000000cd97ecde
+ /* x^251904 mod p(x)` << 1, x^251968 mod p(x)` << 1 */
+ .octa 0x00000001e804effc00000000cd97ecde
- /* x^250880 mod p(x)` << 1, x^250944 mod p(x)` << 1 */
- .octa 0x0000000077c3ea3a0000000058812bc0
+ /* x^250880 mod p(x)` << 1, x^250944 mod p(x)` << 1 */
+ .octa 0x0000000077c3ea3a0000000058812bc0
- /* x^249856 mod p(x)` << 1, x^249920 mod p(x)` << 1 */
- .octa 0x0000000068df31b40000000088b8c12e
+ /* x^249856 mod p(x)` << 1, x^249920 mod p(x)` << 1 */
+ .octa 0x0000000068df31b40000000088b8c12e
- /* x^248832 mod p(x)` << 1, x^248896 mod p(x)` << 1 */
- .octa 0x00000000b059b6c200000001230b234c
+ /* x^248832 mod p(x)` << 1, x^248896 mod p(x)` << 1 */
+ .octa 0x00000000b059b6c200000001230b234c
- /* x^247808 mod p(x)` << 1, x^247872 mod p(x)` << 1 */
- .octa 0x0000000145fb8ed800000001120b416e
+ /* x^247808 mod p(x)` << 1, x^247872 mod p(x)` << 1 */
+ .octa 0x0000000145fb8ed800000001120b416e
- /* x^246784 mod p(x)` << 1, x^246848 mod p(x)` << 1 */
- .octa 0x00000000cbc0916800000001974aecb0
+ /* x^246784 mod p(x)` << 1, x^246848 mod p(x)` << 1 */
+ .octa 0x00000000cbc0916800000001974aecb0
- /* x^245760 mod p(x)` << 1, x^245824 mod p(x)` << 1 */
- .octa 0x000000005ceeedc2000000008ee3f226
+ /* x^245760 mod p(x)` << 1, x^245824 mod p(x)` << 1 */
+ .octa 0x000000005ceeedc2000000008ee3f226
- /* x^244736 mod p(x)` << 1, x^244800 mod p(x)` << 1 */
- .octa 0x0000000047d74e8600000001089aba9a
+ /* x^244736 mod p(x)` << 1, x^244800 mod p(x)` << 1 */
+ .octa 0x0000000047d74e8600000001089aba9a
- /* x^243712 mod p(x)` << 1, x^243776 mod p(x)` << 1 */
- .octa 0x00000001407e9e220000000065113872
+ /* x^243712 mod p(x)` << 1, x^243776 mod p(x)` << 1 */
+ .octa 0x00000001407e9e220000000065113872
- /* x^242688 mod p(x)` << 1, x^242752 mod p(x)` << 1 */
- .octa 0x00000001da967bda000000005c07ec10
+ /* x^242688 mod p(x)` << 1, x^242752 mod p(x)` << 1 */
+ .octa 0x00000001da967bda000000005c07ec10
- /* x^241664 mod p(x)` << 1, x^241728 mod p(x)` << 1 */
- .octa 0x000000006c8983680000000187590924
+ /* x^241664 mod p(x)` << 1, x^241728 mod p(x)` << 1 */
+ .octa 0x000000006c8983680000000187590924
- /* x^240640 mod p(x)` << 1, x^240704 mod p(x)` << 1 */
- .octa 0x00000000f2d14c9800000000e35da7c6
+ /* x^240640 mod p(x)` << 1, x^240704 mod p(x)` << 1 */
+ .octa 0x00000000f2d14c9800000000e35da7c6
- /* x^239616 mod p(x)` << 1, x^239680 mod p(x)` << 1 */
- .octa 0x00000001993c6ad4000000000415855a
+ /* x^239616 mod p(x)` << 1, x^239680 mod p(x)` << 1 */
+ .octa 0x00000001993c6ad4000000000415855a
- /* x^238592 mod p(x)` << 1, x^238656 mod p(x)` << 1 */
- .octa 0x000000014683d1ac0000000073617758
+ /* x^238592 mod p(x)` << 1, x^238656 mod p(x)` << 1 */
+ .octa 0x000000014683d1ac0000000073617758
- /* x^237568 mod p(x)` << 1, x^237632 mod p(x)` << 1 */
- .octa 0x00000001a7c93e6c0000000176021d28
+ /* x^237568 mod p(x)` << 1, x^237632 mod p(x)` << 1 */
+ .octa 0x00000001a7c93e6c0000000176021d28
- /* x^236544 mod p(x)` << 1, x^236608 mod p(x)` << 1 */
- .octa 0x000000010211e90a00000001c358fd0a
+ /* x^236544 mod p(x)` << 1, x^236608 mod p(x)` << 1 */
+ .octa 0x000000010211e90a00000001c358fd0a
- /* x^235520 mod p(x)` << 1, x^235584 mod p(x)` << 1 */
- .octa 0x000000001119403e00000001ff7a2c18
+ /* x^235520 mod p(x)` << 1, x^235584 mod p(x)` << 1 */
+ .octa 0x000000001119403e00000001ff7a2c18
- /* x^234496 mod p(x)` << 1, x^234560 mod p(x)` << 1 */
- .octa 0x000000001c3261aa00000000f2d9f7e4
+ /* x^234496 mod p(x)` << 1, x^234560 mod p(x)` << 1 */
+ .octa 0x000000001c3261aa00000000f2d9f7e4
- /* x^233472 mod p(x)` << 1, x^233536 mod p(x)` << 1 */
- .octa 0x000000014e37a634000000016cf1f9c8
+ /* x^233472 mod p(x)` << 1, x^233536 mod p(x)` << 1 */
+ .octa 0x000000014e37a634000000016cf1f9c8
- /* x^232448 mod p(x)` << 1, x^232512 mod p(x)` << 1 */
- .octa 0x0000000073786c0c000000010af9279a
+ /* x^232448 mod p(x)` << 1, x^232512 mod p(x)` << 1 */
+ .octa 0x0000000073786c0c000000010af9279a
- /* x^231424 mod p(x)` << 1, x^231488 mod p(x)` << 1 */
- .octa 0x000000011dc037f80000000004f101e8
+ /* x^231424 mod p(x)` << 1, x^231488 mod p(x)` << 1 */
+ .octa 0x000000011dc037f80000000004f101e8
- /* x^230400 mod p(x)` << 1, x^230464 mod p(x)` << 1 */
- .octa 0x0000000031433dfc0000000070bcf184
+ /* x^230400 mod p(x)` << 1, x^230464 mod p(x)` << 1 */
+ .octa 0x0000000031433dfc0000000070bcf184
- /* x^229376 mod p(x)` << 1, x^229440 mod p(x)` << 1 */
- .octa 0x000000009cde8348000000000a8de642
+ /* x^229376 mod p(x)` << 1, x^229440 mod p(x)` << 1 */
+ .octa 0x000000009cde8348000000000a8de642
- /* x^228352 mod p(x)` << 1, x^228416 mod p(x)` << 1 */
- .octa 0x0000000038d3c2a60000000062ea130c
+ /* x^228352 mod p(x)` << 1, x^228416 mod p(x)` << 1 */
+ .octa 0x0000000038d3c2a60000000062ea130c
- /* x^227328 mod p(x)` << 1, x^227392 mod p(x)` << 1 */
- .octa 0x000000011b25f26000000001eb31cbb2
+ /* x^227328 mod p(x)` << 1, x^227392 mod p(x)` << 1 */
+ .octa 0x000000011b25f26000000001eb31cbb2
- /* x^226304 mod p(x)` << 1, x^226368 mod p(x)` << 1 */
- .octa 0x000000001629e6f00000000170783448
+ /* x^226304 mod p(x)` << 1, x^226368 mod p(x)` << 1 */
+ .octa 0x000000001629e6f00000000170783448
- /* x^225280 mod p(x)` << 1, x^225344 mod p(x)` << 1 */
- .octa 0x0000000160838b4c00000001a684b4c6
+ /* x^225280 mod p(x)` << 1, x^225344 mod p(x)` << 1 */
+ .octa 0x0000000160838b4c00000001a684b4c6
- /* x^224256 mod p(x)` << 1, x^224320 mod p(x)` << 1 */
- .octa 0x000000007a44011c00000000253ca5b4
+ /* x^224256 mod p(x)` << 1, x^224320 mod p(x)` << 1 */
+ .octa 0x000000007a44011c00000000253ca5b4
- /* x^223232 mod p(x)` << 1, x^223296 mod p(x)` << 1 */
- .octa 0x00000000226f417a0000000057b4b1e2
+ /* x^223232 mod p(x)` << 1, x^223296 mod p(x)` << 1 */
+ .octa 0x00000000226f417a0000000057b4b1e2
- /* x^222208 mod p(x)` << 1, x^222272 mod p(x)` << 1 */
- .octa 0x0000000045eb2eb400000000b6bd084c
+ /* x^222208 mod p(x)` << 1, x^222272 mod p(x)` << 1 */
+ .octa 0x0000000045eb2eb400000000b6bd084c
- /* x^221184 mod p(x)` << 1, x^221248 mod p(x)` << 1 */
- .octa 0x000000014459d70c0000000123c2d592
+ /* x^221184 mod p(x)` << 1, x^221248 mod p(x)` << 1 */
+ .octa 0x000000014459d70c0000000123c2d592
- /* x^220160 mod p(x)` << 1, x^220224 mod p(x)` << 1 */
- .octa 0x00000001d406ed8200000000159dafce
+ /* x^220160 mod p(x)` << 1, x^220224 mod p(x)` << 1 */
+ .octa 0x00000001d406ed8200000000159dafce
- /* x^219136 mod p(x)` << 1, x^219200 mod p(x)` << 1 */
- .octa 0x0000000160c8e1a80000000127e1a64e
+ /* x^219136 mod p(x)` << 1, x^219200 mod p(x)` << 1 */
+ .octa 0x0000000160c8e1a80000000127e1a64e
- /* x^218112 mod p(x)` << 1, x^218176 mod p(x)` << 1 */
- .octa 0x0000000027ba80980000000056860754
+ /* x^218112 mod p(x)` << 1, x^218176 mod p(x)` << 1 */
+ .octa 0x0000000027ba80980000000056860754
- /* x^217088 mod p(x)` << 1, x^217152 mod p(x)` << 1 */
- .octa 0x000000006d92d01800000001e661aae8
+ /* x^217088 mod p(x)` << 1, x^217152 mod p(x)` << 1 */
+ .octa 0x000000006d92d01800000001e661aae8
- /* x^216064 mod p(x)` << 1, x^216128 mod p(x)` << 1 */
- .octa 0x000000012ed7e3f200000000f82c6166
+ /* x^216064 mod p(x)` << 1, x^216128 mod p(x)` << 1 */
+ .octa 0x000000012ed7e3f200000000f82c6166
- /* x^215040 mod p(x)` << 1, x^215104 mod p(x)` << 1 */
- .octa 0x000000002dc8778800000000c4f9c7ae
+ /* x^215040 mod p(x)` << 1, x^215104 mod p(x)` << 1 */
+ .octa 0x000000002dc8778800000000c4f9c7ae
- /* x^214016 mod p(x)` << 1, x^214080 mod p(x)` << 1 */
- .octa 0x0000000018240bb80000000074203d20
+ /* x^214016 mod p(x)` << 1, x^214080 mod p(x)` << 1 */
+ .octa 0x0000000018240bb80000000074203d20
- /* x^212992 mod p(x)` << 1, x^213056 mod p(x)` << 1 */
- .octa 0x000000001ad381580000000198173052
+ /* x^212992 mod p(x)` << 1, x^213056 mod p(x)` << 1 */
+ .octa 0x000000001ad381580000000198173052
- /* x^211968 mod p(x)` << 1, x^212032 mod p(x)` << 1 */
- .octa 0x00000001396b78f200000001ce8aba54
+ /* x^211968 mod p(x)` << 1, x^212032 mod p(x)` << 1 */
+ .octa 0x00000001396b78f200000001ce8aba54
- /* x^210944 mod p(x)` << 1, x^211008 mod p(x)` << 1 */
- .octa 0x000000011a68133400000001850d5d94
+ /* x^210944 mod p(x)` << 1, x^211008 mod p(x)` << 1 */
+ .octa 0x000000011a68133400000001850d5d94
- /* x^209920 mod p(x)` << 1, x^209984 mod p(x)` << 1 */
- .octa 0x000000012104732e00000001d609239c
+ /* x^209920 mod p(x)` << 1, x^209984 mod p(x)` << 1 */
+ .octa 0x000000012104732e00000001d609239c
- /* x^208896 mod p(x)` << 1, x^208960 mod p(x)` << 1 */
- .octa 0x00000000a140d90c000000001595f048
+ /* x^208896 mod p(x)` << 1, x^208960 mod p(x)` << 1 */
+ .octa 0x00000000a140d90c000000001595f048
- /* x^207872 mod p(x)` << 1, x^207936 mod p(x)` << 1 */
- .octa 0x00000001b7215eda0000000042ccee08
+ /* x^207872 mod p(x)` << 1, x^207936 mod p(x)` << 1 */
+ .octa 0x00000001b7215eda0000000042ccee08
- /* x^206848 mod p(x)` << 1, x^206912 mod p(x)` << 1 */
- .octa 0x00000001aaf1df3c000000010a389d74
+ /* x^206848 mod p(x)` << 1, x^206912 mod p(x)` << 1 */
+ .octa 0x00000001aaf1df3c000000010a389d74
- /* x^205824 mod p(x)` << 1, x^205888 mod p(x)` << 1 */
- .octa 0x0000000029d15b8a000000012a840da6
+ /* x^205824 mod p(x)` << 1, x^205888 mod p(x)` << 1 */
+ .octa 0x0000000029d15b8a000000012a840da6
- /* x^204800 mod p(x)` << 1, x^204864 mod p(x)` << 1 */
- .octa 0x00000000f1a96922000000001d181c0c
+ /* x^204800 mod p(x)` << 1, x^204864 mod p(x)` << 1 */
+ .octa 0x00000000f1a96922000000001d181c0c
- /* x^203776 mod p(x)` << 1, x^203840 mod p(x)` << 1 */
- .octa 0x00000001ac80d03c0000000068b7d1f6
+ /* x^203776 mod p(x)` << 1, x^203840 mod p(x)` << 1 */
+ .octa 0x00000001ac80d03c0000000068b7d1f6
- /* x^202752 mod p(x)` << 1, x^202816 mod p(x)` << 1 */
- .octa 0x000000000f11d56a000000005b0f14fc
+ /* x^202752 mod p(x)` << 1, x^202816 mod p(x)` << 1 */
+ .octa 0x000000000f11d56a000000005b0f14fc
- /* x^201728 mod p(x)` << 1, x^201792 mod p(x)` << 1 */
- .octa 0x00000001f1c022a20000000179e9e730
+ /* x^201728 mod p(x)` << 1, x^201792 mod p(x)` << 1 */
+ .octa 0x00000001f1c022a20000000179e9e730
- /* x^200704 mod p(x)` << 1, x^200768 mod p(x)` << 1 */
- .octa 0x0000000173d00ae200000001ce1368d6
+ /* x^200704 mod p(x)` << 1, x^200768 mod p(x)` << 1 */
+ .octa 0x0000000173d00ae200000001ce1368d6
- /* x^199680 mod p(x)` << 1, x^199744 mod p(x)` << 1 */
- .octa 0x00000001d4ffe4ac0000000112c3a84c
+ /* x^199680 mod p(x)` << 1, x^199744 mod p(x)` << 1 */
+ .octa 0x00000001d4ffe4ac0000000112c3a84c
- /* x^198656 mod p(x)` << 1, x^198720 mod p(x)` << 1 */
- .octa 0x000000016edc5ae400000000de940fee
+ /* x^198656 mod p(x)` << 1, x^198720 mod p(x)` << 1 */
+ .octa 0x000000016edc5ae400000000de940fee
- /* x^197632 mod p(x)` << 1, x^197696 mod p(x)` << 1 */
- .octa 0x00000001f1a0214000000000fe896b7e
+ /* x^197632 mod p(x)` << 1, x^197696 mod p(x)` << 1 */
+ .octa 0x00000001f1a0214000000000fe896b7e
- /* x^196608 mod p(x)` << 1, x^196672 mod p(x)` << 1 */
- .octa 0x00000000ca0b28a000000001f797431c
+ /* x^196608 mod p(x)` << 1, x^196672 mod p(x)` << 1 */
+ .octa 0x00000000ca0b28a000000001f797431c
- /* x^195584 mod p(x)` << 1, x^195648 mod p(x)` << 1 */
- .octa 0x00000001928e30a20000000053e989ba
+ /* x^195584 mod p(x)` << 1, x^195648 mod p(x)` << 1 */
+ .octa 0x00000001928e30a20000000053e989ba
- /* x^194560 mod p(x)` << 1, x^194624 mod p(x)` << 1 */
- .octa 0x0000000097b1b002000000003920cd16
+ /* x^194560 mod p(x)` << 1, x^194624 mod p(x)` << 1 */
+ .octa 0x0000000097b1b002000000003920cd16
- /* x^193536 mod p(x)` << 1, x^193600 mod p(x)` << 1 */
- .octa 0x00000000b15bf90600000001e6f579b8
+ /* x^193536 mod p(x)` << 1, x^193600 mod p(x)` << 1 */
+ .octa 0x00000000b15bf90600000001e6f579b8
- /* x^192512 mod p(x)` << 1, x^192576 mod p(x)` << 1 */
- .octa 0x00000000411c5d52000000007493cb0a
+ /* x^192512 mod p(x)` << 1, x^192576 mod p(x)` << 1 */
+ .octa 0x00000000411c5d52000000007493cb0a
- /* x^191488 mod p(x)` << 1, x^191552 mod p(x)` << 1 */
- .octa 0x00000001c36f330000000001bdd376d8
+ /* x^191488 mod p(x)` << 1, x^191552 mod p(x)` << 1 */
+ .octa 0x00000001c36f330000000001bdd376d8
- /* x^190464 mod p(x)` << 1, x^190528 mod p(x)` << 1 */
- .octa 0x00000001119227e0000000016badfee6
+ /* x^190464 mod p(x)` << 1, x^190528 mod p(x)` << 1 */
+ .octa 0x00000001119227e0000000016badfee6
- /* x^189440 mod p(x)` << 1, x^189504 mod p(x)` << 1 */
- .octa 0x00000000114d47020000000071de5c58
+ /* x^189440 mod p(x)` << 1, x^189504 mod p(x)` << 1 */
+ .octa 0x00000000114d47020000000071de5c58
- /* x^188416 mod p(x)` << 1, x^188480 mod p(x)` << 1 */
- .octa 0x00000000458b5b9800000000453f317c
+ /* x^188416 mod p(x)` << 1, x^188480 mod p(x)` << 1 */
+ .octa 0x00000000458b5b9800000000453f317c
- /* x^187392 mod p(x)` << 1, x^187456 mod p(x)` << 1 */
- .octa 0x000000012e31fb8e0000000121675cce
+ /* x^187392 mod p(x)` << 1, x^187456 mod p(x)` << 1 */
+ .octa 0x000000012e31fb8e0000000121675cce
- /* x^186368 mod p(x)` << 1, x^186432 mod p(x)` << 1 */
- .octa 0x000000005cf619d800000001f409ee92
+ /* x^186368 mod p(x)` << 1, x^186432 mod p(x)` << 1 */
+ .octa 0x000000005cf619d800000001f409ee92
- /* x^185344 mod p(x)` << 1, x^185408 mod p(x)` << 1 */
- .octa 0x0000000063f4d8b200000000f36b9c88
+ /* x^185344 mod p(x)` << 1, x^185408 mod p(x)` << 1 */
+ .octa 0x0000000063f4d8b200000000f36b9c88
- /* x^184320 mod p(x)` << 1, x^184384 mod p(x)` << 1 */
- .octa 0x000000004138dc8a0000000036b398f4
+ /* x^184320 mod p(x)` << 1, x^184384 mod p(x)` << 1 */
+ .octa 0x000000004138dc8a0000000036b398f4
- /* x^183296 mod p(x)` << 1, x^183360 mod p(x)` << 1 */
- .octa 0x00000001d29ee8e000000001748f9adc
+ /* x^183296 mod p(x)` << 1, x^183360 mod p(x)` << 1 */
+ .octa 0x00000001d29ee8e000000001748f9adc
- /* x^182272 mod p(x)` << 1, x^182336 mod p(x)` << 1 */
- .octa 0x000000006a08ace800000001be94ec00
+ /* x^182272 mod p(x)` << 1, x^182336 mod p(x)` << 1 */
+ .octa 0x000000006a08ace800000001be94ec00
- /* x^181248 mod p(x)` << 1, x^181312 mod p(x)` << 1 */
- .octa 0x0000000127d4201000000000b74370d6
+ /* x^181248 mod p(x)` << 1, x^181312 mod p(x)` << 1 */
+ .octa 0x0000000127d4201000000000b74370d6
- /* x^180224 mod p(x)` << 1, x^180288 mod p(x)` << 1 */
- .octa 0x0000000019d76b6200000001174d0b98
+ /* x^180224 mod p(x)` << 1, x^180288 mod p(x)` << 1 */
+ .octa 0x0000000019d76b6200000001174d0b98
- /* x^179200 mod p(x)` << 1, x^179264 mod p(x)` << 1 */
- .octa 0x00000001b1471f6e00000000befc06a4
+ /* x^179200 mod p(x)` << 1, x^179264 mod p(x)` << 1 */
+ .octa 0x00000001b1471f6e00000000befc06a4
- /* x^178176 mod p(x)` << 1, x^178240 mod p(x)` << 1 */
- .octa 0x00000001f64c19cc00000001ae125288
+ /* x^178176 mod p(x)` << 1, x^178240 mod p(x)` << 1 */
+ .octa 0x00000001f64c19cc00000001ae125288
- /* x^177152 mod p(x)` << 1, x^177216 mod p(x)` << 1 */
- .octa 0x00000000003c0ea00000000095c19b34
+ /* x^177152 mod p(x)` << 1, x^177216 mod p(x)` << 1 */
+ .octa 0x00000000003c0ea00000000095c19b34
- /* x^176128 mod p(x)` << 1, x^176192 mod p(x)` << 1 */
- .octa 0x000000014d73abf600000001a78496f2
+ /* x^176128 mod p(x)` << 1, x^176192 mod p(x)` << 1 */
+ .octa 0x000000014d73abf600000001a78496f2
- /* x^175104 mod p(x)` << 1, x^175168 mod p(x)` << 1 */
- .octa 0x00000001620eb84400000001ac5390a0
+ /* x^175104 mod p(x)` << 1, x^175168 mod p(x)` << 1 */
+ .octa 0x00000001620eb84400000001ac5390a0
- /* x^174080 mod p(x)` << 1, x^174144 mod p(x)` << 1 */
- .octa 0x0000000147655048000000002a80ed6e
+ /* x^174080 mod p(x)` << 1, x^174144 mod p(x)` << 1 */
+ .octa 0x0000000147655048000000002a80ed6e
- /* x^173056 mod p(x)` << 1, x^173120 mod p(x)` << 1 */
- .octa 0x0000000067b5077e00000001fa9b0128
+ /* x^173056 mod p(x)` << 1, x^173120 mod p(x)` << 1 */
+ .octa 0x0000000067b5077e00000001fa9b0128
- /* x^172032 mod p(x)` << 1, x^172096 mod p(x)` << 1 */
- .octa 0x0000000010ffe20600000001ea94929e
+ /* x^172032 mod p(x)` << 1, x^172096 mod p(x)` << 1 */
+ .octa 0x0000000010ffe20600000001ea94929e
- /* x^171008 mod p(x)` << 1, x^171072 mod p(x)` << 1 */
- .octa 0x000000000fee8f1e0000000125f4305c
+ /* x^171008 mod p(x)` << 1, x^171072 mod p(x)` << 1 */
+ .octa 0x000000000fee8f1e0000000125f4305c
- /* x^169984 mod p(x)` << 1, x^170048 mod p(x)` << 1 */
- .octa 0x00000001da26fbae00000001471e2002
+ /* x^169984 mod p(x)` << 1, x^170048 mod p(x)` << 1 */
+ .octa 0x00000001da26fbae00000001471e2002
- /* x^168960 mod p(x)` << 1, x^169024 mod p(x)` << 1 */
- .octa 0x00000001b3a8bd880000000132d2253a
+ /* x^168960 mod p(x)` << 1, x^169024 mod p(x)` << 1 */
+ .octa 0x00000001b3a8bd880000000132d2253a
- /* x^167936 mod p(x)` << 1, x^168000 mod p(x)` << 1 */
- .octa 0x00000000e8f3898e00000000f26b3592
+ /* x^167936 mod p(x)` << 1, x^168000 mod p(x)` << 1 */
+ .octa 0x00000000e8f3898e00000000f26b3592
- /* x^166912 mod p(x)` << 1, x^166976 mod p(x)` << 1 */
- .octa 0x00000000b0d0d28c00000000bc8b67b0
+ /* x^166912 mod p(x)` << 1, x^166976 mod p(x)` << 1 */
+ .octa 0x00000000b0d0d28c00000000bc8b67b0
- /* x^165888 mod p(x)` << 1, x^165952 mod p(x)` << 1 */
- .octa 0x0000000030f2a798000000013a826ef2
+ /* x^165888 mod p(x)` << 1, x^165952 mod p(x)` << 1 */
+ .octa 0x0000000030f2a798000000013a826ef2
- /* x^164864 mod p(x)` << 1, x^164928 mod p(x)` << 1 */
- .octa 0x000000000fba10020000000081482c84
+ /* x^164864 mod p(x)` << 1, x^164928 mod p(x)` << 1 */
+ .octa 0x000000000fba10020000000081482c84
- /* x^163840 mod p(x)` << 1, x^163904 mod p(x)` << 1 */
- .octa 0x00000000bdb9bd7200000000e77307c2
+ /* x^163840 mod p(x)` << 1, x^163904 mod p(x)` << 1 */
+ .octa 0x00000000bdb9bd7200000000e77307c2
- /* x^162816 mod p(x)` << 1, x^162880 mod p(x)` << 1 */
- .octa 0x0000000075d3bf5a00000000d4a07ec8
+ /* x^162816 mod p(x)` << 1, x^162880 mod p(x)` << 1 */
+ .octa 0x0000000075d3bf5a00000000d4a07ec8
- /* x^161792 mod p(x)` << 1, x^161856 mod p(x)` << 1 */
- .octa 0x00000000ef1f98a00000000017102100
+ /* x^161792 mod p(x)` << 1, x^161856 mod p(x)` << 1 */
+ .octa 0x00000000ef1f98a00000000017102100
- /* x^160768 mod p(x)` << 1, x^160832 mod p(x)` << 1 */
- .octa 0x00000000689c760200000000db406486
+ /* x^160768 mod p(x)` << 1, x^160832 mod p(x)` << 1 */
+ .octa 0x00000000689c760200000000db406486
- /* x^159744 mod p(x)` << 1, x^159808 mod p(x)` << 1 */
- .octa 0x000000016d5fa5fe0000000192db7f88
+ /* x^159744 mod p(x)` << 1, x^159808 mod p(x)` << 1 */
+ .octa 0x000000016d5fa5fe0000000192db7f88
- /* x^158720 mod p(x)` << 1, x^158784 mod p(x)` << 1 */
- .octa 0x00000001d0d2b9ca000000018bf67b1e
+ /* x^158720 mod p(x)` << 1, x^158784 mod p(x)` << 1 */
+ .octa 0x00000001d0d2b9ca000000018bf67b1e
- /* x^157696 mod p(x)` << 1, x^157760 mod p(x)` << 1 */
- .octa 0x0000000041e7b470000000007c09163e
+ /* x^157696 mod p(x)` << 1, x^157760 mod p(x)` << 1 */
+ .octa 0x0000000041e7b470000000007c09163e
- /* x^156672 mod p(x)` << 1, x^156736 mod p(x)` << 1 */
- .octa 0x00000001cbb6495e000000000adac060
+ /* x^156672 mod p(x)` << 1, x^156736 mod p(x)` << 1 */
+ .octa 0x00000001cbb6495e000000000adac060
- /* x^155648 mod p(x)` << 1, x^155712 mod p(x)` << 1 */
- .octa 0x000000010052a0b000000000bd8316ae
+ /* x^155648 mod p(x)` << 1, x^155712 mod p(x)` << 1 */
+ .octa 0x000000010052a0b000000000bd8316ae
- /* x^154624 mod p(x)` << 1, x^154688 mod p(x)` << 1 */
- .octa 0x00000001d8effb5c000000019f09ab54
+ /* x^154624 mod p(x)` << 1, x^154688 mod p(x)` << 1 */
+ .octa 0x00000001d8effb5c000000019f09ab54
- /* x^153600 mod p(x)` << 1, x^153664 mod p(x)` << 1 */
- .octa 0x00000001d969853c0000000125155542
+ /* x^153600 mod p(x)` << 1, x^153664 mod p(x)` << 1 */
+ .octa 0x00000001d969853c0000000125155542
- /* x^152576 mod p(x)` << 1, x^152640 mod p(x)` << 1 */
- .octa 0x00000000523ccce2000000018fdb5882
+ /* x^152576 mod p(x)` << 1, x^152640 mod p(x)` << 1 */
+ .octa 0x00000000523ccce2000000018fdb5882
- /* x^151552 mod p(x)` << 1, x^151616 mod p(x)` << 1 */
- .octa 0x000000001e2436bc00000000e794b3f4
+ /* x^151552 mod p(x)` << 1, x^151616 mod p(x)` << 1 */
+ .octa 0x000000001e2436bc00000000e794b3f4
- /* x^150528 mod p(x)` << 1, x^150592 mod p(x)` << 1 */
- .octa 0x00000000ddd1c3a2000000016f9bb022
+ /* x^150528 mod p(x)` << 1, x^150592 mod p(x)` << 1 */
+ .octa 0x00000000ddd1c3a2000000016f9bb022
- /* x^149504 mod p(x)` << 1, x^149568 mod p(x)` << 1 */
- .octa 0x0000000019fcfe3800000000290c9978
+ /* x^149504 mod p(x)` << 1, x^149568 mod p(x)` << 1 */
+ .octa 0x0000000019fcfe3800000000290c9978
- /* x^148480 mod p(x)` << 1, x^148544 mod p(x)` << 1 */
- .octa 0x00000001ce95db640000000083c0f350
+ /* x^148480 mod p(x)` << 1, x^148544 mod p(x)` << 1 */
+ .octa 0x00000001ce95db640000000083c0f350
- /* x^147456 mod p(x)` << 1, x^147520 mod p(x)` << 1 */
- .octa 0x00000000af5828060000000173ea6628
+ /* x^147456 mod p(x)` << 1, x^147520 mod p(x)` << 1 */
+ .octa 0x00000000af5828060000000173ea6628
- /* x^146432 mod p(x)` << 1, x^146496 mod p(x)` << 1 */
- .octa 0x00000001006388f600000001c8b4e00a
+ /* x^146432 mod p(x)` << 1, x^146496 mod p(x)` << 1 */
+ .octa 0x00000001006388f600000001c8b4e00a
- /* x^145408 mod p(x)` << 1, x^145472 mod p(x)` << 1 */
- .octa 0x0000000179eca00a00000000de95d6aa
+ /* x^145408 mod p(x)` << 1, x^145472 mod p(x)` << 1 */
+ .octa 0x0000000179eca00a00000000de95d6aa
- /* x^144384 mod p(x)` << 1, x^144448 mod p(x)` << 1 */
- .octa 0x0000000122410a6a000000010b7f7248
+ /* x^144384 mod p(x)` << 1, x^144448 mod p(x)` << 1 */
+ .octa 0x0000000122410a6a000000010b7f7248
- /* x^143360 mod p(x)` << 1, x^143424 mod p(x)` << 1 */
- .octa 0x000000004288e87c00000001326e3a06
+ /* x^143360 mod p(x)` << 1, x^143424 mod p(x)` << 1 */
+ .octa 0x000000004288e87c00000001326e3a06
- /* x^142336 mod p(x)` << 1, x^142400 mod p(x)` << 1 */
- .octa 0x000000016c5490da00000000bb62c2e6
+ /* x^142336 mod p(x)` << 1, x^142400 mod p(x)` << 1 */
+ .octa 0x000000016c5490da00000000bb62c2e6
- /* x^141312 mod p(x)` << 1, x^141376 mod p(x)` << 1 */
- .octa 0x00000000d1c71f6e0000000156a4b2c2
+ /* x^141312 mod p(x)` << 1, x^141376 mod p(x)` << 1 */
+ .octa 0x00000000d1c71f6e0000000156a4b2c2
- /* x^140288 mod p(x)` << 1, x^140352 mod p(x)` << 1 */
- .octa 0x00000001b4ce08a6000000011dfe763a
+ /* x^140288 mod p(x)` << 1, x^140352 mod p(x)` << 1 */
+ .octa 0x00000001b4ce08a6000000011dfe763a
- /* x^139264 mod p(x)` << 1, x^139328 mod p(x)` << 1 */
- .octa 0x00000001466ba60c000000007bcca8e2
+ /* x^139264 mod p(x)` << 1, x^139328 mod p(x)` << 1 */
+ .octa 0x00000001466ba60c000000007bcca8e2
- /* x^138240 mod p(x)` << 1, x^138304 mod p(x)` << 1 */
- .octa 0x00000001f6c488a40000000186118faa
+ /* x^138240 mod p(x)` << 1, x^138304 mod p(x)` << 1 */
+ .octa 0x00000001f6c488a40000000186118faa
- /* x^137216 mod p(x)` << 1, x^137280 mod p(x)` << 1 */
- .octa 0x000000013bfb06820000000111a65a88
+ /* x^137216 mod p(x)` << 1, x^137280 mod p(x)` << 1 */
+ .octa 0x000000013bfb06820000000111a65a88
- /* x^136192 mod p(x)` << 1, x^136256 mod p(x)` << 1 */
- .octa 0x00000000690e9e54000000003565e1c4
+ /* x^136192 mod p(x)` << 1, x^136256 mod p(x)` << 1 */
+ .octa 0x00000000690e9e54000000003565e1c4
- /* x^135168 mod p(x)` << 1, x^135232 mod p(x)` << 1 */
- .octa 0x00000000281346b6000000012ed02a82
+ /* x^135168 mod p(x)` << 1, x^135232 mod p(x)` << 1 */
+ .octa 0x00000000281346b6000000012ed02a82
- /* x^134144 mod p(x)` << 1, x^134208 mod p(x)` << 1 */
- .octa 0x000000015646402400000000c486ecfc
+ /* x^134144 mod p(x)` << 1, x^134208 mod p(x)` << 1 */
+ .octa 0x000000015646402400000000c486ecfc
- /* x^133120 mod p(x)` << 1, x^133184 mod p(x)` << 1 */
- .octa 0x000000016063a8dc0000000001b951b2
+ /* x^133120 mod p(x)` << 1, x^133184 mod p(x)` << 1 */
+ .octa 0x000000016063a8dc0000000001b951b2
- /* x^132096 mod p(x)` << 1, x^132160 mod p(x)` << 1 */
- .octa 0x0000000116a663620000000048143916
+ /* x^132096 mod p(x)` << 1, x^132160 mod p(x)` << 1 */
+ .octa 0x0000000116a663620000000048143916
- /* x^131072 mod p(x)` << 1, x^131136 mod p(x)` << 1 */
- .octa 0x000000017e8aa4d200000001dc2ae124
+ /* x^131072 mod p(x)` << 1, x^131136 mod p(x)` << 1 */
+ .octa 0x000000017e8aa4d200000001dc2ae124
- /* x^130048 mod p(x)` << 1, x^130112 mod p(x)` << 1 */
- .octa 0x00000001728eb10c00000001416c58d6
+ /* x^130048 mod p(x)` << 1, x^130112 mod p(x)` << 1 */
+ .octa 0x00000001728eb10c00000001416c58d6
- /* x^129024 mod p(x)` << 1, x^129088 mod p(x)` << 1 */
- .octa 0x00000001b08fd7fa00000000a479744a
+ /* x^129024 mod p(x)` << 1, x^129088 mod p(x)` << 1 */
+ .octa 0x00000001b08fd7fa00000000a479744a
- /* x^128000 mod p(x)` << 1, x^128064 mod p(x)` << 1 */
- .octa 0x00000001092a16e80000000096ca3a26
+ /* x^128000 mod p(x)` << 1, x^128064 mod p(x)` << 1 */
+ .octa 0x00000001092a16e80000000096ca3a26
- /* x^126976 mod p(x)` << 1, x^127040 mod p(x)` << 1 */
- .octa 0x00000000a505637c00000000ff223d4e
+ /* x^126976 mod p(x)` << 1, x^127040 mod p(x)` << 1 */
+ .octa 0x00000000a505637c00000000ff223d4e
- /* x^125952 mod p(x)` << 1, x^126016 mod p(x)` << 1 */
- .octa 0x00000000d94869b2000000010e84da42
+ /* x^125952 mod p(x)` << 1, x^126016 mod p(x)` << 1 */
+ .octa 0x00000000d94869b2000000010e84da42
- /* x^124928 mod p(x)` << 1, x^124992 mod p(x)` << 1 */
- .octa 0x00000001c8b203ae00000001b61ba3d0
+ /* x^124928 mod p(x)` << 1, x^124992 mod p(x)` << 1 */
+ .octa 0x00000001c8b203ae00000001b61ba3d0
- /* x^123904 mod p(x)` << 1, x^123968 mod p(x)` << 1 */
- .octa 0x000000005704aea000000000680f2de8
+ /* x^123904 mod p(x)` << 1, x^123968 mod p(x)` << 1 */
+ .octa 0x000000005704aea000000000680f2de8
- /* x^122880 mod p(x)` << 1, x^122944 mod p(x)` << 1 */
- .octa 0x000000012e295fa2000000008772a9a8
+ /* x^122880 mod p(x)` << 1, x^122944 mod p(x)` << 1 */
+ .octa 0x000000012e295fa2000000008772a9a8
- /* x^121856 mod p(x)` << 1, x^121920 mod p(x)` << 1 */
- .octa 0x000000011d0908bc0000000155f295bc
+ /* x^121856 mod p(x)` << 1, x^121920 mod p(x)` << 1 */
+ .octa 0x000000011d0908bc0000000155f295bc
- /* x^120832 mod p(x)` << 1, x^120896 mod p(x)` << 1 */
- .octa 0x0000000193ed97ea00000000595f9282
+ /* x^120832 mod p(x)` << 1, x^120896 mod p(x)` << 1 */
+ .octa 0x0000000193ed97ea00000000595f9282
- /* x^119808 mod p(x)` << 1, x^119872 mod p(x)` << 1 */
- .octa 0x000000013a0f1c520000000164b1c25a
+ /* x^119808 mod p(x)` << 1, x^119872 mod p(x)` << 1 */
+ .octa 0x000000013a0f1c520000000164b1c25a
- /* x^118784 mod p(x)` << 1, x^118848 mod p(x)` << 1 */
- .octa 0x000000010c2c40c000000000fbd67c50
+ /* x^118784 mod p(x)` << 1, x^118848 mod p(x)` << 1 */
+ .octa 0x000000010c2c40c000000000fbd67c50
- /* x^117760 mod p(x)` << 1, x^117824 mod p(x)` << 1 */
- .octa 0x00000000ff6fac3e0000000096076268
+ /* x^117760 mod p(x)` << 1, x^117824 mod p(x)` << 1 */
+ .octa 0x00000000ff6fac3e0000000096076268
- /* x^116736 mod p(x)` << 1, x^116800 mod p(x)` << 1 */
- .octa 0x000000017b3609c000000001d288e4cc
+ /* x^116736 mod p(x)` << 1, x^116800 mod p(x)` << 1 */
+ .octa 0x000000017b3609c000000001d288e4cc
- /* x^115712 mod p(x)` << 1, x^115776 mod p(x)` << 1 */
- .octa 0x0000000088c8c92200000001eaac1bdc
+ /* x^115712 mod p(x)` << 1, x^115776 mod p(x)` << 1 */
+ .octa 0x0000000088c8c92200000001eaac1bdc
- /* x^114688 mod p(x)` << 1, x^114752 mod p(x)` << 1 */
- .octa 0x00000001751baae600000001f1ea39e2
+ /* x^114688 mod p(x)` << 1, x^114752 mod p(x)` << 1 */
+ .octa 0x00000001751baae600000001f1ea39e2
- /* x^113664 mod p(x)` << 1, x^113728 mod p(x)` << 1 */
- .octa 0x000000010795297200000001eb6506fc
+ /* x^113664 mod p(x)` << 1, x^113728 mod p(x)` << 1 */
+ .octa 0x000000010795297200000001eb6506fc
- /* x^112640 mod p(x)` << 1, x^112704 mod p(x)` << 1 */
- .octa 0x0000000162b00abe000000010f806ffe
+ /* x^112640 mod p(x)` << 1, x^112704 mod p(x)` << 1 */
+ .octa 0x0000000162b00abe000000010f806ffe
- /* x^111616 mod p(x)` << 1, x^111680 mod p(x)` << 1 */
- .octa 0x000000000d7b404c000000010408481e
+ /* x^111616 mod p(x)` << 1, x^111680 mod p(x)` << 1 */
+ .octa 0x000000000d7b404c000000010408481e
- /* x^110592 mod p(x)` << 1, x^110656 mod p(x)` << 1 */
- .octa 0x00000000763b13d40000000188260534
+ /* x^110592 mod p(x)` << 1, x^110656 mod p(x)` << 1 */
+ .octa 0x00000000763b13d40000000188260534
- /* x^109568 mod p(x)` << 1, x^109632 mod p(x)` << 1 */
- .octa 0x00000000f6dc22d80000000058fc73e0
+ /* x^109568 mod p(x)` << 1, x^109632 mod p(x)` << 1 */
+ .octa 0x00000000f6dc22d80000000058fc73e0
- /* x^108544 mod p(x)` << 1, x^108608 mod p(x)` << 1 */
- .octa 0x000000007daae06000000000391c59b8
+ /* x^108544 mod p(x)` << 1, x^108608 mod p(x)` << 1 */
+ .octa 0x000000007daae06000000000391c59b8
- /* x^107520 mod p(x)` << 1, x^107584 mod p(x)` << 1 */
- .octa 0x000000013359ab7c000000018b638400
+ /* x^107520 mod p(x)` << 1, x^107584 mod p(x)` << 1 */
+ .octa 0x000000013359ab7c000000018b638400
- /* x^106496 mod p(x)` << 1, x^106560 mod p(x)` << 1 */
- .octa 0x000000008add438a000000011738f5c4
+ /* x^106496 mod p(x)` << 1, x^106560 mod p(x)` << 1 */
+ .octa 0x000000008add438a000000011738f5c4
- /* x^105472 mod p(x)` << 1, x^105536 mod p(x)` << 1 */
- .octa 0x00000001edbefdea000000008cf7c6da
+ /* x^105472 mod p(x)` << 1, x^105536 mod p(x)` << 1 */
+ .octa 0x00000001edbefdea000000008cf7c6da
- /* x^104448 mod p(x)` << 1, x^104512 mod p(x)` << 1 */
- .octa 0x000000004104e0f800000001ef97fb16
+ /* x^104448 mod p(x)` << 1, x^104512 mod p(x)` << 1 */
+ .octa 0x000000004104e0f800000001ef97fb16
- /* x^103424 mod p(x)` << 1, x^103488 mod p(x)` << 1 */
- .octa 0x00000000b48a82220000000102130e20
+ /* x^103424 mod p(x)` << 1, x^103488 mod p(x)` << 1 */
+ .octa 0x00000000b48a82220000000102130e20
- /* x^102400 mod p(x)` << 1, x^102464 mod p(x)` << 1 */
- .octa 0x00000001bcb4684400000000db968898
+ /* x^102400 mod p(x)` << 1, x^102464 mod p(x)` << 1 */
+ .octa 0x00000001bcb4684400000000db968898
- /* x^101376 mod p(x)` << 1, x^101440 mod p(x)` << 1 */
- .octa 0x000000013293ce0a00000000b5047b5e
+ /* x^101376 mod p(x)` << 1, x^101440 mod p(x)` << 1 */
+ .octa 0x000000013293ce0a00000000b5047b5e
- /* x^100352 mod p(x)` << 1, x^100416 mod p(x)` << 1 */
- .octa 0x00000001710d0844000000010b90fdb2
+ /* x^100352 mod p(x)` << 1, x^100416 mod p(x)` << 1 */
+ .octa 0x00000001710d0844000000010b90fdb2
- /* x^99328 mod p(x)` << 1, x^99392 mod p(x)` << 1 */
- .octa 0x0000000117907f6e000000004834a32e
+ /* x^99328 mod p(x)` << 1, x^99392 mod p(x)` << 1 */
+ .octa 0x0000000117907f6e000000004834a32e
- /* x^98304 mod p(x)` << 1, x^98368 mod p(x)` << 1 */
- .octa 0x0000000087ddf93e0000000059c8f2b0
+ /* x^98304 mod p(x)` << 1, x^98368 mod p(x)` << 1 */
+ .octa 0x0000000087ddf93e0000000059c8f2b0
- /* x^97280 mod p(x)` << 1, x^97344 mod p(x)` << 1 */
- .octa 0x000000005970e9b00000000122cec508
+ /* x^97280 mod p(x)` << 1, x^97344 mod p(x)` << 1 */
+ .octa 0x000000005970e9b00000000122cec508
- /* x^96256 mod p(x)` << 1, x^96320 mod p(x)` << 1 */
- .octa 0x0000000185b2b7d0000000000a330cda
+ /* x^96256 mod p(x)` << 1, x^96320 mod p(x)` << 1 */
+ .octa 0x0000000185b2b7d0000000000a330cda
- /* x^95232 mod p(x)` << 1, x^95296 mod p(x)` << 1 */
- .octa 0x00000001dcee0efc000000014a47148c
+ /* x^95232 mod p(x)` << 1, x^95296 mod p(x)` << 1 */
+ .octa 0x00000001dcee0efc000000014a47148c
- /* x^94208 mod p(x)` << 1, x^94272 mod p(x)` << 1 */
- .octa 0x0000000030da27220000000042c61cb8
+ /* x^94208 mod p(x)` << 1, x^94272 mod p(x)` << 1 */
+ .octa 0x0000000030da27220000000042c61cb8
- /* x^93184 mod p(x)` << 1, x^93248 mod p(x)` << 1 */
- .octa 0x000000012f925a180000000012fe6960
+ /* x^93184 mod p(x)` << 1, x^93248 mod p(x)` << 1 */
+ .octa 0x000000012f925a180000000012fe6960
- /* x^92160 mod p(x)` << 1, x^92224 mod p(x)` << 1 */
- .octa 0x00000000dd2e357c00000000dbda2c20
+ /* x^92160 mod p(x)` << 1, x^92224 mod p(x)` << 1 */
+ .octa 0x00000000dd2e357c00000000dbda2c20
- /* x^91136 mod p(x)` << 1, x^91200 mod p(x)` << 1 */
- .octa 0x00000000071c80de000000011122410c
+ /* x^91136 mod p(x)` << 1, x^91200 mod p(x)` << 1 */
+ .octa 0x00000000071c80de000000011122410c
- /* x^90112 mod p(x)` << 1, x^90176 mod p(x)` << 1 */
- .octa 0x000000011513140a00000000977b2070
+ /* x^90112 mod p(x)` << 1, x^90176 mod p(x)` << 1 */
+ .octa 0x000000011513140a00000000977b2070
- /* x^89088 mod p(x)` << 1, x^89152 mod p(x)` << 1 */
- .octa 0x00000001df876e8e000000014050438e
+ /* x^89088 mod p(x)` << 1, x^89152 mod p(x)` << 1 */
+ .octa 0x00000001df876e8e000000014050438e
- /* x^88064 mod p(x)` << 1, x^88128 mod p(x)` << 1 */
- .octa 0x000000015f81d6ce0000000147c840e8
+ /* x^88064 mod p(x)` << 1, x^88128 mod p(x)` << 1 */
+ .octa 0x000000015f81d6ce0000000147c840e8
- /* x^87040 mod p(x)` << 1, x^87104 mod p(x)` << 1 */
- .octa 0x000000019dd94dbe00000001cc7c88ce
+ /* x^87040 mod p(x)` << 1, x^87104 mod p(x)` << 1 */
+ .octa 0x000000019dd94dbe00000001cc7c88ce
- /* x^86016 mod p(x)` << 1, x^86080 mod p(x)` << 1 */
- .octa 0x00000001373d206e00000001476b35a4
+ /* x^86016 mod p(x)` << 1, x^86080 mod p(x)` << 1 */
+ .octa 0x00000001373d206e00000001476b35a4
- /* x^84992 mod p(x)` << 1, x^85056 mod p(x)` << 1 */
- .octa 0x00000000668ccade000000013d52d508
+ /* x^84992 mod p(x)` << 1, x^85056 mod p(x)` << 1 */
+ .octa 0x00000000668ccade000000013d52d508
- /* x^83968 mod p(x)` << 1, x^84032 mod p(x)` << 1 */
- .octa 0x00000001b192d268000000008e4be32e
+ /* x^83968 mod p(x)` << 1, x^84032 mod p(x)` << 1 */
+ .octa 0x00000001b192d268000000008e4be32e
- /* x^82944 mod p(x)` << 1, x^83008 mod p(x)` << 1 */
- .octa 0x00000000e30f3a7800000000024120fe
+ /* x^82944 mod p(x)` << 1, x^83008 mod p(x)` << 1 */
+ .octa 0x00000000e30f3a7800000000024120fe
- /* x^81920 mod p(x)` << 1, x^81984 mod p(x)` << 1 */
- .octa 0x000000010ef1f7bc00000000ddecddb4
+ /* x^81920 mod p(x)` << 1, x^81984 mod p(x)` << 1 */
+ .octa 0x000000010ef1f7bc00000000ddecddb4
- /* x^80896 mod p(x)` << 1, x^80960 mod p(x)` << 1 */
- .octa 0x00000001f5ac738000000000d4d403bc
+ /* x^80896 mod p(x)` << 1, x^80960 mod p(x)` << 1 */
+ .octa 0x00000001f5ac738000000000d4d403bc
- /* x^79872 mod p(x)` << 1, x^79936 mod p(x)` << 1 */
- .octa 0x000000011822ea7000000001734b89aa
+ /* x^79872 mod p(x)` << 1, x^79936 mod p(x)` << 1 */
+ .octa 0x000000011822ea7000000001734b89aa
- /* x^78848 mod p(x)` << 1, x^78912 mod p(x)` << 1 */
- .octa 0x00000000c3a33848000000010e7a58d6
+ /* x^78848 mod p(x)` << 1, x^78912 mod p(x)` << 1 */
+ .octa 0x00000000c3a33848000000010e7a58d6
- /* x^77824 mod p(x)` << 1, x^77888 mod p(x)` << 1 */
- .octa 0x00000001bd151c2400000001f9f04e9c
+ /* x^77824 mod p(x)` << 1, x^77888 mod p(x)` << 1 */
+ .octa 0x00000001bd151c2400000001f9f04e9c
- /* x^76800 mod p(x)` << 1, x^76864 mod p(x)` << 1 */
- .octa 0x0000000056002d7600000000b692225e
+ /* x^76800 mod p(x)` << 1, x^76864 mod p(x)` << 1 */
+ .octa 0x0000000056002d7600000000b692225e
- /* x^75776 mod p(x)` << 1, x^75840 mod p(x)` << 1 */
- .octa 0x000000014657c4f4000000019b8d3f3e
+ /* x^75776 mod p(x)` << 1, x^75840 mod p(x)` << 1 */
+ .octa 0x000000014657c4f4000000019b8d3f3e
- /* x^74752 mod p(x)` << 1, x^74816 mod p(x)` << 1 */
- .octa 0x0000000113742d7c00000001a874f11e
+ /* x^74752 mod p(x)` << 1, x^74816 mod p(x)` << 1 */
+ .octa 0x0000000113742d7c00000001a874f11e
- /* x^73728 mod p(x)` << 1, x^73792 mod p(x)` << 1 */
- .octa 0x000000019c5920ba000000010d5a4254
+ /* x^73728 mod p(x)` << 1, x^73792 mod p(x)` << 1 */
+ .octa 0x000000019c5920ba000000010d5a4254
- /* x^72704 mod p(x)` << 1, x^72768 mod p(x)` << 1 */
- .octa 0x000000005216d2d600000000bbb2f5d6
+ /* x^72704 mod p(x)` << 1, x^72768 mod p(x)` << 1 */
+ .octa 0x000000005216d2d600000000bbb2f5d6
- /* x^71680 mod p(x)` << 1, x^71744 mod p(x)` << 1 */
- .octa 0x0000000136f5ad8a0000000179cc0e36
+ /* x^71680 mod p(x)` << 1, x^71744 mod p(x)` << 1 */
+ .octa 0x0000000136f5ad8a0000000179cc0e36
- /* x^70656 mod p(x)` << 1, x^70720 mod p(x)` << 1 */
- .octa 0x000000018b07beb600000001dca1da4a
+ /* x^70656 mod p(x)` << 1, x^70720 mod p(x)` << 1 */
+ .octa 0x000000018b07beb600000001dca1da4a
- /* x^69632 mod p(x)` << 1, x^69696 mod p(x)` << 1 */
- .octa 0x00000000db1e93b000000000feb1a192
+ /* x^69632 mod p(x)` << 1, x^69696 mod p(x)` << 1 */
+ .octa 0x00000000db1e93b000000000feb1a192
- /* x^68608 mod p(x)` << 1, x^68672 mod p(x)` << 1 */
- .octa 0x000000000b96fa3a00000000d1eeedd6
+ /* x^68608 mod p(x)` << 1, x^68672 mod p(x)` << 1 */
+ .octa 0x000000000b96fa3a00000000d1eeedd6
- /* x^67584 mod p(x)` << 1, x^67648 mod p(x)` << 1 */
- .octa 0x00000001d9968af0000000008fad9bb4
+ /* x^67584 mod p(x)` << 1, x^67648 mod p(x)` << 1 */
+ .octa 0x00000001d9968af0000000008fad9bb4
- /* x^66560 mod p(x)` << 1, x^66624 mod p(x)` << 1 */
- .octa 0x000000000e4a77a200000001884938e4
+ /* x^66560 mod p(x)` << 1, x^66624 mod p(x)` << 1 */
+ .octa 0x000000000e4a77a200000001884938e4
- /* x^65536 mod p(x)` << 1, x^65600 mod p(x)` << 1 */
- .octa 0x00000000508c2ac800000001bc2e9bc0
+ /* x^65536 mod p(x)` << 1, x^65600 mod p(x)` << 1 */
+ .octa 0x00000000508c2ac800000001bc2e9bc0
- /* x^64512 mod p(x)` << 1, x^64576 mod p(x)` << 1 */
- .octa 0x0000000021572a8000000001f9658a68
+ /* x^64512 mod p(x)` << 1, x^64576 mod p(x)` << 1 */
+ .octa 0x0000000021572a8000000001f9658a68
- /* x^63488 mod p(x)` << 1, x^63552 mod p(x)` << 1 */
- .octa 0x00000001b859daf2000000001b9224fc
+ /* x^63488 mod p(x)` << 1, x^63552 mod p(x)` << 1 */
+ .octa 0x00000001b859daf2000000001b9224fc
- /* x^62464 mod p(x)` << 1, x^62528 mod p(x)` << 1 */
- .octa 0x000000016f7884740000000055b2fb84
+ /* x^62464 mod p(x)` << 1, x^62528 mod p(x)` << 1 */
+ .octa 0x000000016f7884740000000055b2fb84
- /* x^61440 mod p(x)` << 1, x^61504 mod p(x)` << 1 */
- .octa 0x00000001b438810e000000018b090348
+ /* x^61440 mod p(x)` << 1, x^61504 mod p(x)` << 1 */
+ .octa 0x00000001b438810e000000018b090348
- /* x^60416 mod p(x)` << 1, x^60480 mod p(x)` << 1 */
- .octa 0x0000000095ddc6f2000000011ccbd5ea
+ /* x^60416 mod p(x)` << 1, x^60480 mod p(x)` << 1 */
+ .octa 0x0000000095ddc6f2000000011ccbd5ea
- /* x^59392 mod p(x)` << 1, x^59456 mod p(x)` << 1 */
- .octa 0x00000001d977c20c0000000007ae47f8
+ /* x^59392 mod p(x)` << 1, x^59456 mod p(x)` << 1 */
+ .octa 0x00000001d977c20c0000000007ae47f8
- /* x^58368 mod p(x)` << 1, x^58432 mod p(x)` << 1 */
- .octa 0x00000000ebedb99a0000000172acbec0
+ /* x^58368 mod p(x)` << 1, x^58432 mod p(x)` << 1 */
+ .octa 0x00000000ebedb99a0000000172acbec0
- /* x^57344 mod p(x)` << 1, x^57408 mod p(x)` << 1 */
- .octa 0x00000001df9e9e9200000001c6e3ff20
+ /* x^57344 mod p(x)` << 1, x^57408 mod p(x)` << 1 */
+ .octa 0x00000001df9e9e9200000001c6e3ff20
- /* x^56320 mod p(x)` << 1, x^56384 mod p(x)` << 1 */
- .octa 0x00000001a4a3f95200000000e1b38744
+ /* x^56320 mod p(x)` << 1, x^56384 mod p(x)` << 1 */
+ .octa 0x00000001a4a3f95200000000e1b38744
- /* x^55296 mod p(x)` << 1, x^55360 mod p(x)` << 1 */
- .octa 0x00000000e2f5122000000000791585b2
+ /* x^55296 mod p(x)` << 1, x^55360 mod p(x)` << 1 */
+ .octa 0x00000000e2f5122000000000791585b2
- /* x^54272 mod p(x)` << 1, x^54336 mod p(x)` << 1 */
- .octa 0x000000004aa01f3e00000000ac53b894
+ /* x^54272 mod p(x)` << 1, x^54336 mod p(x)` << 1 */
+ .octa 0x000000004aa01f3e00000000ac53b894
- /* x^53248 mod p(x)` << 1, x^53312 mod p(x)` << 1 */
- .octa 0x00000000b3e90a5800000001ed5f2cf4
+ /* x^53248 mod p(x)` << 1, x^53312 mod p(x)` << 1 */
+ .octa 0x00000000b3e90a5800000001ed5f2cf4
- /* x^52224 mod p(x)` << 1, x^52288 mod p(x)` << 1 */
- .octa 0x000000000c9ca2aa00000001df48b2e0
+ /* x^52224 mod p(x)` << 1, x^52288 mod p(x)` << 1 */
+ .octa 0x000000000c9ca2aa00000001df48b2e0
- /* x^51200 mod p(x)` << 1, x^51264 mod p(x)` << 1 */
- .octa 0x000000015168231600000000049c1c62
+ /* x^51200 mod p(x)` << 1, x^51264 mod p(x)` << 1 */
+ .octa 0x000000015168231600000000049c1c62
- /* x^50176 mod p(x)` << 1, x^50240 mod p(x)` << 1 */
- .octa 0x0000000036fce78c000000017c460c12
+ /* x^50176 mod p(x)` << 1, x^50240 mod p(x)` << 1 */
+ .octa 0x0000000036fce78c000000017c460c12
- /* x^49152 mod p(x)` << 1, x^49216 mod p(x)` << 1 */
- .octa 0x000000009037dc10000000015be4da7e
+ /* x^49152 mod p(x)` << 1, x^49216 mod p(x)` << 1 */
+ .octa 0x000000009037dc10000000015be4da7e
- /* x^48128 mod p(x)` << 1, x^48192 mod p(x)` << 1 */
- .octa 0x00000000d3298582000000010f38f668
+ /* x^48128 mod p(x)` << 1, x^48192 mod p(x)` << 1 */
+ .octa 0x00000000d3298582000000010f38f668
- /* x^47104 mod p(x)` << 1, x^47168 mod p(x)` << 1 */
- .octa 0x00000001b42e8ad60000000039f40a00
+ /* x^47104 mod p(x)` << 1, x^47168 mod p(x)` << 1 */
+ .octa 0x00000001b42e8ad60000000039f40a00
- /* x^46080 mod p(x)` << 1, x^46144 mod p(x)` << 1 */
- .octa 0x00000000142a983800000000bd4c10c4
+ /* x^46080 mod p(x)` << 1, x^46144 mod p(x)` << 1 */
+ .octa 0x00000000142a983800000000bd4c10c4
- /* x^45056 mod p(x)` << 1, x^45120 mod p(x)` << 1 */
- .octa 0x0000000109c7f1900000000042db1d98
+ /* x^45056 mod p(x)` << 1, x^45120 mod p(x)` << 1 */
+ .octa 0x0000000109c7f1900000000042db1d98
- /* x^44032 mod p(x)` << 1, x^44096 mod p(x)` << 1 */
- .octa 0x0000000056ff931000000001c905bae6
+ /* x^44032 mod p(x)` << 1, x^44096 mod p(x)` << 1 */
+ .octa 0x0000000056ff931000000001c905bae6
- /* x^43008 mod p(x)` << 1, x^43072 mod p(x)` << 1 */
- .octa 0x00000001594513aa00000000069d40ea
+ /* x^43008 mod p(x)` << 1, x^43072 mod p(x)` << 1 */
+ .octa 0x00000001594513aa00000000069d40ea
- /* x^41984 mod p(x)` << 1, x^42048 mod p(x)` << 1 */
- .octa 0x00000001e3b5b1e8000000008e4fbad0
+ /* x^41984 mod p(x)` << 1, x^42048 mod p(x)` << 1 */
+ .octa 0x00000001e3b5b1e8000000008e4fbad0
- /* x^40960 mod p(x)` << 1, x^41024 mod p(x)` << 1 */
- .octa 0x000000011dd5fc080000000047bedd46
+ /* x^40960 mod p(x)` << 1, x^41024 mod p(x)` << 1 */
+ .octa 0x000000011dd5fc080000000047bedd46
- /* x^39936 mod p(x)` << 1, x^40000 mod p(x)` << 1 */
- .octa 0x00000001675f0cc20000000026396bf8
+ /* x^39936 mod p(x)` << 1, x^40000 mod p(x)` << 1 */
+ .octa 0x00000001675f0cc20000000026396bf8
- /* x^38912 mod p(x)` << 1, x^38976 mod p(x)` << 1 */
- .octa 0x00000000d1c8dd4400000000379beb92
+ /* x^38912 mod p(x)` << 1, x^38976 mod p(x)` << 1 */
+ .octa 0x00000000d1c8dd4400000000379beb92
- /* x^37888 mod p(x)` << 1, x^37952 mod p(x)` << 1 */
- .octa 0x0000000115ebd3d8000000000abae54a
+ /* x^37888 mod p(x)` << 1, x^37952 mod p(x)` << 1 */
+ .octa 0x0000000115ebd3d8000000000abae54a
- /* x^36864 mod p(x)` << 1, x^36928 mod p(x)` << 1 */
- .octa 0x00000001ecbd0dac0000000007e6a128
+ /* x^36864 mod p(x)` << 1, x^36928 mod p(x)` << 1 */
+ .octa 0x00000001ecbd0dac0000000007e6a128
- /* x^35840 mod p(x)` << 1, x^35904 mod p(x)` << 1 */
- .octa 0x00000000cdf67af2000000000ade29d2
+ /* x^35840 mod p(x)` << 1, x^35904 mod p(x)` << 1 */
+ .octa 0x00000000cdf67af2000000000ade29d2
- /* x^34816 mod p(x)` << 1, x^34880 mod p(x)` << 1 */
- .octa 0x000000004c01ff4c00000000f974c45c
+ /* x^34816 mod p(x)` << 1, x^34880 mod p(x)` << 1 */
+ .octa 0x000000004c01ff4c00000000f974c45c
- /* x^33792 mod p(x)` << 1, x^33856 mod p(x)` << 1 */
- .octa 0x00000000f2d8657e00000000e77ac60a
+ /* x^33792 mod p(x)` << 1, x^33856 mod p(x)` << 1 */
+ .octa 0x00000000f2d8657e00000000e77ac60a
- /* x^32768 mod p(x)` << 1, x^32832 mod p(x)` << 1 */
- .octa 0x000000006bae74c40000000145895816
+ /* x^32768 mod p(x)` << 1, x^32832 mod p(x)` << 1 */
+ .octa 0x000000006bae74c40000000145895816
- /* x^31744 mod p(x)` << 1, x^31808 mod p(x)` << 1 */
- .octa 0x0000000152af8aa00000000038e362be
+ /* x^31744 mod p(x)` << 1, x^31808 mod p(x)` << 1 */
+ .octa 0x0000000152af8aa00000000038e362be
- /* x^30720 mod p(x)` << 1, x^30784 mod p(x)` << 1 */
- .octa 0x0000000004663802000000007f991a64
+ /* x^30720 mod p(x)` << 1, x^30784 mod p(x)` << 1 */
+ .octa 0x0000000004663802000000007f991a64
- /* x^29696 mod p(x)` << 1, x^29760 mod p(x)` << 1 */
- .octa 0x00000001ab2f5afc00000000fa366d3a
+ /* x^29696 mod p(x)` << 1, x^29760 mod p(x)` << 1 */
+ .octa 0x00000001ab2f5afc00000000fa366d3a
- /* x^28672 mod p(x)` << 1, x^28736 mod p(x)` << 1 */
- .octa 0x0000000074a4ebd400000001a2bb34f0
+ /* x^28672 mod p(x)` << 1, x^28736 mod p(x)` << 1 */
+ .octa 0x0000000074a4ebd400000001a2bb34f0
- /* x^27648 mod p(x)` << 1, x^27712 mod p(x)` << 1 */
- .octa 0x00000001d7ab3a4c0000000028a9981e
+ /* x^27648 mod p(x)` << 1, x^27712 mod p(x)` << 1 */
+ .octa 0x00000001d7ab3a4c0000000028a9981e
- /* x^26624 mod p(x)` << 1, x^26688 mod p(x)` << 1 */
- .octa 0x00000001a8da60c600000001dbc672be
+ /* x^26624 mod p(x)` << 1, x^26688 mod p(x)` << 1 */
+ .octa 0x00000001a8da60c600000001dbc672be
- /* x^25600 mod p(x)` << 1, x^25664 mod p(x)` << 1 */
- .octa 0x000000013cf6382000000000b04d77f6
+ /* x^25600 mod p(x)` << 1, x^25664 mod p(x)` << 1 */
+ .octa 0x000000013cf6382000000000b04d77f6
- /* x^24576 mod p(x)` << 1, x^24640 mod p(x)` << 1 */
- .octa 0x00000000bec12e1e0000000124400d96
+ /* x^24576 mod p(x)` << 1, x^24640 mod p(x)` << 1 */
+ .octa 0x00000000bec12e1e0000000124400d96
- /* x^23552 mod p(x)` << 1, x^23616 mod p(x)` << 1 */
- .octa 0x00000001c6368010000000014ca4b414
+ /* x^23552 mod p(x)` << 1, x^23616 mod p(x)` << 1 */
+ .octa 0x00000001c6368010000000014ca4b414
- /* x^22528 mod p(x)` << 1, x^22592 mod p(x)` << 1 */
- .octa 0x00000001e6e78758000000012fe2c938
+ /* x^22528 mod p(x)` << 1, x^22592 mod p(x)` << 1 */
+ .octa 0x00000001e6e78758000000012fe2c938
- /* x^21504 mod p(x)` << 1, x^21568 mod p(x)` << 1 */
- .octa 0x000000008d7f2b3c00000001faed01e6
+ /* x^21504 mod p(x)` << 1, x^21568 mod p(x)` << 1 */
+ .octa 0x000000008d7f2b3c00000001faed01e6
- /* x^20480 mod p(x)` << 1, x^20544 mod p(x)` << 1 */
- .octa 0x000000016b4a156e000000007e80ecfe
+ /* x^20480 mod p(x)` << 1, x^20544 mod p(x)` << 1 */
+ .octa 0x000000016b4a156e000000007e80ecfe
- /* x^19456 mod p(x)` << 1, x^19520 mod p(x)` << 1 */
- .octa 0x00000001c63cfeb60000000098daee94
+ /* x^19456 mod p(x)` << 1, x^19520 mod p(x)` << 1 */
+ .octa 0x00000001c63cfeb60000000098daee94
- /* x^18432 mod p(x)` << 1, x^18496 mod p(x)` << 1 */
- .octa 0x000000015f902670000000010a04edea
+ /* x^18432 mod p(x)` << 1, x^18496 mod p(x)` << 1 */
+ .octa 0x000000015f902670000000010a04edea
- /* x^17408 mod p(x)` << 1, x^17472 mod p(x)` << 1 */
- .octa 0x00000001cd5de11e00000001c00b4524
+ /* x^17408 mod p(x)` << 1, x^17472 mod p(x)` << 1 */
+ .octa 0x00000001cd5de11e00000001c00b4524
- /* x^16384 mod p(x)` << 1, x^16448 mod p(x)` << 1 */
- .octa 0x000000001acaec540000000170296550
+ /* x^16384 mod p(x)` << 1, x^16448 mod p(x)` << 1 */
+ .octa 0x000000001acaec540000000170296550
- /* x^15360 mod p(x)` << 1, x^15424 mod p(x)` << 1 */
- .octa 0x000000002bd0ca780000000181afaa48
+ /* x^15360 mod p(x)` << 1, x^15424 mod p(x)` << 1 */
+ .octa 0x000000002bd0ca780000000181afaa48
- /* x^14336 mod p(x)` << 1, x^14400 mod p(x)` << 1 */
- .octa 0x0000000032d63d5c0000000185a31ffa
+ /* x^14336 mod p(x)` << 1, x^14400 mod p(x)` << 1 */
+ .octa 0x0000000032d63d5c0000000185a31ffa
- /* x^13312 mod p(x)` << 1, x^13376 mod p(x)` << 1 */
- .octa 0x000000001c6d4e4c000000002469f608
+ /* x^13312 mod p(x)` << 1, x^13376 mod p(x)` << 1 */
+ .octa 0x000000001c6d4e4c000000002469f608
- /* x^12288 mod p(x)` << 1, x^12352 mod p(x)` << 1 */
- .octa 0x0000000106a60b92000000006980102a
+ /* x^12288 mod p(x)` << 1, x^12352 mod p(x)` << 1 */
+ .octa 0x0000000106a60b92000000006980102a
- /* x^11264 mod p(x)` << 1, x^11328 mod p(x)` << 1 */
- .octa 0x00000000d3855e120000000111ea9ca8
+ /* x^11264 mod p(x)` << 1, x^11328 mod p(x)` << 1 */
+ .octa 0x00000000d3855e120000000111ea9ca8
- /* x^10240 mod p(x)` << 1, x^10304 mod p(x)` << 1 */
- .octa 0x00000000e312563600000001bd1d29ce
+ /* x^10240 mod p(x)` << 1, x^10304 mod p(x)` << 1 */
+ .octa 0x00000000e312563600000001bd1d29ce
- /* x^9216 mod p(x)` << 1, x^9280 mod p(x)` << 1 */
- .octa 0x000000009e8f7ea400000001b34b9580
+ /* x^9216 mod p(x)` << 1, x^9280 mod p(x)` << 1 */
+ .octa 0x000000009e8f7ea400000001b34b9580
- /* x^8192 mod p(x)` << 1, x^8256 mod p(x)` << 1 */
- .octa 0x00000001c82e562c000000003076054e
+ /* x^8192 mod p(x)` << 1, x^8256 mod p(x)` << 1 */
+ .octa 0x00000001c82e562c000000003076054e
- /* x^7168 mod p(x)` << 1, x^7232 mod p(x)` << 1 */
- .octa 0x00000000ca9f09ce000000012a608ea4
+ /* x^7168 mod p(x)` << 1, x^7232 mod p(x)` << 1 */
+ .octa 0x00000000ca9f09ce000000012a608ea4
- /* x^6144 mod p(x)` << 1, x^6208 mod p(x)` << 1 */
- .octa 0x00000000c63764e600000000784d05fe
+ /* x^6144 mod p(x)` << 1, x^6208 mod p(x)` << 1 */
+ .octa 0x00000000c63764e600000000784d05fe
- /* x^5120 mod p(x)` << 1, x^5184 mod p(x)` << 1 */
- .octa 0x0000000168d2e49e000000016ef0d82a
+ /* x^5120 mod p(x)` << 1, x^5184 mod p(x)` << 1 */
+ .octa 0x0000000168d2e49e000000016ef0d82a
- /* x^4096 mod p(x)` << 1, x^4160 mod p(x)` << 1 */
- .octa 0x00000000e986c1480000000075bda454
+ /* x^4096 mod p(x)` << 1, x^4160 mod p(x)` << 1 */
+ .octa 0x00000000e986c1480000000075bda454
- /* x^3072 mod p(x)` << 1, x^3136 mod p(x)` << 1 */
- .octa 0x00000000cfb65894000000003dc0a1c4
+ /* x^3072 mod p(x)` << 1, x^3136 mod p(x)` << 1 */
+ .octa 0x00000000cfb65894000000003dc0a1c4
- /* x^2048 mod p(x)` << 1, x^2112 mod p(x)` << 1 */
- .octa 0x0000000111cadee400000000e9a5d8be
+ /* x^2048 mod p(x)` << 1, x^2112 mod p(x)` << 1 */
+ .octa 0x0000000111cadee400000000e9a5d8be
- /* x^1024 mod p(x)` << 1, x^1088 mod p(x)` << 1 */
- .octa 0x0000000171fb63ce00000001609bc4b4
+ /* x^1024 mod p(x)` << 1, x^1088 mod p(x)` << 1 */
+ .octa 0x0000000171fb63ce00000001609bc4b4
- .short_constants :
+ .short_constants :
- /* Reduce final 1024-2048 bits to 64 bits, shifting 32 bits to include the trailing 32 bits of
- zeros */
- /* x^1952 mod p(x)`, x^1984 mod p(x)`, x^2016 mod p(x)`, x^2048 mod p(x)` */
- .octa 0x7fec2963e5bf80485cf015c388e56f72
+ /* Reduce final 1024-2048 bits to 64 bits, shifting 32 bits to include the trailing 32 bits of
+ zeros */
+ /* x^1952 mod p(x)`, x^1984 mod p(x)`, x^2016 mod p(x)`, x^2048 mod p(x)` */
+ .octa 0x7fec2963e5bf80485cf015c388e56f72
- /* x^1824 mod p(x)`, x^1856 mod p(x)`, x^1888 mod p(x)`, x^1920 mod p(x)` */
- .octa 0x38e888d4844752a9963a18920246e2e6
+ /* x^1824 mod p(x)`, x^1856 mod p(x)`, x^1888 mod p(x)`, x^1920 mod p(x)` */
+ .octa 0x38e888d4844752a9963a18920246e2e6
- /* x^1696 mod p(x)`, x^1728 mod p(x)`, x^1760 mod p(x)`, x^1792 mod p(x)` */
- .octa 0x42316c00730206ad419a441956993a31
+ /* x^1696 mod p(x)`, x^1728 mod p(x)`, x^1760 mod p(x)`, x^1792 mod p(x)` */
+ .octa 0x42316c00730206ad419a441956993a31
- /* x^1568 mod p(x)`, x^1600 mod p(x)`, x^1632 mod p(x)`, x^1664 mod p(x)` */
- .octa 0x543d5c543e65ddf9924752ba2b830011
+ /* x^1568 mod p(x)`, x^1600 mod p(x)`, x^1632 mod p(x)`, x^1664 mod p(x)` */
+ .octa 0x543d5c543e65ddf9924752ba2b830011
- /* x^1440 mod p(x)`, x^1472 mod p(x)`, x^1504 mod p(x)`, x^1536 mod p(x)` */
- .octa 0x78e87aaf56767c9255bd7f9518e4a304
+ /* x^1440 mod p(x)`, x^1472 mod p(x)`, x^1504 mod p(x)`, x^1536 mod p(x)` */
+ .octa 0x78e87aaf56767c9255bd7f9518e4a304
- /* x^1312 mod p(x)`, x^1344 mod p(x)`, x^1376 mod p(x)`, x^1408 mod p(x)` */
- .octa 0x8f68fcec1903da7f6d76739fe0553f1e
+ /* x^1312 mod p(x)`, x^1344 mod p(x)`, x^1376 mod p(x)`, x^1408 mod p(x)` */
+ .octa 0x8f68fcec1903da7f6d76739fe0553f1e
- /* x^1184 mod p(x)`, x^1216 mod p(x)`, x^1248 mod p(x)`, x^1280 mod p(x)` */
- .octa 0x3f4840246791d588c133722b1fe0b5c3
+ /* x^1184 mod p(x)`, x^1216 mod p(x)`, x^1248 mod p(x)`, x^1280 mod p(x)` */
+ .octa 0x3f4840246791d588c133722b1fe0b5c3
- /* x^1056 mod p(x)`, x^1088 mod p(x)`, x^1120 mod p(x)`, x^1152 mod p(x)` */
- .octa 0x34c96751b04de25a64b67ee0e55ef1f3
+ /* x^1056 mod p(x)`, x^1088 mod p(x)`, x^1120 mod p(x)`, x^1152 mod p(x)` */
+ .octa 0x34c96751b04de25a64b67ee0e55ef1f3
- /* x^928 mod p(x)`, x^960 mod p(x)`, x^992 mod p(x)`, x^1024 mod p(x)` */
- .octa 0x156c8e180b4a395b069db049b8fdb1e7
+ /* x^928 mod p(x)`, x^960 mod p(x)`, x^992 mod p(x)`, x^1024 mod p(x)` */
+ .octa 0x156c8e180b4a395b069db049b8fdb1e7
- /* x^800 mod p(x)`, x^832 mod p(x)`, x^864 mod p(x)`, x^896 mod p(x)` */
- .octa 0xe0b99ccbe661f7bea11bfaf3c9e90b9e
+ /* x^800 mod p(x)`, x^832 mod p(x)`, x^864 mod p(x)`, x^896 mod p(x)` */
+ .octa 0xe0b99ccbe661f7bea11bfaf3c9e90b9e
- /* x^672 mod p(x)`, x^704 mod p(x)`, x^736 mod p(x)`, x^768 mod p(x)` */
- .octa 0x041d37768cd75659817cdc5119b29a35
+ /* x^672 mod p(x)`, x^704 mod p(x)`, x^736 mod p(x)`, x^768 mod p(x)` */
+ .octa 0x041d37768cd75659817cdc5119b29a35
- /* x^544 mod p(x)`, x^576 mod p(x)`, x^608 mod p(x)`, x^640 mod p(x)` */
- .octa 0x3a0777818cfaa9651ce9d94b36c41f1c
+ /* x^544 mod p(x)`, x^576 mod p(x)`, x^608 mod p(x)`, x^640 mod p(x)` */
+ .octa 0x3a0777818cfaa9651ce9d94b36c41f1c
- /* x^416 mod p(x)`, x^448 mod p(x)`, x^480 mod p(x)`, x^512 mod p(x)` */
- .octa 0x0e148e8252377a554f256efcb82be955
+ /* x^416 mod p(x)`, x^448 mod p(x)`, x^480 mod p(x)`, x^512 mod p(x)` */
+ .octa 0x0e148e8252377a554f256efcb82be955
- /* x^288 mod p(x)`, x^320 mod p(x)`, x^352 mod p(x)`, x^384 mod p(x)` */
- .octa 0x9c25531d19e65ddeec1631edb2dea967
+ /* x^288 mod p(x)`, x^320 mod p(x)`, x^352 mod p(x)`, x^384 mod p(x)` */
+ .octa 0x9c25531d19e65ddeec1631edb2dea967
- /* x^160 mod p(x)`, x^192 mod p(x)`, x^224 mod p(x)`, x^256 mod p(x)` */
- .octa 0x790606ff9957c0a65d27e147510ac59a
+ /* x^160 mod p(x)`, x^192 mod p(x)`, x^224 mod p(x)`, x^256 mod p(x)` */
+ .octa 0x790606ff9957c0a65d27e147510ac59a
- /* x^32 mod p(x)`, x^64 mod p(x)`, x^96 mod p(x)`, x^128 mod p(x)` */
- .octa 0x82f63b786ea2d55ca66805eb18b8ea18
+ /* x^32 mod p(x)`, x^64 mod p(x)`, x^96 mod p(x)`, x^128 mod p(x)` */
+ .octa 0x82f63b786ea2d55ca66805eb18b8ea18
- .barrett_constants :
- /* 33 bit reflected Barrett constant m - (4^32)/n */
- .octa 0x000000000000000000000000dea713f1 /* x^64 div p(x)` */
- /* 33 bit reflected Barrett constant n */
- .octa 0x00000000000000000000000105ec76f1
+ .barrett_constants :
+ /* 33 bit reflected Barrett constant m - (4^32)/n */
+ .octa 0x000000000000000000000000dea713f1 /* x^64 div p(x)` */
+ /* 33 bit reflected Barrett constant n */
+ .octa 0x00000000000000000000000105ec76f1
#endif
diff --git a/src/third_party/wiredtiger/src/config/config_api.c b/src/third_party/wiredtiger/src/config/config_api.c
index 6c8bdd54f30..f0c1d799089 100644
--- a/src/third_party/wiredtiger/src/config/config_api.c
+++ b/src/third_party/wiredtiger/src/config/config_api.c
@@ -103,8 +103,7 @@ wiredtiger_config_validate(
*/
if (session != NULL && event_handler != NULL)
WT_RET_MSG(session, EINVAL,
- "wiredtiger_config_validate event handler ignored when "
- "a session also specified");
+ "wiredtiger_config_validate event handler ignored when a session also specified");
/*
* If we're not given a session, but we do have an event handler, build a fake
@@ -231,9 +230,8 @@ __wt_configure_method(WT_SESSION_IMPL *session, const char *method, const char *
WT_RET_MSG(session, EINVAL, "no configuration type specified");
if (strcmp(type, "boolean") != 0 && strcmp(type, "int") != 0 && strcmp(type, "list") != 0 &&
strcmp(type, "string") != 0)
- WT_RET_MSG(session, EINVAL,
- "type must be one of \"boolean\", \"int\", \"list\" or "
- "\"string\"");
+ WT_RET_MSG(
+ session, EINVAL, "type must be one of \"boolean\", \"int\", \"list\" or \"string\"");
/*
* Translate the method name to our configuration names, then find a match.
diff --git a/src/third_party/wiredtiger/src/config/config_check.c b/src/third_party/wiredtiger/src/config/config_check.c
index 61582a0c88f..6925eeb41fc 100644
--- a/src/third_party/wiredtiger/src/config/config_check.c
+++ b/src/third_party/wiredtiger/src/config/config_check.c
@@ -134,15 +134,13 @@ config_check(WT_SESSION_IMPL *session, const WT_CONFIG_CHECK *checks, u_int chec
if (WT_STRING_MATCH("min", ck.str, ck.len)) {
if (v.val < cv.val)
WT_RET_MSG(session, EINVAL,
- "Value too small for key '%.*s' "
- "the minimum is %.*s",
- (int)k.len, k.str, (int)cv.len, cv.str);
+ "Value too small for key '%.*s' the minimum is %.*s", (int)k.len, k.str,
+ (int)cv.len, cv.str);
} else if (WT_STRING_MATCH("max", ck.str, ck.len)) {
if (v.val > cv.val)
WT_RET_MSG(session, EINVAL,
- "Value too large for key '%.*s' "
- "the maximum is %.*s",
- (int)k.len, k.str, (int)cv.len, cv.str);
+ "Value too large for key '%.*s' the maximum is %.*s", (int)k.len, k.str,
+ (int)cv.len, cv.str);
} else if (WT_STRING_MATCH("choices", ck.str, ck.len)) {
if (v.len == 0)
WT_RET_MSG(session, EINVAL, "Key '%.*s' requires a value", (int)k.len, k.str);
@@ -165,13 +163,10 @@ config_check(WT_SESSION_IMPL *session, const WT_CONFIG_CHECK *checks, u_int chec
return (ret);
if (!found)
WT_RET_MSG(session, EINVAL,
- "Value '%.*s' not a "
- "permitted choice for key '%.*s'",
- (int)v.len, v.str, (int)k.len, k.str);
+ "Value '%.*s' not a permitted choice for key '%.*s'", (int)v.len, v.str,
+ (int)k.len, k.str);
} else
- WT_RET_MSG(session, EINVAL,
- "unexpected configuration description "
- "keyword %.*s",
+ WT_RET_MSG(session, EINVAL, "unexpected configuration description keyword %.*s",
(int)ck.len, ck.str);
}
}
diff --git a/src/third_party/wiredtiger/src/config/config_collapse.c b/src/third_party/wiredtiger/src/config/config_collapse.c
index 56d5cfc8d34..dbd2a348451 100644
--- a/src/third_party/wiredtiger/src/config/config_collapse.c
+++ b/src/third_party/wiredtiger/src/config/config_collapse.c
@@ -143,9 +143,7 @@ __config_merge_scan(
*/
for (len = 0; len < k.len; ++len)
if (k.str[len] == SEPC)
- WT_ERR_MSG(session, EINVAL,
- "key %.*s contains a '%c' separator "
- "character",
+ WT_ERR_MSG(session, EINVAL, "key %.*s contains a '%c' separator character",
(int)k.len, (char *)k.str, SEPC);
/* Build the key/value strings. */
diff --git a/src/third_party/wiredtiger/src/config/config_def.c b/src/third_party/wiredtiger/src/config/config_def.c
index 531af81ae00..548ad69061c 100644
--- a/src/third_party/wiredtiger/src/config/config_def.c
+++ b/src/third_party/wiredtiger/src/config/config_def.c
@@ -129,9 +129,10 @@ static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure[] = {
{"statistics_log", "category", NULL, NULL,
confchk_WT_CONNECTION_reconfigure_statistics_log_subconfigs, 5},
{"timing_stress_for_test", "list", NULL,
- "choices=[\"aggressive_sweep\",\"checkpoint_slow\","
- "\"lookaside_sweep_race\",\"split_1\",\"split_2\",\"split_3\","
- "\"split_4\",\"split_5\",\"split_6\",\"split_7\",\"split_8\"]",
+ "choices=[\"aggressive_sweep\",\"backup_rename\","
+ "\"checkpoint_slow\",\"lookaside_sweep_race\",\"split_1\","
+ "\"split_2\",\"split_3\",\"split_4\",\"split_5\",\"split_6\","
+ "\"split_7\",\"split_8\"]",
NULL, 0},
{"verbose", "list", NULL,
"choices=[\"api\",\"backup\",\"block\",\"checkpoint\","
@@ -510,6 +511,10 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_encryption_subconfigs[] = {
{"keyid", "string", NULL, NULL, NULL, 0}, {"name", "string", NULL, NULL, NULL, 0},
{"secretkey", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+static const WT_CONFIG_CHECK confchk_wiredtiger_open_hash_subconfigs[] = {
+ {"buckets", "int", NULL, "min=64,max=65536", NULL, 0},
+ {"dhandle_buckets", "int", NULL, "min=64,max=65536", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+
static const WT_CONFIG_CHECK confchk_wiredtiger_open_log_subconfigs[] = {
{"archive", "boolean", NULL, NULL, NULL, 0}, {"compressor", "string", NULL, NULL, NULL, 0},
{"enabled", "boolean", NULL, NULL, NULL, 0},
@@ -556,6 +561,7 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open[] = {
{"exclusive", "boolean", NULL, NULL, NULL, 0}, {"extensions", "list", NULL, NULL, NULL, 0},
{"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
{"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
+ {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
{"hazard_max", "int", NULL, "min=15", NULL, 0}, {"in_memory", "boolean", NULL, NULL, NULL, 0},
{"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
{"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 9},
@@ -575,9 +581,10 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open[] = {
NULL, 0},
{"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
{"timing_stress_for_test", "list", NULL,
- "choices=[\"aggressive_sweep\",\"checkpoint_slow\","
- "\"lookaside_sweep_race\",\"split_1\",\"split_2\",\"split_3\","
- "\"split_4\",\"split_5\",\"split_6\",\"split_7\",\"split_8\"]",
+ "choices=[\"aggressive_sweep\",\"backup_rename\","
+ "\"checkpoint_slow\",\"lookaside_sweep_race\",\"split_1\","
+ "\"split_2\",\"split_3\",\"split_4\",\"split_5\",\"split_6\","
+ "\"split_7\",\"split_8\"]",
NULL, 0},
{"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
2},
@@ -623,6 +630,7 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_all[] = {
{"exclusive", "boolean", NULL, NULL, NULL, 0}, {"extensions", "list", NULL, NULL, NULL, 0},
{"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
{"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
+ {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
{"hazard_max", "int", NULL, "min=15", NULL, 0}, {"in_memory", "boolean", NULL, NULL, NULL, 0},
{"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
{"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 9},
@@ -642,9 +650,10 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_all[] = {
NULL, 0},
{"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
{"timing_stress_for_test", "list", NULL,
- "choices=[\"aggressive_sweep\",\"checkpoint_slow\","
- "\"lookaside_sweep_race\",\"split_1\",\"split_2\",\"split_3\","
- "\"split_4\",\"split_5\",\"split_6\",\"split_7\",\"split_8\"]",
+ "choices=[\"aggressive_sweep\",\"backup_rename\","
+ "\"checkpoint_slow\",\"lookaside_sweep_race\",\"split_1\","
+ "\"split_2\",\"split_3\",\"split_4\",\"split_5\",\"split_6\","
+ "\"split_7\",\"split_8\"]",
NULL, 0},
{"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
2},
@@ -690,6 +699,7 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_basecfg[] = {
{"extensions", "list", NULL, NULL, NULL, 0},
{"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
{"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
+ {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
{"hazard_max", "int", NULL, "min=15", NULL, 0},
{"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
{"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 9},
@@ -709,9 +719,10 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_basecfg[] = {
NULL, 0},
{"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
{"timing_stress_for_test", "list", NULL,
- "choices=[\"aggressive_sweep\",\"checkpoint_slow\","
- "\"lookaside_sweep_race\",\"split_1\",\"split_2\",\"split_3\","
- "\"split_4\",\"split_5\",\"split_6\",\"split_7\",\"split_8\"]",
+ "choices=[\"aggressive_sweep\",\"backup_rename\","
+ "\"checkpoint_slow\",\"lookaside_sweep_race\",\"split_1\","
+ "\"split_2\",\"split_3\",\"split_4\",\"split_5\",\"split_6\","
+ "\"split_7\",\"split_8\"]",
NULL, 0},
{"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
2},
@@ -755,6 +766,7 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_usercfg[] = {
{"extensions", "list", NULL, NULL, NULL, 0},
{"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
{"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
+ {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
{"hazard_max", "int", NULL, "min=15", NULL, 0},
{"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
{"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 9},
@@ -774,9 +786,10 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_usercfg[] = {
NULL, 0},
{"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
{"timing_stress_for_test", "list", NULL,
- "choices=[\"aggressive_sweep\",\"checkpoint_slow\","
- "\"lookaside_sweep_race\",\"split_1\",\"split_2\",\"split_3\","
- "\"split_4\",\"split_5\",\"split_6\",\"split_7\",\"split_8\"]",
+ "choices=[\"aggressive_sweep\",\"backup_rename\","
+ "\"checkpoint_slow\",\"lookaside_sweep_race\",\"split_1\","
+ "\"split_2\",\"split_3\",\"split_4\",\"split_5\",\"split_6\","
+ "\"split_7\",\"split_8\"]",
NULL, 0},
{"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
2},
@@ -855,8 +868,8 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
{"WT_SESSION.checkpoint", "drop=,force=false,name=,target=,use_timestamp=true",
confchk_WT_SESSION_checkpoint, 5},
{"WT_SESSION.close", "", NULL, 0},
- {"WT_SESSION.commit_transaction", "commit_timestamp=,durable_timestamp=,sync=",
- confchk_WT_SESSION_commit_transaction, 3},
+ {"WT_SESSION.commit_transaction",
+ "commit_timestamp=,durable_timestamp=,sync=", confchk_WT_SESSION_commit_transaction, 3},
{"WT_SESSION.compact", "timeout=1200", confchk_WT_SESSION_compact, 1},
{"WT_SESSION.create",
"access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
@@ -902,19 +915,21 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
{"WT_SESSION.prepare_transaction", "prepare_timestamp=", confchk_WT_SESSION_prepare_transaction,
1},
{"WT_SESSION.query_timestamp", "get=read", confchk_WT_SESSION_query_timestamp, 1},
- {"WT_SESSION.rebalance", "", NULL, 0}, {"WT_SESSION.reconfigure",
- "cache_cursors=true,ignore_cache_size=false,"
- "isolation=read-committed",
- confchk_WT_SESSION_reconfigure, 3},
+ {"WT_SESSION.rebalance", "", NULL, 0},
+ {"WT_SESSION.reconfigure",
+ "cache_cursors=true,ignore_cache_size=false,"
+ "isolation=read-committed",
+ confchk_WT_SESSION_reconfigure, 3},
{"WT_SESSION.rename", "", NULL, 0}, {"WT_SESSION.reset", "", NULL, 0},
{"WT_SESSION.rollback_transaction", "", NULL, 0},
{"WT_SESSION.salvage", "force=false", confchk_WT_SESSION_salvage, 1},
{"WT_SESSION.snapshot", "drop=(all=false,before=,names=,to=),include_updates=false,name=",
confchk_WT_SESSION_snapshot, 3},
- {"WT_SESSION.strerror", "", NULL, 0}, {"WT_SESSION.timestamp_transaction",
- "commit_timestamp=,durable_timestamp=,prepare_timestamp=,"
- "read_timestamp=",
- confchk_WT_SESSION_timestamp_transaction, 4},
+ {"WT_SESSION.strerror", "", NULL, 0},
+ {"WT_SESSION.timestamp_transaction",
+ "commit_timestamp=,durable_timestamp=,prepare_timestamp=,"
+ "read_timestamp=",
+ confchk_WT_SESSION_timestamp_transaction, 4},
{"WT_SESSION.transaction_sync", "timeout_ms=1200000", confchk_WT_SESSION_transaction_sync, 1},
{"WT_SESSION.truncate", "", NULL, 0}, {"WT_SESSION.upgrade", "", NULL, 0},
{"WT_SESSION.verify",
@@ -1000,12 +1015,12 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
"eviction_dirty_trigger=20,eviction_target=80,eviction_trigger=95"
",exclusive=false,extensions=,file_extend=,"
"file_manager=(close_handle_minimum=250,close_idle_time=30,"
- "close_scan_interval=10),hazard_max=1000,in_memory=false,"
- "io_capacity=(total=0),log=(archive=true,compressor=,"
- "enabled=false,file_max=100MB,os_cache_dirty_pct=0,path=\".\","
- "prealloc=true,recover=on,zero_fill=false),"
- "lsm_manager=(merge=true,worker_thread_max=4),mmap=true,"
- "multiprocess=false,operation_timeout_ms=0,"
+ "close_scan_interval=10),hash=(buckets=512,dhandle_buckets=512),"
+ "hazard_max=1000,in_memory=false,io_capacity=(total=0),"
+ "log=(archive=true,compressor=,enabled=false,file_max=100MB,"
+ "os_cache_dirty_pct=0,path=\".\",prealloc=true,recover=on,"
+ "zero_fill=false),lsm_manager=(merge=true,worker_thread_max=4),"
+ "mmap=true,multiprocess=false,operation_timeout_ms=0,"
"operation_tracking=(enabled=false,path=\".\"),readonly=false,"
"salvage=false,session_max=100,session_scratch_max=2MB,"
"session_table_cache=true,shared_cache=(chunk=10MB,name=,quota=0,"
@@ -1014,7 +1029,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
",wait=0),timing_stress_for_test=,transaction_sync=(enabled=false"
",method=fsync),use_environment=true,use_environment_priv=false,"
"verbose=,write_through=",
- confchk_wiredtiger_open, 50},
+ confchk_wiredtiger_open, 51},
{"wiredtiger_open_all",
"async=(enabled=false,ops_max=1024,threads=2),buffer_alignment=-1"
",builtin_extension_config=,cache_cursors=true,"
@@ -1031,12 +1046,12 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
"eviction_dirty_trigger=20,eviction_target=80,eviction_trigger=95"
",exclusive=false,extensions=,file_extend=,"
"file_manager=(close_handle_minimum=250,close_idle_time=30,"
- "close_scan_interval=10),hazard_max=1000,in_memory=false,"
- "io_capacity=(total=0),log=(archive=true,compressor=,"
- "enabled=false,file_max=100MB,os_cache_dirty_pct=0,path=\".\","
- "prealloc=true,recover=on,zero_fill=false),"
- "lsm_manager=(merge=true,worker_thread_max=4),mmap=true,"
- "multiprocess=false,operation_timeout_ms=0,"
+ "close_scan_interval=10),hash=(buckets=512,dhandle_buckets=512),"
+ "hazard_max=1000,in_memory=false,io_capacity=(total=0),"
+ "log=(archive=true,compressor=,enabled=false,file_max=100MB,"
+ "os_cache_dirty_pct=0,path=\".\",prealloc=true,recover=on,"
+ "zero_fill=false),lsm_manager=(merge=true,worker_thread_max=4),"
+ "mmap=true,multiprocess=false,operation_timeout_ms=0,"
"operation_tracking=(enabled=false,path=\".\"),readonly=false,"
"salvage=false,session_max=100,session_scratch_max=2MB,"
"session_table_cache=true,shared_cache=(chunk=10MB,name=,quota=0,"
@@ -1045,7 +1060,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
",wait=0),timing_stress_for_test=,transaction_sync=(enabled=false"
",method=fsync),use_environment=true,use_environment_priv=false,"
"verbose=,version=(major=0,minor=0),write_through=",
- confchk_wiredtiger_open_all, 51},
+ confchk_wiredtiger_open_all, 52},
{"wiredtiger_open_basecfg",
"async=(enabled=false,ops_max=1024,threads=2),buffer_alignment=-1"
",builtin_extension_config=,cache_cursors=true,"
@@ -1060,12 +1075,12 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
"eviction_checkpoint_target=1,eviction_dirty_target=5,"
"eviction_dirty_trigger=20,eviction_target=80,eviction_trigger=95"
",extensions=,file_extend=,file_manager=(close_handle_minimum=250"
- ",close_idle_time=30,close_scan_interval=10),hazard_max=1000,"
- "io_capacity=(total=0),log=(archive=true,compressor=,"
- "enabled=false,file_max=100MB,os_cache_dirty_pct=0,path=\".\","
- "prealloc=true,recover=on,zero_fill=false),"
- "lsm_manager=(merge=true,worker_thread_max=4),mmap=true,"
- "multiprocess=false,operation_timeout_ms=0,"
+ ",close_idle_time=30,close_scan_interval=10),hash=(buckets=512,"
+ "dhandle_buckets=512),hazard_max=1000,io_capacity=(total=0),"
+ "log=(archive=true,compressor=,enabled=false,file_max=100MB,"
+ "os_cache_dirty_pct=0,path=\".\",prealloc=true,recover=on,"
+ "zero_fill=false),lsm_manager=(merge=true,worker_thread_max=4),"
+ "mmap=true,multiprocess=false,operation_timeout_ms=0,"
"operation_tracking=(enabled=false,path=\".\"),readonly=false,"
"salvage=false,session_max=100,session_scratch_max=2MB,"
"session_table_cache=true,shared_cache=(chunk=10MB,name=,quota=0,"
@@ -1073,7 +1088,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
",on_close=false,path=\".\",sources=,timestamp=\"%b %d %H:%M:%S\""
",wait=0),timing_stress_for_test=,transaction_sync=(enabled=false"
",method=fsync),verbose=,version=(major=0,minor=0),write_through=",
- confchk_wiredtiger_open_basecfg, 45},
+ confchk_wiredtiger_open_basecfg, 46},
{"wiredtiger_open_usercfg",
"async=(enabled=false,ops_max=1024,threads=2),buffer_alignment=-1"
",builtin_extension_config=,cache_cursors=true,"
@@ -1088,12 +1103,12 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
"eviction_checkpoint_target=1,eviction_dirty_target=5,"
"eviction_dirty_trigger=20,eviction_target=80,eviction_trigger=95"
",extensions=,file_extend=,file_manager=(close_handle_minimum=250"
- ",close_idle_time=30,close_scan_interval=10),hazard_max=1000,"
- "io_capacity=(total=0),log=(archive=true,compressor=,"
- "enabled=false,file_max=100MB,os_cache_dirty_pct=0,path=\".\","
- "prealloc=true,recover=on,zero_fill=false),"
- "lsm_manager=(merge=true,worker_thread_max=4),mmap=true,"
- "multiprocess=false,operation_timeout_ms=0,"
+ ",close_idle_time=30,close_scan_interval=10),hash=(buckets=512,"
+ "dhandle_buckets=512),hazard_max=1000,io_capacity=(total=0),"
+ "log=(archive=true,compressor=,enabled=false,file_max=100MB,"
+ "os_cache_dirty_pct=0,path=\".\",prealloc=true,recover=on,"
+ "zero_fill=false),lsm_manager=(merge=true,worker_thread_max=4),"
+ "mmap=true,multiprocess=false,operation_timeout_ms=0,"
"operation_tracking=(enabled=false,path=\".\"),readonly=false,"
"salvage=false,session_max=100,session_scratch_max=2MB,"
"session_table_cache=true,shared_cache=(chunk=10MB,name=,quota=0,"
@@ -1101,7 +1116,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
",on_close=false,path=\".\",sources=,timestamp=\"%b %d %H:%M:%S\""
",wait=0),timing_stress_for_test=,transaction_sync=(enabled=false"
",method=fsync),verbose=,write_through=",
- confchk_wiredtiger_open_usercfg, 44},
+ confchk_wiredtiger_open_usercfg, 45},
{NULL, NULL, NULL, 0}};
int
diff --git a/src/third_party/wiredtiger/src/conn/conn_api.c b/src/third_party/wiredtiger/src/conn/conn_api.c
index 67b213e85f9..d965052db3d 100644
--- a/src/third_party/wiredtiger/src/conn/conn_api.c
+++ b/src/third_party/wiredtiger/src/conn/conn_api.c
@@ -397,9 +397,7 @@ __wt_encryptor_config(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval, WT_CONFIG_
WT_ERR(__encryptor_confchk(session, cval, &nenc));
if (nenc == NULL) {
if (keyid->len != 0)
- WT_ERR_MSG(session, EINVAL,
- "encryption.keyid "
- "requires encryption.name to be set");
+ WT_ERR_MSG(session, EINVAL, "encryption.keyid requires encryption.name to be set");
goto out;
}
@@ -408,11 +406,9 @@ __wt_encryptor_config(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval, WT_CONFIG_
* needs to be configured on the database as well.
*/
if (conn->kencryptor == NULL && kencryptorp != &conn->kencryptor)
- WT_ERR_MSG(session, EINVAL,
- "table encryption "
- "requires connection encryption to be set");
+ WT_ERR_MSG(session, EINVAL, "table encryption requires connection encryption to be set");
hash = __wt_hash_city64(keyid->str, keyid->len);
- bucket = hash % WT_HASH_ARRAY_SIZE;
+ bucket = hash & (conn->hash_size - 1);
TAILQ_FOREACH (kenc, &nenc->keyedhashqh[bucket], q)
if (WT_STRING_MATCH(kenc->keyid, keyid->str, keyid->len))
goto out;
@@ -459,7 +455,7 @@ __conn_add_encryptor(
WT_DECL_RET;
WT_NAMED_ENCRYPTOR *nenc;
WT_SESSION_IMPL *session;
- int i;
+ uint64_t i;
nenc = NULL;
@@ -485,7 +481,8 @@ __conn_add_encryptor(
WT_ERR(__wt_strdup(session, name, &nenc->name));
nenc->encryptor = encryptor;
TAILQ_INIT(&nenc->keyedqh);
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++)
+ WT_ERR(__wt_calloc_def(session, conn->hash_size, &nenc->keyedhashqh));
+ for (i = 0; i < conn->hash_size; i++)
TAILQ_INIT(&nenc->keyedhashqh[i]);
TAILQ_INSERT_TAIL(&conn->encryptqh, nenc, q);
@@ -493,6 +490,7 @@ __conn_add_encryptor(
err:
if (nenc != NULL) {
+ __wt_free(session, nenc->keyedhashqh);
__wt_free(session, nenc->name);
__wt_free(session, nenc);
}
@@ -532,6 +530,7 @@ __wt_conn_remove_encryptor(WT_SESSION_IMPL *session)
if (nenc->encryptor->terminate != NULL)
WT_TRET(nenc->encryptor->terminate(nenc->encryptor, (WT_SESSION *)session));
+ __wt_free(session, nenc->keyedhashqh);
__wt_free(session, nenc->name);
__wt_free(session, nenc);
}
@@ -1278,11 +1277,8 @@ __conn_config_readonly(const char *cfg[])
* settings at odds will return an error and will be checked when those settings are processed.
*/
readonly =
- "checkpoint=(wait=0),"
- "config_base=false,"
- "create=false,"
- "log=(archive=false,prealloc=false),"
- "lsm_manager=(merge=false),";
+ "checkpoint=(wait=0),config_base=false,create=false,log=(archive=false,prealloc=false),lsm_"
+ "manager=(merge=false),";
__conn_config_append(cfg, readonly);
}
@@ -1306,8 +1302,7 @@ __conn_config_check_version(WT_SESSION_IMPL *session, const char *config)
if (vmajor.val > WIREDTIGER_VERSION_MAJOR ||
(vmajor.val == WIREDTIGER_VERSION_MAJOR && vminor.val > WIREDTIGER_VERSION_MINOR))
WT_RET_MSG(session, ENOTSUP,
- "WiredTiger configuration is from an incompatible release "
- "of the WiredTiger engine");
+ "WiredTiger configuration is from an incompatible release of the WiredTiger engine");
return (0);
}
@@ -1429,8 +1424,9 @@ __conn_config_file(
WT_ERR(__conn_config_check_version(session, cbuf->data));
/* Check the configuration information. */
- WT_ERR(__wt_config_check(session, is_user ? WT_CONFIG_REF(session, wiredtiger_open_usercfg) :
- WT_CONFIG_REF(session, wiredtiger_open_basecfg),
+ WT_ERR(__wt_config_check(session,
+ is_user ? WT_CONFIG_REF(session, wiredtiger_open_usercfg) :
+ WT_CONFIG_REF(session, wiredtiger_open_basecfg),
cbuf->data, 0));
/* Append it to the stack. */
@@ -1486,8 +1482,8 @@ __conn_env_var(WT_SESSION_IMPL *session, const char *cfg[], const char *name, co
WT_ERR(__wt_config_gets(session, cfg, "use_environment_priv", &cval));
if (cval.val == 0)
WT_ERR_MSG(session, WT_ERROR,
- "privileged process has %s environment variable set, "
- "without having \"use_environment_priv\" configured",
+ "privileged process has %s environment variable set, without having "
+ "\"use_environment_priv\" configured",
name);
return (0);
@@ -1530,6 +1526,46 @@ err:
}
/*
+ * __conn_hash_config --
+ * Configure and allocate hash buckets in the connection.
+ */
+static int
+__conn_hash_config(WT_SESSION_IMPL *session, const char *cfg[])
+{
+ WT_CONFIG_ITEM cval;
+ WT_CONNECTION_IMPL *conn;
+ uint64_t i;
+
+ conn = S2C(session);
+ WT_RET(__wt_config_gets(session, cfg, "hash.buckets", &cval));
+ if (!__wt_ispo2((uint32_t)cval.val))
+ WT_RET_MSG(session, EINVAL, "Hash bucket size %" PRIu64 " invalid. Must be power of 2",
+ (uint64_t)cval.val);
+ conn->hash_size = (uint64_t)cval.val;
+ WT_RET(__wt_config_gets(session, cfg, "hash.dhandle_buckets", &cval));
+ if (!__wt_ispo2((uint32_t)cval.val))
+ WT_RET_MSG(session, EINVAL,
+ "Data handle hash bucket size %" PRIu64 " invalid. Must be power of 2",
+ (uint64_t)cval.val);
+ conn->dh_hash_size = (uint64_t)cval.val;
+ /* Don't set the values in the statistics here. They're set after the connection is set up. */
+
+ /* Hash bucket arrays. */
+ WT_RET(__wt_calloc_def(session, conn->hash_size, &conn->blockhash));
+ WT_RET(__wt_calloc_def(session, conn->hash_size, &conn->fhhash));
+ for (i = 0; i < conn->hash_size; ++i) {
+ TAILQ_INIT(&conn->blockhash[i]);
+ TAILQ_INIT(&conn->fhhash[i]);
+ }
+ WT_RET(__wt_calloc_def(session, conn->dh_hash_size, &conn->dh_bucket_count));
+ WT_RET(__wt_calloc_def(session, conn->dh_hash_size, &conn->dhhash));
+ for (i = 0; i < conn->dh_hash_size; ++i)
+ TAILQ_INIT(&conn->dhhash[i]);
+
+ return (0);
+}
+
+/*
* __conn_home --
* Set the database home directory.
*/
@@ -1596,8 +1632,7 @@ __conn_single(WT_SESSION_IMPL *session, const char *cfg[])
}
if (match)
WT_ERR_MSG(session, EBUSY,
- "WiredTiger database is already being managed by another "
- "thread in this process");
+ "WiredTiger database is already being managed by another thread in this process");
/*
* !!!
@@ -1669,9 +1704,8 @@ __conn_single(WT_SESSION_IMPL *session, const char *cfg[])
* locking past the end-of-file.
*/
if (__wt_file_lock(session, conn->lock_fh, true) != 0)
- WT_ERR_MSG(session, EBUSY,
- "WiredTiger database is already being managed by "
- "another process");
+ WT_ERR_MSG(
+ session, EBUSY, "WiredTiger database is already being managed by another process");
/*
* If the size of the lock file is non-zero, we created it (or won a locking race with the thread
@@ -1713,9 +1747,8 @@ __conn_single(WT_SESSION_IMPL *session, const char *cfg[])
* Immediately release the lock, it's just a test.
*/
if (__wt_file_lock(session, fh, true) != 0) {
- WT_ERR_MSG(session, EBUSY,
- "WiredTiger database is already being managed by "
- "another process");
+ WT_ERR_MSG(
+ session, EBUSY, "WiredTiger database is already being managed by another process");
}
WT_ERR(__wt_file_lock(session, fh, false));
}
@@ -1733,8 +1766,8 @@ __conn_single(WT_SESSION_IMPL *session, const char *cfg[])
if (conn->is_new) {
if (F_ISSET(conn, WT_CONN_READONLY))
WT_ERR_MSG(session, EINVAL,
- "The database directory is empty or needs recovery, cannot continue with a"
- " read only connection");
+ "The database directory is empty or needs recovery, cannot continue with a read only "
+ "connection");
WT_ERR(__wt_snprintf_len_set(
buf, sizeof(buf), &len, "%s\n%s\n", WT_WIREDTIGER, WIREDTIGER_VERSION_STRING));
WT_ERR(__wt_write(session, fh, (wt_off_t)0, len, buf));
@@ -1748,8 +1781,7 @@ __conn_single(WT_SESSION_IMPL *session, const char *cfg[])
WT_ERR(__wt_config_gets(session, cfg, "exclusive", &cval));
if (cval.val != 0)
WT_ERR_MSG(session, EEXIST,
- "WiredTiger database already exists and exclusive "
- "option configured");
+ "WiredTiger database already exists and exclusive option configured");
}
err:
@@ -1917,14 +1949,15 @@ __wt_verbose_dump_sessions(WT_SESSION_IMPL *session, bool show_cursors)
session, " Current dhandle: %s", s->dhandle == NULL ? "NONE" : s->dhandle->name));
WT_ERR(
__wt_msg(session, " Backup in progress: %s", s->bkp_cursor == NULL ? "no" : "yes"));
- WT_ERR(__wt_msg(session, " Compact state: %s", s->compact_state == WT_COMPACT_NONE ?
+ WT_ERR(__wt_msg(session, " Compact state: %s",
+ s->compact_state == WT_COMPACT_NONE ?
"none" :
(s->compact_state == WT_COMPACT_RUNNING ? "running" : "success")));
WT_ERR(__wt_msg(session, " Flags: 0x%" PRIx32, s->flags));
- WT_ERR(
- __wt_msg(session, " Isolation level: %s", s->isolation == WT_ISO_READ_COMMITTED ?
- "read-committed" :
- (s->isolation == WT_ISO_READ_UNCOMMITTED ? "read-uncommitted" : "snapshot")));
+ WT_ERR(__wt_msg(session, " Isolation level: %s",
+ s->isolation == WT_ISO_READ_COMMITTED ?
+ "read-committed" :
+ (s->isolation == WT_ISO_READ_UNCOMMITTED ? "read-uncommitted" : "snapshot")));
WT_ERR(__wt_msg(session, " Transaction:"));
WT_ERR(__wt_verbose_dump_txn_one(session, &s->txn, 0, NULL));
} else {
@@ -1980,6 +2013,7 @@ __wt_timing_stress_config(WT_SESSION_IMPL *session, const char *cfg[])
*/
static const WT_NAME_FLAG stress_types[] = {
{"aggressive_sweep", WT_TIMING_STRESS_AGGRESSIVE_SWEEP},
+ {"backup_rename", WT_TIMING_STRESS_BACKUP_RENAME},
{"checkpoint_slow", WT_TIMING_STRESS_CHECKPOINT_SLOW},
{"lookaside_sweep_race", WT_TIMING_STRESS_LOOKASIDE_SWEEP},
{"split_1", WT_TIMING_STRESS_SPLIT_1}, {"split_2", WT_TIMING_STRESS_SPLIT_2},
@@ -2110,7 +2144,7 @@ __conn_write_base_config(WT_SESSION_IMPL *session, const char *cfg[])
ret = __wt_sync_and_rename(session, &fs, WT_BASECONFIG_SET, WT_BASECONFIG);
if (0) {
- /* Close open file handle, remove any temporary file. */
+ /* Close open file handle, remove any temporary file. */
err:
WT_TRET(__wt_fclose(session, &fs));
WT_TRET(__wt_remove_if_exists(session, WT_BASECONFIG_SET, false));
@@ -2143,8 +2177,8 @@ __conn_set_file_system(WT_CONNECTION *wt_conn, WT_FILE_SYSTEM *file_system, cons
*/
if (conn->file_system != NULL)
WT_ERR_MSG(session, EPERM,
- "filesystem already configured; custom filesystems should "
- "enable \"early_load\" configuration");
+ "filesystem already configured; custom filesystems should enable \"early_load\" "
+ "configuration");
conn->file_system = file_system;
@@ -2370,6 +2404,12 @@ wiredtiger_open(const char *home, WT_EVENT_HANDLER *event_handler, const char *c
WT_ERR(__conn_home(session, home, cfg));
/*
+ * Configure and allocate hash buckets. This must be done before the call to load extensions.
+ * Some extensions like encryption or file systems may allocate hash arrays.
+ */
+ WT_ERR(__conn_hash_config(session, cfg));
+
+ /*
* Load early extensions before doing further initialization (one early extension is to
* configure a file system).
*/
@@ -2680,6 +2720,13 @@ wiredtiger_open(const char *home, WT_EVENT_HANDLER *event_handler, const char *c
WT_ERR(__wt_connection_workers(session, cfg));
/*
+ * The hash array sizes needed to be set up very early. Set them in the statistics here. Setting
+ * them in the early configuration function makes them get zeroed out.
+ */
+ WT_STAT_CONN_SET(session, buckets, conn->hash_size);
+ WT_STAT_CONN_SET(session, buckets_dh, conn->dh_hash_size);
+
+ /*
* The default session should not open data handles after this point: since it can be shared
* between threads, relying on session->dhandle is not safe.
*/
diff --git a/src/third_party/wiredtiger/src/conn/conn_cache.c b/src/third_party/wiredtiger/src/conn/conn_cache.c
index c4a5d5d145e..9dbde2af99c 100644
--- a/src/third_party/wiredtiger/src/conn/conn_cache.c
+++ b/src/third_party/wiredtiger/src/conn/conn_cache.c
@@ -35,9 +35,7 @@ __cache_config_abs_to_pct(
*/
if (shared)
WT_RET_MSG(session, EINVAL,
- "Shared cache configuration requires a percentage "
- "value for %s",
- param_name);
+ "Shared cache configuration requires a percentage value for %s", param_name);
/* An absolute value can't exceed the cache size. */
if (input > conn->cache_size)
WT_RET_MSG(session, EINVAL, "%s should not exceed cache size", param_name);
@@ -129,9 +127,8 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[])
evict_threads_min = (uint32_t)cval.val;
if (evict_threads_min > evict_threads_max)
- WT_RET_MSG(session, EINVAL,
- "eviction=(threads_min) cannot be greater than "
- "eviction=(threads_max)");
+ WT_RET_MSG(
+ session, EINVAL, "eviction=(threads_min) cannot be greater than eviction=(threads_max)");
conn->evict_threads_max = evict_threads_max;
conn->evict_threads_min = evict_threads_min;
@@ -344,14 +341,11 @@ __wt_cache_destroy(WT_SESSION_IMPL *session)
/* The cache should be empty at this point. Complain if not. */
if (cache->pages_inmem != cache->pages_evicted)
- __wt_errx(session, "cache server: exiting with %" PRIu64
- " pages in "
- "memory and %" PRIu64 " pages evicted",
+ __wt_errx(session,
+ "cache server: exiting with %" PRIu64 " pages in memory and %" PRIu64 " pages evicted",
cache->pages_inmem, cache->pages_evicted);
if (cache->bytes_image != 0)
- __wt_errx(session, "cache server: exiting with %" PRIu64
- " image bytes in "
- "memory",
+ __wt_errx(session, "cache server: exiting with %" PRIu64 " image bytes in memory",
cache->bytes_image);
if (cache->bytes_inmem != 0)
__wt_errx(
diff --git a/src/third_party/wiredtiger/src/conn/conn_cache_pool.c b/src/third_party/wiredtiger/src/conn/conn_cache_pool.c
index b01617de75b..f08d20e38f8 100644
--- a/src/third_party/wiredtiger/src/conn/conn_cache_pool.c
+++ b/src/third_party/wiredtiger/src/conn/conn_cache_pool.c
@@ -67,16 +67,13 @@ __wt_cache_pool_config(WT_SESSION_IMPL *session, const char **cfg)
* pool.
*/
if (__wt_config_gets(session, &cfg[1], "shared_cache.size", &cval) != WT_NOTFOUND)
- WT_RET_MSG(session, EINVAL,
- "Shared cache configuration requires a "
- "pool name");
+ WT_RET_MSG(session, EINVAL, "Shared cache configuration requires a pool name");
return (0);
}
if (__wt_config_gets(session, &cfg[1], "cache_size", &cval_cache_size) != WT_NOTFOUND)
WT_RET_MSG(session, EINVAL,
- "Only one of cache_size and shared_cache can be "
- "in the configuration");
+ "Only one of cache_size and shared_cache can be in the configuration");
/*
* NOTE: The allocations made when configuring and opening a cache pool don't really belong
@@ -185,8 +182,8 @@ __wt_cache_pool_config(WT_SESSION_IMPL *session, const char **cfg)
used_cache -= conn->cache->cp_reserved;
if (used_cache + reserve > size)
WT_ERR_MSG(session, EINVAL,
- "Shared cache unable to accommodate this configuration. "
- "Shared cache size: %" PRIu64 ", requested min: %" PRIu64,
+ "Shared cache unable to accommodate this configuration. Shared cache size: %" PRIu64
+ ", requested min: %" PRIu64,
size, used_cache + reserve);
/* The configuration is verified - it's safe to update the pool. */
diff --git a/src/third_party/wiredtiger/src/conn/conn_ckpt.c b/src/third_party/wiredtiger/src/conn/conn_ckpt.c
index 122d310934d..7a6cd33c728 100644
--- a/src/third_party/wiredtiger/src/conn/conn_ckpt.c
+++ b/src/third_party/wiredtiger/src/conn/conn_ckpt.c
@@ -46,8 +46,7 @@ __ckpt_server_config(WT_SESSION_IMPL *session, const char **cfg, bool *startp)
WT_RET(__wt_config_gets(session, cfg, "in_memory", &cval));
if (cval.val != 0)
WT_RET_MSG(session, EINVAL,
- "checkpoint configuration incompatible with "
- "in-memory configuration");
+ "checkpoint configuration incompatible with in-memory configuration");
__wt_log_written_reset(session);
diff --git a/src/third_party/wiredtiger/src/conn/conn_dhandle.c b/src/third_party/wiredtiger/src/conn/conn_dhandle.c
index 427eaa2d9a4..53c11e32516 100644
--- a/src/third_party/wiredtiger/src/conn/conn_dhandle.c
+++ b/src/third_party/wiredtiger/src/conn/conn_dhandle.c
@@ -198,7 +198,7 @@ __wt_conn_dhandle_alloc(WT_SESSION_IMPL *session, const char *uri, const char *c
* Prepend the handle to the connection list, assuming we're likely to need new files again
* soon, until they are cached by all sessions.
*/
- bucket = dhandle->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = dhandle->name_hash & (S2C(session)->dh_hash_size - 1);
WT_CONN_DHANDLE_INSERT(S2C(session), dhandle, bucket);
session->dhandle = dhandle;
@@ -225,7 +225,7 @@ __wt_conn_dhandle_find(WT_SESSION_IMPL *session, const char *uri, const char *ch
/* We must be holding the handle list lock at a higher level. */
WT_ASSERT(session, F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST));
- bucket = __wt_hash_city64(uri, strlen(uri)) % WT_HASH_ARRAY_SIZE;
+ bucket = __wt_hash_city64(uri, strlen(uri)) & (conn->dh_hash_size - 1);
if (checkpoint == NULL) {
TAILQ_FOREACH (dhandle, &conn->dhhash[bucket], hashq) {
if (F_ISSET(dhandle, WT_DHANDLE_DEAD))
@@ -513,9 +513,14 @@ __conn_btree_apply_internal(WT_SESSION_IMPL *session, WT_DATA_HANDLE *dhandle,
int (*file_func)(WT_SESSION_IMPL *, const char *[]),
int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[])
{
+ WT_CONNECTION_IMPL *conn;
WT_DECL_RET;
+ uint64_t time_diff, time_start, time_stop;
bool skip;
+ conn = S2C(session);
+ time_start = time_stop = 0;
+
/* Always apply the name function, if supplied. */
skip = false;
if (name_func != NULL)
@@ -533,7 +538,21 @@ __conn_btree_apply_internal(WT_SESSION_IMPL *session, WT_DATA_HANDLE *dhandle,
if ((ret = __wt_session_get_dhandle(session, dhandle->name, dhandle->checkpoint, NULL, 0)) != 0)
return (ret == EBUSY ? 0 : ret);
+ if (WT_SESSION_IS_CHECKPOINT(session))
+ time_start = __wt_clock(session);
WT_SAVE_DHANDLE(session, ret = file_func(session, cfg));
+ /* We need to gather this information before releasing the dhandle. */
+ if (WT_SESSION_IS_CHECKPOINT(session)) {
+ time_stop = __wt_clock(session);
+ time_diff = WT_CLOCKDIFF_US(time_stop, time_start);
+ if (F_ISSET(S2BT(session), WT_BTREE_SKIP_CKPT)) {
+ ++conn->ckpt_skip;
+ conn->ckpt_skip_time += time_diff;
+ } else {
+ ++conn->ckpt_apply;
+ conn->ckpt_apply_time += time_diff;
+ }
+ }
WT_TRET(__wt_session_release_dhandle(session));
return (ret);
}
@@ -551,15 +570,16 @@ __wt_conn_btree_apply(WT_SESSION_IMPL *session, const char *uri,
WT_DATA_HANDLE *dhandle;
WT_DECL_RET;
uint64_t bucket;
+ uint64_t time_diff, time_start, time_stop;
conn = S2C(session);
-
+ time_start = time_stop = 0;
/*
* If we're given a URI, then we walk only the hash list for that name. If we don't have a URI
* we walk the entire dhandle list.
*/
if (uri != NULL) {
- bucket = __wt_hash_city64(uri, strlen(uri)) % WT_HASH_ARRAY_SIZE;
+ bucket = __wt_hash_city64(uri, strlen(uri)) & (conn->dh_hash_size - 1);
for (dhandle = NULL;;) {
WT_WITH_HANDLE_LIST_READ_LOCK(
@@ -573,11 +593,16 @@ __wt_conn_btree_apply(WT_SESSION_IMPL *session, const char *uri,
WT_ERR(__conn_btree_apply_internal(session, dhandle, file_func, name_func, cfg));
}
} else {
+ if (WT_SESSION_IS_CHECKPOINT(session)) {
+ conn->ckpt_apply = conn->ckpt_skip = 0;
+ conn->ckpt_apply_time = conn->ckpt_skip_time = 0;
+ time_start = __wt_clock(session);
+ }
for (dhandle = NULL;;) {
WT_WITH_HANDLE_LIST_READ_LOCK(
session, WT_DHANDLE_NEXT(session, dhandle, &conn->dhqh, q));
if (dhandle == NULL)
- return (0);
+ goto done;
if (!F_ISSET(dhandle, WT_DHANDLE_OPEN) || F_ISSET(dhandle, WT_DHANDLE_DEAD) ||
dhandle->type != WT_DHANDLE_TYPE_BTREE || dhandle->checkpoint != NULL ||
@@ -585,6 +610,18 @@ __wt_conn_btree_apply(WT_SESSION_IMPL *session, const char *uri,
continue;
WT_ERR(__conn_btree_apply_internal(session, dhandle, file_func, name_func, cfg));
}
+done:
+ if (WT_SESSION_IS_CHECKPOINT(session)) {
+ time_stop = __wt_clock(session);
+ time_diff = WT_CLOCKDIFF_US(time_stop, time_start);
+ WT_STAT_CONN_SET(session, txn_checkpoint_handle_applied, conn->ckpt_apply);
+ WT_STAT_CONN_SET(session, txn_checkpoint_handle_skipped, conn->ckpt_skip);
+ WT_STAT_CONN_SET(session, txn_checkpoint_handle_walked, conn->dhandle_count);
+ WT_STAT_CONN_SET(session, txn_checkpoint_handle_duration, time_diff);
+ WT_STAT_CONN_SET(session, txn_checkpoint_handle_duration_apply, conn->ckpt_apply_time);
+ WT_STAT_CONN_SET(session, txn_checkpoint_handle_duration_skip, conn->ckpt_skip_time);
+ }
+ return (0);
}
err:
@@ -658,7 +695,7 @@ __wt_conn_dhandle_close_all(WT_SESSION_IMPL *session, const char *uri, bool remo
*/
WT_ERR(__conn_dhandle_close_one(session, uri, NULL, removed, mark_dead));
- bucket = __wt_hash_city64(uri, strlen(uri)) % WT_HASH_ARRAY_SIZE;
+ bucket = __wt_hash_city64(uri, strlen(uri)) & (conn->dh_hash_size - 1);
TAILQ_FOREACH (dhandle, &conn->dhhash[bucket], hashq) {
if (strcmp(dhandle->name, uri) != 0 || dhandle->checkpoint == NULL ||
F_ISSET(dhandle, WT_DHANDLE_DEAD))
@@ -686,7 +723,7 @@ __conn_dhandle_remove(WT_SESSION_IMPL *session, bool final)
conn = S2C(session);
dhandle = session->dhandle;
- bucket = dhandle->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = dhandle->name_hash & (conn->dh_hash_size - 1);
WT_ASSERT(session, F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST_WRITE));
WT_ASSERT(session, dhandle != conn->cache->walk_tree);
diff --git a/src/third_party/wiredtiger/src/conn/conn_handle.c b/src/third_party/wiredtiger/src/conn/conn_handle.c
index 28864d2f4ec..8c2efe84c8c 100644
--- a/src/third_party/wiredtiger/src/conn/conn_handle.c
+++ b/src/third_party/wiredtiger/src/conn/conn_handle.c
@@ -16,15 +16,9 @@ int
__wt_connection_init(WT_CONNECTION_IMPL *conn)
{
WT_SESSION_IMPL *session;
- u_int i;
session = conn->default_session;
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++) {
- TAILQ_INIT(&conn->dhhash[i]); /* Data handle hash lists */
- TAILQ_INIT(&conn->fhhash[i]); /* File handle hash lists */
- }
-
TAILQ_INIT(&conn->dhqh); /* Data handle list */
TAILQ_INIT(&conn->dlhqh); /* Library list */
TAILQ_INIT(&conn->dsrcqh); /* Data source list */
@@ -79,9 +73,7 @@ __wt_connection_init(WT_CONNECTION_IMPL *conn)
* opaque, but for now this is simpler.
*/
WT_RET(__wt_spin_init(session, &conn->block_lock, "block manager"));
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++)
- TAILQ_INIT(&conn->blockhash[i]); /* Block handle hash lists */
- TAILQ_INIT(&conn->blockqh); /* Block manager list */
+ TAILQ_INIT(&conn->blockqh); /* Block manager list */
return (0);
}
@@ -130,6 +122,12 @@ __wt_connection_destroy(WT_CONNECTION_IMPL *conn)
__wt_spin_destroy(session, &conn->lsm_manager.manager_lock);
__wt_cond_destroy(session, &conn->lsm_manager.work_cond);
+ /* Free allocated hash buckets. */
+ __wt_free(session, conn->blockhash);
+ __wt_free(session, conn->dh_bucket_count);
+ __wt_free(session, conn->dhhash);
+ __wt_free(session, conn->fhhash);
+
/* Free allocated memory. */
__wt_free(session, conn->cfg);
__wt_free(session, conn->debug_ckpt);
diff --git a/src/third_party/wiredtiger/src/conn/conn_log.c b/src/third_party/wiredtiger/src/conn/conn_log.c
index 2120f12e169..845d1ab5a7b 100644
--- a/src/third_party/wiredtiger/src/conn/conn_log.c
+++ b/src/third_party/wiredtiger/src/conn/conn_log.c
@@ -208,19 +208,18 @@ __logmgr_config(WT_SESSION_IMPL *session, const char **cfg, bool *runp, bool rec
*
* See above: should never happen.
*/
- if (reconfig && ((enabled && !FLD_ISSET(conn->log_flags, WT_CONN_LOG_ENABLED)) ||
- (!enabled && FLD_ISSET(conn->log_flags, WT_CONN_LOG_ENABLED))))
- WT_RET_MSG(session, EINVAL,
- "log manager reconfigure: enabled mismatch with existing "
- "setting");
+ if (reconfig &&
+ ((enabled && !FLD_ISSET(conn->log_flags, WT_CONN_LOG_ENABLED)) ||
+ (!enabled && FLD_ISSET(conn->log_flags, WT_CONN_LOG_ENABLED))))
+ WT_RET_MSG(
+ session, EINVAL, "log manager reconfigure: enabled mismatch with existing setting");
/* Logging is incompatible with in-memory */
if (enabled) {
WT_RET(__wt_config_gets(session, cfg, "in_memory", &cval));
if (cval.val != 0)
- WT_RET_MSG(session, EINVAL,
- "In-memory configuration incompatible with "
- "log=(enabled=true)");
+ WT_RET_MSG(
+ session, EINVAL, "In-memory configuration incompatible with log=(enabled=true)");
}
*runp = enabled;
@@ -295,9 +294,8 @@ __logmgr_config(WT_SESSION_IMPL *session, const char **cfg, bool *runp, bool rec
WT_RET(__wt_config_gets(session, cfg, "log.zero_fill", &cval));
if (cval.val != 0) {
if (F_ISSET(conn, WT_CONN_READONLY))
- WT_RET_MSG(session, EINVAL,
- "Read-only configuration incompatible with "
- "zero-filling log files");
+ WT_RET_MSG(
+ session, EINVAL, "Read-only configuration incompatible with zero-filling log files");
FLD_SET(conn->log_flags, WT_CONN_LOG_ZERO_FILL);
}
@@ -404,7 +402,7 @@ __log_archive_once(WT_SESSION_IMPL *session, uint32_t backup_file)
if (0)
err:
- __wt_err(session, ret, "log archive server error");
+ __wt_err(session, ret, "log archive server error");
WT_TRET(__wt_fs_directory_list_free(session, &logfiles, logcount));
return (ret);
}
@@ -468,7 +466,7 @@ __log_prealloc_once(WT_SESSION_IMPL *session)
if (0)
err:
- __wt_err(session, ret, "log pre-alloc server error");
+ __wt_err(session, ret, "log pre-alloc server error");
WT_TRET(__wt_fs_directory_list_free(session, &recfiles, reccount));
return (ret);
}
@@ -569,8 +567,8 @@ __log_file_server(void *arg)
*/
if (conn->hot_backup_start == 0 && conn->log_cursors == 0) {
WT_WITH_HOTBACKUP_READ_LOCK(session,
- WT_ERR_ERROR_OK(__wt_ftruncate(session, close_fh, close_end_lsn.l.offset),
- ENOTSUP),
+ WT_ERR_ERROR_OK(
+ __wt_ftruncate(session, close_fh, close_end_lsn.l.offset), ENOTSUP),
NULL);
}
WT_SET_LSN(&close_end_lsn, close_end_lsn.l.file + 1, 0);
@@ -911,8 +909,7 @@ __log_server(void *arg)
WT_ERR(ret);
} else
__wt_verbose(session, WT_VERB_LOG, "%s",
- "log_archive: Blocked due to open "
- "log cursor holding archive lock");
+ "log_archive: Blocked due to open log cursor holding archive lock");
}
time_start = __wt_clock(session);
}
diff --git a/src/third_party/wiredtiger/src/conn/conn_reconfig.c b/src/third_party/wiredtiger/src/conn/conn_reconfig.c
index 7e36ce04724..81a0687b00e 100644
--- a/src/third_party/wiredtiger/src/conn/conn_reconfig.c
+++ b/src/third_party/wiredtiger/src/conn/conn_reconfig.c
@@ -77,9 +77,7 @@ __wt_conn_compat_config(WT_SESSION_IMPL *session, const char **cfg, bool reconfi
*/
WT_RET(__wt_txn_activity_check(session, &txn_active));
if (txn_active)
- WT_RET_MSG(session, ENOTSUP,
- "system must be quiescent"
- " for upgrade or downgrade");
+ WT_RET_MSG(session, ENOTSUP, "system must be quiescent for upgrade or downgrade");
}
F_SET(conn, WT_CONN_COMPATIBILITY);
}
@@ -132,10 +130,11 @@ __wt_conn_compat_config(WT_SESSION_IMPL *session, const char **cfg, bool reconfi
*/
if (reconfig && conn->req_max_major != WT_CONN_COMPAT_NONE &&
(conn->req_max_major < rel_major ||
- (conn->req_max_major == rel_major && conn->req_max_minor < rel_minor)))
- WT_RET_MSG(session, ENOTSUP, WT_COMPAT_MSG_PREFIX
- "required max of %" PRIu16 ".%" PRIu16
- "cannot be smaller than requested compatibility release %" PRIu16 ".%" PRIu16,
+ (conn->req_max_major == rel_major && conn->req_max_minor < rel_minor)))
+ WT_RET_MSG(session, ENOTSUP,
+ WT_COMPAT_MSG_PREFIX "required max of %" PRIu16 ".%" PRIu16
+ "cannot be smaller than requested compatibility release %" PRIu16
+ ".%" PRIu16,
conn->req_max_major, conn->req_max_minor, rel_major, rel_minor);
/*
@@ -144,10 +143,11 @@ __wt_conn_compat_config(WT_SESSION_IMPL *session, const char **cfg, bool reconfi
*/
if (reconfig && conn->req_min_major != WT_CONN_COMPAT_NONE &&
(conn->req_min_major > rel_major ||
- (conn->req_min_major == rel_major && conn->req_min_minor > rel_minor)))
- WT_RET_MSG(session, ENOTSUP, WT_COMPAT_MSG_PREFIX
- "required min of %" PRIu16 ".%" PRIu16
- "cannot be larger than requested compatibility release %" PRIu16 ".%" PRIu16,
+ (conn->req_min_major == rel_major && conn->req_min_minor > rel_minor)))
+ WT_RET_MSG(session, ENOTSUP,
+ WT_COMPAT_MSG_PREFIX "required min of %" PRIu16 ".%" PRIu16
+ "cannot be larger than requested compatibility release %" PRIu16
+ ".%" PRIu16,
conn->req_min_major, conn->req_min_minor, rel_major, rel_minor);
conn->compat_major = rel_major;
@@ -238,9 +238,8 @@ __wt_conn_optrack_setup(WT_SESSION_IMPL *session, const char *cfg[], bool reconf
}
if (F_ISSET(conn, WT_CONN_READONLY))
/* Operation tracking isn't supported in read-only mode */
- WT_RET_MSG(session, EINVAL,
- "Operation tracking is incompatible with read only "
- "configuration");
+ WT_RET_MSG(
+ session, EINVAL, "Operation tracking is incompatible with read only configuration");
if (F_ISSET(conn, WT_CONN_OPTRACK))
/* Already enabled, nothing else to do */
return (0);
@@ -340,9 +339,8 @@ __wt_conn_statistics_config(WT_SESSION_IMPL *session, const char *cfg[])
WT_RET_NOTFOUND_OK(ret);
if (set > 1)
- WT_RET_MSG(session, EINVAL,
- "Only one of all, fast, none configuration values should "
- "be specified");
+ WT_RET_MSG(
+ session, EINVAL, "Only one of all, fast, none configuration values should be specified");
/*
* Now that we've parsed general statistics categories, process sub-categories.
@@ -367,8 +365,7 @@ __wt_conn_statistics_config(WT_SESSION_IMPL *session, const char *cfg[])
if (!LF_ISSET(WT_STAT_TYPE_ALL | WT_STAT_TYPE_CACHE_WALK | WT_STAT_TYPE_FAST |
WT_STAT_TYPE_TREE_WALK))
WT_RET_MSG(session, EINVAL,
- "the value \"clear\" can only be specified if "
- "statistics are enabled");
+ "the value \"clear\" can only be specified if statistics are enabled");
LF_SET(WT_STAT_CLEAR);
}
WT_RET_NOTFOUND_OK(ret);
diff --git a/src/third_party/wiredtiger/src/conn/conn_stat.c b/src/third_party/wiredtiger/src/conn/conn_stat.c
index c572ff9fe80..4d2704c7f6a 100644
--- a/src/third_party/wiredtiger/src/conn/conn_stat.c
+++ b/src/third_party/wiredtiger/src/conn/conn_stat.c
@@ -167,8 +167,7 @@ __statlog_config(WT_SESSION_IMPL *session, const char **cfg, bool *runp)
*/
if (!WT_PREFIX_MATCH(k.str, "file:") && !WT_PREFIX_MATCH(k.str, "lsm:"))
WT_ERR_MSG(session, EINVAL,
- "statistics_log sources configuration only "
- "supports objects of type \"file\" or "
+ "statistics_log sources configuration only supports objects of type \"file\" or "
"\"lsm\"");
WT_ERR(__wt_strndup(session, k.str, k.len, &sources[cnt]));
}
diff --git a/src/third_party/wiredtiger/src/conn/conn_sweep.c b/src/third_party/wiredtiger/src/conn/conn_sweep.c
index 5403f69f992..114a467629b 100644
--- a/src/third_party/wiredtiger/src/conn/conn_sweep.c
+++ b/src/third_party/wiredtiger/src/conn/conn_sweep.c
@@ -83,7 +83,7 @@ __sweep_expire_one(WT_SESSION_IMPL *session)
/* Only sweep clean trees where all updates are visible. */
if (btree != NULL &&
(btree->modified ||
- !__wt_txn_visible_all(session, btree->rec_max_txn, btree->rec_max_timestamp)))
+ !__wt_txn_visible_all(session, btree->rec_max_txn, btree->rec_max_timestamp)))
goto err;
/*
diff --git a/src/third_party/wiredtiger/src/cursor/cur_backup_incr.c b/src/third_party/wiredtiger/src/cursor/cur_backup_incr.c
index c71375a9fb7..96d0d362ff9 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_backup_incr.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_backup_incr.c
@@ -70,6 +70,15 @@ __curbackup_incr_blkmod(WT_SESSION_IMPL *session, WT_BTREE *btree, WT_CURSOR_BAC
cb->nbits = (uint64_t)b.val;
WT_ERR(__wt_config_subgets(session, &v, "offset", &b));
cb->offset = (uint64_t)b.val;
+ /*
+ * The rename configuration string component was added later. So don't error if we don't
+ * find it in the string. If we don't have it, we're not doing a rename.
+ */
+ WT_ERR_NOTFOUND_OK(__wt_config_subgets(session, &v, "rename", &b));
+ if (ret == 0 && b.val)
+ F_SET(cb, WT_CURBACKUP_RENAME);
+ else
+ F_CLR(cb, WT_CURBACKUP_RENAME);
/*
* We found a match. Load the block information into the cursor.
@@ -112,7 +121,7 @@ __curbackup_incr_next(WT_CURSOR *cursor)
F_CLR(cursor, WT_CURSTD_RAW);
if (!F_ISSET(cb, WT_CURBACKUP_INCR_INIT) &&
- (btree == NULL || F_ISSET(cb, WT_CURBACKUP_FORCE_FULL))) {
+ (btree == NULL || F_ISSET(cb, WT_CURBACKUP_FORCE_FULL | WT_CURBACKUP_RENAME))) {
/*
* We don't have this object's incremental information or it's a forced file copy. If this
* is a log file, use the full pathname that may include the log path.
@@ -155,19 +164,21 @@ __curbackup_incr_next(WT_CURSOR *cursor)
*/
WT_ERR(__curbackup_incr_blkmod(session, btree, cb));
/*
- * There are three cases where we do not have block modification information for
+ * There are several cases where we do not have block modification information for
* the file. They are described and handled as follows:
*
- * 1. Newly created file without checkpoint information. Return the whole file
- * information.
- * 2. File created and checkpointed before incremental backups were configured.
+ * 1. Renamed file. Always return the whole file information.
+ * 2. Newly created file without checkpoint information. Return the whole
+ * file information.
+ * 3. File created and checkpointed before incremental backups were configured.
* Return no file information as it was copied in the initial full backup.
- * 3. File that has not been modified since the previous incremental backup.
+ * 4. File that has not been modified since the previous incremental backup.
* Return no file information as there is no new information.
*/
- if (cb->bitstring.mem == NULL) {
+ if (cb->bitstring.mem == NULL || F_ISSET(cb, WT_CURBACKUP_RENAME)) {
F_SET(cb, WT_CURBACKUP_INCR_INIT);
- if (F_ISSET(cb, WT_CURBACKUP_CKPT_FAKE) && F_ISSET(cb, WT_CURBACKUP_HAS_CB_INFO)) {
+ if (F_ISSET(cb, WT_CURBACKUP_RENAME) ||
+ (F_ISSET(cb, WT_CURBACKUP_CKPT_FAKE) && F_ISSET(cb, WT_CURBACKUP_HAS_CB_INFO))) {
WT_ERR(__wt_fs_size(session, cb->incr_file, &size));
__wt_cursor_set_key(cursor, 0, size, WT_BACKUP_FILE);
goto done;
diff --git a/src/third_party/wiredtiger/src/cursor/cur_bulk.c b/src/third_party/wiredtiger/src/cursor/cur_bulk.c
index 09a9057355d..808c75cba15 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_bulk.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_bulk.c
@@ -21,9 +21,9 @@ __bulk_col_keycmp_err(WT_CURSOR_BULK *cbulk)
session = (WT_SESSION_IMPL *)cbulk->cbt.iface.session;
cursor = &cbulk->cbt.iface;
- WT_RET_MSG(session, EINVAL, "bulk-load presented with out-of-order keys: %" PRIu64
- " is less "
- "than previously inserted key %" PRIu64,
+ WT_RET_MSG(session, EINVAL,
+ "bulk-load presented with out-of-order keys: %" PRIu64
+ " is less than previously inserted key %" PRIu64,
cursor->recno, cbulk->recno);
}
@@ -203,8 +203,8 @@ __bulk_row_keycmp_err(WT_CURSOR_BULK *cbulk)
WT_ERR(__wt_scr_alloc(session, 512, &b));
WT_ERR_MSG(session, EINVAL,
- "bulk-load presented with out-of-order keys: %s compares smaller "
- "than previously inserted key %s",
+ "bulk-load presented with out-of-order keys: %s compares smaller than previously inserted "
+ "key %s",
__wt_buf_set_printable(session, cursor->key.data, cursor->key.size, a),
__wt_buf_set_printable(session, cbulk->last.data, cbulk->last.size, b));
diff --git a/src/third_party/wiredtiger/src/cursor/cur_dump.c b/src/third_party/wiredtiger/src/cursor/cur_dump.c
index 2327bdcec28..203244afb9d 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_dump.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_dump.c
@@ -131,7 +131,7 @@ str2recno(WT_SESSION_IMPL *session, const char *p, uint64_t *recnop)
WT_RET_MSG(session, ERANGE, "%s: invalid record number", p);
if (endptr[0] != '\0')
format:
- WT_RET_MSG(session, EINVAL, "%s: invalid record number", p);
+ WT_RET_MSG(session, EINVAL, "%s: invalid record number", p);
*recnop = recno;
return (0);
diff --git a/src/third_party/wiredtiger/src/cursor/cur_file.c b/src/third_party/wiredtiger/src/cursor/cur_file.c
index 62854711b0b..a87311a1356 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_file.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_file.c
@@ -93,8 +93,8 @@ __curfile_next(WT_CURSOR *cursor)
WT_ERR(__wt_btcur_next(cbt, false));
/* Next maintains a position, key and value. */
- WT_ASSERT(session, F_ISSET(cbt, WT_CBT_ACTIVE) &&
- F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
+ WT_ASSERT(session,
+ F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
@@ -120,8 +120,8 @@ __wt_curfile_next_random(WT_CURSOR *cursor)
WT_ERR(__wt_btcur_next_random(cbt));
/* Next-random maintains a position, key and value. */
- WT_ASSERT(session, F_ISSET(cbt, WT_CBT_ACTIVE) &&
- F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
+ WT_ASSERT(session,
+ F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
@@ -146,8 +146,8 @@ __curfile_prev(WT_CURSOR *cursor)
WT_ERR(__wt_btcur_prev(cbt, false));
/* Prev maintains a position, key and value. */
- WT_ASSERT(session, F_ISSET(cbt, WT_CBT_ACTIVE) &&
- F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
+ WT_ASSERT(session,
+ F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
@@ -172,7 +172,8 @@ __curfile_reset(WT_CURSOR *cursor)
ret = __wt_btcur_reset(cbt);
/* Reset maintains no position, key or value. */
- WT_ASSERT(session, !F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == 0 &&
+ WT_ASSERT(session,
+ !F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == 0 &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == 0);
err:
@@ -202,8 +203,8 @@ __curfile_search(WT_CURSOR *cursor)
__wt_stat_usecs_hist_incr_opread(session, WT_CLOCKDIFF_US(time_stop, time_start));
/* Search maintains a position, key and value. */
- WT_ASSERT(session, F_ISSET(cbt, WT_CBT_ACTIVE) &&
- F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
+ WT_ASSERT(session,
+ F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
@@ -233,8 +234,8 @@ __curfile_search_near(WT_CURSOR *cursor, int *exact)
__wt_stat_usecs_hist_incr_opread(session, WT_CLOCKDIFF_US(time_stop, time_start));
/* Search-near maintains a position, key and value. */
- WT_ASSERT(session, F_ISSET(cbt, WT_CBT_ACTIVE) &&
- F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
+ WT_ASSERT(session,
+ F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
@@ -270,10 +271,11 @@ __curfile_insert(WT_CURSOR *cursor)
* Insert maintains no position, key or value (except for column-store appends, where we are
* returning a key).
*/
- WT_ASSERT(session, !F_ISSET(cbt, WT_CBT_ACTIVE) &&
+ WT_ASSERT(session,
+ !F_ISSET(cbt, WT_CBT_ACTIVE) &&
((F_ISSET(cursor, WT_CURSTD_APPEND) &&
F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_EXT) ||
- (!F_ISSET(cursor, WT_CURSTD_APPEND) && F_MASK(cursor, WT_CURSTD_KEY_SET) == 0)));
+ (!F_ISSET(cursor, WT_CURSTD_APPEND) && F_MASK(cursor, WT_CURSTD_KEY_SET) == 0)));
WT_ASSERT(session, F_MASK(cursor, WT_CURSTD_VALUE_SET) == 0);
err:
@@ -368,8 +370,8 @@ __curfile_update(WT_CURSOR *cursor)
__wt_stat_usecs_hist_incr_opwrite(session, WT_CLOCKDIFF_US(time_stop, time_start));
/* Update maintains a position, key and value. */
- WT_ASSERT(session, F_ISSET(cbt, WT_CBT_ACTIVE) &&
- F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
+ WT_ASSERT(session,
+ F_ISSET(cbt, WT_CBT_ACTIVE) && F_MASK(cursor, WT_CURSTD_KEY_SET) == WT_CURSTD_KEY_INT &&
F_MASK(cursor, WT_CURSTD_VALUE_SET) == WT_CURSTD_VALUE_INT);
err:
@@ -689,9 +691,8 @@ __curfile_create(WT_SESSION_IMPL *session, WT_CURSOR *owner, const char *cfg[],
WT_ERR(__wt_config_gets_def(session, cfg, "next_random", 0, &cval));
if (cval.val != 0) {
if (WT_CURSOR_RECNO(cursor))
- WT_ERR_MSG(session, ENOTSUP,
- "next_random configuration not supported for "
- "column-store objects");
+ WT_ERR_MSG(
+ session, ENOTSUP, "next_random configuration not supported for column-store objects");
__wt_cursor_set_notsup(cursor);
cursor->next = __wt_curfile_next_random;
diff --git a/src/third_party/wiredtiger/src/cursor/cur_index.c b/src/third_party/wiredtiger/src/cursor/cur_index.c
index 24776ef3ca5..61134a9c0b1 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_index.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_index.c
@@ -514,8 +514,7 @@ __wt_curindex_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner,
*/
if (WT_CURSOR_RECNO(cursor))
WT_ERR_MSG(session, WT_ERROR,
- "Column store indexes based on a record number primary "
- "key are not supported");
+ "Column store indexes based on a record number primary key are not supported");
/* Handle projections. */
if (columns != NULL) {
diff --git a/src/third_party/wiredtiger/src/cursor/cur_join.c b/src/third_party/wiredtiger/src/cursor/cur_join.c
index 1786f38b54c..0ea2979aa1a 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_join.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_join.c
@@ -582,7 +582,7 @@ __curjoin_entry_member(
if (entry->subjoin == NULL && iter != NULL &&
(iter->end_pos + iter->end_skip >= entry->ends_next ||
- (iter->end_skip > 0 && F_ISSET(entry, WT_CURJOIN_ENTRY_DISJUNCTION))))
+ (iter->end_skip > 0 && F_ISSET(entry, WT_CURJOIN_ENTRY_DISJUNCTION))))
return (0); /* no checks to make */
entry->stats.membership_check++;
@@ -877,9 +877,7 @@ __curjoin_init_next(WT_SESSION_IMPL *session, WT_CURSOR_JOIN *cjoin, bool iterab
mainbuf = NULL;
if (cjoin->entries_next == 0)
- WT_RET_MSG(session, EINVAL,
- "join cursor has not yet been joined with any other "
- "cursors");
+ WT_RET_MSG(session, EINVAL, "join cursor has not yet been joined with any other cursors");
/* Get a consistent view of our subordinate cursors if appropriate. */
__wt_txn_cursor_op(session);
@@ -928,8 +926,7 @@ __curjoin_init_next(WT_SESSION_IMPL *session, WT_CURSOR_JOIN *cjoin, bool iterab
if (!iterable && F_ISSET(je, WT_CURJOIN_ENTRY_BLOOM)) {
if (session->txn.isolation == WT_ISO_READ_UNCOMMITTED)
WT_ERR_MSG(session, EINVAL,
- "join cursors with Bloom filters cannot be "
- "used with read-uncommitted isolation");
+ "join cursors with Bloom filters cannot be used with read-uncommitted isolation");
if (je->bloom == NULL) {
/*
* Look for compatible filters to be shared, pick compatible numbers for bit counts
@@ -1347,19 +1344,15 @@ __wt_curjoin_join(WT_SESSION_IMPL *session, WT_CURSOR_JOIN *cjoin, WT_INDEX *idx
} else {
/* Merge the join into an existing entry for this index */
if (count != 0 && entry->count != 0 && entry->count != count)
- WT_RET_MSG(session, EINVAL, "count=%" PRIu64
- " does not match "
- "previous count=%" PRIu64 " for this index",
- count, entry->count);
- if (LF_MASK(WT_CURJOIN_ENTRY_BLOOM) != F_MASK(entry, WT_CURJOIN_ENTRY_BLOOM))
WT_RET_MSG(session, EINVAL,
- "join has incompatible strategy "
- "values for the same index");
+ "count=%" PRIu64 " does not match previous count=%" PRIu64 " for this index", count,
+ entry->count);
+ if (LF_MASK(WT_CURJOIN_ENTRY_BLOOM) != F_MASK(entry, WT_CURJOIN_ENTRY_BLOOM))
+ WT_RET_MSG(session, EINVAL, "join has incompatible strategy values for the same index");
if (LF_MASK(WT_CURJOIN_ENTRY_FALSE_POSITIVES) !=
F_MASK(entry, WT_CURJOIN_ENTRY_FALSE_POSITIVES))
WT_RET_MSG(session, EINVAL,
- "join has incompatible bloom_false_positives "
- "values for the same index");
+ "join has incompatible bloom_false_positives values for the same index");
/*
* Check against other comparisons (we call them endpoints)
@@ -1385,20 +1378,19 @@ __wt_curjoin_join(WT_SESSION_IMPL *session, WT_CURSOR_JOIN *cjoin, WT_INDEX *idx
((range & WT_CURJOIN_END_GT) != 0 || range_eq)) ||
(F_ISSET(end, WT_CURJOIN_END_LT) && ((range & WT_CURJOIN_END_LT) != 0 || range_eq)) ||
(endrange == WT_CURJOIN_END_EQ &&
- (range & (WT_CURJOIN_END_LT | WT_CURJOIN_END_GT)) != 0))
+ (range & (WT_CURJOIN_END_LT | WT_CURJOIN_END_GT)) != 0))
WT_RET_MSG(session, EINVAL, "join has overlapping ranges");
if (range == WT_CURJOIN_END_EQ && endrange == WT_CURJOIN_END_EQ &&
!F_ISSET(entry, WT_CURJOIN_ENTRY_DISJUNCTION))
- WT_RET_MSG(session, EINVAL,
- "compare=eq can only be combined "
- "using operation=or");
+ WT_RET_MSG(session, EINVAL, "compare=eq can only be combined using operation=or");
/*
* Sort "gt"/"ge" to the front, followed by any number of "eq", and finally "lt"/"le".
*/
- if (!hasins && ((range & WT_CURJOIN_END_GT) != 0 ||
- (range == WT_CURJOIN_END_EQ && endrange != WT_CURJOIN_END_EQ &&
- !F_ISSET(end, WT_CURJOIN_END_GT)))) {
+ if (!hasins &&
+ ((range & WT_CURJOIN_END_GT) != 0 ||
+ (range == WT_CURJOIN_END_EQ && endrange != WT_CURJOIN_END_EQ &&
+ !F_ISSET(end, WT_CURJOIN_END_GT)))) {
ins = i;
hasins = true;
}
diff --git a/src/third_party/wiredtiger/src/cursor/cur_json.c b/src/third_party/wiredtiger/src/cursor/cur_json.c
index 692ab34d210..2445dcd25ad 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_json.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_json.c
@@ -869,10 +869,8 @@ __wt_json_strncpy(WT_SESSION *wt_session, char **pdst, size_t dstlen, const char
WT_RET_MSG(session, EINVAL, "invalid Unicode within JSON string");
src += 4;
if (hi != 0)
- WT_RET_MSG(session, EINVAL,
- "Unicode \"%6.6s\" byte out of "
- "range in JSON",
- src - 6);
+ WT_RET_MSG(
+ session, EINVAL, "Unicode \"%6.6s\" byte out of range in JSON", src - 6);
*dst++ = (char)lo;
break;
case 'f':
diff --git a/src/third_party/wiredtiger/src/cursor/cur_metadata.c b/src/third_party/wiredtiger/src/cursor/cur_metadata.c
index 0609dd603f3..054c182531b 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_metadata.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_metadata.c
@@ -46,9 +46,7 @@ __schema_source_config(
WT_ERR(__wt_buf_fmt(session, buf, "%.*s", (int)cval.len, cval.str));
srch->set_key(srch, buf->data);
if ((ret = srch->search(srch)) != 0)
- WT_ERR_MSG(session, ret,
- "metadata information for source configuration"
- " \"%s\" not found",
+ WT_ERR_MSG(session, ret, "metadata information for source configuration \"%s\" not found",
(const char *)buf->data);
WT_ERR(srch->get_value(srch, &v));
WT_ERR(__wt_strdup(session, v, result));
@@ -100,8 +98,7 @@ __schema_create_collapse(WT_SESSION_IMPL *session, WT_CURSOR_METADATA *mdc, cons
c->set_key(c, buf->data);
if ((ret = c->search(c)) != 0)
WT_ERR_MSG(session, ret,
- "metadata information for source configuration"
- " \"%s\" not found",
+ "metadata information for source configuration \"%s\" not found",
(const char *)buf->data);
WT_ERR(c->get_value(c, &v));
WT_ERR(__wt_strdup(session, v, --cfg));
@@ -167,9 +164,10 @@ err:
* Check if a key matches the metadata. The public value is "metadata:", but also check for the
* internal version of the URI.
*/
-#define WT_KEY_IS_METADATA(key) \
- ((key)->size > 0 && (WT_STRING_MATCH(WT_METADATA_URI, (key)->data, (key)->size - 1) || \
- WT_STRING_MATCH(WT_METAFILE_URI, (key)->data, (key)->size - 1)))
+#define WT_KEY_IS_METADATA(key) \
+ ((key)->size > 0 && \
+ (WT_STRING_MATCH(WT_METADATA_URI, (key)->data, (key)->size - 1) || \
+ WT_STRING_MATCH(WT_METAFILE_URI, (key)->data, (key)->size - 1)))
/*
* __curmetadata_metadata_search --
diff --git a/src/third_party/wiredtiger/src/cursor/cur_stat.c b/src/third_party/wiredtiger/src/cursor/cur_stat.c
index 21210d4b8c3..900f5c66a3d 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_stat.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_stat.c
@@ -635,15 +635,15 @@ __wt_curstat_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *other, c
if ((ret = __wt_config_subgets(session, &cval, "all", &sval)) == 0 && sval.val != 0) {
if (!FLD_ISSET(conn->stat_flags, WT_STAT_TYPE_ALL))
goto config_err;
- F_SET(cst, WT_STAT_TYPE_ALL | WT_STAT_TYPE_CACHE_WALK | WT_STAT_TYPE_FAST |
+ F_SET(cst,
+ WT_STAT_TYPE_ALL | WT_STAT_TYPE_CACHE_WALK | WT_STAT_TYPE_FAST |
WT_STAT_TYPE_TREE_WALK);
}
WT_ERR_NOTFOUND_OK(ret);
if ((ret = __wt_config_subgets(session, &cval, "fast", &sval)) == 0 && sval.val != 0) {
if (F_ISSET(cst, WT_STAT_TYPE_ALL))
WT_ERR_MSG(session, EINVAL,
- "Only one of all, fast, none "
- "configuration values should be specified");
+ "Only one of all, fast, none configuration values should be specified");
F_SET(cst, WT_STAT_TYPE_FAST);
}
WT_ERR_NOTFOUND_OK(ret);
@@ -670,16 +670,13 @@ __wt_curstat_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *other, c
if ((ret = __wt_config_subgets(session, &cval, "size", &sval)) == 0 && sval.val != 0) {
if (F_ISSET(cst, WT_STAT_TYPE_FAST | WT_STAT_TYPE_ALL))
WT_ERR_MSG(session, EINVAL,
- "Only one of all, fast, none "
- "configuration values should be specified");
+ "Only one of all, fast, none configuration values should be specified");
F_SET(cst, WT_STAT_TYPE_SIZE);
}
WT_ERR_NOTFOUND_OK(ret);
if ((ret = __wt_config_subgets(session, &cval, "clear", &sval)) == 0 && sval.val != 0) {
if (F_ISSET(cst, WT_STAT_TYPE_SIZE))
- WT_ERR_MSG(session, EINVAL,
- "clear is incompatible with size "
- "statistics");
+ WT_ERR_MSG(session, EINVAL, "clear is incompatible with size statistics");
F_SET(cst, WT_STAT_CLEAR);
}
WT_ERR_NOTFOUND_OK(ret);
@@ -734,8 +731,7 @@ __wt_curstat_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *other, c
if (0) {
config_err:
WT_ERR_MSG(session, EINVAL,
- "cursor's statistics configuration doesn't match the "
- "database statistics configuration");
+ "cursor's statistics configuration doesn't match the database statistics configuration");
}
if (0) {
diff --git a/src/third_party/wiredtiger/src/cursor/cur_std.c b/src/third_party/wiredtiger/src/cursor/cur_std.c
index 9ff94ee9aa6..597b0aae12c 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_std.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_std.c
@@ -143,9 +143,8 @@ __wt_cursor_modify_value_format_notsup(WT_CURSOR *cursor, WT_MODIFY *entries, in
if (cursor->value_format != NULL && strlen(cursor->value_format) != 0) {
session = (WT_SESSION_IMPL *)cursor->session;
- WT_RET_MSG(session, ENOTSUP,
- "WT_CURSOR.modify only supported for 'S' and 'u' value "
- "formats");
+ WT_RET_MSG(
+ session, ENOTSUP, "WT_CURSOR.modify only supported for 'S' and 'u' value formats");
}
return (__wt_cursor_notsup(cursor));
}
@@ -660,7 +659,7 @@ __wt_cursor_cache(WT_CURSOR *cursor, WT_DATA_HANDLE *dhandle)
/* Move the cursor from the open list to the caching hash table. */
if (cursor->uri_hash == 0)
cursor->uri_hash = __wt_hash_city64(cursor->uri, strlen(cursor->uri));
- bucket = cursor->uri_hash % WT_HASH_ARRAY_SIZE;
+ bucket = cursor->uri_hash & (S2C(session)->hash_size - 1);
TAILQ_REMOVE(&session->cursors, cursor, q);
TAILQ_INSERT_HEAD(&session->cursor_cache[bucket], cursor, q);
@@ -693,7 +692,7 @@ __wt_cursor_reopen(WT_CURSOR *cursor, WT_DATA_HANDLE *dhandle)
WT_STAT_CONN_DECR_ATOMIC(session, cursor_cached_count);
WT_STAT_DATA_INCR(session, cursor_open_count);
- bucket = cursor->uri_hash % WT_HASH_ARRAY_SIZE;
+ bucket = cursor->uri_hash & (S2C(session)->hash_size - 1);
TAILQ_REMOVE(&session->cursor_cache[bucket], cursor, q);
TAILQ_INSERT_HEAD(&session->cursors, cursor, q);
F_CLR(cursor, WT_CURSTD_CACHED);
@@ -730,10 +729,11 @@ __wt_cursor_cache_release(WT_SESSION_IMPL *session, WT_CURSOR *cursor, bool *rel
*released = true;
if (0) {
- /*
- * If caching fails, we must restore the state of the cursor back to open so that the close
- * works from a known state. The reopen may also fail, but that doesn't matter at this point.
- */
+ /*
+ * If caching fails, we must restore the state of the cursor back to open so that the close
+ * works from a known state. The reopen may also fail, but that doesn't matter at this
+ * point.
+ */
err:
WT_TRET(cursor->reopen(cursor, false));
WT_ASSERT(session, !F_ISSET(cursor, WT_CURSTD_CACHED));
@@ -816,7 +816,7 @@ __wt_cursor_cache_get(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *to_d
* Walk through all cursors, if there is a cached cursor that matches uri and configuration, use
* it.
*/
- bucket = hash_value % WT_HASH_ARRAY_SIZE;
+ bucket = hash_value & (S2C(session)->hash_size - 1);
TAILQ_FOREACH (cursor, &session->cursor_cache[bucket], q) {
if (cursor->uri_hash == hash_value && strcmp(cursor->uri, uri) == 0) {
if ((ret = cursor->reopen(cursor, false)) != 0) {
@@ -944,9 +944,8 @@ __cursor_modify(WT_CURSOR *cursor, WT_MODIFY *entries, int nentries)
* for consistency.
*/
if (session->txn.isolation != WT_ISO_SNAPSHOT)
- WT_ERR_MSG(session, ENOTSUP,
- "not supported in read-committed or read-uncommitted "
- "transactions");
+ WT_ERR_MSG(
+ session, ENOTSUP, "not supported in read-committed or read-uncommitted transactions");
if (F_ISSET(&session->txn, WT_TXN_AUTOCOMMIT))
WT_ERR_MSG(session, ENOTSUP, "not supported in implicit transactions");
@@ -1103,7 +1102,8 @@ __wt_cursor_init(
*/
WT_RET(__wt_config_gets_def(session, cfg, "dump", 0, &cval));
if (cval.len != 0 && owner == NULL) {
- F_SET(cursor, WT_STRING_MATCH("json", cval.str, cval.len) ?
+ F_SET(cursor,
+ WT_STRING_MATCH("json", cval.str, cval.len) ?
WT_CURSTD_DUMP_JSON :
(WT_STRING_MATCH("print", cval.str, cval.len) ? WT_CURSTD_DUMP_PRINT :
WT_CURSTD_DUMP_HEX));
diff --git a/src/third_party/wiredtiger/src/docs/wtperf.dox b/src/third_party/wiredtiger/src/docs/wtperf.dox
index 70cfe470c29..d5efbaa3f97 100644
--- a/src/third_party/wiredtiger/src/docs/wtperf.dox
+++ b/src/third_party/wiredtiger/src/docs/wtperf.dox
@@ -133,29 +133,29 @@ number of async worker threads
@par checkpoint_interval (unsigned int, default=120)
checkpoint every interval seconds during the workload phase.
@par checkpoint_stress_rate (unsigned int, default=0)
-checkpoint every rate operations during the populate phase in the populate thread(s), 0 to disable
+checkpoint every rate operations during the populate phase in the populate thread(s), 0 to disable
@par checkpoint_threads (unsigned int, default=0)
number of checkpoint threads
@par conn_config (string, default="create,statistics=(fast),statistics_log=(json,wait=1)")
connection configuration string
@par close_conn (boolean, default=true)
-properly close connection at end of test. Setting to false does not sync data to disk and can result in lost data after test exits.
+properly close connection at end of test. Setting to false does not sync data to disk and can result in lost data after test exits.
@par compact (boolean, default=false)
post-populate compact for LSM merging activity
@par compression (string, default="none")
-compression extension. Allowed configuration values are: 'none', 'lz4', 'snappy', 'zlib', 'zstd'
+compression extension. Allowed configuration values are: 'none', 'lz4', 'snappy', 'zlib', 'zstd'
@par create (boolean, default=true)
do population phase; false to use existing database
@par database_count (unsigned int, default=1)
-number of WiredTiger databases to use. Each database will execute the workload using a separate home directory and complete set of worker threads
+number of WiredTiger databases to use. Each database will execute the workload using a separate home directory and complete set of worker threads
@par drop_tables (boolean, default=false)
-Whether to drop all tables at the end of the run, and report time taken to do the drop.
+Whether to drop all tables at the end of the run, and report time taken to do the drop.
@par in_memory (boolean, default=false)
Whether to create the database in-memory.
@par icount (unsigned int, default=5000)
-number of records to initially populate. If multiple tables are configured the count is spread evenly across all tables.
+number of records to initially populate. If multiple tables are configured the count is spread evenly across all tables.
@par idle_table_cycle (unsigned int, default=0)
-Enable regular create and drop of idle tables, value is the maximum number of seconds a create or drop is allowed before flagging an error. Default 0 which means disabled.
+Enable regular create and drop of idle tables, value is the maximum number of seconds a create or drop is allowed before flagging an error. Default 0 which means disabled.
@par index (boolean, default=false)
Whether to create an index on the value field.
@par insert_rmw (boolean, default=false)
@@ -167,29 +167,29 @@ perform partial logging on first table only.
@par log_like_table (boolean, default=false)
Append all modification operations to another shared table.
@par min_throughput (unsigned int, default=0)
-notify if any throughput measured is less than this amount. Aborts or prints warning based on min_throughput_fatal setting. Requires sample_interval to be configured
+notify if any throughput measured is less than this amount. Aborts or prints warning based on min_throughput_fatal setting. Requires sample_interval to be configured
@par min_throughput_fatal (boolean, default=false)
print warning (false) or abort (true) of min_throughput failure.
@par max_latency (unsigned int, default=0)
-notify if any latency measured exceeds this number of milliseconds. Aborts or prints warning based on min_throughput_fatal setting. Requires sample_interval to be configured
+notify if any latency measured exceeds this number of milliseconds.Aborts or prints warning based on min_throughput_fatal setting. Requires sample_interval to be configured
@par max_latency_fatal (boolean, default=false)
print warning (false) or abort (true) of max_latency failure.
@par pareto (unsigned int, default=0)
-use pareto distribution for random numbers. Zero to disable, otherwise a percentage indicating how aggressive the distribution should be.
+use pareto distribution for random numbers. Zero to disable, otherwise a percentage indicating how aggressive the distribution should be.
@par populate_ops_per_txn (unsigned int, default=0)
-number of operations to group into each transaction in the populate phase, zero for auto-commit
+number of operations to group into each transaction in the populate phase, zero for auto-commit
@par populate_threads (unsigned int, default=1)
number of populate threads, 1 for bulk load
@par pre_load_data (boolean, default=false)
Scan all data prior to starting the workload phase to warm the cache
@par random_range (unsigned int, default=0)
-if non zero choose a value from within this range as the key for insert operations
+if non zero choose a value from within this range as the key for insert operations
@par random_value (boolean, default=false)
generate random content for the value
@par range_partition (boolean, default=false)
partition data by range (vs hash)
@par readonly (boolean, default=false)
-reopen the connection between populate and workload phases in readonly mode. Requires reopen_connection turned on (default). Requires that read be the only workload specified
+reopen the connection between populate and workload phases in readonly mode. Requires reopen_connection turned on (default). Requires that read be the only workload specified
@par reopen_connection (boolean, default=true)
close and reopen the connection between populate and workload phases
@par report_interval (unsigned int, default=2)
@@ -201,29 +201,29 @@ total workload seconds
@par sample_interval (unsigned int, default=0)
performance logging every interval seconds, 0 to disable
@par sample_rate (unsigned int, default=50)
-how often the latency of operations is measured. One for every operation, two for every second operation, three for every third operation etc.
+how often the latency of operations is measured. One for every operation, two for every second operation, three for every third operation etc.
@par scan_icount (unsigned int, default=0)
number of records in scan tables to populate
@par scan_interval (unsigned int, default=0)
-scan tables every interval seconds during the workload phase, 0 to disable
+scan tables every interval seconds during the workload phase, 0 to disable
@par scan_pct (unsigned int, default=10)
percentage of entire data set scanned, if scan_interval is enabled
@par scan_table_count (unsigned int, default=0)
-number of separate tables to be used for scanning. Zero indicates that tables are shared with other operations
+number of separate tables to be used for scanning. Zero indicates that tables are shared with other operations
@par sess_config (string, default="")
session configuration string
@par session_count_idle (unsigned int, default=0)
number of idle sessions to create. Default 0.
-@par table_config (string, default="key_format=S,value_format=S,type=lsm,exclusive=true, allocation_size=4kb,internal_page_max=64kb,leaf_page_max=4kb, split_pct=100")
+@par table_config (string, default="key_format=S,value_format=S,type=lsm,exclusive=true,allocation_size=4kb,internal_page_max=64kb, leaf_page_max=4kb,split_pct=100")
table configuration string
@par table_count (unsigned int, default=1)
-number of tables to run operations over. Keys are divided evenly over the tables. Cursors are held open on all tables. Default 1, maximum 99999.
+number of tables to run operations over. Keys are divided evenly over the tables. Cursors are held open on all tables. Default 1, maximum 99999.
@par table_count_idle (unsigned int, default=0)
number of tables to create, that won't be populated. Default 0.
@par threads (string, default="")
-workload configuration: each 'count' entry is the total number of threads, and the 'insert', 'modify', 'read' and 'update' entries are the ratios of insert, modify, read and update operations done by each worker thread; If a throttle value is provided each thread will do a maximum of that number of operations per second; multiple workload configurations may be specified per threads configuration; for example, a more complex threads configuration might be 'threads=((count=2,reads=1)(count=8,reads=1,inserts=2,updates=1))' which would create 2 threads doing nothing but reads and 8 threads each doing 50% inserts and 25% reads and updates. Allowed configuration values are 'count', 'throttle', 'inserts', 'reads', 'read_range', 'modify', 'modify_delta', 'modify_distribute', 'modify_force_update', 'updates', 'update_delta', 'truncate', 'truncate_pct' and 'truncate_count'. There are also behavior modifiers, supported modifiers are 'ops_per_txn'
+workload configuration: each 'count' entry is the total number of threads, and the 'insert', 'modify', 'read' and 'update' entries are the ratios of insert, modify, read and update operations done by each worker thread; If a throttle value is provided each thread will do a maximum of that number of operations per second; multiple workload configurations may be specified per threads configuration; for example, a more complex threads configuration might be 'threads=((count=2,reads=1)(count=8,reads=1,inserts=2,updates=1))' which would create 2 threads doing nothing but reads and 8 threads each doing 50% inserts and 25% reads and updates. Allowed configuration values are 'count', 'throttle', 'inserts', 'reads', 'read_range', 'modify', 'modify_delta', 'modify_distribute', 'modify_force_update', 'updates', 'update_delta', 'truncate', 'truncate_pct' and 'truncate_count'. There are also behavior modifiers, supported modifiers are 'ops_per_txn'
@par transaction_config (string, default="")
-WT_SESSION.begin_transaction configuration string, applied during the populate phase when populate_ops_per_txn is nonzero
+WT_SESSION.begin_transaction configuration string, applied during the populate phase when populate_ops_per_txn is nonzero
@par table_name (string, default="test")
table name
@par truncate_single_ops (boolean, default=false)
diff --git a/src/third_party/wiredtiger/src/evict/evict_file.c b/src/third_party/wiredtiger/src/evict/evict_file.c
index b96331e85d1..97093331e2c 100644
--- a/src/third_party/wiredtiger/src/evict/evict_file.c
+++ b/src/third_party/wiredtiger/src/evict/evict_file.c
@@ -89,8 +89,9 @@ __wt_evict_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop)
/*
* Discard the page regardless of whether it is dirty.
*/
- WT_ASSERT(session, F_ISSET(dhandle, WT_DHANDLE_DEAD) ||
- F_ISSET(S2C(session), WT_CONN_CLOSING) || __wt_page_can_evict(session, ref, NULL));
+ WT_ASSERT(session,
+ F_ISSET(dhandle, WT_DHANDLE_DEAD) || F_ISSET(S2C(session), WT_CONN_CLOSING) ||
+ __wt_page_can_evict(session, ref, NULL));
__wt_ref_out(session, ref);
break;
case WT_SYNC_CHECKPOINT:
diff --git a/src/third_party/wiredtiger/src/evict/evict_lru.c b/src/third_party/wiredtiger/src/evict/evict_lru.c
index 59a8cb97671..b3f0a40e176 100644
--- a/src/third_party/wiredtiger/src/evict/evict_lru.c
+++ b/src/third_party/wiredtiger/src/evict/evict_lru.c
@@ -614,7 +614,7 @@ __evict_update_work(WT_SESSION_IMPL *session)
*/
if (__wt_cache_stuck(session) ||
(__wt_cache_lookaside_score(cache) > 80 &&
- dirty_inuse > (uint64_t)((dirty_target + dirty_trigger) * bytes_max) / 200))
+ dirty_inuse > (uint64_t)((dirty_target + dirty_trigger) * bytes_max) / 200))
LF_SET(WT_CACHE_EVICT_LOOKASIDE);
/*
@@ -1298,7 +1298,7 @@ __evict_walk_choose_dhandle(WT_SESSION_IMPL *session, WT_DATA_HANDLE **dhandle_p
* If we don't have many dhandles, most hash buckets will be empty. Just pick a random dhandle
* from the list in that case.
*/
- if (conn->dhandle_count < WT_HASH_ARRAY_SIZE / 4) {
+ if (conn->dhandle_count < conn->dh_hash_size / 4) {
rnd_dh = __wt_random(&session->rnd) % conn->dhandle_count;
dhandle = TAILQ_FIRST(&conn->dhqh);
for (; rnd_dh > 0; rnd_dh--)
@@ -1311,7 +1311,7 @@ __evict_walk_choose_dhandle(WT_SESSION_IMPL *session, WT_DATA_HANDLE **dhandle_p
* Keep picking up a random bucket until we find one that is not empty.
*/
do {
- rnd_bucket = __wt_random(&session->rnd) % WT_HASH_ARRAY_SIZE;
+ rnd_bucket = __wt_random(&session->rnd) & (conn->dh_hash_size - 1);
} while ((dh_bucket_count = conn->dh_bucket_count[rnd_bucket]) == 0);
/* We can't pick up an empty bucket with a non zero bucket count. */
@@ -1506,7 +1506,7 @@ retry:
*/
if (slot < max_entries &&
(retries < 2 ||
- (retries < WT_RETRY_MAX && (slot == queue->evict_entries || slot > start_slot)))) {
+ (retries < WT_RETRY_MAX && (slot == queue->evict_entries || slot > start_slot)))) {
start_slot = slot;
++retries;
goto retry;
@@ -1897,7 +1897,7 @@ __evict_walk_tree(WT_SESSION_IMPL *session, WT_EVICT_QUEUE *queue, u_int max_ent
!F_ISSET(conn, WT_CONN_EVICTION_NO_LOOKASIDE) && !WT_PAGE_IS_INTERNAL(page) &&
!modified && page->modify != NULL &&
!__wt_txn_visible_all(
- session, page->modify->rec_max_txn, page->modify->rec_max_timestamp)) {
+ session, page->modify->rec_max_txn, page->modify->rec_max_timestamp)) {
__wt_page_modify_set(session, page);
goto fast;
}
@@ -2069,7 +2069,7 @@ __evict_get_ref(WT_SESSION_IMPL *session, bool is_server, WT_BTREE **btreep, WT_
!__evict_queue_full(cache->evict_current_queue) &&
!__evict_queue_full(cache->evict_fill_queue) &&
(cache->evict_empty_score > WT_EVICT_SCORE_CUTOFF ||
- __evict_queue_empty(cache->evict_fill_queue, false)))
+ __evict_queue_empty(cache->evict_fill_queue, false)))
return (WT_NOTFOUND);
__wt_spin_lock(session, &cache->evict_queue_lock);
@@ -2612,10 +2612,9 @@ __wt_verbose_dump_cache(WT_SESSION_IMPL *session)
*/
total_bytes = __wt_cache_bytes_plus_overhead(conn->cache, total_bytes);
- WT_RET(__wt_msg(session,
- "cache dump: "
- "total found: %" PRIu64 "MB vs tracked inuse %" PRIu64 "MB",
- total_bytes / WT_MEGABYTE, __wt_cache_bytes_inuse(conn->cache) / WT_MEGABYTE));
+ WT_RET(
+ __wt_msg(session, "cache dump: total found: %" PRIu64 "MB vs tracked inuse %" PRIu64 "MB",
+ total_bytes / WT_MEGABYTE, __wt_cache_bytes_inuse(conn->cache) / WT_MEGABYTE));
WT_RET(__wt_msg(session, "total dirty bytes: %" PRIu64 "MB", total_dirty_bytes / WT_MEGABYTE));
return (0);
diff --git a/src/third_party/wiredtiger/src/evict/evict_page.c b/src/third_party/wiredtiger/src/evict/evict_page.c
index 83e7aac7669..7c12b1672e7 100644
--- a/src/third_party/wiredtiger/src/evict/evict_page.c
+++ b/src/third_party/wiredtiger/src/evict/evict_page.c
@@ -300,11 +300,11 @@ __evict_page_clean_update(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags)
* Before discarding a page, assert that all updates are globally visible unless the tree is
* closing, dead, or we're evicting with history in lookaside.
*/
- WT_ASSERT(session, closing || ref->page->modify == NULL ||
- F_ISSET(session->dhandle, WT_DHANDLE_DEAD) ||
+ WT_ASSERT(session,
+ closing || ref->page->modify == NULL || F_ISSET(session->dhandle, WT_DHANDLE_DEAD) ||
(ref->page_las != NULL && ref->page_las->eviction_to_lookaside) ||
- __wt_txn_visible_all(session, ref->page->modify->rec_max_txn,
- ref->page->modify->rec_max_timestamp));
+ __wt_txn_visible_all(
+ session, ref->page->modify->rec_max_txn, ref->page->modify->rec_max_timestamp));
/*
* Discard the page and update the reference structure. If evicting a WT_REF_LIMBO page with
@@ -671,7 +671,8 @@ __evict_review(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t evict_flags, bool
/* Reconcile the page. */
ret = __wt_reconcile(session, ref, NULL, flags, lookaside_retryp);
- WT_ASSERT(session, __wt_page_is_modified(page) ||
+ WT_ASSERT(session,
+ __wt_page_is_modified(page) ||
__wt_txn_visible_all(session, page->modify->rec_max_txn, page->modify->rec_max_timestamp));
/*
diff --git a/src/third_party/wiredtiger/src/include/btmem.h b/src/third_party/wiredtiger/src/include/btmem.h
index 1fcfb9c2033..6265bca2ac7 100644
--- a/src/third_party/wiredtiger/src/include/btmem.h
+++ b/src/third_party/wiredtiger/src/include/btmem.h
@@ -1260,7 +1260,8 @@ struct __wt_insert_head {
/* WT_FIX_FOREACH walks fixed-length bit-fields on a disk page. */
#define WT_FIX_FOREACH(btree, dsk, v, i) \
- for ((i) = 0, (v) = (i) < (dsk)->u.entries ? \
+ for ((i) = 0, \
+ (v) = (i) < (dsk)->u.entries ? \
__bit_getv(WT_PAGE_HEADER_BYTE(btree, dsk), 0, (btree)->bitcnt) : \
0; \
(i) < (dsk)->u.entries; \
diff --git a/src/third_party/wiredtiger/src/include/btree.h b/src/third_party/wiredtiger/src/include/btree.h
index b50e9438337..fd012ddbb24 100644
--- a/src/third_party/wiredtiger/src/include/btree.h
+++ b/src/third_party/wiredtiger/src/include/btree.h
@@ -196,6 +196,21 @@ struct __wt_btree {
*/
uint64_t file_max;
+/*
+ * We maintain a timer for a clean file to avoid excessive checking of checkpoint information that
+ * incurs a large processing penalty. We avoid that but will periodically incur the cost to clean up
+ * checkpoints that can be deleted.
+ */
+#define WT_BTREE_CLEAN_CKPT(session, btree, val) \
+ do { \
+ (btree)->clean_ckpt_timer = (val); \
+ WT_STAT_DATA_SET((session), btree_clean_checkpoint_timer, (val)); \
+ } while (0)
+/* Statistics don't like UINT64_MAX, use INT64_MAX. It's still forever. */
+#define WT_BTREE_CLEAN_CKPT_FOREVER INT64_MAX
+#define WT_BTREE_CLEAN_MINUTES 10
+ uint64_t clean_ckpt_timer;
+
/*
* We flush pages from the tree (in order to make checkpoint faster), without a high-level lock.
* To avoid multiple threads flushing at the same time, lock the tree.
diff --git a/src/third_party/wiredtiger/src/include/btree.i b/src/third_party/wiredtiger/src/include/btree.i
index 494546bc8c2..bb09570dc70 100644
--- a/src/third_party/wiredtiger/src/include/btree.i
+++ b/src/third_party/wiredtiger/src/include/btree.i
@@ -98,8 +98,9 @@ __wt_btree_bytes_evictable(WT_SESSION_IMPL *session)
bytes_inmem = btree->bytes_inmem;
bytes_root = root_page == NULL ? 0 : root_page->memory_footprint;
- return (bytes_inmem <= bytes_root ? 0 : __wt_cache_bytes_plus_overhead(
- cache, bytes_inmem - bytes_root));
+ return (bytes_inmem <= bytes_root ?
+ 0 :
+ __wt_cache_bytes_plus_overhead(cache, bytes_inmem - bytes_root));
}
/*
@@ -1609,7 +1610,7 @@ __wt_page_swap_func(WT_SESSION_IMPL *session, WT_REF *held, WT_REF *want, uint32
,
const char *func, int line
#endif
- )
+)
{
WT_DECL_RET;
bool acquired;
@@ -1633,7 +1634,7 @@ __wt_page_swap_func(WT_SESSION_IMPL *session, WT_REF *held, WT_REF *want, uint32
,
func, line
#endif
- );
+ );
/*
* Expected failures: page not found or restart. Our callers list the errors they're expecting
diff --git a/src/third_party/wiredtiger/src/include/cache.i b/src/third_party/wiredtiger/src/include/cache.i
index aae98cdb58b..c556acfd734 100644
--- a/src/third_party/wiredtiger/src/include/cache.i
+++ b/src/third_party/wiredtiger/src/include/cache.i
@@ -178,8 +178,9 @@ __wt_cache_bytes_other(WT_CACHE *cache)
*/
bytes_image = *(volatile uint64_t *)&cache->bytes_image;
bytes_inmem = *(volatile uint64_t *)&cache->bytes_inmem;
- return ((bytes_image > bytes_inmem) ? 0 : __wt_cache_bytes_plus_overhead(
- cache, bytes_inmem - bytes_image));
+ return ((bytes_image > bytes_inmem) ?
+ 0 :
+ __wt_cache_bytes_plus_overhead(cache, bytes_inmem - bytes_image));
}
/*
@@ -337,7 +338,8 @@ __wt_eviction_needed(WT_SESSION_IMPL *session, bool busy, bool readonly, double
* application thread.
*/
if (pct_fullp != NULL)
- *pct_fullp = WT_MAX(0.0, 100.0 -
+ *pct_fullp = WT_MAX(0.0,
+ 100.0 -
WT_MIN(cache->eviction_trigger - pct_full, cache->eviction_dirty_trigger - pct_dirty));
/*
@@ -397,8 +399,9 @@ __wt_cache_eviction_check(WT_SESSION_IMPL *session, bool busy, bool readonly, bo
* holding the handle list, schema or table locks (which can block checkpoints and eviction),
* don't block the thread for eviction.
*/
- if (F_ISSET(session, WT_SESSION_IGNORE_CACHE_SIZE | WT_SESSION_LOCKED_HANDLE_LIST |
- WT_SESSION_LOCKED_SCHEMA | WT_SESSION_LOCKED_TABLE))
+ if (F_ISSET(session,
+ WT_SESSION_IGNORE_CACHE_SIZE | WT_SESSION_LOCKED_HANDLE_LIST | WT_SESSION_LOCKED_SCHEMA |
+ WT_SESSION_LOCKED_TABLE))
return (0);
/* In memory configurations don't block when the cache is full. */
diff --git a/src/third_party/wiredtiger/src/include/cell.i b/src/third_party/wiredtiger/src/include/cell.i
index f9a1485718a..11a98a37aa9 100644
--- a/src/third_party/wiredtiger/src/include/cell.i
+++ b/src/third_party/wiredtiger/src/include/cell.i
@@ -1022,7 +1022,7 @@ restart:
*/
F_SET(unpack, WT_CELL_UNPACK_OVERFLOW);
unpack->ovfl = 1;
- /* FALLTHROUGH */
+ /* FALLTHROUGH */
case WT_CELL_ADDR_DEL:
case WT_CELL_ADDR_INT:
@@ -1042,7 +1042,7 @@ restart:
*/
if (unpack->raw == WT_CELL_KEY || unpack->raw == WT_CELL_KEY_PFX ||
(unpack->raw == WT_CELL_VALUE && unpack->v == 0 &&
- (cell->__chunk[0] & WT_CELL_SECOND_DESC) == 0))
+ (cell->__chunk[0] & WT_CELL_SECOND_DESC) == 0))
v += WT_CELL_SIZE_ADJUST;
unpack->data = p;
@@ -1223,8 +1223,9 @@ __cell_data_ref(
return (__wt_illegal_value(session, unpack->type));
}
- return (huffman == NULL || store->size == 0 ? 0 : __wt_huffman_decode(session, huffman,
- store->data, store->size, store));
+ return (huffman == NULL || store->size == 0 ?
+ 0 :
+ __wt_huffman_decode(session, huffman, store->data, store->size, store));
}
/*
diff --git a/src/third_party/wiredtiger/src/include/column.i b/src/third_party/wiredtiger/src/include/column.i
index fbe2c80f8a3..b76b1a728ff 100644
--- a/src/third_party/wiredtiger/src/include/column.i
+++ b/src/third_party/wiredtiger/src/include/column.i
@@ -176,9 +176,9 @@ __col_insert_search(
/* Fast path appends. */
if (recno >= WT_INSERT_RECNO(ret_ins)) {
for (i = 0; i < WT_SKIP_MAXDEPTH; i++) {
- ins_stack[i] = (i == 0) ? &ret_ins->next[0] : (ins_head->tail[i] != NULL) ?
- &ins_head->tail[i]->next[i] :
- &ins_head->head[i];
+ ins_stack[i] = (i == 0) ?
+ &ret_ins->next[0] :
+ (ins_head->tail[i] != NULL) ? &ins_head->tail[i]->next[i] : &ins_head->head[i];
next_stack[i] = NULL;
}
return (ret_ins);
diff --git a/src/third_party/wiredtiger/src/include/connection.h b/src/third_party/wiredtiger/src/include/connection.h
index 8106359f934..f1f9f52506d 100644
--- a/src/third_party/wiredtiger/src/include/connection.h
+++ b/src/third_party/wiredtiger/src/include/connection.h
@@ -85,8 +85,7 @@ struct __wt_named_encryptor {
const char *name; /* Name of encryptor */
WT_ENCRYPTOR *encryptor; /* User supplied callbacks */
/* Locked: list of encryptors by key */
- TAILQ_HEAD(__wt_keyedhash, __wt_keyed_encryptor)
- keyedhashqh[WT_HASH_ARRAY_SIZE];
+ TAILQ_HEAD(__wt_keyedhash, __wt_keyed_encryptor) * keyedhashqh;
TAILQ_HEAD(__wt_keyed_qh, __wt_keyed_encryptor) keyedqh;
/* Linked list of encryptors */
TAILQ_ENTRY(__wt_named_encryptor) q;
@@ -187,6 +186,8 @@ struct __wt_connection_impl {
const char *home; /* Database home */
const char *error_prefix; /* Database error prefix */
+ uint64_t dh_hash_size; /* Data handle hash bucket array size */
+ uint64_t hash_size; /* General hash bucket array size */
int is_new; /* Connection created database */
uint16_t compat_major; /* Compatibility major version */
@@ -224,24 +225,24 @@ struct __wt_connection_impl {
* of the table URI.
*/
/* Locked: data handle hash array */
- TAILQ_HEAD(__wt_dhhash, __wt_data_handle) dhhash[WT_HASH_ARRAY_SIZE];
+ TAILQ_HEAD(__wt_dhhash, __wt_data_handle) * dhhash;
/* Locked: data handle list */
TAILQ_HEAD(__wt_dhandle_qh, __wt_data_handle) dhqh;
/* Locked: LSM handle list. */
TAILQ_HEAD(__wt_lsm_qh, __wt_lsm_tree) lsmqh;
/* Locked: file list */
- TAILQ_HEAD(__wt_fhhash, __wt_fh) fhhash[WT_HASH_ARRAY_SIZE];
+ TAILQ_HEAD(__wt_fhhash, __wt_fh) * fhhash;
TAILQ_HEAD(__wt_fh_qh, __wt_fh) fhqh;
/* Locked: library list */
TAILQ_HEAD(__wt_dlh_qh, __wt_dlh) dlhqh;
WT_SPINLOCK block_lock; /* Locked: block manager list */
- TAILQ_HEAD(__wt_blockhash, __wt_block) blockhash[WT_HASH_ARRAY_SIZE];
+ TAILQ_HEAD(__wt_blockhash, __wt_block) * blockhash;
TAILQ_HEAD(__wt_block_qh, __wt_block) blockqh;
/* Locked: handles in each bucket */
- u_int dh_bucket_count[WT_HASH_ARRAY_SIZE];
- u_int dhandle_count; /* Locked: handles in the queue */
+ uint64_t *dh_bucket_count;
+ uint64_t dhandle_count; /* Locked: handles in the queue */
u_int open_btree_count; /* Locked: open writable btree count */
uint32_t next_file_id; /* Locked: file ID counter */
uint32_t open_file_count; /* Atomic: open file handle count */
@@ -282,8 +283,12 @@ struct __wt_connection_impl {
wt_off_t ckpt_logsize; /* Checkpoint log size period */
bool ckpt_signalled; /* Checkpoint signalled */
- uint64_t ckpt_usecs; /* Checkpoint timer */
- uint64_t ckpt_time_max; /* Checkpoint time min/max */
+ uint64_t ckpt_apply; /* Checkpoint handles applied */
+ uint64_t ckpt_apply_time; /* Checkpoint applied handles gather time */
+ uint64_t ckpt_skip; /* Checkpoint handles skipped */
+ uint64_t ckpt_skip_time; /* Checkpoint skipped handles gather time */
+ uint64_t ckpt_usecs; /* Checkpoint timer */
+ uint64_t ckpt_time_max; /* Checkpoint time min/max */
uint64_t ckpt_time_min;
uint64_t ckpt_time_recent; /* Checkpoint time recent/total */
uint64_t ckpt_time_total;
@@ -487,16 +492,17 @@ struct __wt_connection_impl {
*/
/* AUTOMATIC FLAG VALUE GENERATION START */
#define WT_TIMING_STRESS_AGGRESSIVE_SWEEP 0x001u
-#define WT_TIMING_STRESS_CHECKPOINT_SLOW 0x002u
-#define WT_TIMING_STRESS_LOOKASIDE_SWEEP 0x004u
-#define WT_TIMING_STRESS_SPLIT_1 0x008u
-#define WT_TIMING_STRESS_SPLIT_2 0x010u
-#define WT_TIMING_STRESS_SPLIT_3 0x020u
-#define WT_TIMING_STRESS_SPLIT_4 0x040u
-#define WT_TIMING_STRESS_SPLIT_5 0x080u
-#define WT_TIMING_STRESS_SPLIT_6 0x100u
-#define WT_TIMING_STRESS_SPLIT_7 0x200u
-#define WT_TIMING_STRESS_SPLIT_8 0x400u
+#define WT_TIMING_STRESS_BACKUP_RENAME 0x002u
+#define WT_TIMING_STRESS_CHECKPOINT_SLOW 0x004u
+#define WT_TIMING_STRESS_LOOKASIDE_SWEEP 0x008u
+#define WT_TIMING_STRESS_SPLIT_1 0x010u
+#define WT_TIMING_STRESS_SPLIT_2 0x020u
+#define WT_TIMING_STRESS_SPLIT_3 0x040u
+#define WT_TIMING_STRESS_SPLIT_4 0x080u
+#define WT_TIMING_STRESS_SPLIT_5 0x100u
+#define WT_TIMING_STRESS_SPLIT_6 0x200u
+#define WT_TIMING_STRESS_SPLIT_7 0x400u
+#define WT_TIMING_STRESS_SPLIT_8 0x800u
/* AUTOMATIC FLAG VALUE GENERATION STOP */
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 59e474b0b8c..696da29a05c 100644
--- a/src/third_party/wiredtiger/src/include/cursor.h
+++ b/src/third_party/wiredtiger/src/include/cursor.h
@@ -9,27 +9,27 @@
/*
* Initialize a static WT_CURSOR structure.
*/
-#define WT_CURSOR_STATIC_INIT(n, get_key, get_value, set_key, set_value, compare, equals, next, \
- prev, reset, search, search_near, insert, modify, update, remove, \
- reserve, reconfigure, cache, reopen, close) \
- static const WT_CURSOR n = { \
- NULL, /* session */ \
- NULL, /* uri */ \
- NULL, /* key_format */ \
- NULL, /* value_format */ \
- get_key, get_value, set_key, set_value, compare, equals, next, prev, reset, search, \
- search_near, insert, modify, update, remove, reserve, close, reconfigure, cache, reopen, \
- 0, /* uri_hash */ \
- {NULL, NULL}, /* TAILQ_ENTRY q */ \
- 0, /* recno key */ \
- {0}, /* recno raw buffer */ \
- NULL, /* json_private */ \
- NULL, /* lang_private */ \
- {NULL, 0, NULL, 0, 0}, /* WT_ITEM key */ \
- {NULL, 0, NULL, 0, 0}, /* WT_ITEM value */ \
- 0, /* int saved_err */ \
- NULL, /* internal_uri */ \
- 0 /* uint32_t flags */ \
+#define WT_CURSOR_STATIC_INIT(n, get_key, get_value, set_key, set_value, compare, equals, next, \
+ prev, reset, search, search_near, insert, modify, update, remove, reserve, reconfigure, cache, \
+ reopen, close) \
+ static const WT_CURSOR n = { \
+ NULL, /* session */ \
+ NULL, /* uri */ \
+ NULL, /* key_format */ \
+ NULL, /* value_format */ \
+ get_key, get_value, set_key, set_value, compare, equals, next, prev, reset, search, \
+ search_near, insert, modify, update, remove, reserve, close, reconfigure, cache, reopen, \
+ 0, /* uri_hash */ \
+ {NULL, NULL}, /* TAILQ_ENTRY q */ \
+ 0, /* recno key */ \
+ {0}, /* recno raw buffer */ \
+ NULL, /* json_private */ \
+ NULL, /* lang_private */ \
+ {NULL, 0, NULL, 0, 0}, /* WT_ITEM key */ \
+ {NULL, 0, NULL, 0, 0}, /* WT_ITEM value */ \
+ 0, /* int saved_err */ \
+ NULL, /* internal_uri */ \
+ 0 /* uint32_t flags */ \
}
struct __wt_cursor_backup {
@@ -58,15 +58,16 @@ struct __wt_cursor_backup {
uint64_t granularity; /* Length, transfer size */
/* AUTOMATIC FLAG VALUE GENERATION START */
-#define WT_CURBACKUP_CKPT_FAKE 0x01u /* Object has fake checkpoint */
-#define WT_CURBACKUP_DUP 0x02u /* Duplicated backup cursor */
-#define WT_CURBACKUP_FORCE_FULL 0x04u /* Force full file copy for this cursor */
-#define WT_CURBACKUP_FORCE_STOP 0x08u /* Force stop incremental backup */
-#define WT_CURBACKUP_HAS_CB_INFO 0x10u /* Object has checkpoint backup info */
-#define WT_CURBACKUP_INCR 0x20u /* Incremental backup cursor */
-#define WT_CURBACKUP_INCR_INIT 0x40u /* Cursor traversal initialized */
-#define WT_CURBACKUP_LOCKER 0x80u /* Hot-backup started */
- /* AUTOMATIC FLAG VALUE GENERATION STOP */
+#define WT_CURBACKUP_CKPT_FAKE 0x001u /* Object has fake checkpoint */
+#define WT_CURBACKUP_DUP 0x002u /* Duplicated backup cursor */
+#define WT_CURBACKUP_FORCE_FULL 0x004u /* Force full file copy for this cursor */
+#define WT_CURBACKUP_FORCE_STOP 0x008u /* Force stop incremental backup */
+#define WT_CURBACKUP_HAS_CB_INFO 0x010u /* Object has checkpoint backup info */
+#define WT_CURBACKUP_INCR 0x020u /* Incremental backup cursor */
+#define WT_CURBACKUP_INCR_INIT 0x040u /* Cursor traversal initialized */
+#define WT_CURBACKUP_LOCKER 0x080u /* Hot-backup started */
+#define WT_CURBACKUP_RENAME 0x100u /* Object had a rename */
+ /* AUTOMATIC FLAG VALUE GENERATION STOP */
uint32_t flags;
};
@@ -213,7 +214,7 @@ struct __wt_cursor_btree {
#define WT_CBT_READ_ONCE 0x080u /* Page in with WT_READ_WONT_NEED */
#define WT_CBT_SEARCH_SMALLEST 0x100u /* Row-store: small-key insert list */
#define WT_CBT_VAR_ONPAGE_MATCH 0x200u /* Var-store: on-page recno match */
-/* AUTOMATIC FLAG VALUE GENERATION STOP */
+ /* AUTOMATIC FLAG VALUE GENERATION STOP */
#define WT_CBT_POSITION_MASK /* Flags associated with position */ \
(WT_CBT_ITERATE_APPEND | WT_CBT_ITERATE_NEXT | WT_CBT_ITERATE_PREV | \
diff --git a/src/third_party/wiredtiger/src/include/cursor.i b/src/third_party/wiredtiger/src/include/cursor.i
index ab5f4b64141..4f788ad52ee 100644
--- a/src/third_party/wiredtiger/src/include/cursor.i
+++ b/src/third_party/wiredtiger/src/include/cursor.i
@@ -437,10 +437,10 @@ __cursor_row_slot_return(WT_CURSOR_BTREE *cbt, WT_ROW *rip, WT_UPDATE *upd)
memcpy((uint8_t *)cbt->row_key->data + cbt->row_key->size, kpack->data, kpack->size);
cbt->row_key->size += kpack->size;
} else {
- /*
- * Call __wt_row_leaf_key_work instead of __wt_row_leaf_key: we already did __wt_row_leaf_key's
- * fast-path checks inline.
- */
+ /*
+ * Call __wt_row_leaf_key_work instead of __wt_row_leaf_key: we already did
+ * __wt_row_leaf_key's fast-path checks inline.
+ */
slow:
WT_RET(__wt_row_leaf_key_work(session, page, rip, cbt->row_key, false));
}
diff --git a/src/third_party/wiredtiger/src/include/error.h b/src/third_party/wiredtiger/src/include/error.h
index 17816ce1f88..2f6d0624770 100644
--- a/src/third_party/wiredtiger/src/include/error.h
+++ b/src/third_party/wiredtiger/src/include/error.h
@@ -82,19 +82,20 @@
#define WT_RET_BUSY_OK(a) WT_RET_ERROR_OK(a, EBUSY)
#define WT_RET_NOTFOUND_OK(a) WT_RET_ERROR_OK(a, WT_NOTFOUND)
/* Set "ret" if not already set. */
-#define WT_TRET(a) \
- do { \
- int __ret; \
- if ((__ret = (a)) != 0 && (__ret == WT_PANIC || ret == 0 || ret == WT_DUPLICATE_KEY || \
- ret == WT_NOTFOUND || ret == WT_RESTART)) \
- ret = __ret; \
+#define WT_TRET(a) \
+ do { \
+ int __ret; \
+ if ((__ret = (a)) != 0 && \
+ (__ret == WT_PANIC || ret == 0 || ret == WT_DUPLICATE_KEY || ret == WT_NOTFOUND || \
+ ret == WT_RESTART)) \
+ ret = __ret; \
} while (0)
#define WT_TRET_ERROR_OK(a, e) \
do { \
int __ret; \
if ((__ret = (a)) != 0 && __ret != (e) && \
(__ret == WT_PANIC || ret == 0 || ret == WT_DUPLICATE_KEY || ret == WT_NOTFOUND || \
- ret == WT_RESTART)) \
+ ret == WT_RESTART)) \
ret = __ret; \
} while (0)
#define WT_TRET_BUSY_OK(a) WT_TRET_ERROR_OK(a, EBUSY)
diff --git a/src/third_party/wiredtiger/src/include/extern.h b/src/third_party/wiredtiger/src/include/extern.h
index c52ad821daf..da6d2a17677 100644
--- a/src/third_party/wiredtiger/src/include/extern.h
+++ b/src/third_party/wiredtiger/src/include/extern.h
@@ -355,6 +355,8 @@ extern int __wt_checkpoint_server_destroy(WT_SESSION_IMPL *session)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_checkpoint_sync(WT_SESSION_IMPL *session, const char *cfg[])
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_ckpt_blkmod_to_meta(WT_SESSION_IMPL *session, WT_ITEM *buf, WT_CKPT *ckpt)
+ WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_close(WT_SESSION_IMPL *session, WT_FH **fhp)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_close_connection_close(WT_SESSION_IMPL *session)
@@ -822,7 +824,7 @@ extern int __wt_log_reset(WT_SESSION_IMPL *session, uint32_t lognum)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_log_scan(WT_SESSION_IMPL *session, WT_LSN *lsnp, uint32_t flags,
int (*func)(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, WT_LSN *next_lsnp,
- void *cookie, int firstrecord),
+ void *cookie, int firstrecord),
void *cookie) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_log_set_version(WT_SESSION_IMPL *session, uint16_t version, uint32_t first_rec,
bool downgrade, bool live_chg, uint32_t *lognump)
@@ -1009,6 +1011,8 @@ extern int __wt_meta_apply_all(WT_SESSION_IMPL *session,
int (*file_func)(WT_SESSION_IMPL *, const char *[]),
int (*name_func)(WT_SESSION_IMPL *, const char *, bool *), const char *cfg[])
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_meta_blk_mods_load(WT_SESSION_IMPL *session, const char *config, WT_CKPT *ckpt,
+ bool rename) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_meta_block_metadata(WT_SESSION_IMPL *session, const char *config, WT_CKPT *ckpt)
WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_meta_checkpoint(WT_SESSION_IMPL *session, const char *fname, const char *checkpoint,
diff --git a/src/third_party/wiredtiger/src/include/log.h b/src/third_party/wiredtiger/src/include/log.h
index d9ae7998af9..cf3f356f1a7 100644
--- a/src/third_party/wiredtiger/src/include/log.h
+++ b/src/third_party/wiredtiger/src/include/log.h
@@ -170,9 +170,10 @@ union __wt_lsn {
/* Slot is in use */
#define WT_LOG_SLOT_ACTIVE(state) (WT_LOG_SLOT_JOINED(state) != WT_LOG_SLOT_JOIN_MASK)
/* Slot is in use, but closed to new joins */
-#define WT_LOG_SLOT_CLOSED(state) \
- (WT_LOG_SLOT_ACTIVE(state) && (FLD_LOG_SLOT_ISSET((uint64_t)(state), WT_LOG_SLOT_CLOSE) && \
- !FLD_LOG_SLOT_ISSET((uint64_t)(state), WT_LOG_SLOT_RESERVED)))
+#define WT_LOG_SLOT_CLOSED(state) \
+ (WT_LOG_SLOT_ACTIVE(state) && \
+ (FLD_LOG_SLOT_ISSET((uint64_t)(state), WT_LOG_SLOT_CLOSE) && \
+ !FLD_LOG_SLOT_ISSET((uint64_t)(state), WT_LOG_SLOT_RESERVED)))
/* Slot is in use, all data copied into buffer */
#define WT_LOG_SLOT_INPROGRESS(state) (WT_LOG_SLOT_RELEASED(state) != WT_LOG_SLOT_JOINED(state))
#define WT_LOG_SLOT_DONE(state) (WT_LOG_SLOT_CLOSED(state) && !WT_LOG_SLOT_INPROGRESS(state))
diff --git a/src/third_party/wiredtiger/src/include/meta.h b/src/third_party/wiredtiger/src/include/meta.h
index 594131241ad..a5498b71f2c 100644
--- a/src/third_party/wiredtiger/src/include/meta.h
+++ b/src/third_party/wiredtiger/src/include/meta.h
@@ -87,8 +87,9 @@ struct __wt_block_mods {
uint64_t offset; /* Zero bit offset for bitstring */
uint64_t granularity;
/* AUTOMATIC FLAG VALUE GENERATION START */
-#define WT_BLOCK_MODS_VALID 0x1u /* Entry is valid */
- /* AUTOMATIC FLAG VALUE GENERATION STOP */
+#define WT_BLOCK_MODS_RENAME 0x1u /* Entry is from a rename */
+#define WT_BLOCK_MODS_VALID 0x2u /* Entry is valid */
+ /* AUTOMATIC FLAG VALUE GENERATION STOP */
uint32_t flags;
};
diff --git a/src/third_party/wiredtiger/src/include/misc.h b/src/third_party/wiredtiger/src/include/misc.h
index ecbc406de1a..358789852a2 100644
--- a/src/third_party/wiredtiger/src/include/misc.h
+++ b/src/third_party/wiredtiger/src/include/misc.h
@@ -92,12 +92,6 @@
#define WT_ENCRYPT_LEN_SIZE sizeof(uint32_t)
/*
- * Default hash table size; we don't need a prime number of buckets because we always use a good
- * hash function.
- */
-#define WT_HASH_ARRAY_SIZE 512
-
-/*
* __wt_calloc_def, __wt_calloc_one --
* Most calloc calls don't need separate count or sizeof arguments.
*/
@@ -110,12 +104,13 @@
* Common case allocate-and-grow function. Starts by allocating the requested number of items
* (at least 10), then doubles each time the list needs to grow.
*/
-#define __wt_realloc_def(session, sizep, number, addr) \
- (((number) * sizeof(**(addr)) <= *(sizep)) ? \
- 0 : \
- __wt_realloc(session, sizep, (F_ISSET(S2C(session), WT_CONN_DEBUG_REALLOC_EXACT)) ? \
- (number) * sizeof(**(addr)) : \
- WT_MAX(*(sizep)*2, WT_MAX(10, (number)) * sizeof(**(addr))), \
+#define __wt_realloc_def(session, sizep, number, addr) \
+ (((number) * sizeof(**(addr)) <= *(sizep)) ? \
+ 0 : \
+ __wt_realloc(session, sizep, \
+ (F_ISSET(S2C(session), WT_CONN_DEBUG_REALLOC_EXACT)) ? \
+ (number) * sizeof(**(addr)) : \
+ WT_MAX(*(sizep)*2, WT_MAX(10, (number)) * sizeof(**(addr))), \
addr))
/*
diff --git a/src/third_party/wiredtiger/src/include/os.h b/src/third_party/wiredtiger/src/include/os.h
index e58fbdbca71..e89695fa040 100644
--- a/src/third_party/wiredtiger/src/include/os.h
+++ b/src/third_party/wiredtiger/src/include/os.h
@@ -71,12 +71,12 @@
#define WT_CLOCKDIFF_MS(end, begin) (WT_CLOCKDIFF_NS(end, begin) / WT_MILLION)
#define WT_CLOCKDIFF_SEC(end, begin) (WT_CLOCKDIFF_NS(end, begin) / WT_BILLION)
-#define WT_TIMECMP(t1, t2) \
- ((t1).tv_sec < (t2).tv_sec ? -1 : (t1).tv_sec == (t2).tv_sec ? \
- (t1).tv_nsec < (t2).tv_nsec ? -1 : (t1).tv_nsec == (t2).tv_nsec ? \
- 0 : \
- 1 : \
- 1)
+#define WT_TIMECMP(t1, t2) \
+ ((t1).tv_sec < (t2).tv_sec ? \
+ -1 : \
+ (t1).tv_sec == (t2).tv_sec ? \
+ (t1).tv_nsec < (t2).tv_nsec ? -1 : (t1).tv_nsec == (t2).tv_nsec ? 0 : 1 : \
+ 1)
/*
* Macros to ensure a file handle is inserted or removed from both the main and the hashed queue,
diff --git a/src/third_party/wiredtiger/src/include/os_fhandle.i b/src/third_party/wiredtiger/src/include/os_fhandle.i
index a391327d9a1..ae0f750ac00 100644
--- a/src/third_party/wiredtiger/src/include/os_fhandle.i
+++ b/src/third_party/wiredtiger/src/include/os_fhandle.i
@@ -36,8 +36,9 @@ __wt_fsync(WT_SESSION_IMPL *session, WT_FH *fh, bool block)
if (block)
ret = (handle->fh_sync == NULL ? 0 : handle->fh_sync(handle, (WT_SESSION *)session));
else
- ret = (handle->fh_sync_nowait == NULL ? 0 : handle->fh_sync_nowait(
- handle, (WT_SESSION *)session));
+ ret =
+ (handle->fh_sync_nowait == NULL ? 0 :
+ handle->fh_sync_nowait(handle, (WT_SESSION *)session));
WT_STAT_CONN_DECR_ATOMIC(session, thread_fsync_active);
return (ret);
}
@@ -160,7 +161,8 @@ __wt_write(WT_SESSION_IMPL *session, WT_FH *fh, wt_off_t offset, size_t len, con
WT_DECL_RET;
uint64_t time_start, time_stop;
- WT_ASSERT(session, !F_ISSET(S2C(session), WT_CONN_READONLY) ||
+ WT_ASSERT(session,
+ !F_ISSET(S2C(session), WT_CONN_READONLY) ||
WT_STRING_MATCH(fh->name, WT_SINGLETHREAD, strlen(WT_SINGLETHREAD)));
__wt_verbose(session, WT_VERB_HANDLEOPS, "%s: handle-write: %" WT_SIZET_FMT " at %" PRIuMAX,
diff --git a/src/third_party/wiredtiger/src/include/packing.i b/src/third_party/wiredtiger/src/include/packing.i
index b18555ca0b4..e09bf051acb 100644
--- a/src/third_party/wiredtiger/src/include/packing.i
+++ b/src/third_party/wiredtiger/src/include/packing.i
@@ -158,8 +158,7 @@ next:
case 's':
if (pv->size < 1)
WT_RET_MSG(pack->session, EINVAL,
- "Fixed length strings must be at least 1 byte "
- "in format '%.*s'",
+ "Fixed length strings must be at least 1 byte in format '%.*s'",
(int)(pack->end - pack->orig), pack->orig);
return (0);
case 'x':
@@ -167,8 +166,7 @@ next:
case 't':
if (pv->size < 1 || pv->size > 8)
WT_RET_MSG(pack->session, EINVAL,
- "Bitfield sizes must be between 1 and 8 bits "
- "in format '%.*s'",
+ "Bitfield sizes must be between 1 and 8 bits in format '%.*s'",
(int)(pack->end - pack->orig), pack->orig);
return (0);
case 'u':
diff --git a/src/third_party/wiredtiger/src/include/schema.h b/src/third_party/wiredtiger/src/include/schema.h
index 83827896f43..5974dbfbd15 100644
--- a/src/third_party/wiredtiger/src/include/schema.h
+++ b/src/third_party/wiredtiger/src/include/schema.h
@@ -185,18 +185,22 @@ struct __wt_table {
*/
#define WT_WITH_SCHEMA_LOCK(session, op) \
do { \
- WT_ASSERT(session, F_ISSET(session, WT_SESSION_LOCKED_SCHEMA) || \
- !F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST | WT_SESSION_NO_SCHEMA_LOCK | \
- WT_SESSION_LOCKED_TABLE)); \
+ WT_ASSERT(session, \
+ F_ISSET(session, WT_SESSION_LOCKED_SCHEMA) || \
+ !F_ISSET(session, \
+ WT_SESSION_LOCKED_HANDLE_LIST | WT_SESSION_NO_SCHEMA_LOCK | \
+ WT_SESSION_LOCKED_TABLE)); \
WT_WITH_LOCK_WAIT(session, &S2C(session)->schema_lock, WT_SESSION_LOCKED_SCHEMA, op); \
} while (0)
-#define WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret, op) \
- do { \
- WT_ASSERT(session, F_ISSET(session, WT_SESSION_LOCKED_SCHEMA) || \
- !F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST | WT_SESSION_NO_SCHEMA_LOCK | \
- WT_SESSION_LOCKED_TABLE)); \
- WT_WITH_LOCK_NOWAIT( \
- session, ret, &S2C(session)->schema_lock, WT_SESSION_LOCKED_SCHEMA, op); \
+#define WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret, op) \
+ do { \
+ WT_ASSERT(session, \
+ F_ISSET(session, WT_SESSION_LOCKED_SCHEMA) || \
+ !F_ISSET(session, \
+ WT_SESSION_LOCKED_HANDLE_LIST | WT_SESSION_NO_SCHEMA_LOCK | \
+ WT_SESSION_LOCKED_TABLE)); \
+ WT_WITH_LOCK_NOWAIT( \
+ session, ret, &S2C(session)->schema_lock, WT_SESSION_LOCKED_SCHEMA, op); \
} while (0)
/*
@@ -240,7 +244,8 @@ struct __wt_table {
} while (0)
#define WT_WITH_TABLE_WRITE_LOCK_NOWAIT(session, ret, op) \
do { \
- WT_ASSERT(session, F_ISSET(session, WT_SESSION_LOCKED_TABLE_WRITE) || \
+ WT_ASSERT(session, \
+ F_ISSET(session, WT_SESSION_LOCKED_TABLE_WRITE) || \
!F_ISSET(session, WT_SESSION_LOCKED_TABLE_READ | WT_SESSION_LOCKED_HANDLE_LIST)); \
if (F_ISSET(session, WT_SESSION_LOCKED_TABLE_WRITE)) { \
op; \
diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h
index c1d024b73a0..56f4125c1f8 100644
--- a/src/third_party/wiredtiger/src/include/stat.h
+++ b/src/third_party/wiredtiger/src/include/stat.h
@@ -459,6 +459,8 @@ struct __wt_connection_stats {
int64_t cond_auto_wait;
int64_t time_travel;
int64_t file_open;
+ int64_t buckets_dh;
+ int64_t buckets;
int64_t memory_allocation;
int64_t memory_free;
int64_t memory_grow;
@@ -683,6 +685,12 @@ struct __wt_connection_stats {
int64_t txn_checkpoint_generation;
int64_t txn_checkpoint_time_max;
int64_t txn_checkpoint_time_min;
+ int64_t txn_checkpoint_handle_duration;
+ int64_t txn_checkpoint_handle_duration_apply;
+ int64_t txn_checkpoint_handle_duration_skip;
+ int64_t txn_checkpoint_handle_applied;
+ int64_t txn_checkpoint_handle_skipped;
+ int64_t txn_checkpoint_handle_walked;
int64_t txn_checkpoint_time_recent;
int64_t txn_checkpoint_scrub_target;
int64_t txn_checkpoint_scrub_time;
@@ -734,6 +742,7 @@ struct __wt_dsrc_stats {
int64_t block_size;
int64_t block_minor;
int64_t btree_checkpoint_generation;
+ int64_t btree_clean_checkpoint_timer;
int64_t btree_column_fix;
int64_t btree_column_internal;
int64_t btree_column_rle;
diff --git a/src/third_party/wiredtiger/src/include/txn.h b/src/third_party/wiredtiger/src/include/txn.h
index bea0d63b753..dc28e254d7b 100644
--- a/src/third_party/wiredtiger/src/include/txn.h
+++ b/src/third_party/wiredtiger/src/include/txn.h
@@ -83,11 +83,12 @@ typedef enum {
(s)->txn.isolation = saved_txn_iso; \
WT_ASSERT((s), (s)->txn.forced_iso > 0); \
(s)->txn.forced_iso--; \
- WT_ASSERT((s), txn_state->id == saved_state.id && \
+ WT_ASSERT((s), \
+ txn_state->id == saved_state.id && \
(txn_state->metadata_pinned == saved_state.metadata_pinned || \
- saved_state.metadata_pinned == WT_TXN_NONE) && \
+ saved_state.metadata_pinned == WT_TXN_NONE) && \
(txn_state->pinned_id == saved_state.pinned_id || \
- saved_state.pinned_id == WT_TXN_NONE)); \
+ saved_state.pinned_id == WT_TXN_NONE)); \
txn_state->metadata_pinned = saved_state.metadata_pinned; \
txn_state->pinned_id = saved_state.pinned_id; \
} while (0)
diff --git a/src/third_party/wiredtiger/src/include/txn.i b/src/third_party/wiredtiger/src/include/txn.i
index 98631a61b1a..aaf6ca7dc71 100644
--- a/src/third_party/wiredtiger/src/include/txn.i
+++ b/src/third_party/wiredtiger/src/include/txn.i
@@ -413,9 +413,8 @@ __wt_txn_modify(WT_SESSION_IMPL *session, WT_UPDATE *upd)
if (F_ISSET(txn, WT_TXN_READONLY)) {
if (F_ISSET(txn, WT_TXN_IGNORE_PREPARE))
- WT_RET_MSG(session, ENOTSUP,
- "Transactions with ignore_prepare=true"
- " cannot perform updates");
+ WT_RET_MSG(
+ session, ENOTSUP, "Transactions with ignore_prepare=true cannot perform updates");
WT_RET_MSG(session, WT_ROLLBACK, "Attempt to update in a read-only transaction");
}
@@ -491,9 +490,9 @@ __wt_txn_oldest_id(WT_SESSION_IMPL *session)
* Take a local copy of these IDs in case they are updated while we are checking visibility.
*/
oldest_id = txn_global->oldest_id;
- include_checkpoint_txn =
- btree == NULL || (!F_ISSET(btree, WT_BTREE_LOOKASIDE) &&
- btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT));
+ include_checkpoint_txn = btree == NULL ||
+ (!F_ISSET(btree, WT_BTREE_LOOKASIDE) &&
+ btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT));
if (!include_checkpoint_txn)
return (oldest_id);
@@ -544,9 +543,9 @@ __wt_txn_pinned_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t *pinned_tsp)
* If there is no active checkpoint or this handle is up to date with the active checkpoint then
* it's safe to ignore the checkpoint ID in the visibility check.
*/
- include_checkpoint_txn =
- btree == NULL || (!F_ISSET(btree, WT_BTREE_LOOKASIDE) &&
- btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT));
+ include_checkpoint_txn = btree == NULL ||
+ (!F_ISSET(btree, WT_BTREE_LOOKASIDE) &&
+ btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT));
if (!include_checkpoint_txn)
return;
@@ -974,14 +973,11 @@ __wt_txn_search_check(WT_SESSION_IMPL *session)
if (!F_ISSET(S2C(session), WT_CONN_RECOVERING) &&
FLD_ISSET(btree->assert_flags, WT_ASSERT_READ_TS_ALWAYS) &&
!F_ISSET(txn, WT_TXN_PUBLIC_TS_READ))
- WT_RET_MSG(session, EINVAL,
- "read_timestamp required and "
- "none set on this transaction");
+ WT_RET_MSG(session, EINVAL, "read_timestamp required and none set on this transaction");
if (FLD_ISSET(btree->assert_flags, WT_ASSERT_READ_TS_NEVER) &&
F_ISSET(txn, WT_TXN_PUBLIC_TS_READ))
- WT_RET_MSG(session, EINVAL,
- "no read_timestamp required and "
- "timestamp set on this transaction");
+ WT_RET_MSG(
+ session, EINVAL, "no read_timestamp required and timestamp set on this transaction");
return (0);
}
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in
index abf55b4bc14..6309776842b 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger.in
+++ b/src/third_party/wiredtiger/src/include/wiredtiger.in
@@ -2919,6 +2919,16 @@ struct __wt_connection {
* @config{&nbsp;&nbsp;&nbsp;&nbsp;close_scan_interval, interval in seconds at which to check for
* files that are inactive and close them., an integer between 1 and 100000; default \c 10.}
* @config{ ),,}
+ * @config{hash = (, manage resources around hash bucket arrays. All values must be a power of two.
+ * Note that setting large values can significantly increase memory usage inside WiredTiger., a set
+ * of related configuration options defined below.}
+ * @config{&nbsp;&nbsp;&nbsp;&nbsp;buckets,
+ * configure the number of hash buckets for most system hash arrays., an integer between 64 and
+ * 65536; default \c 512.}
+ * @config{&nbsp;&nbsp;&nbsp;&nbsp;dhandle_buckets, configure the number of
+ * hash buckets for hash arrays relating to data handles., an integer between 64 and 65536; default
+ * \c 512.}
+ * @config{ ),,}
* @config{in_memory, keep data in-memory only. See @ref in_memory for more information., a boolean
* flag; default \c false.}
* @config{io_capacity = (, control how many bytes per second are written and read. Exceeding the
@@ -5271,538 +5281,563 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_TIME_TRAVEL 1162
/*! connection: files currently open */
#define WT_STAT_CONN_FILE_OPEN 1163
+/*! connection: hash bucket array size for data handles */
+#define WT_STAT_CONN_BUCKETS_DH 1164
+/*! connection: hash bucket array size general */
+#define WT_STAT_CONN_BUCKETS 1165
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1164
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1166
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1165
+#define WT_STAT_CONN_MEMORY_FREE 1167
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1166
+#define WT_STAT_CONN_MEMORY_GROW 1168
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1167
+#define WT_STAT_CONN_COND_WAIT 1169
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1168
+#define WT_STAT_CONN_RWLOCK_READ 1170
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1169
+#define WT_STAT_CONN_RWLOCK_WRITE 1171
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1170
+#define WT_STAT_CONN_FSYNC_IO 1172
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1171
+#define WT_STAT_CONN_READ_IO 1173
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1172
+#define WT_STAT_CONN_WRITE_IO 1174
/*! cursor: cached cursor count */
-#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1173
+#define WT_STAT_CONN_CURSOR_CACHED_COUNT 1175
/*! cursor: cursor bulk loaded cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT_BULK 1174
+#define WT_STAT_CONN_CURSOR_INSERT_BULK 1176
/*! cursor: cursor close calls that result in cache */
-#define WT_STAT_CONN_CURSOR_CACHE 1175
+#define WT_STAT_CONN_CURSOR_CACHE 1177
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1176
+#define WT_STAT_CONN_CURSOR_CREATE 1178
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1177
+#define WT_STAT_CONN_CURSOR_INSERT 1179
/*! cursor: cursor insert key and value bytes */
-#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1178
+#define WT_STAT_CONN_CURSOR_INSERT_BYTES 1180
/*! cursor: cursor modify calls */
-#define WT_STAT_CONN_CURSOR_MODIFY 1179
+#define WT_STAT_CONN_CURSOR_MODIFY 1181
/*! cursor: cursor modify key and value bytes affected */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1180
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES 1182
/*! cursor: cursor modify value bytes modified */
-#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1181
+#define WT_STAT_CONN_CURSOR_MODIFY_BYTES_TOUCH 1183
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1182
+#define WT_STAT_CONN_CURSOR_NEXT 1184
/*! cursor: cursor operation restarted */
-#define WT_STAT_CONN_CURSOR_RESTART 1183
+#define WT_STAT_CONN_CURSOR_RESTART 1185
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1184
+#define WT_STAT_CONN_CURSOR_PREV 1186
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1185
+#define WT_STAT_CONN_CURSOR_REMOVE 1187
/*! cursor: cursor remove key bytes removed */
-#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1186
+#define WT_STAT_CONN_CURSOR_REMOVE_BYTES 1188
/*! cursor: cursor reserve calls */
-#define WT_STAT_CONN_CURSOR_RESERVE 1187
+#define WT_STAT_CONN_CURSOR_RESERVE 1189
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1188
+#define WT_STAT_CONN_CURSOR_RESET 1190
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1189
+#define WT_STAT_CONN_CURSOR_SEARCH 1191
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1190
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1192
/*! cursor: cursor sweep buckets */
-#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1191
+#define WT_STAT_CONN_CURSOR_SWEEP_BUCKETS 1193
/*! cursor: cursor sweep cursors closed */
-#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1192
+#define WT_STAT_CONN_CURSOR_SWEEP_CLOSED 1194
/*! cursor: cursor sweep cursors examined */
-#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1193
+#define WT_STAT_CONN_CURSOR_SWEEP_EXAMINED 1195
/*! cursor: cursor sweeps */
-#define WT_STAT_CONN_CURSOR_SWEEP 1194
+#define WT_STAT_CONN_CURSOR_SWEEP 1196
/*! cursor: cursor truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1195
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1197
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1196
+#define WT_STAT_CONN_CURSOR_UPDATE 1198
/*! cursor: cursor update key and value bytes */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1197
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES 1199
/*! cursor: cursor update value size change */
-#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1198
+#define WT_STAT_CONN_CURSOR_UPDATE_BYTES_CHANGED 1200
/*! cursor: cursors reused from cache */
-#define WT_STAT_CONN_CURSOR_REOPEN 1199
+#define WT_STAT_CONN_CURSOR_REOPEN 1201
/*! cursor: open cursor count */
-#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1200
+#define WT_STAT_CONN_CURSOR_OPEN_COUNT 1202
/*! data-handle: connection data handle size */
-#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1201
+#define WT_STAT_CONN_DH_CONN_HANDLE_SIZE 1203
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1202
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1204
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1203
+#define WT_STAT_CONN_DH_SWEEP_REF 1205
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1204
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1206
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1205
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1207
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1206
+#define WT_STAT_CONN_DH_SWEEP_TOD 1208
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1207
+#define WT_STAT_CONN_DH_SWEEPS 1209
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1208
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1210
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1209
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1211
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1210
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1212
/*! lock: checkpoint lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1211
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1213
/*! lock: checkpoint lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1212
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1214
/*! lock: dhandle lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1213
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1215
/*! lock: dhandle lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1214
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1216
/*! lock: dhandle read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1215
+#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1217
/*! lock: dhandle write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1216
+#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1218
/*!
* lock: durable timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1217
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_APPLICATION 1219
/*!
* lock: durable timestamp queue lock internal thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1218
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WAIT_INTERNAL 1220
/*! lock: durable timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1219
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_READ_COUNT 1221
/*! lock: durable timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1220
+#define WT_STAT_CONN_LOCK_DURABLE_TIMESTAMP_WRITE_COUNT 1222
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1221
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1223
/*! lock: metadata lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1222
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1224
/*! lock: metadata lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1223
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1225
/*!
* lock: read timestamp queue lock application thread time waiting
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1224
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_APPLICATION 1226
/*! lock: read timestamp queue lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1225
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WAIT_INTERNAL 1227
/*! lock: read timestamp queue read lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1226
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_READ_COUNT 1228
/*! lock: read timestamp queue write lock acquisitions */
-#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1227
+#define WT_STAT_CONN_LOCK_READ_TIMESTAMP_WRITE_COUNT 1229
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1228
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1230
/*! lock: schema lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1229
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1231
/*! lock: schema lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1230
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1232
/*!
* lock: table lock application thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1231
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1233
/*!
* lock: table lock internal thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1232
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1234
/*! lock: table read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1233
+#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1235
/*! lock: table write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1234
+#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1236
/*! lock: txn global lock application thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1235
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_APPLICATION 1237
/*! lock: txn global lock internal thread time waiting (usecs) */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1236
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WAIT_INTERNAL 1238
/*! lock: txn global read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1237
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_READ_COUNT 1239
/*! lock: txn global write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1238
+#define WT_STAT_CONN_LOCK_TXN_GLOBAL_WRITE_COUNT 1240
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1239
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1241
/*! log: force archive time sleeping (usecs) */
-#define WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP 1240
+#define WT_STAT_CONN_LOG_FORCE_ARCHIVE_SLEEP 1242
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1241
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1243
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1242
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1244
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1243
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1245
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1244
+#define WT_STAT_CONN_LOG_FLUSH 1246
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1245
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1247
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1246
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1248
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1247
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1249
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1248
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1250
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1249
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1251
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1250
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1252
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1251
+#define WT_STAT_CONN_LOG_SCANS 1253
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1252
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1254
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1253
+#define WT_STAT_CONN_LOG_WRITE_LSN 1255
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1254
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1256
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1255
+#define WT_STAT_CONN_LOG_SYNC 1257
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1256
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1258
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1257
+#define WT_STAT_CONN_LOG_SYNC_DIR 1259
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1258
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1260
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1259
+#define WT_STAT_CONN_LOG_WRITES 1261
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1260
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1262
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1261
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1263
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1262
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1264
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1263
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1265
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1264
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1266
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1265
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1267
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1266
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1268
/*! log: slot close lost race */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1267
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1269
/*! log: slot close unbuffered waits */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1268
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1270
/*! log: slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1269
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1271
/*! log: slot join atomic update races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1270
+#define WT_STAT_CONN_LOG_SLOT_RACES 1272
/*! log: slot join calls atomic updates raced */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1271
+#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1273
/*! log: slot join calls did not yield */
-#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1272
+#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1274
/*! log: slot join calls found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1273
+#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1275
/*! log: slot join calls slept */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1274
+#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1276
/*! log: slot join calls yielded */
-#define WT_STAT_CONN_LOG_SLOT_YIELD 1275
+#define WT_STAT_CONN_LOG_SLOT_YIELD 1277
/*! log: slot join found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1276
+#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1278
/*! log: slot joins yield time (usecs) */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1277
+#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1279
/*! log: slot transitions unable to find free slot */
-#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1278
+#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1280
/*! log: slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1279
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1281
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1280
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1282
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1281
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1283
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1282
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1284
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1283
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1285
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1284
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1286
/*! perf: file system read latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1285
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT50 1287
/*! perf: file system read latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1286
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT100 1288
/*! perf: file system read latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1287
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT250 1289
/*! perf: file system read latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1288
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT500 1290
/*! perf: file system read latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1289
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_LT1000 1291
/*! perf: file system read latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1290
+#define WT_STAT_CONN_PERF_HIST_FSREAD_LATENCY_GT1000 1292
/*! perf: file system write latency histogram (bucket 1) - 10-49ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1291
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT50 1293
/*! perf: file system write latency histogram (bucket 2) - 50-99ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1292
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT100 1294
/*! perf: file system write latency histogram (bucket 3) - 100-249ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1293
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT250 1295
/*! perf: file system write latency histogram (bucket 4) - 250-499ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1294
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT500 1296
/*! perf: file system write latency histogram (bucket 5) - 500-999ms */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1295
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_LT1000 1297
/*! perf: file system write latency histogram (bucket 6) - 1000ms+ */
-#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1296
+#define WT_STAT_CONN_PERF_HIST_FSWRITE_LATENCY_GT1000 1298
/*! perf: operation read latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1297
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT250 1299
/*! perf: operation read latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1298
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT500 1300
/*! perf: operation read latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1299
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT1000 1301
/*! perf: operation read latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1300
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_LT10000 1302
/*! perf: operation read latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1301
+#define WT_STAT_CONN_PERF_HIST_OPREAD_LATENCY_GT10000 1303
/*! perf: operation write latency histogram (bucket 1) - 100-249us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1302
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT250 1304
/*! perf: operation write latency histogram (bucket 2) - 250-499us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1303
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT500 1305
/*! perf: operation write latency histogram (bucket 3) - 500-999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1304
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT1000 1306
/*! perf: operation write latency histogram (bucket 4) - 1000-9999us */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1305
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_LT10000 1307
/*! perf: operation write latency histogram (bucket 5) - 10000us+ */
-#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1306
+#define WT_STAT_CONN_PERF_HIST_OPWRITE_LATENCY_GT10000 1308
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1307
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1309
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1308
+#define WT_STAT_CONN_REC_PAGES 1310
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1309
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1311
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1310
+#define WT_STAT_CONN_REC_PAGE_DELETE 1312
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1311
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1313
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1312
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1314
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1313
+#define WT_STAT_CONN_SESSION_OPEN 1315
/*! session: session query timestamp calls */
-#define WT_STAT_CONN_SESSION_QUERY_TS 1314
+#define WT_STAT_CONN_SESSION_QUERY_TS 1316
/*! session: table alter failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1315
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1317
/*! session: table alter successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1316
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1318
/*! session: table alter unchanged and skipped */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1317
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1319
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1318
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1320
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1319
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1321
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1320
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1322
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1321
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1323
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1322
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1324
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1323
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1325
/*! session: table import failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_IMPORT_FAIL 1324
+#define WT_STAT_CONN_SESSION_TABLE_IMPORT_FAIL 1326
/*! session: table import successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_IMPORT_SUCCESS 1325
+#define WT_STAT_CONN_SESSION_TABLE_IMPORT_SUCCESS 1327
/*! session: table rebalance failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL 1326
+#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL 1328
/*! session: table rebalance successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS 1327
+#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS 1329
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1328
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1330
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1329
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1331
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1330
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1332
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1331
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1333
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1332
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1334
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1333
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1335
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1334
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1336
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1335
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1337
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1336
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1338
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1337
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1339
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1338
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1340
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1339
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1341
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1340
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1342
/*!
* thread-yield: connection close blocked waiting for transaction state
* stabilization
*/
-#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1341
+#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1343
/*! thread-yield: connection close yielded for lsm manager shutdown */
-#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1342
+#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1344
/*! thread-yield: data handle lock yielded */
-#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1343
+#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1345
/*!
* thread-yield: get reference for page index and slot time sleeping
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1344
+#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1346
/*! thread-yield: log server sync yielded for log write */
-#define WT_STAT_CONN_LOG_SERVER_SYNC_BLOCKED 1345
+#define WT_STAT_CONN_LOG_SERVER_SYNC_BLOCKED 1347
/*! thread-yield: page access yielded due to prepare state change */
-#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1346
+#define WT_STAT_CONN_PREPARED_TRANSITION_BLOCKED_PAGE 1348
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1347
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1349
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1348
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1350
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1349
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1351
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1350
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1352
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1351
+#define WT_STAT_CONN_PAGE_SLEEP 1353
/*!
* thread-yield: page delete rollback time sleeping for state change
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1352
+#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1354
/*! thread-yield: page reconciliation yielded due to child modification */
-#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1353
+#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1355
/*! transaction: Number of prepared updates */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COUNT 1354
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_COUNT 1356
/*! transaction: Number of prepared updates added to cache overflow */
-#define WT_STAT_CONN_TXN_PREPARED_UPDATES_LOOKASIDE_INSERTS 1355
+#define WT_STAT_CONN_TXN_PREPARED_UPDATES_LOOKASIDE_INSERTS 1357
/*! transaction: durable timestamp queue entries walked */
-#define WT_STAT_CONN_TXN_DURABLE_QUEUE_WALKED 1356
+#define WT_STAT_CONN_TXN_DURABLE_QUEUE_WALKED 1358
/*! transaction: durable timestamp queue insert to empty */
-#define WT_STAT_CONN_TXN_DURABLE_QUEUE_EMPTY 1357
+#define WT_STAT_CONN_TXN_DURABLE_QUEUE_EMPTY 1359
/*! transaction: durable timestamp queue inserts to head */
-#define WT_STAT_CONN_TXN_DURABLE_QUEUE_HEAD 1358
+#define WT_STAT_CONN_TXN_DURABLE_QUEUE_HEAD 1360
/*! transaction: durable timestamp queue inserts total */
-#define WT_STAT_CONN_TXN_DURABLE_QUEUE_INSERTS 1359
+#define WT_STAT_CONN_TXN_DURABLE_QUEUE_INSERTS 1361
/*! transaction: durable timestamp queue length */
-#define WT_STAT_CONN_TXN_DURABLE_QUEUE_LEN 1360
+#define WT_STAT_CONN_TXN_DURABLE_QUEUE_LEN 1362
/*! transaction: number of named snapshots created */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1361
+#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1363
/*! transaction: number of named snapshots dropped */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1362
+#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1364
/*! transaction: prepared transactions */
-#define WT_STAT_CONN_TXN_PREPARE 1363
+#define WT_STAT_CONN_TXN_PREPARE 1365
/*! transaction: prepared transactions committed */
-#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1364
+#define WT_STAT_CONN_TXN_PREPARE_COMMIT 1366
/*! transaction: prepared transactions currently active */
-#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1365
+#define WT_STAT_CONN_TXN_PREPARE_ACTIVE 1367
/*! transaction: prepared transactions rolled back */
-#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1366
+#define WT_STAT_CONN_TXN_PREPARE_ROLLBACK 1368
/*! transaction: query timestamp calls */
-#define WT_STAT_CONN_TXN_QUERY_TS 1367
+#define WT_STAT_CONN_TXN_QUERY_TS 1369
/*! transaction: read timestamp queue entries walked */
-#define WT_STAT_CONN_TXN_READ_QUEUE_WALKED 1368
+#define WT_STAT_CONN_TXN_READ_QUEUE_WALKED 1370
/*! transaction: read timestamp queue insert to empty */
-#define WT_STAT_CONN_TXN_READ_QUEUE_EMPTY 1369
+#define WT_STAT_CONN_TXN_READ_QUEUE_EMPTY 1371
/*! transaction: read timestamp queue inserts to head */
-#define WT_STAT_CONN_TXN_READ_QUEUE_HEAD 1370
+#define WT_STAT_CONN_TXN_READ_QUEUE_HEAD 1372
/*! transaction: read timestamp queue inserts total */
-#define WT_STAT_CONN_TXN_READ_QUEUE_INSERTS 1371
+#define WT_STAT_CONN_TXN_READ_QUEUE_INSERTS 1373
/*! transaction: read timestamp queue length */
-#define WT_STAT_CONN_TXN_READ_QUEUE_LEN 1372
+#define WT_STAT_CONN_TXN_READ_QUEUE_LEN 1374
/*! transaction: rollback to stable calls */
-#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE 1373
+#define WT_STAT_CONN_TXN_ROLLBACK_TO_STABLE 1375
/*! transaction: rollback to stable updates aborted */
-#define WT_STAT_CONN_TXN_ROLLBACK_UPD_ABORTED 1374
+#define WT_STAT_CONN_TXN_ROLLBACK_UPD_ABORTED 1376
/*! transaction: rollback to stable updates removed from cache overflow */
-#define WT_STAT_CONN_TXN_ROLLBACK_LAS_REMOVED 1375
+#define WT_STAT_CONN_TXN_ROLLBACK_LAS_REMOVED 1377
/*! transaction: set timestamp calls */
-#define WT_STAT_CONN_TXN_SET_TS 1376
+#define WT_STAT_CONN_TXN_SET_TS 1378
/*! transaction: set timestamp durable calls */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1377
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE 1379
/*! transaction: set timestamp durable updates */
-#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1378
+#define WT_STAT_CONN_TXN_SET_TS_DURABLE_UPD 1380
/*! transaction: set timestamp oldest calls */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1379
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST 1381
/*! transaction: set timestamp oldest updates */
-#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1380
+#define WT_STAT_CONN_TXN_SET_TS_OLDEST_UPD 1382
/*! transaction: set timestamp stable calls */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE 1381
+#define WT_STAT_CONN_TXN_SET_TS_STABLE 1383
/*! transaction: set timestamp stable updates */
-#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1382
+#define WT_STAT_CONN_TXN_SET_TS_STABLE_UPD 1384
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1383
+#define WT_STAT_CONN_TXN_BEGIN 1385
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1384
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1386
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1385
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1387
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1386
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1388
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1387
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1389
+/*!
+ * transaction: transaction checkpoint most recent duration for gathering
+ * all handles (usecs)
+ */
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION 1390
+/*!
+ * transaction: transaction checkpoint most recent duration for gathering
+ * applied handles (usecs)
+ */
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_APPLY 1391
+/*!
+ * transaction: transaction checkpoint most recent duration for gathering
+ * skipped handles (usecs)
+ */
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_DURATION_SKIP 1392
+/*! transaction: transaction checkpoint most recent handles applied */
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_APPLIED 1393
+/*! transaction: transaction checkpoint most recent handles skipped */
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_SKIPPED 1394
+/*! transaction: transaction checkpoint most recent handles walked */
+#define WT_STAT_CONN_TXN_CHECKPOINT_HANDLE_WALKED 1395
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1388
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1396
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1389
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1397
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1390
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1398
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1391
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1399
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1392
+#define WT_STAT_CONN_TXN_CHECKPOINT 1400
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1393
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1401
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1394
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1402
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1395
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1403
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1396
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1404
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1397
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1405
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1398
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1406
/*!
* transaction: transaction range of IDs currently pinned by named
* snapshots
*/
-#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1399
+#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1407
/*! transaction: transaction range of timestamps currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1400
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1408
/*! transaction: transaction range of timestamps pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1401
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_CHECKPOINT 1409
/*!
* transaction: transaction range of timestamps pinned by the oldest
* active read timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1402
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_READER 1410
/*!
* transaction: transaction range of timestamps pinned by the oldest
* timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1403
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1411
/*! transaction: transaction read timestamp of the oldest active reader */
-#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1404
+#define WT_STAT_CONN_TXN_TIMESTAMP_OLDEST_ACTIVE_READ 1412
/*! transaction: transaction sync calls */
-#define WT_STAT_CONN_TXN_SYNC 1405
+#define WT_STAT_CONN_TXN_SYNC 1413
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1406
+#define WT_STAT_CONN_TXN_COMMIT 1414
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1407
+#define WT_STAT_CONN_TXN_ROLLBACK 1415
/*! transaction: update conflicts */
-#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1408
+#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1416
/*!
* @}
@@ -5859,364 +5894,366 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_DSRC_BLOCK_MINOR 2021
/*! btree: btree checkpoint generation */
#define WT_STAT_DSRC_BTREE_CHECKPOINT_GENERATION 2022
+/*! btree: btree clean tree checkpoint expiration time */
+#define WT_STAT_DSRC_BTREE_CLEAN_CHECKPOINT_TIMER 2023
/*!
* btree: column-store fixed-size leaf pages, only reported if tree_walk
* or all statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_COLUMN_FIX 2023
+#define WT_STAT_DSRC_BTREE_COLUMN_FIX 2024
/*!
* btree: column-store internal pages, only reported if tree_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_COLUMN_INTERNAL 2024
+#define WT_STAT_DSRC_BTREE_COLUMN_INTERNAL 2025
/*!
* btree: column-store variable-size RLE encoded values, only reported if
* tree_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_COLUMN_RLE 2025
+#define WT_STAT_DSRC_BTREE_COLUMN_RLE 2026
/*!
* btree: column-store variable-size deleted values, only reported if
* tree_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_COLUMN_DELETED 2026
+#define WT_STAT_DSRC_BTREE_COLUMN_DELETED 2027
/*!
* btree: column-store variable-size leaf pages, only reported if
* tree_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_COLUMN_VARIABLE 2027
+#define WT_STAT_DSRC_BTREE_COLUMN_VARIABLE 2028
/*! btree: fixed-record size */
-#define WT_STAT_DSRC_BTREE_FIXED_LEN 2028
+#define WT_STAT_DSRC_BTREE_FIXED_LEN 2029
/*! btree: maximum internal page key size */
-#define WT_STAT_DSRC_BTREE_MAXINTLKEY 2029
+#define WT_STAT_DSRC_BTREE_MAXINTLKEY 2030
/*! btree: maximum internal page size */
-#define WT_STAT_DSRC_BTREE_MAXINTLPAGE 2030
+#define WT_STAT_DSRC_BTREE_MAXINTLPAGE 2031
/*! btree: maximum leaf page key size */
-#define WT_STAT_DSRC_BTREE_MAXLEAFKEY 2031
+#define WT_STAT_DSRC_BTREE_MAXLEAFKEY 2032
/*! btree: maximum leaf page size */
-#define WT_STAT_DSRC_BTREE_MAXLEAFPAGE 2032
+#define WT_STAT_DSRC_BTREE_MAXLEAFPAGE 2033
/*! btree: maximum leaf page value size */
-#define WT_STAT_DSRC_BTREE_MAXLEAFVALUE 2033
+#define WT_STAT_DSRC_BTREE_MAXLEAFVALUE 2034
/*! btree: maximum tree depth */
-#define WT_STAT_DSRC_BTREE_MAXIMUM_DEPTH 2034
+#define WT_STAT_DSRC_BTREE_MAXIMUM_DEPTH 2035
/*!
* btree: number of key/value pairs, only reported if tree_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_ENTRIES 2035
+#define WT_STAT_DSRC_BTREE_ENTRIES 2036
/*!
* btree: overflow pages, only reported if tree_walk or all statistics
* are enabled
*/
-#define WT_STAT_DSRC_BTREE_OVERFLOW 2036
+#define WT_STAT_DSRC_BTREE_OVERFLOW 2037
/*! btree: pages rewritten by compaction */
-#define WT_STAT_DSRC_BTREE_COMPACT_REWRITE 2037
+#define WT_STAT_DSRC_BTREE_COMPACT_REWRITE 2038
/*!
* btree: row-store empty values, only reported if tree_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_ROW_EMPTY_VALUES 2038
+#define WT_STAT_DSRC_BTREE_ROW_EMPTY_VALUES 2039
/*!
* btree: row-store internal pages, only reported if tree_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_ROW_INTERNAL 2039
+#define WT_STAT_DSRC_BTREE_ROW_INTERNAL 2040
/*!
* btree: row-store leaf pages, only reported if tree_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_BTREE_ROW_LEAF 2040
+#define WT_STAT_DSRC_BTREE_ROW_LEAF 2041
/*! cache: bytes currently in the cache */
-#define WT_STAT_DSRC_CACHE_BYTES_INUSE 2041
+#define WT_STAT_DSRC_CACHE_BYTES_INUSE 2042
/*! cache: bytes dirty in the cache cumulative */
-#define WT_STAT_DSRC_CACHE_BYTES_DIRTY_TOTAL 2042
+#define WT_STAT_DSRC_CACHE_BYTES_DIRTY_TOTAL 2043
/*! cache: bytes read into cache */
-#define WT_STAT_DSRC_CACHE_BYTES_READ 2043
+#define WT_STAT_DSRC_CACHE_BYTES_READ 2044
/*! cache: bytes written from cache */
-#define WT_STAT_DSRC_CACHE_BYTES_WRITE 2044
+#define WT_STAT_DSRC_CACHE_BYTES_WRITE 2045
/*! cache: checkpoint blocked page eviction */
-#define WT_STAT_DSRC_CACHE_EVICTION_CHECKPOINT 2045
+#define WT_STAT_DSRC_CACHE_EVICTION_CHECKPOINT 2046
/*! cache: data source pages selected for eviction unable to be evicted */
-#define WT_STAT_DSRC_CACHE_EVICTION_FAIL 2046
+#define WT_STAT_DSRC_CACHE_EVICTION_FAIL 2047
/*! cache: eviction walk passes of a file */
-#define WT_STAT_DSRC_CACHE_EVICTION_WALK_PASSES 2047
+#define WT_STAT_DSRC_CACHE_EVICTION_WALK_PASSES 2048
/*! cache: eviction walk target pages histogram - 0-9 */
-#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT10 2048
+#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT10 2049
/*! cache: eviction walk target pages histogram - 10-31 */
-#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT32 2049
+#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT32 2050
/*! cache: eviction walk target pages histogram - 128 and higher */
-#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_GE128 2050
+#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_GE128 2051
/*! cache: eviction walk target pages histogram - 32-63 */
-#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT64 2051
+#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT64 2052
/*! cache: eviction walk target pages histogram - 64-128 */
-#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT128 2052
+#define WT_STAT_DSRC_CACHE_EVICTION_TARGET_PAGE_LT128 2053
/*! cache: eviction walks abandoned */
-#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_ABANDONED 2053
+#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_ABANDONED 2054
/*! cache: eviction walks gave up because they restarted their walk twice */
-#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_STOPPED 2054
+#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_STOPPED 2055
/*!
* cache: eviction walks gave up because they saw too many pages and
* found no candidates
*/
-#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 2055
+#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 2056
/*!
* cache: eviction walks gave up because they saw too many pages and
* found too few candidates
*/
-#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 2056
+#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 2057
/*! cache: eviction walks reached end of tree */
-#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_ENDED 2057
+#define WT_STAT_DSRC_CACHE_EVICTION_WALKS_ENDED 2058
/*! cache: eviction walks started from root of tree */
-#define WT_STAT_DSRC_CACHE_EVICTION_WALK_FROM_ROOT 2058
+#define WT_STAT_DSRC_CACHE_EVICTION_WALK_FROM_ROOT 2059
/*! cache: eviction walks started from saved location in tree */
-#define WT_STAT_DSRC_CACHE_EVICTION_WALK_SAVED_POS 2059
+#define WT_STAT_DSRC_CACHE_EVICTION_WALK_SAVED_POS 2060
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_DSRC_CACHE_EVICTION_HAZARD 2060
+#define WT_STAT_DSRC_CACHE_EVICTION_HAZARD 2061
/*! cache: in-memory page passed criteria to be split */
-#define WT_STAT_DSRC_CACHE_INMEM_SPLITTABLE 2061
+#define WT_STAT_DSRC_CACHE_INMEM_SPLITTABLE 2062
/*! cache: in-memory page splits */
-#define WT_STAT_DSRC_CACHE_INMEM_SPLIT 2062
+#define WT_STAT_DSRC_CACHE_INMEM_SPLIT 2063
/*! cache: internal pages evicted */
-#define WT_STAT_DSRC_CACHE_EVICTION_INTERNAL 2063
+#define WT_STAT_DSRC_CACHE_EVICTION_INTERNAL 2064
/*! cache: internal pages split during eviction */
-#define WT_STAT_DSRC_CACHE_EVICTION_SPLIT_INTERNAL 2064
+#define WT_STAT_DSRC_CACHE_EVICTION_SPLIT_INTERNAL 2065
/*! cache: leaf pages split during eviction */
-#define WT_STAT_DSRC_CACHE_EVICTION_SPLIT_LEAF 2065
+#define WT_STAT_DSRC_CACHE_EVICTION_SPLIT_LEAF 2066
/*! cache: modified pages evicted */
-#define WT_STAT_DSRC_CACHE_EVICTION_DIRTY 2066
+#define WT_STAT_DSRC_CACHE_EVICTION_DIRTY 2067
/*! cache: overflow pages read into cache */
-#define WT_STAT_DSRC_CACHE_READ_OVERFLOW 2067
+#define WT_STAT_DSRC_CACHE_READ_OVERFLOW 2068
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_DSRC_CACHE_EVICTION_DEEPEN 2068
+#define WT_STAT_DSRC_CACHE_EVICTION_DEEPEN 2069
/*! cache: page written requiring cache overflow records */
-#define WT_STAT_DSRC_CACHE_WRITE_LOOKASIDE 2069
+#define WT_STAT_DSRC_CACHE_WRITE_LOOKASIDE 2070
/*! cache: pages read into cache */
-#define WT_STAT_DSRC_CACHE_READ 2070
+#define WT_STAT_DSRC_CACHE_READ 2071
/*! cache: pages read into cache after truncate */
-#define WT_STAT_DSRC_CACHE_READ_DELETED 2071
+#define WT_STAT_DSRC_CACHE_READ_DELETED 2072
/*! cache: pages read into cache after truncate in prepare state */
-#define WT_STAT_DSRC_CACHE_READ_DELETED_PREPARED 2072
+#define WT_STAT_DSRC_CACHE_READ_DELETED_PREPARED 2073
/*! cache: pages read into cache requiring cache overflow entries */
-#define WT_STAT_DSRC_CACHE_READ_LOOKASIDE 2073
+#define WT_STAT_DSRC_CACHE_READ_LOOKASIDE 2074
/*! cache: pages requested from the cache */
-#define WT_STAT_DSRC_CACHE_PAGES_REQUESTED 2074
+#define WT_STAT_DSRC_CACHE_PAGES_REQUESTED 2075
/*! cache: pages seen by eviction walk */
-#define WT_STAT_DSRC_CACHE_EVICTION_PAGES_SEEN 2075
+#define WT_STAT_DSRC_CACHE_EVICTION_PAGES_SEEN 2076
/*! cache: pages written from cache */
-#define WT_STAT_DSRC_CACHE_WRITE 2076
+#define WT_STAT_DSRC_CACHE_WRITE 2077
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_DSRC_CACHE_WRITE_RESTORE 2077
+#define WT_STAT_DSRC_CACHE_WRITE_RESTORE 2078
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_DSRC_CACHE_BYTES_DIRTY 2078
+#define WT_STAT_DSRC_CACHE_BYTES_DIRTY 2079
/*! cache: unmodified pages evicted */
-#define WT_STAT_DSRC_CACHE_EVICTION_CLEAN 2079
+#define WT_STAT_DSRC_CACHE_EVICTION_CLEAN 2080
/*!
* cache_walk: Average difference between current eviction generation
* when the page was last considered, only reported if cache_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_GEN_AVG_GAP 2080
+#define WT_STAT_DSRC_CACHE_STATE_GEN_AVG_GAP 2081
/*!
* cache_walk: Average on-disk page image size seen, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_AVG_WRITTEN_SIZE 2081
+#define WT_STAT_DSRC_CACHE_STATE_AVG_WRITTEN_SIZE 2082
/*!
* cache_walk: Average time in cache for pages that have been visited by
* the eviction server, only reported if cache_walk or all statistics are
* enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_AVG_VISITED_AGE 2082
+#define WT_STAT_DSRC_CACHE_STATE_AVG_VISITED_AGE 2083
/*!
* cache_walk: Average time in cache for pages that have not been visited
* by the eviction server, only reported if cache_walk or all statistics
* are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_AVG_UNVISITED_AGE 2083
+#define WT_STAT_DSRC_CACHE_STATE_AVG_UNVISITED_AGE 2084
/*!
* cache_walk: Clean pages currently in cache, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_PAGES_CLEAN 2084
+#define WT_STAT_DSRC_CACHE_STATE_PAGES_CLEAN 2085
/*!
* cache_walk: Current eviction generation, only reported if cache_walk
* or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_GEN_CURRENT 2085
+#define WT_STAT_DSRC_CACHE_STATE_GEN_CURRENT 2086
/*!
* cache_walk: Dirty pages currently in cache, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_PAGES_DIRTY 2086
+#define WT_STAT_DSRC_CACHE_STATE_PAGES_DIRTY 2087
/*!
* cache_walk: Entries in the root page, only reported if cache_walk or
* all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_ROOT_ENTRIES 2087
+#define WT_STAT_DSRC_CACHE_STATE_ROOT_ENTRIES 2088
/*!
* cache_walk: Internal pages currently in cache, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_PAGES_INTERNAL 2088
+#define WT_STAT_DSRC_CACHE_STATE_PAGES_INTERNAL 2089
/*!
* cache_walk: Leaf pages currently in cache, only reported if cache_walk
* or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_PAGES_LEAF 2089
+#define WT_STAT_DSRC_CACHE_STATE_PAGES_LEAF 2090
/*!
* cache_walk: Maximum difference between current eviction generation
* when the page was last considered, only reported if cache_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_GEN_MAX_GAP 2090
+#define WT_STAT_DSRC_CACHE_STATE_GEN_MAX_GAP 2091
/*!
* cache_walk: Maximum page size seen, only reported if cache_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_MAX_PAGESIZE 2091
+#define WT_STAT_DSRC_CACHE_STATE_MAX_PAGESIZE 2092
/*!
* cache_walk: Minimum on-disk page image size seen, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_MIN_WRITTEN_SIZE 2092
+#define WT_STAT_DSRC_CACHE_STATE_MIN_WRITTEN_SIZE 2093
/*!
* cache_walk: Number of pages never visited by eviction server, only
* reported if cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_UNVISITED_COUNT 2093
+#define WT_STAT_DSRC_CACHE_STATE_UNVISITED_COUNT 2094
/*!
* cache_walk: On-disk page image sizes smaller than a single allocation
* unit, only reported if cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_SMALLER_ALLOC_SIZE 2094
+#define WT_STAT_DSRC_CACHE_STATE_SMALLER_ALLOC_SIZE 2095
/*!
* cache_walk: Pages created in memory and never written, only reported
* if cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_MEMORY 2095
+#define WT_STAT_DSRC_CACHE_STATE_MEMORY 2096
/*!
* cache_walk: Pages currently queued for eviction, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_QUEUED 2096
+#define WT_STAT_DSRC_CACHE_STATE_QUEUED 2097
/*!
* cache_walk: Pages that could not be queued for eviction, only reported
* if cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_NOT_QUEUEABLE 2097
+#define WT_STAT_DSRC_CACHE_STATE_NOT_QUEUEABLE 2098
/*!
* cache_walk: Refs skipped during cache traversal, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_REFS_SKIPPED 2098
+#define WT_STAT_DSRC_CACHE_STATE_REFS_SKIPPED 2099
/*!
* cache_walk: Size of the root page, only reported if cache_walk or all
* statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_ROOT_SIZE 2099
+#define WT_STAT_DSRC_CACHE_STATE_ROOT_SIZE 2100
/*!
* cache_walk: Total number of pages currently in cache, only reported if
* cache_walk or all statistics are enabled
*/
-#define WT_STAT_DSRC_CACHE_STATE_PAGES 2100
+#define WT_STAT_DSRC_CACHE_STATE_PAGES 2101
/*!
* compression: compressed page maximum internal page size prior to
* compression
*/
-#define WT_STAT_DSRC_COMPRESS_PRECOMP_INTL_MAX_PAGE_SIZE 2101
+#define WT_STAT_DSRC_COMPRESS_PRECOMP_INTL_MAX_PAGE_SIZE 2102
/*!
* compression: compressed page maximum leaf page size prior to
* compression
*/
-#define WT_STAT_DSRC_COMPRESS_PRECOMP_LEAF_MAX_PAGE_SIZE 2102
+#define WT_STAT_DSRC_COMPRESS_PRECOMP_LEAF_MAX_PAGE_SIZE 2103
/*! compression: compressed pages read */
-#define WT_STAT_DSRC_COMPRESS_READ 2103
+#define WT_STAT_DSRC_COMPRESS_READ 2104
/*! compression: compressed pages written */
-#define WT_STAT_DSRC_COMPRESS_WRITE 2104
+#define WT_STAT_DSRC_COMPRESS_WRITE 2105
/*! compression: page written failed to compress */
-#define WT_STAT_DSRC_COMPRESS_WRITE_FAIL 2105
+#define WT_STAT_DSRC_COMPRESS_WRITE_FAIL 2106
/*! compression: page written was too small to compress */
-#define WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL 2106
+#define WT_STAT_DSRC_COMPRESS_WRITE_TOO_SMALL 2107
/*! cursor: bulk loaded cursor insert calls */
-#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2107
+#define WT_STAT_DSRC_CURSOR_INSERT_BULK 2108
/*! cursor: cache cursors reuse count */
-#define WT_STAT_DSRC_CURSOR_REOPEN 2108
+#define WT_STAT_DSRC_CURSOR_REOPEN 2109
/*! cursor: close calls that result in cache */
-#define WT_STAT_DSRC_CURSOR_CACHE 2109
+#define WT_STAT_DSRC_CURSOR_CACHE 2110
/*! cursor: create calls */
-#define WT_STAT_DSRC_CURSOR_CREATE 2110
+#define WT_STAT_DSRC_CURSOR_CREATE 2111
/*! cursor: insert calls */
-#define WT_STAT_DSRC_CURSOR_INSERT 2111
+#define WT_STAT_DSRC_CURSOR_INSERT 2112
/*! cursor: insert key and value bytes */
-#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2112
+#define WT_STAT_DSRC_CURSOR_INSERT_BYTES 2113
/*! cursor: modify */
-#define WT_STAT_DSRC_CURSOR_MODIFY 2113
+#define WT_STAT_DSRC_CURSOR_MODIFY 2114
/*! cursor: modify key and value bytes affected */
-#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES 2114
+#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES 2115
/*! cursor: modify value bytes modified */
-#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES_TOUCH 2115
+#define WT_STAT_DSRC_CURSOR_MODIFY_BYTES_TOUCH 2116
/*! cursor: next calls */
-#define WT_STAT_DSRC_CURSOR_NEXT 2116
+#define WT_STAT_DSRC_CURSOR_NEXT 2117
/*! cursor: open cursor count */
-#define WT_STAT_DSRC_CURSOR_OPEN_COUNT 2117
+#define WT_STAT_DSRC_CURSOR_OPEN_COUNT 2118
/*! cursor: operation restarted */
-#define WT_STAT_DSRC_CURSOR_RESTART 2118
+#define WT_STAT_DSRC_CURSOR_RESTART 2119
/*! cursor: prev calls */
-#define WT_STAT_DSRC_CURSOR_PREV 2119
+#define WT_STAT_DSRC_CURSOR_PREV 2120
/*! cursor: remove calls */
-#define WT_STAT_DSRC_CURSOR_REMOVE 2120
+#define WT_STAT_DSRC_CURSOR_REMOVE 2121
/*! cursor: remove key bytes removed */
-#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2121
+#define WT_STAT_DSRC_CURSOR_REMOVE_BYTES 2122
/*! cursor: reserve calls */
-#define WT_STAT_DSRC_CURSOR_RESERVE 2122
+#define WT_STAT_DSRC_CURSOR_RESERVE 2123
/*! cursor: reset calls */
-#define WT_STAT_DSRC_CURSOR_RESET 2123
+#define WT_STAT_DSRC_CURSOR_RESET 2124
/*! cursor: search calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH 2124
+#define WT_STAT_DSRC_CURSOR_SEARCH 2125
/*! cursor: search near calls */
-#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2125
+#define WT_STAT_DSRC_CURSOR_SEARCH_NEAR 2126
/*! cursor: truncate calls */
-#define WT_STAT_DSRC_CURSOR_TRUNCATE 2126
+#define WT_STAT_DSRC_CURSOR_TRUNCATE 2127
/*! cursor: update calls */
-#define WT_STAT_DSRC_CURSOR_UPDATE 2127
+#define WT_STAT_DSRC_CURSOR_UPDATE 2128
/*! cursor: update key and value bytes */
-#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2128
+#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES 2129
/*! cursor: update value size change */
-#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES_CHANGED 2129
+#define WT_STAT_DSRC_CURSOR_UPDATE_BYTES_CHANGED 2130
/*! reconciliation: dictionary matches */
-#define WT_STAT_DSRC_REC_DICTIONARY 2130
+#define WT_STAT_DSRC_REC_DICTIONARY 2131
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2131
+#define WT_STAT_DSRC_REC_PAGE_DELETE_FAST 2132
/*!
* reconciliation: internal page key bytes discarded using suffix
* compression
*/
-#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2132
+#define WT_STAT_DSRC_REC_SUFFIX_COMPRESSION 2133
/*! reconciliation: internal page multi-block writes */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2133
+#define WT_STAT_DSRC_REC_MULTIBLOCK_INTERNAL 2134
/*! reconciliation: internal-page overflow keys */
-#define WT_STAT_DSRC_REC_OVERFLOW_KEY_INTERNAL 2134
+#define WT_STAT_DSRC_REC_OVERFLOW_KEY_INTERNAL 2135
/*! reconciliation: leaf page key bytes discarded using prefix compression */
-#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2135
+#define WT_STAT_DSRC_REC_PREFIX_COMPRESSION 2136
/*! reconciliation: leaf page multi-block writes */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2136
+#define WT_STAT_DSRC_REC_MULTIBLOCK_LEAF 2137
/*! reconciliation: leaf-page overflow keys */
-#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2137
+#define WT_STAT_DSRC_REC_OVERFLOW_KEY_LEAF 2138
/*! reconciliation: maximum blocks required for a page */
-#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2138
+#define WT_STAT_DSRC_REC_MULTIBLOCK_MAX 2139
/*! reconciliation: overflow values written */
-#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2139
+#define WT_STAT_DSRC_REC_OVERFLOW_VALUE 2140
/*! reconciliation: page checksum matches */
-#define WT_STAT_DSRC_REC_PAGE_MATCH 2140
+#define WT_STAT_DSRC_REC_PAGE_MATCH 2141
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_DSRC_REC_PAGES 2141
+#define WT_STAT_DSRC_REC_PAGES 2142
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_DSRC_REC_PAGES_EVICTION 2142
+#define WT_STAT_DSRC_REC_PAGES_EVICTION 2143
/*! reconciliation: pages deleted */
-#define WT_STAT_DSRC_REC_PAGE_DELETE 2143
+#define WT_STAT_DSRC_REC_PAGE_DELETE 2144
/*! session: object compaction */
-#define WT_STAT_DSRC_SESSION_COMPACT 2144
+#define WT_STAT_DSRC_SESSION_COMPACT 2145
/*! transaction: update conflicts */
-#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2145
+#define WT_STAT_DSRC_TXN_UPDATE_CONFLICT 2146
/*!
* @}
diff --git a/src/third_party/wiredtiger/src/log/log.c b/src/third_party/wiredtiger/src/log/log.c
index 9856a18c853..8c1bbfd9222 100644
--- a/src/third_party/wiredtiger/src/log/log.c
+++ b/src/third_party/wiredtiger/src/log/log.c
@@ -920,9 +920,8 @@ __log_open_verify(WT_SESSION_IMPL *session, uint32_t id, WT_FH **fhp, WT_LSN *ls
*/
if (desc->version > WT_LOG_VERSION)
WT_ERR_MSG(session, WT_ERROR,
- "unsupported WiredTiger file version: this build"
- " only supports versions up to %d,"
- " and the file is version %" PRIu16,
+ "unsupported WiredTiger file version: this build only supports versions up to %d, and "
+ "the file is version %" PRIu16,
WT_LOG_VERSION, desc->version);
/*
@@ -930,19 +929,17 @@ __log_open_verify(WT_SESSION_IMPL *session, uint32_t id, WT_FH **fhp, WT_LSN *ls
* maximum.
*/
if (conn->req_max_major != WT_CONN_COMPAT_NONE && desc->version > conn->log_req_max)
- WT_ERR_MSG(session, WT_ERROR, WT_COMPAT_MSG_PREFIX
- "unsupported WiredTiger file version: this build"
- " requires a maximum version of %" PRIu16
- ","
- " and the file is version %" PRIu16,
+ WT_ERR_MSG(session, WT_ERROR,
+ WT_COMPAT_MSG_PREFIX
+ "unsupported WiredTiger file version: this build requires a maximum version of %" PRIu16
+ ", and the file is version %" PRIu16,
conn->log_req_max, desc->version);
if (conn->req_min_major != WT_CONN_COMPAT_NONE && desc->version < conn->log_req_min)
- WT_ERR_MSG(session, WT_ERROR, WT_COMPAT_MSG_PREFIX
- "unsupported WiredTiger file version: this build"
- " requires a minimum version of %" PRIu16
- ","
- " and the file is version %" PRIu16,
+ WT_ERR_MSG(session, WT_ERROR,
+ WT_COMPAT_MSG_PREFIX
+ "unsupported WiredTiger file version: this build requires a minimum version of %" PRIu16
+ ", and the file is version %" PRIu16,
conn->log_req_min, desc->version);
/*
@@ -1030,8 +1027,9 @@ __log_record_verify(
}
for (i = 0; i < sizeof(logrec.unused); i++)
if (logrec.unused[i] != 0) {
- WT_RET(__wt_msg(session, "%s: log record at position %" PRIu32
- " has unused[%" WT_SIZET_FMT "] corruption 0x%" PRIx8,
+ WT_RET(__wt_msg(session,
+ "%s: log record at position %" PRIu32 " has unused[%" WT_SIZET_FMT
+ "] corruption 0x%" PRIx8,
log_fh->name, offset, i, logrec.unused[i]));
*corrupt = true;
}
@@ -2022,7 +2020,7 @@ __log_salvage_message(
int
__wt_log_scan(WT_SESSION_IMPL *session, WT_LSN *lsnp, uint32_t flags,
int (*func)(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, WT_LSN *next_lsnp,
- void *cookie, int firstrecord),
+ void *cookie, int firstrecord),
void *cookie)
{
WT_CONNECTION_IMPL *conn;
@@ -2211,9 +2209,7 @@ advance:
if (LF_ISSET(WT_LOGSCAN_RECOVER) && version == WT_LOG_VERSION_SYSTEM &&
WT_IS_ZERO_LSN(&prev_lsn)) {
__wt_verbose(session, WT_VERB_LOG,
- "log_scan: Stopping, no system "
- "record detected in %s.",
- log_fh->name);
+ "log_scan: Stopping, no system record detected in %s.", log_fh->name);
break;
}
WT_ERR(__wt_filesize(session, log_fh, &log_size));
@@ -2399,13 +2395,11 @@ err:
if (ret != 0 && firstrecord && LF_ISSET(WT_LOGSCAN_RECOVER | WT_LOGSCAN_RECOVER_METADATA)) {
__wt_err(session, ret, "WiredTiger is unable to read the recovery log");
__wt_err(session, ret,
- "This may be due to the log"
- " files being encrypted, being from an older"
- " version or due to corruption on disk");
+ "This may be due to the log files being encrypted, being from an older version or due to "
+ "corruption on disk");
__wt_err(session, ret,
- "You should confirm that you have"
- " opened the database with the correct options including"
- " all encryption and compression options");
+ "You should confirm that you have opened the database with the correct options including "
+ "all encryption and compression options");
}
WT_TRET(__wt_fs_directory_list_free(session, &logfiles, logcount));
@@ -2576,9 +2570,8 @@ __log_write_internal(WT_SESSION_IMPL *session, WT_ITEM *record, WT_LSN *lsnp, ui
conn = S2C(session);
log = conn->log;
if (record->size > UINT32_MAX)
- WT_RET_MSG(session, EFBIG, "Log record size of %" WT_SIZET_FMT
- " exceeds the maximum "
- "supported size of %" PRIu32,
+ WT_RET_MSG(session, EFBIG,
+ "Log record size of %" WT_SIZET_FMT " exceeds the maximum supported size of %" PRIu32,
record->size, UINT32_MAX);
WT_INIT_LSN(&lsn);
myslot.slot = NULL;
diff --git a/src/third_party/wiredtiger/src/log/log_sys.c b/src/third_party/wiredtiger/src/log/log_sys.c
index 0d0348499e9..73ca8cc2ada 100644
--- a/src/third_party/wiredtiger/src/log/log_sys.c
+++ b/src/third_party/wiredtiger/src/log/log_sys.c
@@ -116,14 +116,14 @@ __wt_verbose_dump_log(WT_SESSION_IMPL *session)
WT_RET(__wt_msg(session, "Pre-allocate files: %s", conn->log_prealloc > 0 ? "yes" : "no"));
WT_RET(__wt_msg(session, "Logging directory: %s", conn->log_path));
WT_RET(__wt_msg(session, "Logging maximum file size: %" PRId64, (int64_t)conn->log_file_max));
- WT_RET(
- __wt_msg(session, "Log sync setting: %s", !FLD_ISSET(conn->txn_logsync, WT_LOG_SYNC_ENABLED) ?
- "none" :
- FLD_ISSET(conn->txn_logsync, WT_LOG_DSYNC) ?
- "dsync" :
- FLD_ISSET(conn->txn_logsync, WT_LOG_FLUSH) ?
- "write to OS" :
- FLD_ISSET(conn->txn_logsync, WT_LOG_FSYNC) ? "fsync to disk" : "unknown sync setting"));
+ WT_RET(__wt_msg(session, "Log sync setting: %s",
+ !FLD_ISSET(conn->txn_logsync, WT_LOG_SYNC_ENABLED) ?
+ "none" :
+ FLD_ISSET(conn->txn_logsync, WT_LOG_DSYNC) ?
+ "dsync" :
+ FLD_ISSET(conn->txn_logsync, WT_LOG_FLUSH) ?
+ "write to OS" :
+ FLD_ISSET(conn->txn_logsync, WT_LOG_FSYNC) ? "fsync to disk" : "unknown sync setting"));
WT_RET(__wt_msg(session, "Log record allocation alignment: %" PRIu32, log->allocsize));
WT_RET(__wt_msg(session, "Current log file number: %" PRIu32, log->fileid));
WT_RET(__wt_msg(session, "Current log version number: %" PRIu16, log->log_version));
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_cursor.c b/src/third_party/wiredtiger/src/lsm/lsm_cursor.c
index 07084533265..bc8c1c22985 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_cursor.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_cursor.c
@@ -107,7 +107,7 @@ __clsm_enter_update(WT_CURSOR_LSM *clsm)
WT_ASSERT(session, F_ISSET(&session->txn, WT_TXN_HAS_ID));
have_primary = (primary != NULL && primary_chunk != NULL &&
(primary_chunk->switch_txn == WT_TXN_NONE ||
- WT_TXNID_LT(session->txn.id, primary_chunk->switch_txn)));
+ WT_TXNID_LT(session->txn.id, primary_chunk->switch_txn)));
}
/*
@@ -229,7 +229,7 @@ __clsm_enter(WT_CURSOR_LSM *clsm, bool reset, bool update)
if ((!update || txn->isolation != WT_ISO_SNAPSHOT ||
F_ISSET(clsm, WT_CLSM_OPEN_SNAPSHOT)) &&
((update && clsm->primary_chunk != NULL) ||
- (!update && F_ISSET(clsm, WT_CLSM_OPEN_READ))))
+ (!update && F_ISSET(clsm, WT_CLSM_OPEN_READ))))
break;
open:
@@ -682,14 +682,14 @@ err:
if (lsm_tree->custom_generation == 0 ||
chunk->generation < lsm_tree->custom_generation) {
checkpoint = ((WT_CURSOR_BTREE *)cursor)->btree->dhandle->checkpoint;
- WT_ASSERT(session, (F_ISSET(chunk, WT_LSM_CHUNK_ONDISK) && !chunk->empty) ?
- checkpoint != NULL :
- checkpoint == NULL);
+ WT_ASSERT(session,
+ (F_ISSET(chunk, WT_LSM_CHUNK_ONDISK) && !chunk->empty) ? checkpoint != NULL :
+ checkpoint == NULL);
}
/* Make sure the Bloom config matches. */
- WT_ASSERT(
- session, (F_ISSET(chunk, WT_LSM_CHUNK_BLOOM) && !F_ISSET(clsm, WT_CLSM_MERGE)) ?
+ WT_ASSERT(session,
+ (F_ISSET(chunk, WT_LSM_CHUNK_BLOOM) && !F_ISSET(clsm, WT_CLSM_MERGE)) ?
clsm->chunks[i]->bloom != NULL :
clsm->chunks[i]->bloom == NULL);
}
@@ -1388,9 +1388,10 @@ __clsm_put(WT_SESSION_IMPL *session, WT_CURSOR_LSM *clsm, const WT_ITEM *key, co
lsm_tree = clsm->lsm_tree;
- WT_ASSERT(session, F_ISSET(&session->txn, WT_TXN_HAS_ID) && clsm->primary_chunk != NULL &&
+ WT_ASSERT(session,
+ F_ISSET(&session->txn, WT_TXN_HAS_ID) && clsm->primary_chunk != NULL &&
(clsm->primary_chunk->switch_txn == WT_TXN_NONE ||
- WT_TXNID_LE(session->txn.id, clsm->primary_chunk->switch_txn)));
+ WT_TXNID_LE(session->txn.id, clsm->primary_chunk->switch_txn)));
/*
* Clear the existing cursor position. Don't clear the primary cursor: we're about to use it
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_manager.c b/src/third_party/wiredtiger/src/lsm/lsm_manager.c
index 2d5c017909f..dff03d2663d 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_manager.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_manager.c
@@ -391,17 +391,15 @@ __lsm_manager_run_server(WT_SESSION_IMPL *session)
else if ((!lsm_tree->modified && lsm_tree->nchunks > 1) ||
(lsm_tree->queue_ref == 0 && lsm_tree->nchunks > 1) ||
(lsm_tree->merge_aggressiveness > WT_LSM_AGGRESSIVE_THRESHOLD &&
- !F_ISSET(lsm_tree, WT_LSM_TREE_COMPACTING)) ||
+ !F_ISSET(lsm_tree, WT_LSM_TREE_COMPACTING)) ||
idlems > fillms) {
WT_ERR(__wt_lsm_manager_push_entry(session, WT_LSM_WORK_SWITCH, 0, lsm_tree));
WT_ERR(__wt_lsm_manager_push_entry(session, WT_LSM_WORK_DROP, 0, lsm_tree));
WT_ERR(__wt_lsm_manager_push_entry(session, WT_LSM_WORK_FLUSH, 0, lsm_tree));
WT_ERR(__wt_lsm_manager_push_entry(session, WT_LSM_WORK_BLOOM, 0, lsm_tree));
__wt_verbose(session, WT_VERB_LSM_MANAGER,
- "MGR %s: queue %" PRIu32
- " mod %d "
- "nchunks %" PRIu32 " flags %#" PRIx32 " aggressive %" PRIu32 " idlems %" PRIu64
- " fillms %" PRIu64,
+ "MGR %s: queue %" PRIu32 " mod %d nchunks %" PRIu32 " flags %#" PRIx32
+ " aggressive %" PRIu32 " idlems %" PRIu64 " fillms %" PRIu64,
lsm_tree->name, lsm_tree->queue_ref, lsm_tree->modified, lsm_tree->nchunks,
lsm_tree->flags, lsm_tree->merge_aggressiveness, idlems, fillms);
WT_ERR(__wt_lsm_manager_push_entry(session, WT_LSM_WORK_MERGE, 0, lsm_tree));
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_merge.c b/src/third_party/wiredtiger/src/lsm/lsm_merge.c
index faaa471a609..b56467ac889 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_merge.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_merge.c
@@ -113,10 +113,8 @@ __lsm_merge_aggressive_update(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
if (new_aggressive > lsm_tree->merge_aggressiveness) {
__wt_verbose(session, WT_VERB_LSM,
- "LSM merge %s got aggressive "
- "(old %" PRIu32 " new %" PRIu32
- "), "
- "merge_min %u, %" PRIu64 " / %" PRIu64,
+ "LSM merge %s got aggressive (old %" PRIu32 " new %" PRIu32 "), merge_min %u, %" PRIu64
+ " / %" PRIu64,
lsm_tree->name, lsm_tree->merge_aggressiveness, new_aggressive, lsm_tree->merge_min,
msec_since_last_merge, lsm_tree->chunk_fill_ms);
lsm_tree->merge_aggressiveness = new_aggressive;
@@ -243,8 +241,9 @@ retry_find:
* small chunks in the middle.
*/
if ((chunk_size += chunk->size) > lsm_tree->chunk_max)
- if (nchunks < merge_min || (chunk->generation > youngest->generation &&
- chunk_size - youngest->size > lsm_tree->chunk_max))
+ if (nchunks < merge_min ||
+ (chunk->generation > youngest->generation &&
+ chunk_size - youngest->size > lsm_tree->chunk_max))
break;
/* Track chunk generations seen while looking for a merge */
@@ -267,7 +266,7 @@ retry_find:
*/
if (chunk_size > lsm_tree->chunk_max ||
(nchunks == merge_max && start_chunk > 0 &&
- chunk->generation == lsm_tree->chunk[start_chunk - 1]->generation)) {
+ chunk->generation == lsm_tree->chunk[start_chunk - 1]->generation)) {
/*
* Try again with smaller range. Unfortunately all the intermediate state will be reset.
* Since there's no easy way to restore youngest_gen and oldest_gen.
@@ -374,13 +373,13 @@ __wt_lsm_merge(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, u_int id)
* in the conditional. Avoid the loop in the normal path.
*/
if (WT_VERBOSE_ISSET(session, WT_VERB_LSM)) {
- __wt_verbose(session, WT_VERB_LSM, "Merging %s chunks %u-%u into %u (%" PRIu64
- " records)"
- ", generation %" PRIu32,
+ __wt_verbose(session, WT_VERB_LSM,
+ "Merging %s chunks %u-%u into %u (%" PRIu64 " records), generation %" PRIu32,
lsm_tree->name, start_chunk, end_chunk, dest_id, record_count, generation);
for (verb = start_chunk; verb < end_chunk + 1; verb++)
- __wt_verbose(session, WT_VERB_LSM, "Merging %s: Chunk[%u] id %" PRIu32 ", gen: %" PRIu32
- ", size: %" PRIu64 ", records: %" PRIu64,
+ __wt_verbose(session, WT_VERB_LSM,
+ "Merging %s: Chunk[%u] id %" PRIu32 ", gen: %" PRIu32 ", size: %" PRIu64
+ ", records: %" PRIu64,
lsm_tree->name, verb, lsm_tree->chunk[verb]->id, lsm_tree->chunk[verb]->generation,
lsm_tree->chunk[verb]->size, lsm_tree->chunk[verb]->count);
}
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_meta.c b/src/third_party/wiredtiger/src/lsm/lsm_meta.c
index 2d3ff2e7286..84631003ab0 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_meta.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_meta.c
@@ -199,8 +199,8 @@ __lsm_meta_read_v1(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, const char *
if (FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OFF) &&
FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OLDEST))
WT_ERR_MSG(session, EINVAL,
- "Bloom filters can only be created on newest and oldest "
- "chunks if bloom filters are enabled");
+ "Bloom filters can only be created on newest and oldest chunks if bloom filters are "
+ "enabled");
WT_ERR(__wt_config_getones(session, lsmconf, "lsm.bloom_bit_count", &cv));
lsm_tree->bloom_bit_count = (uint32_t)cv.val;
@@ -228,8 +228,8 @@ __lsm_meta_read_v1(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree, const char *
if (lsm_tree->chunk_size > lsm_tree->chunk_max)
WT_ERR_MSG(session, EINVAL,
- "Chunk size (chunk_size) must be smaller than or equal to "
- "the maximum chunk size (chunk_max)");
+ "Chunk size (chunk_size) must be smaller than or equal to the maximum chunk size "
+ "(chunk_max)");
WT_ERR(__wt_config_getones(session, lsmconf, "lsm.merge_max", &cv));
lsm_tree->merge_max = (uint32_t)cv.val;
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_tree.c b/src/third_party/wiredtiger/src/lsm/lsm_tree.c
index 64202688de3..118ffa9c020 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_tree.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_tree.c
@@ -439,9 +439,9 @@ __lsm_tree_open_check(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
required = WT_LSM_TREE_MINIMUM_SIZE(lsm_tree->chunk_size, lsm_tree->merge_max, maxleafpage);
if (conn->cache_size < required)
- WT_RET_MSG(session, EINVAL, "LSM cache size %" PRIu64 " (%" PRIu64
- "MB) too small, "
- "must be at least %" PRIu64 " (%" PRIu64 "MB)",
+ WT_RET_MSG(session, EINVAL,
+ "LSM cache size %" PRIu64 " (%" PRIu64 "MB) too small, must be at least %" PRIu64
+ " (%" PRIu64 "MB)",
conn->cache_size, conn->cache_size / WT_MEGABYTE, required,
(required + (WT_MEGABYTE - 1)) / WT_MEGABYTE);
return (0);
@@ -1083,8 +1083,9 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp)
* There is no work to do if there is only a single chunk in the tree and it has a bloom filter
* or is configured to never have a bloom filter.
*/
- if (lsm_tree->nchunks == 1 && (!FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OLDEST) ||
- F_ISSET(lsm_tree->chunk[0], WT_LSM_CHUNK_BLOOM))) {
+ if (lsm_tree->nchunks == 1 &&
+ (!FLD_ISSET(lsm_tree->bloom, WT_LSM_BLOOM_OLDEST) ||
+ F_ISSET(lsm_tree->chunk[0], WT_LSM_CHUNK_BLOOM))) {
__wt_lsm_tree_release(session, lsm_tree);
return (0);
}
@@ -1174,9 +1175,8 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp)
if (flushing) {
WT_ASSERT(session, chunk != NULL);
if (F_ISSET(chunk, WT_LSM_CHUNK_ONDISK)) {
- __wt_verbose(session, WT_VERB_LSM, "Compact flush done %s chunk %" PRIu32
- ". "
- "Start compacting progress %" PRIu64,
+ __wt_verbose(session, WT_VERB_LSM,
+ "Compact flush done %s chunk %" PRIu32 ". Start compacting progress %" PRIu64,
name, chunk->id, lsm_tree->merge_progressing);
(void)__wt_atomic_sub32(&chunk->refcnt, 1);
flushing = ref = false;
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_work_unit.c b/src/third_party/wiredtiger/src/lsm/lsm_work_unit.c
index 6c732d00728..5f70933ca26 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_work_unit.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_work_unit.c
@@ -572,8 +572,7 @@ __lsm_bloom_create(
WT_ERR_NOTFOUND_OK(__wt_bloom_get(bloom, &key));
__wt_verbose(session, WT_VERB_LSM,
- "LSM worker created bloom filter %s. "
- "Expected %" PRIu64 " items, got %" PRIu64,
+ "LSM worker created bloom filter %s. Expected %" PRIu64 " items, got %" PRIu64,
chunk->bloom_uri, chunk->count, insert_count);
/* Ensure the bloom filter is in the metadata. */
diff --git a/src/third_party/wiredtiger/src/meta/meta_ckpt.c b/src/third_party/wiredtiger/src/meta/meta_ckpt.c
index cd22f0636ed..4d19e06f8d6 100644
--- a/src/third_party/wiredtiger/src/meta/meta_ckpt.c
+++ b/src/third_party/wiredtiger/src/meta/meta_ckpt.c
@@ -11,7 +11,6 @@
static int __ckpt_last(WT_SESSION_IMPL *, const char *, WT_CKPT *);
static int __ckpt_last_name(WT_SESSION_IMPL *, const char *, const char **);
static int __ckpt_load(WT_SESSION_IMPL *, WT_CONFIG_ITEM *, WT_CONFIG_ITEM *, WT_CKPT *);
-static int __ckpt_load_blk_mods(WT_SESSION_IMPL *, const char *, WT_CKPT *);
static int __ckpt_named(WT_SESSION_IMPL *, const char *, const char *, WT_CKPT *);
static int __ckpt_set(WT_SESSION_IMPL *, const char *, const char *, bool);
static int __ckpt_version_chk(WT_SESSION_IMPL *, const char *, const char *);
@@ -73,6 +72,16 @@ __ckpt_load_blk_mods(WT_SESSION_IMPL *session, const char *config, WT_CKPT *ckpt
blk_mod->nbits = (uint64_t)b.val;
WT_RET(__wt_config_subgets(session, &v, "offset", &b));
blk_mod->offset = (uint64_t)b.val;
+ /*
+ * The rename configuration string component was added later. So don't error if we don't
+ * find it in the string. If we don't have it, we're not doing a rename.
+ */
+ ret = __wt_config_subgets(session, &v, "rename", &b);
+ WT_RET_NOTFOUND_OK(ret);
+ if (ret == 0 && b.val)
+ F_SET(blk_mod, WT_BLOCK_MODS_RENAME);
+ else
+ F_CLR(blk_mod, WT_BLOCK_MODS_RENAME);
ret = __wt_config_subgets(session, &v, "blocks", &b);
WT_RET_NOTFOUND_OK(ret);
if (ret != WT_NOTFOUND) {
@@ -356,9 +365,8 @@ __wt_meta_block_metadata(WT_SESSION_IMPL *session, const char *config, WT_CKPT *
*/
WT_ERR(__wt_config_gets(session, filecfg, "encryption", &cval));
WT_ERR(__wt_buf_fmt(session, b,
- "encryption=%.*s,"
- "block_metadata_encrypted=%s,block_metadata=[%.*s]",
- (int)cval.len, cval.str, kencryptor == NULL ? "false" : "true", (int)metadata_len, metadata));
+ "encryption=%.*s,block_metadata_encrypted=%s,block_metadata=[%.*s]", (int)cval.len, cval.str,
+ kencryptor == NULL ? "false" : "true", (int)metadata_len, metadata));
WT_ERR(__wt_strndup(session, b->data, b->size, &ckpt->block_metadata));
err:
@@ -389,7 +397,7 @@ __ckpt_compare_order(const void *a, const void *b)
* information.
*/
static int
-__ckpt_valid_blk_mods(WT_SESSION_IMPL *session, WT_CKPT *ckpt)
+__ckpt_valid_blk_mods(WT_SESSION_IMPL *session, WT_CKPT *ckpt, bool rename)
{
WT_BLKINCR *blk;
WT_BLOCK_MODS *blk_mod;
@@ -427,6 +435,10 @@ __ckpt_valid_blk_mods(WT_SESSION_IMPL *session, WT_CKPT *ckpt)
setup = true;
}
+ /* If we are keeping or setting up an entry on a rename, set the flag. */
+ if (rename && (!free || setup))
+ F_SET(blk_mod, WT_BLOCK_MODS_RENAME);
+
/* Free any old information if we need to do so. */
if (free && F_ISSET(blk_mod, WT_BLOCK_MODS_VALID)) {
__wt_free(session, blk_mod->id_str);
@@ -451,6 +463,32 @@ __ckpt_valid_blk_mods(WT_SESSION_IMPL *session, WT_CKPT *ckpt)
}
/*
+ * __wt_meta_blk_mods_load --
+ * Load the block mods for a given checkpoint and set up all the information to store.
+ */
+int
+__wt_meta_blk_mods_load(WT_SESSION_IMPL *session, const char *config, WT_CKPT *ckpt, bool rename)
+{
+ /*
+ * Load most recent checkpoint backup blocks to this checkpoint.
+ */
+ WT_RET(__ckpt_load_blk_mods(session, config, ckpt));
+
+ WT_RET(__wt_meta_block_metadata(session, config, ckpt));
+
+ /*
+ * Set the add-a-checkpoint flag, and if we're doing incremental backups, request a list of the
+ * checkpoint's modified blocks from the block manager.
+ */
+ F_SET(ckpt, WT_CKPT_ADD);
+ if (F_ISSET(S2C(session), WT_CONN_INCR_BACKUP)) {
+ F_SET(ckpt, WT_CKPT_BLOCK_MODS);
+ WT_RET(__ckpt_valid_blk_mods(session, ckpt, rename));
+ }
+ return (0);
+}
+
+/*
* __wt_meta_ckptlist_get --
* Load all available checkpoint information for a file.
*/
@@ -524,22 +562,7 @@ __wt_meta_ckptlist_get(
__wt_atomic_cas64(&conn->ckpt_most_recent, most_recent, ckpt->sec))
break;
}
- /*
- * Load most recent checkpoint backup blocks to this checkpoint.
- */
- WT_ERR(__ckpt_load_blk_mods(session, config, ckpt));
-
- WT_ERR(__wt_meta_block_metadata(session, config, ckpt));
-
- /*
- * Set the add-a-checkpoint flag, and if we're doing incremental backups, request a list of
- * the checkpoint's modified blocks from the block manager.
- */
- F_SET(ckpt, WT_CKPT_ADD);
- if (F_ISSET(conn, WT_CONN_INCR_BACKUP)) {
- F_SET(ckpt, WT_CKPT_BLOCK_MODS);
- WT_ERR(__ckpt_valid_blk_mods(session, ckpt));
- }
+ WT_ERR(__wt_meta_blk_mods_load(session, config, ckpt, false));
}
/* Return the array to our caller. */
@@ -739,19 +762,19 @@ __wt_meta_ckptlist_to_meta(WT_SESSION_IMPL *session, WT_CKPT *ckptbase, WT_ITEM
}
/*
- * __ckpt_blkmod_to_meta --
+ * __wt_ckpt_blkmod_to_meta --
* Add in any modification block string needed, including an empty one.
*/
-static int
-__ckpt_blkmod_to_meta(WT_SESSION_IMPL *session, WT_ITEM *buf, WT_CKPT *ckpt)
+int
+__wt_ckpt_blkmod_to_meta(WT_SESSION_IMPL *session, WT_ITEM *buf, WT_CKPT *ckpt)
{
WT_BLOCK_MODS *blk;
WT_ITEM bitstring;
u_int i;
- bool valid;
+ bool skip_rename, valid;
WT_CLEAR(bitstring);
- valid = false;
+ skip_rename = valid = false;
for (i = 0, blk = &ckpt->backup_blocks[0]; i < WT_BLKINCR_MAX; ++i, ++blk)
if (F_ISSET(blk, WT_BLOCK_MODS_VALID))
valid = true;
@@ -771,10 +794,22 @@ __ckpt_blkmod_to_meta(WT_SESSION_IMPL *session, WT_ITEM *buf, WT_CKPT *ckpt)
for (i = 0, blk = &ckpt->backup_blocks[0]; i < WT_BLKINCR_MAX; ++i, ++blk) {
if (!F_ISSET(blk, WT_BLOCK_MODS_VALID))
continue;
+
+ /*
+ * Occasionally skip including the rename string at all when it's not necessary for
+ * correctness, that lets us simulate what is generated in the config string by earlier
+ * versions of WiredTiger
+ */
+ if (FLD_ISSET(S2C(session)->timing_stress_flags, WT_TIMING_STRESS_BACKUP_RENAME) &&
+ !F_ISSET(blk, WT_BLOCK_MODS_RENAME) && __wt_random(&session->rnd) % 10 == 0)
+ skip_rename = true;
+
WT_RET(__wt_raw_to_hex(session, blk->bitstring.data, blk->bitstring.size, &bitstring));
- WT_RET(__wt_buf_catfmt(session, buf, "%s\"%s\"=(id=%" PRIu32 ",granularity=%" PRIu64
- ",nbits=%" PRIu64 ",offset=%" PRIu64 ",blocks=%.*s)",
+ WT_RET(__wt_buf_catfmt(session, buf,
+ "%s\"%s\"=(id=%" PRIu32 ",granularity=%" PRIu64 ",nbits=%" PRIu64 ",offset=%" PRIu64
+ "%s,blocks=%.*s)",
i == 0 ? "" : ",", blk->id_str, i, blk->granularity, blk->nbits, blk->offset,
+ skip_rename ? "" : F_ISSET(blk, WT_BLOCK_MODS_RENAME) ? ",rename=1" : ",rename=0",
(int)bitstring.size, (char *)bitstring.data));
/* The hex string length should match the appropriate number of bits. */
WT_ASSERT(session, (blk->nbits >> 2) <= bitstring.size);
@@ -803,7 +838,7 @@ __wt_meta_ckptlist_set(
/* Add backup block modifications for any added checkpoint. */
WT_CKPT_FOREACH (ckptbase, ckpt)
if (F_ISSET(ckpt, WT_CKPT_ADD))
- WT_ERR(__ckpt_blkmod_to_meta(session, buf, ckpt));
+ WT_ERR(__wt_ckpt_blkmod_to_meta(session, buf, ckpt));
has_lsn = ckptlsn != NULL;
if (ckptlsn != NULL)
@@ -925,9 +960,8 @@ __ckpt_version_chk(WT_SESSION_IMPL *session, const char *fname, const char *conf
(majorv == WT_BTREE_MAJOR_VERSION_MIN && minorv < WT_BTREE_MINOR_VERSION_MIN) ||
(majorv == WT_BTREE_MAJOR_VERSION_MAX && minorv > WT_BTREE_MINOR_VERSION_MAX))
WT_RET_MSG(session, EACCES,
- "%s is an unsupported WiredTiger source file version %d.%d"
- "; this WiredTiger build only supports versions from %d.%d "
- "to %d.%d",
+ "%s is an unsupported WiredTiger source file version %d.%d; this WiredTiger build only "
+ "supports versions from %d.%d to %d.%d",
fname, majorv, minorv, WT_BTREE_MAJOR_VERSION_MIN, WT_BTREE_MINOR_VERSION_MIN,
WT_BTREE_MAJOR_VERSION_MAX, WT_BTREE_MINOR_VERSION_MAX);
return (0);
diff --git a/src/third_party/wiredtiger/src/meta/meta_turtle.c b/src/third_party/wiredtiger/src/meta/meta_turtle.c
index e75994644a8..b9c44592b45 100644
--- a/src/third_party/wiredtiger/src/meta/meta_turtle.c
+++ b/src/third_party/wiredtiger/src/meta/meta_turtle.c
@@ -233,17 +233,13 @@ __wt_turtle_init(WT_SESSION_IMPL *session)
* incremental backup file and a destination database that incorrectly ran recovery.
*/
if (exist_incr && !exist_isrc)
- WT_RET_MSG(session, EINVAL,
- "Incremental backup after running recovery "
- "is not allowed");
+ WT_RET_MSG(session, EINVAL, "Incremental backup after running recovery is not allowed");
/*
* If we have a backup file and metadata and turtle files, we want to recreate the metadata
* from the backup.
*/
if (exist_backup) {
- WT_RET(__wt_msg(session,
- "Both %s and %s exist; recreating metadata from "
- "backup",
+ WT_RET(__wt_msg(session, "Both %s and %s exist; recreating metadata from backup",
WT_METADATA_TURTLE, WT_METADATA_BACKUP));
WT_RET(__wt_remove_if_exists(session, WT_METAFILE, false));
WT_RET(__wt_remove_if_exists(session, WT_METADATA_TURTLE, false));
diff --git a/src/third_party/wiredtiger/src/os_common/os_alloc.c b/src/third_party/wiredtiger/src/os_common/os_alloc.c
index d36897729c2..779d55620a4 100644
--- a/src/third_party/wiredtiger/src/os_common/os_alloc.c
+++ b/src/third_party/wiredtiger/src/os_common/os_alloc.c
@@ -106,7 +106,8 @@ __realloc_func(WT_SESSION_IMPL *session, size_t *bytes_allocated_ret, size_t byt
*/
p = *(void **)retp;
bytes_allocated = (bytes_allocated_ret == NULL) ? 0 : *bytes_allocated_ret;
- WT_ASSERT(session, (p == NULL && bytes_allocated == 0) ||
+ WT_ASSERT(session,
+ (p == NULL && bytes_allocated == 0) ||
(p != NULL && (bytes_allocated_ret == NULL || bytes_allocated != 0)));
WT_ASSERT(session, bytes_to_allocate != 0);
WT_ASSERT(session, bytes_allocated < bytes_to_allocate);
@@ -184,7 +185,8 @@ __wt_realloc_aligned(
*/
p = *(void **)retp;
bytes_allocated = (bytes_allocated_ret == NULL) ? 0 : *bytes_allocated_ret;
- WT_ASSERT(session, (p == NULL && bytes_allocated == 0) ||
+ WT_ASSERT(session,
+ (p == NULL && bytes_allocated == 0) ||
(p != NULL && (bytes_allocated_ret == NULL || bytes_allocated != 0)));
WT_ASSERT(session, bytes_to_allocate != 0);
WT_ASSERT(session, bytes_allocated < bytes_to_allocate);
diff --git a/src/third_party/wiredtiger/src/os_common/os_fhandle.c b/src/third_party/wiredtiger/src/os_common/os_fhandle.c
index 91702db3c59..3cd22b65260 100644
--- a/src/third_party/wiredtiger/src/os_common/os_fhandle.c
+++ b/src/third_party/wiredtiger/src/os_common/os_fhandle.c
@@ -58,7 +58,7 @@ __wt_handle_is_open(WT_SESSION_IMPL *session, const char *name)
found = false;
hash = __wt_hash_city64(name, strlen(name));
- bucket = hash % WT_HASH_ARRAY_SIZE;
+ bucket = hash & (conn->hash_size - 1);
__wt_spin_lock(session, &conn->fh_lock);
@@ -92,7 +92,7 @@ __handle_search(WT_SESSION_IMPL *session, const char *name, WT_FH *newfh, WT_FH
found = false;
hash = __wt_hash_city64(name, strlen(name));
- bucket = hash % WT_HASH_ARRAY_SIZE;
+ bucket = hash & (conn->hash_size - 1);
__wt_spin_lock(session, &conn->fh_lock);
@@ -293,7 +293,7 @@ __handle_close(WT_SESSION_IMPL *session, WT_FH *fh, bool locked)
}
/* Remove from the list. */
- bucket = fh->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = fh->name_hash & (conn->hash_size - 1);
WT_FILE_HANDLE_REMOVE(conn, fh, bucket);
(void)__wt_atomic_sub32(&conn->open_file_count, 1);
diff --git a/src/third_party/wiredtiger/src/os_common/os_fs_inmemory.c b/src/third_party/wiredtiger/src/os_common/os_fs_inmemory.c
index 3c41b5f3a6f..8c62a47c651 100644
--- a/src/third_party/wiredtiger/src/os_common/os_fs_inmemory.c
+++ b/src/third_party/wiredtiger/src/os_common/os_fs_inmemory.c
@@ -14,7 +14,7 @@
typedef struct {
WT_FILE_SYSTEM iface;
- TAILQ_HEAD(__wt_fhhash_inmem, __wt_file_handle_inmem) fhhash[WT_HASH_ARRAY_SIZE];
+ TAILQ_HEAD(__wt_fhhash_inmem, __wt_file_handle_inmem) * fhhash;
TAILQ_HEAD(__wt_fh_inmem_qh, __wt_file_handle_inmem) fhqh;
WT_SPINLOCK lock;
@@ -27,7 +27,7 @@ static int __im_file_size(WT_FILE_HANDLE *, WT_SESSION *, wt_off_t *);
* Return a matching handle, if one exists.
*/
static WT_FILE_HANDLE_INMEM *
-__im_handle_search(WT_FILE_SYSTEM *file_system, const char *name)
+__im_handle_search(WT_SESSION_IMPL *session, WT_FILE_SYSTEM *file_system, const char *name)
{
WT_FILE_HANDLE_INMEM *im_fh;
WT_FILE_SYSTEM_INMEM *im_fs;
@@ -36,7 +36,7 @@ __im_handle_search(WT_FILE_SYSTEM *file_system, const char *name)
im_fs = (WT_FILE_SYSTEM_INMEM *)file_system;
hash = __wt_hash_city64(name, strlen(name));
- bucket = hash % WT_HASH_ARRAY_SIZE;
+ bucket = hash & (S2C(session)->hash_size - 1);
TAILQ_FOREACH (im_fh, &im_fs->fhhash[bucket], hashq)
if (strcmp(im_fh->iface.name, name) == 0)
break;
@@ -64,7 +64,7 @@ __im_handle_remove(
return (__wt_set_return(session, EBUSY));
}
- bucket = im_fh->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = im_fh->name_hash & (S2C(session)->hash_size - 1);
WT_FILE_HANDLE_REMOVE(im_fs, im_fh, bucket);
/* Clean up private information. */
@@ -174,7 +174,7 @@ __im_fs_exist(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *n
__wt_spin_lock(session, &im_fs->lock);
- *existp = __im_handle_search(file_system, name) != NULL;
+ *existp = __im_handle_search(session, file_system, name) != NULL;
__wt_spin_unlock(session, &im_fs->lock);
return (0);
@@ -201,7 +201,7 @@ __im_fs_remove(
__wt_spin_lock(session, &im_fs->lock);
ret = ENOENT;
- if ((im_fh = __im_handle_search(file_system, name)) != NULL)
+ if ((im_fh = __im_handle_search(session, file_system, name)) != NULL)
ret = __im_handle_remove(session, file_system, im_fh, false);
__wt_spin_unlock(session, &im_fs->lock);
@@ -231,15 +231,15 @@ __im_fs_rename(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *
__wt_spin_lock(session, &im_fs->lock);
ret = ENOENT;
- if ((im_fh = __im_handle_search(file_system, from)) != NULL) {
+ if ((im_fh = __im_handle_search(session, file_system, from)) != NULL) {
WT_ERR(__wt_strdup(session, to, &copy));
__wt_free(session, im_fh->iface.name);
im_fh->iface.name = copy;
- bucket = im_fh->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = im_fh->name_hash & (S2C(session)->hash_size - 1);
WT_FILE_HANDLE_REMOVE(im_fs, im_fh, bucket);
im_fh->name_hash = __wt_hash_city64(to, strlen(to));
- bucket = im_fh->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = im_fh->name_hash & (S2C(session)->hash_size - 1);
WT_FILE_HANDLE_INSERT(im_fs, im_fh, bucket);
}
@@ -266,7 +266,7 @@ __im_fs_size(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *na
__wt_spin_lock(session, &im_fs->lock);
/* Search for the handle, then get its size. */
- if ((im_fh = __im_handle_search(file_system, name)) == NULL)
+ if ((im_fh = __im_handle_search(session, file_system, name)) == NULL)
ret = __wt_set_return(session, ENOENT);
else
*sizep = (wt_off_t)im_fh->buf.size;
@@ -343,9 +343,8 @@ __im_file_read(
__wt_spin_unlock(session, &im_fs->lock);
if (ret == 0)
return (0);
- WT_RET_MSG(session, WT_ERROR, "%s: handle-read: failed to read %" WT_SIZET_FMT
- " bytes at "
- "offset %" WT_SIZET_FMT,
+ WT_RET_MSG(session, WT_ERROR,
+ "%s: handle-read: failed to read %" WT_SIZET_FMT " bytes at offset %" WT_SIZET_FMT,
file_handle->name, len, off);
}
@@ -416,9 +415,8 @@ err:
__wt_spin_unlock(session, &im_fs->lock);
if (ret == 0)
return (0);
- WT_RET_MSG(session, ret, "%s: handle-write: failed to write %" WT_SIZET_FMT
- " bytes at "
- "offset %" WT_SIZET_FMT,
+ WT_RET_MSG(session, ret,
+ "%s: handle-write: failed to write %" WT_SIZET_FMT " bytes at offset %" WT_SIZET_FMT,
file_handle->name, len, off);
}
@@ -449,7 +447,7 @@ __im_file_open(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *
* First search the file queue, if we find it, assert there's only a single reference, in-memory
* only supports a single handle on any file, for now.
*/
- im_fh = __im_handle_search(file_system, name);
+ im_fh = __im_handle_search(session, file_system, name);
if (im_fh != NULL) {
if (im_fh->ref != 0)
@@ -475,7 +473,7 @@ __im_file_open(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char *
im_fh->ref = 1;
hash = __wt_hash_city64(name, strlen(name));
- bucket = hash % WT_HASH_ARRAY_SIZE;
+ bucket = hash & (S2C(session)->hash_size - 1);
im_fh->name_hash = hash;
WT_FILE_HANDLE_INSERT(im_fs, im_fh, bucket);
@@ -519,6 +517,7 @@ __im_terminate(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session)
WT_TAILQ_SAFE_REMOVE_END
__wt_spin_destroy(session, &im_fs->lock);
+ __wt_free(session, im_fs->fhhash);
__wt_free(session, im_fs);
return (ret);
@@ -534,13 +533,14 @@ __wt_os_inmemory(WT_SESSION_IMPL *session)
WT_DECL_RET;
WT_FILE_SYSTEM *file_system;
WT_FILE_SYSTEM_INMEM *im_fs;
- u_int i;
+ uint64_t i;
WT_RET(__wt_calloc_one(session, &im_fs));
+ WT_ERR(__wt_calloc_def(session, S2C(session)->hash_size, &im_fs->fhhash));
/* Initialize private information. */
TAILQ_INIT(&im_fs->fhqh);
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++)
+ for (i = 0; i < S2C(session)->hash_size; i++)
TAILQ_INIT(&im_fs->fhhash[i]);
WT_ERR(__wt_spin_init(session, &im_fs->lock, "in-memory I/O"));
@@ -562,6 +562,7 @@ __wt_os_inmemory(WT_SESSION_IMPL *session)
return (0);
err:
+ __wt_free(session, im_fs->fhhash);
__wt_free(session, im_fs);
return (ret);
}
diff --git a/src/third_party/wiredtiger/src/os_posix/os_fs.c b/src/third_party/wiredtiger/src/os_posix/os_fs.c
index 2d0986ffab4..b03931fa994 100644
--- a/src/third_party/wiredtiger/src/os_posix/os_fs.c
+++ b/src/third_party/wiredtiger/src/os_posix/os_fs.c
@@ -78,9 +78,7 @@ __posix_sync(WT_SESSION_IMPL *session, int fd, const char *name, const char *fun
* fdatasync or fsync.
*/
ff_status = FF_IGNORE;
- __wt_err(session, ret,
- "fcntl(F_FULLFSYNC) failed, falling back to fdatasync "
- "or fsync");
+ __wt_err(session, ret, "fcntl(F_FULLFSYNC) failed, falling back to fdatasync or fsync");
break;
case FF_IGNORE:
break;
@@ -262,9 +260,9 @@ __posix_fs_rename(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const cha
fp = strrchr(from, '/');
tp = strrchr(to, '/');
- same_directory =
- (fp == NULL && tp == NULL) || (fp != NULL && tp != NULL && fp - from == tp - to &&
- memcmp(from, to, (size_t)(fp - from)) == 0);
+ same_directory = (fp == NULL && tp == NULL) ||
+ (fp != NULL && tp != NULL && fp - from == tp - to &&
+ memcmp(from, to, (size_t)(fp - from)) == 0);
if (!same_directory)
WT_RET(__posix_directory_sync(session, to));
@@ -407,8 +405,8 @@ __posix_file_read(
pfh = (WT_FILE_HANDLE_POSIX *)file_handle;
/* Assert direct I/O is aligned and a multiple of the alignment. */
- WT_ASSERT(
- session, !pfh->direct_io || S2C(session)->buffer_alignment == 0 ||
+ WT_ASSERT(session,
+ !pfh->direct_io || S2C(session)->buffer_alignment == 0 ||
(!((uintptr_t)buf & (uintptr_t)(S2C(session)->buffer_alignment - 1)) &&
len >= S2C(session)->buffer_alignment && len % S2C(session)->buffer_alignment == 0));
@@ -526,8 +524,8 @@ __posix_file_write(
pfh = (WT_FILE_HANDLE_POSIX *)file_handle;
/* Assert direct I/O is aligned and a multiple of the alignment. */
- WT_ASSERT(
- session, !pfh->direct_io || S2C(session)->buffer_alignment == 0 ||
+ WT_ASSERT(session,
+ !pfh->direct_io || S2C(session)->buffer_alignment == 0 ||
(!((uintptr_t)buf & (uintptr_t)(S2C(session)->buffer_alignment - 1)) &&
len >= S2C(session)->buffer_alignment && len % S2C(session)->buffer_alignment == 0));
@@ -661,8 +659,8 @@ __posix_open_file(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const cha
WT_SYSCALL_RETRY(((pfh->fd = open(name, f, mode)) == -1 ? -1 : 0), ret);
if (ret != 0)
WT_ERR_MSG(session, ret,
- pfh->direct_io ? "%s: handle-open: open: failed with direct I/O configured, "
- "some filesystem types do not support direct I/O" :
+ pfh->direct_io ? "%s: handle-open: open: failed with direct I/O configured, some "
+ "filesystem types do not support direct I/O" :
"%s: handle-open: open",
name);
diff --git a/src/third_party/wiredtiger/src/os_win/os_fs.c b/src/third_party/wiredtiger/src/os_win/os_fs.c
index 597dfaf81dd..a5e6b1dc11c 100644
--- a/src/third_party/wiredtiger/src/os_win/os_fs.c
+++ b/src/third_party/wiredtiger/src/os_win/os_fs.c
@@ -270,8 +270,8 @@ __win_file_read(
nr = 0;
/* Assert direct I/O is aligned and a multiple of the alignment. */
- WT_ASSERT(
- session, !win_fh->direct_io || S2C(session)->buffer_alignment == 0 ||
+ WT_ASSERT(session,
+ !win_fh->direct_io || S2C(session)->buffer_alignment == 0 ||
(!((uintptr_t)buf & (uintptr_t)(S2C(session)->buffer_alignment - 1)) &&
len >= S2C(session)->buffer_alignment && len % S2C(session)->buffer_alignment == 0));
@@ -285,8 +285,7 @@ __win_file_read(
windows_error = __wt_getlasterror();
ret = __wt_map_windows_error(windows_error);
__wt_err(session, ret,
- "%s: handle-read: ReadFile: failed to read %lu "
- "bytes at offset %" PRIuMAX ": %s",
+ "%s: handle-read: ReadFile: failed to read %lu bytes at offset %" PRIuMAX ": %s",
file_handle->name, chunk, (uintmax_t)offset,
__wt_formatmessage(session, windows_error));
return (ret);
@@ -418,8 +417,8 @@ __win_file_write(
nw = 0;
/* Assert direct I/O is aligned and a multiple of the alignment. */
- WT_ASSERT(
- session, !win_fh->direct_io || S2C(session)->buffer_alignment == 0 ||
+ WT_ASSERT(session,
+ !win_fh->direct_io || S2C(session)->buffer_alignment == 0 ||
(!((uintptr_t)buf & (uintptr_t)(S2C(session)->buffer_alignment - 1)) &&
len >= S2C(session)->buffer_alignment && len % S2C(session)->buffer_alignment == 0));
@@ -433,8 +432,7 @@ __win_file_write(
windows_error = __wt_getlasterror();
ret = __wt_map_windows_error(windows_error);
__wt_err(session, ret,
- "%s: handle-write: WriteFile: failed to write %lu "
- "bytes at offset %" PRIuMAX ": %s",
+ "%s: handle-write: WriteFile: failed to write %lu bytes at offset %" PRIuMAX ": %s",
file_handle->name, chunk, (uintmax_t)offset,
__wt_formatmessage(session, windows_error));
return (ret);
@@ -532,10 +530,10 @@ __win_open_file(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session, const char
windows_error = __wt_getlasterror();
ret = __wt_map_windows_error(windows_error);
__wt_err(session, ret,
- win_fh->direct_io ? "%s: handle-open: CreateFileW: failed with direct "
- "I/O configured, some filesystem types do not "
- "support direct I/O: %s" :
- "%s: handle-open: CreateFileW: %s",
+ win_fh->direct_io ?
+ "%s: handle-open: CreateFileW: failed with direct I/O configured, some filesystem "
+ "types do not support direct I/O: %s" :
+ "%s: handle-open: CreateFileW: %s",
name, __wt_formatmessage(session, windows_error));
WT_ERR(ret);
}
diff --git a/src/third_party/wiredtiger/src/os_win/os_winerr.c b/src/third_party/wiredtiger/src/os_win/os_winerr.c
index cef80d8ad21..56869f0432b 100644
--- a/src/third_party/wiredtiger/src/os_win/os_winerr.c
+++ b/src/third_party/wiredtiger/src/os_win/os_winerr.c
@@ -38,26 +38,59 @@ __wt_map_windows_error(DWORD windows_error)
int windows_error;
int posix_error;
} list[] = {
- {ERROR_ACCESS_DENIED, EACCES}, {ERROR_ALREADY_EXISTS, EEXIST}, {ERROR_ARENA_TRASHED, EFAULT},
- {ERROR_BAD_COMMAND, EFAULT}, {ERROR_BAD_ENVIRONMENT, EFAULT}, {ERROR_BAD_FORMAT, EFAULT},
- {ERROR_BAD_NETPATH, ENOENT}, {ERROR_BAD_NET_NAME, ENOENT}, {ERROR_BAD_PATHNAME, ENOENT},
- {ERROR_BROKEN_PIPE, EPIPE}, {ERROR_CANNOT_MAKE, EACCES}, {ERROR_CHILD_NOT_COMPLETE, ECHILD},
- {ERROR_CURRENT_DIRECTORY, EACCES}, {ERROR_DIRECT_ACCESS_HANDLE, EBADF},
- {ERROR_DIR_NOT_EMPTY, ENOTEMPTY}, {ERROR_DISK_FULL, ENOSPC}, {ERROR_DRIVE_LOCKED, EACCES},
- {ERROR_FAIL_I24, EACCES}, {ERROR_FILENAME_EXCED_RANGE, ENOENT}, {ERROR_FILE_EXISTS, EEXIST},
- {ERROR_FILE_NOT_FOUND, ENOENT}, {ERROR_GEN_FAILURE, EFAULT}, {ERROR_INVALID_ACCESS, EACCES},
- {ERROR_INVALID_BLOCK, EFAULT}, {ERROR_INVALID_DATA, EFAULT}, {ERROR_INVALID_DRIVE, ENOENT},
- {ERROR_INVALID_FUNCTION, EINVAL}, {ERROR_INVALID_HANDLE, EBADF},
- {ERROR_INVALID_PARAMETER, EINVAL}, {ERROR_INVALID_TARGET_HANDLE, EBADF},
- {ERROR_LOCK_FAILED, EBUSY}, {ERROR_LOCK_VIOLATION, EBUSY}, {ERROR_MAX_THRDS_REACHED, EAGAIN},
- {ERROR_NEGATIVE_SEEK, EINVAL}, {ERROR_NESTING_NOT_ALLOWED, EAGAIN},
- {ERROR_NETWORK_ACCESS_DENIED, EACCES}, {ERROR_NOT_ENOUGH_MEMORY, ENOMEM},
- {ERROR_NOT_ENOUGH_QUOTA, ENOMEM}, {ERROR_NOT_LOCKED, EACCES}, {ERROR_NOT_READY, EBUSY},
- {ERROR_NOT_SAME_DEVICE, EXDEV}, {ERROR_NO_DATA, EPIPE}, {ERROR_NO_MORE_FILES, EMFILE},
- {ERROR_NO_PROC_SLOTS, EAGAIN}, {ERROR_PATH_NOT_FOUND, ENOENT}, {ERROR_READ_FAULT, EFAULT},
- {ERROR_RETRY, EINTR}, {ERROR_SEEK_ON_DEVICE, EACCES}, {ERROR_SHARING_VIOLATION, EBUSY},
- {ERROR_TOO_MANY_OPEN_FILES, EMFILE}, {ERROR_WAIT_NO_CHILDREN, ECHILD},
- {ERROR_WRITE_FAULT, EFAULT}, {ERROR_WRITE_PROTECT, EACCES},
+ {ERROR_ACCESS_DENIED, EACCES},
+ {ERROR_ALREADY_EXISTS, EEXIST},
+ {ERROR_ARENA_TRASHED, EFAULT},
+ {ERROR_BAD_COMMAND, EFAULT},
+ {ERROR_BAD_ENVIRONMENT, EFAULT},
+ {ERROR_BAD_FORMAT, EFAULT},
+ {ERROR_BAD_NETPATH, ENOENT},
+ {ERROR_BAD_NET_NAME, ENOENT},
+ {ERROR_BAD_PATHNAME, ENOENT},
+ {ERROR_BROKEN_PIPE, EPIPE},
+ {ERROR_CANNOT_MAKE, EACCES},
+ {ERROR_CHILD_NOT_COMPLETE, ECHILD},
+ {ERROR_CURRENT_DIRECTORY, EACCES},
+ {ERROR_DIRECT_ACCESS_HANDLE, EBADF},
+ {ERROR_DIR_NOT_EMPTY, ENOTEMPTY},
+ {ERROR_DISK_FULL, ENOSPC},
+ {ERROR_DRIVE_LOCKED, EACCES},
+ {ERROR_FAIL_I24, EACCES},
+ {ERROR_FILENAME_EXCED_RANGE, ENOENT},
+ {ERROR_FILE_EXISTS, EEXIST},
+ {ERROR_FILE_NOT_FOUND, ENOENT},
+ {ERROR_GEN_FAILURE, EFAULT},
+ {ERROR_INVALID_ACCESS, EACCES},
+ {ERROR_INVALID_BLOCK, EFAULT},
+ {ERROR_INVALID_DATA, EFAULT},
+ {ERROR_INVALID_DRIVE, ENOENT},
+ {ERROR_INVALID_FUNCTION, EINVAL},
+ {ERROR_INVALID_HANDLE, EBADF},
+ {ERROR_INVALID_PARAMETER, EINVAL},
+ {ERROR_INVALID_TARGET_HANDLE, EBADF},
+ {ERROR_LOCK_FAILED, EBUSY},
+ {ERROR_LOCK_VIOLATION, EBUSY},
+ {ERROR_MAX_THRDS_REACHED, EAGAIN},
+ {ERROR_NEGATIVE_SEEK, EINVAL},
+ {ERROR_NESTING_NOT_ALLOWED, EAGAIN},
+ {ERROR_NETWORK_ACCESS_DENIED, EACCES},
+ {ERROR_NOT_ENOUGH_MEMORY, ENOMEM},
+ {ERROR_NOT_ENOUGH_QUOTA, ENOMEM},
+ {ERROR_NOT_LOCKED, EACCES},
+ {ERROR_NOT_READY, EBUSY},
+ {ERROR_NOT_SAME_DEVICE, EXDEV},
+ {ERROR_NO_DATA, EPIPE},
+ {ERROR_NO_MORE_FILES, EMFILE},
+ {ERROR_NO_PROC_SLOTS, EAGAIN},
+ {ERROR_PATH_NOT_FOUND, ENOENT},
+ {ERROR_READ_FAULT, EFAULT},
+ {ERROR_RETRY, EINTR},
+ {ERROR_SEEK_ON_DEVICE, EACCES},
+ {ERROR_SHARING_VIOLATION, EBUSY},
+ {ERROR_TOO_MANY_OPEN_FILES, EMFILE},
+ {ERROR_WAIT_NO_CHILDREN, ECHILD},
+ {ERROR_WRITE_FAULT, EFAULT},
+ {ERROR_WRITE_PROTECT, EACCES},
};
int i;
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_col.c b/src/third_party/wiredtiger/src/reconcile/rec_col.c
index 7538d0d8da6..d3dea61a3b8 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_col.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_col.c
@@ -882,7 +882,7 @@ compare:
if (rle != 0) {
if ((deleted && last.deleted) ||
(!deleted && !last.deleted && last.value->size == size &&
- memcmp(last.value->data, data, size) == 0)) {
+ memcmp(last.value->data, data, size) == 0)) {
rle += repeat_count;
continue;
}
@@ -1050,7 +1050,7 @@ compare:
if (rle != 0) {
if ((deleted && last.deleted) ||
(!deleted && !last.deleted && last.value->size == size &&
- memcmp(last.value->data, data, size) == 0)) {
+ memcmp(last.value->data, data, size) == 0)) {
++rle;
goto next;
}
@@ -1082,10 +1082,10 @@ compare:
last.deleted = deleted;
rle = 1;
- /*
- * Move to the next record. It's not a simple increment because if it's the maximum record,
- * incrementing it wraps to 0 and this turns into an infinite loop.
- */
+ /*
+ * Move to the next record. It's not a simple increment because if it's the maximum
+ * record, incrementing it wraps to 0 and this turns into an infinite loop.
+ */
next:
if (src_recno == UINT64_MAX)
break;
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_visibility.c b/src/third_party/wiredtiger/src/reconcile/rec_visibility.c
index 8fb786822c7..60c4479af44 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_visibility.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_visibility.c
@@ -271,8 +271,9 @@ __wt_rec_upd_select(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_INSERT *ins, v
* The checkpoint transaction is special. Make sure we never write metadata updates from a
* checkpoint in a concurrent session.
*/
- WT_ASSERT(session, !WT_IS_METADATA(session->dhandle) || upd == NULL ||
- upd->txnid == WT_TXN_NONE || upd->txnid != S2C(session)->txn_global.checkpoint_state.id ||
+ WT_ASSERT(session,
+ !WT_IS_METADATA(session->dhandle) || upd == NULL || upd->txnid == WT_TXN_NONE ||
+ upd->txnid != S2C(session)->txn_global.checkpoint_state.id ||
WT_SESSION_IS_CHECKPOINT(session));
/* If all of the updates were aborted, quit. */
@@ -317,7 +318,7 @@ __wt_rec_upd_select(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_INSERT *ins, v
*/
if ((upd_select->stop_ts == WT_TS_MAX && upd_select->stop_txn == WT_TXN_MAX) &&
((upd_select->start_ts == WT_TS_NONE && upd_select->start_txn == WT_TXN_NONE) ||
- __wt_txn_visible_all(session, upd_select->start_txn, upd_select->start_ts))) {
+ __wt_txn_visible_all(session, upd_select->start_txn, upd_select->start_ts))) {
upd_select->start_ts = WT_TS_NONE;
upd_select->start_txn = WT_TXN_NONE;
upd_select->stop_ts = WT_TS_MAX;
@@ -341,8 +342,9 @@ __wt_rec_upd_select(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_INSERT *ins, v
* If the update we chose was a birthmark, or we are doing update-restore and we skipped a
* birthmark, the original on-page value must be retained.
*/
- if (upd != NULL && (upd->type == WT_UPDATE_BIRTHMARK ||
- (F_ISSET(r, WT_REC_UPDATE_RESTORE) && skipped_birthmark))) {
+ if (upd != NULL &&
+ (upd->type == WT_UPDATE_BIRTHMARK ||
+ (F_ISSET(r, WT_REC_UPDATE_RESTORE) && skipped_birthmark))) {
/*
* Resolve the birthmark now regardless of whether the update being written to the data file
* is the same as it was the previous reconciliation. Otherwise lookaside can end up with
@@ -417,7 +419,7 @@ check_original_value:
*/
if (upd_select->upd != NULL &&
(upd_select->upd_saved ||
- (vpack != NULL && vpack->ovfl && vpack->raw != WT_CELL_VALUE_OVFL_RM)))
+ (vpack != NULL && vpack->ovfl && vpack->raw != WT_CELL_VALUE_OVFL_RM)))
WT_RET(__rec_append_orig_value(session, page, first_upd, vpack));
return (0);
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_write.c b/src/third_party/wiredtiger/src/reconcile/rec_write.c
index 62d480bb02f..68f70998b3f 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_write.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_write.c
@@ -61,7 +61,8 @@ __wt_reconcile(WT_SESSION_IMPL *session, WT_REF *ref, WT_SALVAGE_COOKIE *salvage
*/
WT_ASSERT(session, !LF_ISSET(WT_REC_LOOKASIDE) || !LF_ISSET(WT_REC_UPDATE_RESTORE));
WT_ASSERT(session, !LF_ISSET(WT_REC_UPDATE_RESTORE) || LF_ISSET(WT_REC_VISIBLE_ALL));
- WT_ASSERT(session, !LF_ISSET(WT_REC_EVICT) || LF_ISSET(WT_REC_VISIBLE_ALL) ||
+ WT_ASSERT(session,
+ !LF_ISSET(WT_REC_EVICT) || LF_ISSET(WT_REC_VISIBLE_ALL) ||
F_ISSET(&session->txn, WT_TXN_HAS_SNAPSHOT));
/* It's an error to be called with a clean page. */
@@ -609,8 +610,8 @@ __rec_init(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags, WT_SALVAGE_COO
txn_global->has_stable_timestamp &&
((btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT) &&
txn_global->stable_is_pinned) ||
- FLD_ISSET(page->modify->restore_state, WT_PAGE_RS_LOOKASIDE) ||
- page->modify->last_stable_timestamp == txn_global->stable_timestamp))
+ FLD_ISSET(page->modify->restore_state, WT_PAGE_RS_LOOKASIDE) ||
+ page->modify->last_stable_timestamp == txn_global->stable_timestamp))
r->las_skew_newest = false;
/*
@@ -1976,7 +1977,8 @@ copy_image:
* The I/O routines verify all disk images we write, but there are paths in reconciliation that
* don't do I/O. Verify those images, too.
*/
- WT_ASSERT(session, verify_image == false ||
+ WT_ASSERT(session,
+ verify_image == false ||
__wt_verify_dsk_image(
session, "[reconcile-image]", chunk->image.data, 0, &multi->addr, true) == 0);
#endif
@@ -2153,7 +2155,7 @@ __rec_split_dump_keys(WT_SESSION_IMPL *session, WT_RECONCILE *r)
for (multi = r->multi, i = 0; i < r->multi_next; ++multi, ++i)
__wt_verbose(session, WT_VERB_SPLIT, "starting key %s",
__wt_buf_set_printable(
- session, WT_IKEY_DATA(multi->key.ikey), multi->key.ikey->size, tkey));
+ session, WT_IKEY_DATA(multi->key.ikey), multi->key.ikey->size, tkey));
__wt_scr_free(session, &tkey);
} else
for (multi = r->multi, i = 0; i < r->multi_next; ++multi, ++i)
@@ -2272,16 +2274,16 @@ __rec_write_wrapup(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page)
mod->rec_result = WT_PM_REC_EMPTY;
break;
case 1: /* 1-for-1 page swap */
- /*
- * Because WiredTiger's pages grow without splitting, we're replacing a single page with
- * another single page most of the time.
- *
- * If in-memory, or saving/restoring changes for this page and there's only one block,
- * there's nothing to write. Set up a single block as if to split, then use that disk
- * image to rewrite the page in memory. This is separate from simple replacements where
- * eviction has decided to retain the page in memory because the latter can't handle
- * update lists and splits can.
- */
+ /*
+ * Because WiredTiger's pages grow without splitting, we're replacing a single page with
+ * another single page most of the time.
+ *
+ * If in-memory, or saving/restoring changes for this page and there's only one block,
+ * there's nothing to write. Set up a single block as if to split, then use that disk image
+ * to rewrite the page in memory. This is separate from simple replacements where eviction
+ * has decided to retain the page in memory because the latter can't handle update lists and
+ * splits can.
+ */
if (F_ISSET(r, WT_REC_IN_MEMORY) ||
(F_ISSET(r, WT_REC_UPDATE_RESTORE) && r->multi->supd_entries != 0))
goto split;
@@ -2316,10 +2318,10 @@ __rec_write_wrapup(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page)
if (WT_VERBOSE_ISSET(session, WT_VERB_SPLIT))
WT_RET(__rec_split_dump_keys(session, r));
- /*
- * The reuse flag was set in some cases, but we have to clear it, otherwise on subsequent
- * reconciliation we would fail to remove blocks that are being discarded.
- */
+ /*
+ * The reuse flag was set in some cases, but we have to clear it, otherwise on subsequent
+ * reconciliation we would fail to remove blocks that are being discarded.
+ */
split:
for (multi = r->multi, i = 0; i < r->multi_next; ++multi, ++i)
multi->addr.reuse = 0;
diff --git a/src/third_party/wiredtiger/src/schema/schema_create.c b/src/third_party/wiredtiger/src/schema/schema_create.c
index 96b2512d6ce..0174aa50616 100644
--- a/src/third_party/wiredtiger/src/schema/schema_create.c
+++ b/src/third_party/wiredtiger/src/schema/schema_create.c
@@ -36,9 +36,8 @@ __wt_direct_io_size_check(
align = (int64_t)conn->buffer_alignment;
if (align != 0 && (cval.val < align || cval.val % align != 0))
WT_RET_MSG(session, EINVAL,
- "when direct I/O is configured, the %s size must "
- "be at least as large as the buffer alignment as "
- "well as a multiple of the buffer alignment",
+ "when direct I/O is configured, the %s size must be at least as large as the buffer "
+ "alignment as well as a multiple of the buffer alignment",
config_name);
}
*allocsizep = (uint32_t)cval.val;
@@ -364,10 +363,8 @@ __create_index(WT_SESSION_IMPL *session, const char *name, bool exclusive, const
WT_PREFIX_SKIP_REQUIRED(session, tablename, "index:");
idxname = strchr(tablename, ':');
if (idxname == NULL)
- WT_RET_MSG(session, EINVAL,
- "Invalid index name, "
- "should be <table name>:<index name>: %s",
- name);
+ WT_RET_MSG(
+ session, EINVAL, "Invalid index name, should be <table name>:<index name>: %s", name);
/*
* Note: it would be better to keep the table exclusive here, while changing its indexes. We
@@ -456,8 +453,7 @@ __create_index(WT_SESSION_IMPL *session, const char *name, bool exclusive, const
if (__wt_config_subgetraw(session, &icols, &ckey, &cval) == 0) {
if (have_extractor)
WT_ERR_MSG(session, EINVAL,
- "an index with a custom extractor may not "
- "include primary key columns");
+ "an index with a custom extractor may not include primary key columns");
continue;
}
WT_ERR(__wt_buf_catfmt(session, &extra_cols, "%.*s,", (int)ckey.len, ckey.str));
@@ -481,9 +477,8 @@ __create_index(WT_SESSION_IMPL *session, const char *name, bool exclusive, const
/* Check for a record number index key, which makes no sense. */
WT_ERR(__wt_config_getones(session, fmt.data, "key_format", &cval));
if (cval.len == 1 && cval.str[0] == 'r')
- WT_ERR_MSG(session, EINVAL,
- "column-store index may not use the record number as its "
- "index key");
+ WT_ERR_MSG(
+ session, EINVAL, "column-store index may not use the record number as its index key");
WT_ERR(__wt_buf_catfmt(session, &fmt, ",index_key_columns=%u", npublic_cols));
@@ -611,9 +606,7 @@ __create_data_source(
*/
if (__wt_config_getones_none(session, config, "collator", &cval) != WT_NOTFOUND &&
cval.len != 0)
- WT_RET_MSG(session, EINVAL,
- "WT_DATA_SOURCE objects do not support WT_COLLATOR "
- "ordering");
+ WT_RET_MSG(session, EINVAL, "WT_DATA_SOURCE objects do not support WT_COLLATOR ordering");
return (dsrc->create(dsrc, &session->iface, uri, (WT_CONFIG_ARG *)cfg));
}
diff --git a/src/third_party/wiredtiger/src/schema/schema_list.c b/src/third_party/wiredtiger/src/schema/schema_list.c
index 26d5df5bb4f..8f924041e08 100644
--- a/src/third_party/wiredtiger/src/schema/schema_list.c
+++ b/src/third_party/wiredtiger/src/schema/schema_list.c
@@ -29,9 +29,7 @@ __wt_schema_get_table_uri(
if (!ok_incomplete && !table->cg_complete) {
WT_ERR(__wt_session_release_dhandle(session));
ret = __wt_set_return(session, EINVAL);
- WT_ERR_MSG(session, ret,
- "'%s' cannot be used "
- "until all column groups are created",
+ WT_ERR_MSG(session, ret, "'%s' cannot be used until all column groups are created",
table->iface.name);
}
*tablep = table;
diff --git a/src/third_party/wiredtiger/src/schema/schema_open.c b/src/third_party/wiredtiger/src/schema/schema_open.c
index d54e3c98b39..8c99880fe94 100644
--- a/src/third_party/wiredtiger/src/schema/schema_open.c
+++ b/src/third_party/wiredtiger/src/schema/schema_open.c
@@ -371,9 +371,9 @@ __wt_schema_open_index(
{
WT_DECL_RET;
- WT_WITH_TABLE_WRITE_LOCK(
- session, WT_WITH_TXN_ISOLATION(session, WT_ISO_READ_UNCOMMITTED,
- ret = __schema_open_index(session, table, idxname, len, indexp)));
+ WT_WITH_TABLE_WRITE_LOCK(session,
+ WT_WITH_TXN_ISOLATION(session, WT_ISO_READ_UNCOMMITTED,
+ ret = __schema_open_index(session, table, idxname, len, indexp)));
return (ret);
}
@@ -554,8 +554,9 @@ __wt_schema_open_table(WT_SESSION_IMPL *session, const char *cfg[])
{
WT_DECL_RET;
- WT_WITH_TABLE_WRITE_LOCK(session, WT_WITH_TXN_ISOLATION(session, WT_ISO_READ_UNCOMMITTED,
- ret = __schema_open_table(session, cfg)));
+ WT_WITH_TABLE_WRITE_LOCK(session,
+ WT_WITH_TXN_ISOLATION(
+ session, WT_ISO_READ_UNCOMMITTED, ret = __schema_open_table(session, cfg)));
return (ret);
}
diff --git a/src/third_party/wiredtiger/src/schema/schema_plan.c b/src/third_party/wiredtiger/src/schema/schema_plan.c
index 5bed57b429c..153a7ba1944 100644
--- a/src/third_party/wiredtiger/src/schema/schema_plan.c
+++ b/src/third_party/wiredtiger/src/schema/schema_plan.c
@@ -108,8 +108,7 @@ __wt_schema_colcheck(WT_SESSION_IMPL *session, const char *key_format, const cha
if (ncols != 0 && ncols != kcols + vcols)
WT_RET_MSG(session, EINVAL,
- "Number of columns in '%.*s' "
- "does not match key format '%s' plus value format '%s'",
+ "Number of columns in '%.*s' does not match key format '%s' plus value format '%s'",
(int)colconf->len, colconf->str, key_format, value_format);
if (kcolsp != NULL)
@@ -146,9 +145,7 @@ __wt_table_check(WT_SESSION_IMPL *session, WT_TABLE *table)
coltype = 0;
while ((ret = __wt_config_next(&conf, &k, &v)) == 0) {
if (__find_next_col(session, table, &k, &cg, &col, &coltype) != 0)
- WT_RET_MSG(session, EINVAL,
- "Column '%.*s' in '%s' does not appear in a "
- "column group",
+ WT_RET_MSG(session, EINVAL, "Column '%.*s' in '%s' does not appear in a column group",
(int)k.len, k.str, table->iface.name);
/*
* Column groups can't store key columns in their value:
@@ -334,9 +331,7 @@ __wt_struct_reformat(WT_SESSION_IMPL *session, WT_TABLE *table, const char *colu
if ((ret = __find_column_format(session, table, &k, value_only, &pv)) != 0) {
if (value_only && ret == EINVAL)
WT_RET_MSG(session, EINVAL,
- "A column group cannot store key column "
- "'%.*s' in its value",
- (int)k.len, k.str);
+ "A column group cannot store key column '%.*s' in its value", (int)k.len, k.str);
WT_RET_MSG(session, EINVAL, "Column '%.*s' not found", (int)k.len, k.str);
}
diff --git a/src/third_party/wiredtiger/src/schema/schema_project.c b/src/third_party/wiredtiger/src/schema/schema_project.c
index 54f60e3be71..d3201d20d5c 100644
--- a/src/third_party/wiredtiger/src/schema/schema_project.c
+++ b/src/third_party/wiredtiger/src/schema/schema_project.c
@@ -100,7 +100,7 @@ __wt_schema_project_in(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *pro
case WT_PROJ_NEXT:
WT_RET(__pack_next(&pack, &pv));
WT_PACK_GET(session, pv, ap);
- /* FALLTHROUGH */
+ /* FALLTHROUGH */
case WT_PROJ_REUSE:
/* Read the item we're about to overwrite. */
@@ -301,7 +301,7 @@ __wt_schema_project_slice(WT_SESSION_IMPL *session, WT_CURSOR **cp, const char *
case WT_PROJ_NEXT:
WT_RET(__pack_next(&vpack, &vpv));
WT_RET(__unpack_read(session, &vpv, &vp, (size_t)(vend - vp)));
- /* FALLTHROUGH */
+ /* FALLTHROUGH */
case WT_PROJ_REUSE:
if (skip)
diff --git a/src/third_party/wiredtiger/src/schema/schema_rename.c b/src/third_party/wiredtiger/src/schema/schema_rename.c
index 3dfc99493c4..53c006ed226 100644
--- a/src/third_party/wiredtiger/src/schema/schema_rename.c
+++ b/src/third_party/wiredtiger/src/schema/schema_rename.c
@@ -9,14 +9,40 @@
#include "wt_internal.h"
/*
+ * __rename_blkmod --
+ * Reset the incremental backup information for a rename.
+ */
+static int
+__rename_blkmod(WT_SESSION_IMPL *session, const char *oldvalue, WT_ITEM *buf)
+{
+ WT_CKPT ckpt;
+ WT_DECL_RET;
+
+ WT_CLEAR(ckpt);
+ /*
+ * Replace the old file entries with new file entries. We need to recreate the incremental
+ * backup information to indicate copying the entire file in its bitmap.
+ */
+ /* First load any existing backup information into a temp checkpoint structure. */
+ WT_RET(__wt_meta_blk_mods_load(session, oldvalue, &ckpt, true));
+
+ /* Take the checkpoint structure and generate the metadata string. */
+ ret = __wt_ckpt_blkmod_to_meta(session, buf, &ckpt);
+ __wt_meta_checkpoint_free(session, &ckpt);
+ return (ret);
+}
+
+/*
* __rename_file --
* WT_SESSION::rename for a file.
*/
static int
__rename_file(WT_SESSION_IMPL *session, const char *uri, const char *newuri)
{
+ WT_DECL_ITEM(buf);
WT_DECL_RET;
char *newvalue, *oldvalue;
+ const char *filecfg[3] = {NULL, NULL, NULL};
const char *filename, *newfile;
bool exist;
@@ -33,6 +59,7 @@ __rename_file(WT_SESSION_IMPL *session, const char *uri, const char *newuri)
WT_WITH_HANDLE_LIST_WRITE_LOCK(
session, ret = __wt_conn_dhandle_close_all(session, uri, true, false));
WT_ERR(ret);
+ WT_ERR(__wt_scr_alloc(session, 1024, &buf));
/*
* First, check if the file being renamed exists in the system. Doing this check first matches
@@ -54,13 +81,20 @@ __rename_file(WT_SESSION_IMPL *session, const char *uri, const char *newuri)
default:
WT_ERR(ret);
}
+ __wt_free(session, newvalue);
WT_ERR(__wt_fs_exist(session, newfile, &exist));
if (exist)
WT_ERR_MSG(session, EEXIST, "%s", newfile);
- /* Replace the old file entries with new file entries. */
WT_ERR(__wt_metadata_remove(session, uri));
- WT_ERR(__wt_metadata_insert(session, newuri, oldvalue));
+ filecfg[0] = oldvalue;
+ if (F_ISSET(S2C(session), WT_CONN_INCR_BACKUP)) {
+ WT_ERR(__rename_blkmod(session, oldvalue, buf));
+ filecfg[1] = buf->mem;
+ } else
+ filecfg[1] = NULL;
+ WT_ERR(__wt_config_collapse(session, filecfg, &newvalue));
+ WT_ERR(__wt_metadata_insert(session, newuri, newvalue));
/* Rename the underlying file. */
WT_ERR(__wt_fs_rename(session, filename, newfile, false));
@@ -68,6 +102,7 @@ __rename_file(WT_SESSION_IMPL *session, const char *uri, const char *newuri)
WT_ERR(__wt_meta_track_fileop(session, uri, newuri));
err:
+ __wt_scr_free(session, &buf);
__wt_free(session, newvalue);
__wt_free(session, oldvalue);
return (ret);
diff --git a/src/third_party/wiredtiger/src/schema/schema_util.c b/src/third_party/wiredtiger/src/schema/schema_util.c
index 86bff7b086c..b9d8371d647 100644
--- a/src/third_party/wiredtiger/src/schema/schema_util.c
+++ b/src/third_party/wiredtiger/src/schema/schema_util.c
@@ -121,9 +121,7 @@ __str_name_check(WT_SESSION_IMPL *session, const char *name, bool skip_wt)
if (!skip_wt && WT_PREFIX_MATCH(name, "WiredTiger"))
WT_RET_MSG(session, EINVAL,
- "%s: the \"WiredTiger\" name space may not be "
- "used by applications",
- name);
+ "%s: the \"WiredTiger\" name space may not be used by applications", name);
/*
* Disallow JSON quoting characters -- the config string parsing code supports quoted strings,
@@ -131,9 +129,7 @@ __str_name_check(WT_SESSION_IMPL *session, const char *name, bool skip_wt)
*/
if (strpbrk(name, "{},:[]\\\"'") != NULL)
WT_RET_MSG(session, EINVAL,
- "%s: WiredTiger objects should not include grouping "
- "characters in their names",
- name);
+ "%s: WiredTiger objects should not include grouping characters in their names", name);
return (0);
}
diff --git a/src/third_party/wiredtiger/src/session/session_api.c b/src/third_party/wiredtiger/src/session/session_api.c
index a67c263d7d9..24b969c1a3b 100644
--- a/src/third_party/wiredtiger/src/session/session_api.c
+++ b/src/third_party/wiredtiger/src/session/session_api.c
@@ -82,7 +82,7 @@ __wt_session_cursor_cache_sweep(WT_SESSION_IMPL *session)
for (i = 0; i < WT_SESSION_CURSOR_SWEEP_MAX && productive; i++) {
++nbuckets;
cached_list = &session->cursor_cache[position];
- position = (position + 1) % WT_HASH_ARRAY_SIZE;
+ position = (position + 1) & (S2C(session)->hash_size - 1);
TAILQ_FOREACH_SAFE(cursor, cached_list, q, cursor_tmp)
{
/*
@@ -133,9 +133,10 @@ __wt_session_copy_values(WT_SESSION_IMPL *session)
* checkpoint.
*/
WT_TXN_STATE *txn_state = WT_SESSION_TXN_STATE(session);
- WT_ASSERT(session, txn_state->pinned_id != WT_TXN_NONE ||
+ WT_ASSERT(session,
+ txn_state->pinned_id != WT_TXN_NONE ||
(WT_PREFIX_MATCH(cursor->uri, "file:") &&
- F_ISSET((WT_CURSOR_BTREE *)cursor, WT_CBT_NO_TXN)));
+ F_ISSET((WT_CURSOR_BTREE *)cursor, WT_CBT_NO_TXN)));
#endif
WT_RET(__cursor_localvalue(cursor));
}
@@ -246,9 +247,9 @@ static int
__session_close_cached_cursors(WT_SESSION_IMPL *session)
{
WT_DECL_RET;
- int i;
+ uint64_t i;
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++)
+ for (i = 0; i < S2C(session)->hash_size; i++)
WT_TRET(__session_close_cursors(session, &session->cursor_cache[i]));
return (ret);
}
@@ -551,8 +552,7 @@ __session_open_cursor(WT_SESSION *wt_session, const char *uri, WT_CURSOR *to_dup
if (!statjoin) {
if ((to_dup == NULL && uri == NULL) || (to_dup != NULL && uri != NULL))
WT_ERR_MSG(session, EINVAL,
- "should be passed either a URI or a cursor to "
- "duplicate, but not both");
+ "should be passed either a URI or a cursor to duplicate, but not both");
if ((ret = __wt_cursor_cache_get(session, uri, to_dup, cfg, &cursor)) == 0)
goto done;
@@ -866,8 +866,9 @@ __session_rebalance(WT_SESSION *wt_session, const char *uri, const char *config)
/* Block out checkpoints to avoid spurious EBUSY errors. */
WT_WITH_CHECKPOINT_LOCK(session,
- WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_bt_rebalance, NULL,
- cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_REBALANCE)));
+ WT_WITH_SCHEMA_LOCK(session,
+ ret = __wt_schema_worker(
+ session, uri, __wt_bt_rebalance, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_REBALANCE)));
err:
if (ret != 0)
@@ -917,8 +918,8 @@ __session_rename(WT_SESSION *wt_session, const char *uri, const char *newuri, co
WT_ERR(__wt_str_name_check(session, newuri));
WT_WITH_CHECKPOINT_LOCK(session,
- WT_WITH_SCHEMA_LOCK(session, WT_WITH_TABLE_WRITE_LOCK(session,
- ret = __wt_schema_rename(session, uri, newuri, cfg))));
+ WT_WITH_SCHEMA_LOCK(session,
+ WT_WITH_TABLE_WRITE_LOCK(session, ret = __wt_schema_rename(session, uri, newuri, cfg))));
err:
if (ret != 0)
WT_STAT_CONN_INCR(session, session_table_rename_fail);
@@ -1013,21 +1014,22 @@ __session_drop(WT_SESSION *wt_session, const char *uri, const char *config)
*/
if (checkpoint_wait) {
if (lock_wait)
- WT_WITH_CHECKPOINT_LOCK(
- session, WT_WITH_SCHEMA_LOCK(session, WT_WITH_TABLE_WRITE_LOCK(session,
- ret = __wt_schema_drop(session, uri, cfg))));
+ WT_WITH_CHECKPOINT_LOCK(session,
+ WT_WITH_SCHEMA_LOCK(session,
+ WT_WITH_TABLE_WRITE_LOCK(session, ret = __wt_schema_drop(session, uri, cfg))));
else
- WT_WITH_CHECKPOINT_LOCK_NOWAIT(
- session, ret, WT_WITH_SCHEMA_LOCK_NOWAIT(
- session, ret, WT_WITH_TABLE_WRITE_LOCK_NOWAIT(session, ret,
- ret = __wt_schema_drop(session, uri, cfg))));
+ WT_WITH_CHECKPOINT_LOCK_NOWAIT(session, ret,
+ WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret,
+ WT_WITH_TABLE_WRITE_LOCK_NOWAIT(
+ session, ret, ret = __wt_schema_drop(session, uri, cfg))));
} else {
if (lock_wait)
WT_WITH_SCHEMA_LOCK(session,
WT_WITH_TABLE_WRITE_LOCK(session, ret = __wt_schema_drop(session, uri, cfg)));
else
- WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret, WT_WITH_TABLE_WRITE_LOCK_NOWAIT(session, ret,
- ret = __wt_schema_drop(session, uri, cfg)));
+ WT_WITH_SCHEMA_LOCK_NOWAIT(session, ret,
+ WT_WITH_TABLE_WRITE_LOCK_NOWAIT(
+ session, ret, ret = __wt_schema_drop(session, uri, cfg)));
}
err:
@@ -1176,9 +1178,7 @@ __session_join(
WT_ERR_MSG(session, EINVAL, "requires reference cursor be positioned");
cjoin = (WT_CURSOR_JOIN *)join_cursor;
if (cjoin->table != table)
- WT_ERR_MSG(session, EINVAL,
- "table for join cursor does not match table for "
- "ref_cursor");
+ WT_ERR_MSG(session, EINVAL, "table for join cursor does not match table for ref_cursor");
if (F_ISSET(ref_cursor, WT_CURSTD_JOINED))
WT_ERR_MSG(session, EINVAL, "cursor already used in a join");
@@ -1229,8 +1229,8 @@ __session_join(
if (nested && (count != 0 || range != WT_CURJOIN_END_EQ || LF_ISSET(WT_CURJOIN_ENTRY_BLOOM)))
WT_ERR_MSG(session, EINVAL,
- "joining a nested join cursor is incompatible with "
- "setting \"strategy\", \"compare\" or \"count\"");
+ "joining a nested join cursor is incompatible with setting \"strategy\", \"compare\" or "
+ "\"count\"");
WT_ERR(__wt_curjoin_join(
session, cjoin, idx, ref_cursor, flags, range, count, bloom_bit_count, bloom_hash_count));
@@ -1266,9 +1266,10 @@ __session_salvage(WT_SESSION *wt_session, const char *uri, const char *config)
WT_ERR(__wt_inmem_unsupported_op(session, NULL));
/* Block out checkpoints to avoid spurious EBUSY errors. */
- WT_WITH_CHECKPOINT_LOCK(
- session, WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_salvage,
- NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_SALVAGE)));
+ WT_WITH_CHECKPOINT_LOCK(session,
+ WT_WITH_SCHEMA_LOCK(session,
+ ret = __wt_schema_worker(
+ session, uri, __wt_salvage, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_SALVAGE)));
err:
if (ret != 0)
@@ -1353,9 +1354,8 @@ __wt_session_range_truncate(
if (start != NULL && stop != NULL && start->compare != NULL) {
WT_ERR(start->compare(start, stop, &cmp));
if (cmp > 0)
- WT_ERR_MSG(session, EINVAL,
- "the start cursor position is after the stop "
- "cursor position");
+ WT_ERR_MSG(
+ session, EINVAL, "the start cursor position is after the stop cursor position");
}
/*
@@ -1450,8 +1450,7 @@ __session_truncate(
if ((uri == NULL && start == NULL && stop == NULL) ||
(uri != NULL && !WT_PREFIX_MATCH(uri, "log:") && (start != NULL || stop != NULL)))
WT_ERR_MSG(session, EINVAL,
- "the truncate method should be passed either a URI or "
- "start/stop cursors, but not both");
+ "the truncate method should be passed either a URI or start/stop cursors, but not both");
if (uri != NULL) {
/* Disallow objects in the WiredTiger name space. */
@@ -1463,8 +1462,7 @@ __session_truncate(
*/
if (strcmp(uri, "log:") != 0)
WT_ERR_MSG(session, EINVAL,
- "the truncate method should not specify any"
- "target after the log: URI prefix");
+ "the truncate method should not specify any target after the log: URI prefix");
WT_ERR(__wt_log_truncate_files(session, start, false));
} else if (WT_PREFIX_MATCH(uri, "file:"))
WT_ERR(__wt_session_range_truncate(session, uri, start, stop));
@@ -1530,9 +1528,10 @@ __session_upgrade(WT_SESSION *wt_session, const char *uri, const char *config)
WT_ERR(__wt_inmem_unsupported_op(session, NULL));
/* Block out checkpoints to avoid spurious EBUSY errors. */
- WT_WITH_CHECKPOINT_LOCK(
- session, WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_upgrade,
- NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_UPGRADE)));
+ WT_WITH_CHECKPOINT_LOCK(session,
+ WT_WITH_SCHEMA_LOCK(session,
+ ret = __wt_schema_worker(
+ session, uri, __wt_upgrade, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_UPGRADE)));
err:
API_END_RET_NOTFOUND_MAP(session, ret);
@@ -1576,9 +1575,10 @@ __session_verify(WT_SESSION *wt_session, const char *uri, const char *config)
WT_ERR(__wt_inmem_unsupported_op(session, NULL));
/* Block out checkpoints to avoid spurious EBUSY errors. */
- WT_WITH_CHECKPOINT_LOCK(
- session, WT_WITH_SCHEMA_LOCK(session, ret = __wt_schema_worker(session, uri, __wt_verify,
- NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_VERIFY)));
+ WT_WITH_CHECKPOINT_LOCK(session,
+ WT_WITH_SCHEMA_LOCK(session,
+ ret = __wt_schema_worker(
+ session, uri, __wt_verify, NULL, cfg, WT_DHANDLE_EXCLUSIVE | WT_BTREE_VERIFY)));
err:
if (ret != 0)
@@ -2098,9 +2098,8 @@ __open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const
if (!session_ret->active)
break;
if (i == conn->session_size)
- WT_ERR_MSG(session, WT_ERROR, "out of sessions, configured for %" PRIu32
- " (including "
- "internal sessions)",
+ WT_ERR_MSG(session, WT_ERROR,
+ "out of sessions, configured for %" PRIu32 " (including internal sessions)",
conn->session_size);
/*
@@ -2131,16 +2130,16 @@ __open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const
* array as well.
*/
if (session_ret->cursor_cache == NULL)
- WT_ERR(__wt_calloc_def(session, WT_HASH_ARRAY_SIZE, &session_ret->cursor_cache));
+ WT_ERR(__wt_calloc_def(session, conn->hash_size, &session_ret->cursor_cache));
if (session_ret->dhhash == NULL)
- WT_ERR(__wt_calloc_def(session, WT_HASH_ARRAY_SIZE, &session_ret->dhhash));
+ WT_ERR(__wt_calloc_def(session, conn->dh_hash_size, &session_ret->dhhash));
/* Initialize the dhandle hash array. */
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++)
+ for (i = 0; i < (uint32_t)conn->dh_hash_size; i++)
TAILQ_INIT(&session_ret->dhhash[i]);
/* Initialize the cursor cache hash buckets and sweep trigger. */
- for (i = 0; i < WT_HASH_ARRAY_SIZE; i++)
+ for (i = 0; i < (uint32_t)conn->hash_size; i++)
TAILQ_INIT(&session_ret->cursor_cache[i]);
session_ret->cursor_sweep_countdown = WT_SESSION_CURSOR_SWEEP_COUNTDOWN;
@@ -2159,8 +2158,14 @@ __open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const
session_ret->nhazard = 0;
}
- /* Cache the offset of this session's statistics bucket. */
- session_ret->stat_bucket = WT_STATS_SLOT_ID(session);
+ /*
+ * Cache the offset of this session's statistics bucket. It's important we pass the correct
+ * session to the hash define here or we'll calculate the stat bucket with the wrong session id.
+ */
+ session_ret->stat_bucket = WT_STATS_SLOT_ID(session_ret);
+
+ /* Safety check to make sure we're doing the right thing. */
+ WT_ASSERT(session, session_ret->stat_bucket == session_ret->id % WT_COUNTER_SLOTS);
/* Allocate the buffer for operation tracking */
if (F_ISSET(conn, WT_CONN_OPTRACK)) {
diff --git a/src/third_party/wiredtiger/src/session/session_compact.c b/src/third_party/wiredtiger/src/session/session_compact.c
index d36833a1d7d..dd02b0ed8eb 100644
--- a/src/third_party/wiredtiger/src/session/session_compact.c
+++ b/src/third_party/wiredtiger/src/session/session_compact.c
@@ -295,9 +295,7 @@ __compact_worker(WT_SESSION_IMPL *session)
*/
if (ret == EBUSY) {
if (__wt_cache_stuck(session)) {
- WT_ERR_MSG(session, EBUSY,
- "compaction halted by eviction "
- "pressure");
+ WT_ERR_MSG(session, EBUSY, "compaction halted by eviction pressure");
}
ret = 0;
another_pass = true;
@@ -389,8 +387,9 @@ __wt_session_compact(WT_SESSION *wt_session, const char *uri, const char *config
* table, so acquire the table lock in write mode.
*/
WT_WITH_SCHEMA_LOCK(session,
- WT_WITH_TABLE_WRITE_LOCK(session, ret = __wt_schema_worker(session, uri,
- __compact_handle_append, __compact_uri_analyze, cfg, 0)));
+ WT_WITH_TABLE_WRITE_LOCK(session,
+ ret = __wt_schema_worker(
+ session, uri, __compact_handle_append, __compact_uri_analyze, cfg, 0)));
WT_ERR(ret);
if (session->compact->lsm_count != 0)
diff --git a/src/third_party/wiredtiger/src/session/session_dhandle.c b/src/third_party/wiredtiger/src/session/session_dhandle.c
index 6582417331f..fe961264990 100644
--- a/src/third_party/wiredtiger/src/session/session_dhandle.c
+++ b/src/third_party/wiredtiger/src/session/session_dhandle.c
@@ -23,7 +23,7 @@ __session_add_dhandle(WT_SESSION_IMPL *session)
dhandle_cache->dhandle = session->dhandle;
- bucket = dhandle_cache->dhandle->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = dhandle_cache->dhandle->name_hash & (S2C(session)->dh_hash_size - 1);
TAILQ_INSERT_HEAD(&session->dhandles, dhandle_cache, q);
TAILQ_INSERT_HEAD(&session->dhhash[bucket], dhandle_cache, hashq);
@@ -39,7 +39,7 @@ __session_discard_dhandle(WT_SESSION_IMPL *session, WT_DATA_HANDLE_CACHE *dhandl
{
uint64_t bucket;
- bucket = dhandle_cache->dhandle->name_hash % WT_HASH_ARRAY_SIZE;
+ bucket = dhandle_cache->dhandle->name_hash & (S2C(session)->dh_hash_size - 1);
TAILQ_REMOVE(&session->dhandles, dhandle_cache, q);
TAILQ_REMOVE(&session->dhhash[bucket], dhandle_cache, hashq);
@@ -61,7 +61,7 @@ __session_find_dhandle(WT_SESSION_IMPL *session, const char *uri, const char *ch
dhandle = NULL;
- bucket = __wt_hash_city64(uri, strlen(uri)) % WT_HASH_ARRAY_SIZE;
+ bucket = __wt_hash_city64(uri, strlen(uri)) & (S2C(session)->dh_hash_size - 1);
retry:
TAILQ_FOREACH (dhandle_cache, &session->dhhash[bucket], hashq) {
dhandle = dhandle_cache->dhandle;
@@ -381,7 +381,7 @@ __session_dhandle_sweep(WT_SESSION_IMPL *session)
dhandle = dhandle_cache->dhandle;
if (dhandle != session->dhandle && dhandle->session_inuse == 0 &&
(WT_DHANDLE_INACTIVE(dhandle) ||
- (dhandle->timeofdeath != 0 && now - dhandle->timeofdeath > conn->sweep_idle_time))) {
+ (dhandle->timeofdeath != 0 && now - dhandle->timeofdeath > conn->sweep_idle_time))) {
WT_STAT_CONN_INCR(session, dh_session_handles);
WT_ASSERT(session, !WT_IS_METADATA(dhandle));
__session_discard_dhandle(session, dhandle_cache);
@@ -519,7 +519,8 @@ __wt_session_get_dhandle(WT_SESSION_IMPL *session, const char *uri, const char *
WT_ASSERT(session, !F_ISSET(dhandle, WT_DHANDLE_DEAD));
WT_ASSERT(session, LF_ISSET(WT_DHANDLE_LOCK_ONLY) || F_ISSET(dhandle, WT_DHANDLE_OPEN));
- WT_ASSERT(session, LF_ISSET(WT_DHANDLE_EXCLUSIVE) == F_ISSET(dhandle, WT_DHANDLE_EXCLUSIVE) ||
+ WT_ASSERT(session,
+ LF_ISSET(WT_DHANDLE_EXCLUSIVE) == F_ISSET(dhandle, WT_DHANDLE_EXCLUSIVE) ||
dhandle->excl_ref > 1);
return (0);
diff --git a/src/third_party/wiredtiger/src/support/crypto.c b/src/third_party/wiredtiger/src/support/crypto.c
index bc324921d52..7357fd0ff68 100644
--- a/src/third_party/wiredtiger/src/support/crypto.c
+++ b/src/third_party/wiredtiger/src/support/crypto.c
@@ -27,9 +27,8 @@ __wt_decrypt(
#endif
if (encrypt_len > in->size)
- WT_RET_MSG(session, WT_ERROR,
- "corrupted encrypted item: padded size less than "
- "actual size");
+ WT_RET_MSG(
+ session, WT_ERROR, "corrupted encrypted item: padded size less than actual size");
/*
* We're allocating the number of bytes we're expecting from decryption plus the unencrypted
* header.
diff --git a/src/third_party/wiredtiger/src/support/err.c b/src/third_party/wiredtiger/src/support/err.c
index 18351ad4062..e3615ba347b 100644
--- a/src/third_party/wiredtiger/src/support/err.c
+++ b/src/third_party/wiredtiger/src/support/err.c
@@ -271,9 +271,8 @@ __eventv(WT_SESSION_IMPL *session, bool msg_event, int error, const char *func,
* code, it's a recursive call.
*/
if (ret == 0 && remain == 0)
- __wt_err(session, ENOMEM,
- "error or message truncated: internal WiredTiger buffer "
- "too small");
+ __wt_err(
+ session, ENOMEM, "error or message truncated: internal WiredTiger buffer too small");
if (ret != 0) {
err:
diff --git a/src/third_party/wiredtiger/src/support/global.c b/src/third_party/wiredtiger/src/support/global.c
index e8bb49f1a69..9463f39f4d1 100644
--- a/src/third_party/wiredtiger/src/support/global.c
+++ b/src/third_party/wiredtiger/src/support/global.c
@@ -35,9 +35,7 @@ __endian_check(void)
e = "little-endian";
#endif
fprintf(stderr,
- "This is a %s build of the WiredTiger data engine, incompatible "
- "with this system\n",
- e);
+ "This is a %s build of the WiredTiger data engine, incompatible with this system\n", e);
return (EINVAL);
}
diff --git a/src/third_party/wiredtiger/src/support/hazard.c b/src/third_party/wiredtiger/src/support/hazard.c
index 4770ef57e67..345052f5ebd 100644
--- a/src/third_party/wiredtiger/src/support/hazard.c
+++ b/src/third_party/wiredtiger/src/support/hazard.c
@@ -66,7 +66,7 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp
,
const char *func, int line
#endif
- )
+)
{
WT_HAZARD *hp;
uint32_t current_state;
@@ -89,7 +89,8 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp
/* If we have filled the current hazard pointer array, grow it. */
if (session->nhazard >= session->hazard_size) {
- WT_ASSERT(session, session->nhazard == session->hazard_size &&
+ WT_ASSERT(session,
+ session->nhazard == session->hazard_size &&
session->hazard_inuse == session->hazard_size);
WT_RET(hazard_grow(session));
}
@@ -98,11 +99,13 @@ __wt_hazard_set(WT_SESSION_IMPL *session, WT_REF *ref, bool *busyp
* If there are no available hazard pointer slots, make another one visible.
*/
if (session->nhazard >= session->hazard_inuse) {
- WT_ASSERT(session, session->nhazard == session->hazard_inuse &&
+ WT_ASSERT(session,
+ session->nhazard == session->hazard_inuse &&
session->hazard_inuse < session->hazard_size);
hp = &session->hazard[session->hazard_inuse++];
} else {
- WT_ASSERT(session, session->nhazard < session->hazard_inuse &&
+ WT_ASSERT(session,
+ session->nhazard < session->hazard_inuse &&
session->hazard_inuse <= session->hazard_size);
/*
@@ -262,9 +265,7 @@ __wt_hazard_close(WT_SESSION_IMPL *session)
}
if (session->nhazard != 0)
- __wt_errx(session,
- "session %p: close hazard pointer table: count didn't "
- "match entries",
+ __wt_errx(session, "session %p: close hazard pointer table: count didn't match entries",
(void *)session);
}
@@ -394,8 +395,7 @@ __wt_hazard_check_assert(WT_SESSION_IMPL *session, void *ref, bool waitfor)
__wt_sleep(0, 10000);
}
__wt_errx(session,
- "hazard pointer reference to discarded object: "
- "(%p: session %p name %s: %s, line %d)",
+ "hazard pointer reference to discarded object: (%p: session %p name %s: %s, line %d)",
(void *)hp->ref, (void *)s, s->name == NULL ? "UNKNOWN" : s->name, hp->func, hp->line);
return (false);
}
diff --git a/src/third_party/wiredtiger/src/support/huffman.c b/src/third_party/wiredtiger/src/support/huffman.c
index 768024617ae..5a6216fe0a2 100644
--- a/src/third_party/wiredtiger/src/support/huffman.c
+++ b/src/third_party/wiredtiger/src/support/huffman.c
@@ -210,7 +210,7 @@ set_codes(WT_FREQTREE_NODE *node, WT_HUFFMAN_CODE *codes, uint16_t pattern, uint
*/
if (len < MAX_CODE_LENGTH &&
((half = (uint16_t)(1 << (remaining - 1))) < node->left->weight ||
- half < node->right->weight)) {
+ half < node->right->weight)) {
pattern = (uint16_t)(pattern << remaining);
len = MAX_CODE_LENGTH;
}
@@ -316,9 +316,7 @@ __wt_huffman_open(
* input). Validate the symbols are within range.
*/
if (numbytes != 1 && numbytes != 2)
- WT_ERR_MSG(session, EINVAL,
- "illegal number of symbol bytes specified for a huffman "
- "table");
+ WT_ERR_MSG(session, EINVAL, "illegal number of symbol bytes specified for a huffman table");
if (symcnt == 0)
WT_ERR_MSG(session, EINVAL, "illegal number of symbols specified for a huffman table");
@@ -332,14 +330,12 @@ __wt_huffman_open(
__wt_qsort(sym, symcnt, sizeof(INDEXED_SYMBOL), indexed_symbol_compare);
for (i = 0; i < symcnt; ++i) {
if (i > 0 && sym[i].symbol == sym[i - 1].symbol)
- WT_ERR_MSG(session, EINVAL, "duplicate symbol %" PRIu32 " (%#" PRIx32
- ") "
- "specified in a huffman table",
+ WT_ERR_MSG(session, EINVAL,
+ "duplicate symbol %" PRIu32 " (%#" PRIx32 ") specified in a huffman table",
sym[i].symbol, sym[i].symbol);
if (sym[i].symbol > huffman->numSymbols)
- WT_ERR_MSG(session, EINVAL, "out-of-range symbol %" PRIu32 " (%#" PRIx32
- ") "
- "specified in a huffman table",
+ WT_ERR_MSG(session, EINVAL,
+ "out-of-range symbol %" PRIu32 " (%#" PRIx32 ") specified in a huffman table",
sym[i].symbol, sym[i].symbol);
}
@@ -473,9 +469,7 @@ __wt_huffman_open(
indexed_freqs[i].frequency, huffman->codes[symbol].length);
}
printf(
- "weighted length of all codes (the smaller the better): "
- "%" PRIu32 "\n",
- weighted_length);
+ "weighted length of all codes (the smaller the better): %" PRIu32 "\n", weighted_length);
}
#endif
@@ -534,10 +528,8 @@ __wt_print_huffman_code(void *huffman_arg, uint16_t symbol)
printf("symbol %" PRIu16 " not defined -- 0 frequency\n", symbol);
else
/* should print code as binary */
- printf("%" PRIu16
- " -> code pattern "
- "%" PRIx16 ", length %" PRIu8 "\n",
- symbol, code.pattern, code.length);
+ printf("%" PRIu16 " -> code pattern %" PRIx16 ", length %" PRIu8 "\n", symbol,
+ code.pattern, code.length);
}
}
#endif
diff --git a/src/third_party/wiredtiger/src/support/modify.c b/src/third_party/wiredtiger/src/support/modify.c
index b891d050745..cb301062626 100644
--- a/src/third_party/wiredtiger/src/support/modify.c
+++ b/src/third_party/wiredtiger/src/support/modify.c
@@ -197,10 +197,12 @@ __modify_apply_one(WT_SESSION_IMPL *session, WT_ITEM *value, WT_MODIFY *modify,
} else { /* Shrink or grow */
/* Move trailing data forward/backward to its new location. */
from = (const uint8_t *)value->data + (offset + size);
- WT_ASSERT(session, WT_DATA_IN_ITEM(value) &&
+ WT_ASSERT(session,
+ WT_DATA_IN_ITEM(value) &&
from + (value->size - (offset + size)) <= (uint8_t *)value->mem + value->memsize);
to = (uint8_t *)value->data + (offset + data_size);
- WT_ASSERT(session, WT_DATA_IN_ITEM(value) &&
+ WT_ASSERT(session,
+ WT_DATA_IN_ITEM(value) &&
to + (value->size - (offset + size)) <= (uint8_t *)value->mem + value->memsize);
memmove(to, from, value->size - (offset + size));
diff --git a/src/third_party/wiredtiger/src/support/scratch.c b/src/third_party/wiredtiger/src/support/scratch.c
index dd089b7c30b..90b69ab1e88 100644
--- a/src/third_party/wiredtiger/src/support/scratch.c
+++ b/src/third_party/wiredtiger/src/support/scratch.c
@@ -333,9 +333,7 @@ __wt_scr_discard(WT_SESSION_IMPL *session)
continue;
if (F_ISSET(*bufp, WT_ITEM_INUSE))
#ifdef HAVE_DIAGNOSTIC
- __wt_errx(session,
- "scratch buffer allocated and never discarded"
- ": %s: %d",
+ __wt_errx(session, "scratch buffer allocated and never discarded: %s: %d",
session->scratch_track[bufp - session->scratch].func,
session->scratch_track[bufp - session->scratch].line);
#else
diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c
index 0232ea1d2c6..2981efc27ec 100644
--- a/src/third_party/wiredtiger/src/support/stat.c
+++ b/src/third_party/wiredtiger/src/support/stat.c
@@ -3,94 +3,155 @@
#include "wt_internal.h"
static const char *const __stats_dsrc_desc[] = {
- "LSM: bloom filter false positives", "LSM: bloom filter hits", "LSM: bloom filter misses",
- "LSM: bloom filter pages evicted from cache", "LSM: bloom filter pages read into cache",
- "LSM: bloom filters in the LSM tree", "LSM: chunks in the LSM tree",
+ "LSM: bloom filter false positives",
+ "LSM: bloom filter hits",
+ "LSM: bloom filter misses",
+ "LSM: bloom filter pages evicted from cache",
+ "LSM: bloom filter pages read into cache",
+ "LSM: bloom filters in the LSM tree",
+ "LSM: chunks in the LSM tree",
"LSM: highest merge generation in the LSM tree",
"LSM: queries that could have benefited from a Bloom filter that did not exist",
- "LSM: sleep for LSM checkpoint throttle", "LSM: sleep for LSM merge throttle",
- "LSM: total size of bloom filters", "block-manager: allocations requiring file extension",
- "block-manager: blocks allocated", "block-manager: blocks freed",
- "block-manager: checkpoint size", "block-manager: file allocation unit size",
- "block-manager: file bytes available for reuse", "block-manager: file magic number",
- "block-manager: file major version number", "block-manager: file size in bytes",
- "block-manager: minor version number", "btree: btree checkpoint generation",
- "btree: column-store fixed-size leaf pages", "btree: column-store internal pages",
+ "LSM: sleep for LSM checkpoint throttle",
+ "LSM: sleep for LSM merge throttle",
+ "LSM: total size of bloom filters",
+ "block-manager: allocations requiring file extension",
+ "block-manager: blocks allocated",
+ "block-manager: blocks freed",
+ "block-manager: checkpoint size",
+ "block-manager: file allocation unit size",
+ "block-manager: file bytes available for reuse",
+ "block-manager: file magic number",
+ "block-manager: file major version number",
+ "block-manager: file size in bytes",
+ "block-manager: minor version number",
+ "btree: btree checkpoint generation",
+ "btree: btree clean tree checkpoint expiration time",
+ "btree: column-store fixed-size leaf pages",
+ "btree: column-store internal pages",
"btree: column-store variable-size RLE encoded values",
"btree: column-store variable-size deleted values",
- "btree: column-store variable-size leaf pages", "btree: fixed-record size",
- "btree: maximum internal page key size", "btree: maximum internal page size",
- "btree: maximum leaf page key size", "btree: maximum leaf page size",
- "btree: maximum leaf page value size", "btree: maximum tree depth",
- "btree: number of key/value pairs", "btree: overflow pages",
- "btree: pages rewritten by compaction", "btree: row-store empty values",
- "btree: row-store internal pages", "btree: row-store leaf pages",
- "cache: bytes currently in the cache", "cache: bytes dirty in the cache cumulative",
- "cache: bytes read into cache", "cache: bytes written from cache",
+ "btree: column-store variable-size leaf pages",
+ "btree: fixed-record size",
+ "btree: maximum internal page key size",
+ "btree: maximum internal page size",
+ "btree: maximum leaf page key size",
+ "btree: maximum leaf page size",
+ "btree: maximum leaf page value size",
+ "btree: maximum tree depth",
+ "btree: number of key/value pairs",
+ "btree: overflow pages",
+ "btree: pages rewritten by compaction",
+ "btree: row-store empty values",
+ "btree: row-store internal pages",
+ "btree: row-store leaf pages",
+ "cache: bytes currently in the cache",
+ "cache: bytes dirty in the cache cumulative",
+ "cache: bytes read into cache",
+ "cache: bytes written from cache",
"cache: checkpoint blocked page eviction",
"cache: data source pages selected for eviction unable to be evicted",
- "cache: eviction walk passes of a file", "cache: eviction walk target pages histogram - 0-9",
+ "cache: eviction walk passes of a file",
+ "cache: eviction walk target pages histogram - 0-9",
"cache: eviction walk target pages histogram - 10-31",
"cache: eviction walk target pages histogram - 128 and higher",
"cache: eviction walk target pages histogram - 32-63",
- "cache: eviction walk target pages histogram - 64-128", "cache: eviction walks abandoned",
+ "cache: eviction walk target pages histogram - 64-128",
+ "cache: eviction walks abandoned",
"cache: eviction walks gave up because they restarted their walk twice",
"cache: eviction walks gave up because they saw too many pages and found no candidates",
"cache: eviction walks gave up because they saw too many pages and found too few candidates",
- "cache: eviction walks reached end of tree", "cache: eviction walks started from root of tree",
+ "cache: eviction walks reached end of tree",
+ "cache: eviction walks started from root of tree",
"cache: eviction walks started from saved location in tree",
"cache: hazard pointer blocked page eviction",
- "cache: in-memory page passed criteria to be split", "cache: in-memory page splits",
- "cache: internal pages evicted", "cache: internal pages split during eviction",
- "cache: leaf pages split during eviction", "cache: modified pages evicted",
- "cache: overflow pages read into cache", "cache: page split during eviction deepened the tree",
- "cache: page written requiring cache overflow records", "cache: pages read into cache",
+ "cache: in-memory page passed criteria to be split",
+ "cache: in-memory page splits",
+ "cache: internal pages evicted",
+ "cache: internal pages split during eviction",
+ "cache: leaf pages split during eviction",
+ "cache: modified pages evicted",
+ "cache: overflow pages read into cache",
+ "cache: page split during eviction deepened the tree",
+ "cache: page written requiring cache overflow records",
+ "cache: pages read into cache",
"cache: pages read into cache after truncate",
"cache: pages read into cache after truncate in prepare state",
"cache: pages read into cache requiring cache overflow entries",
- "cache: pages requested from the cache", "cache: pages seen by eviction walk",
- "cache: pages written from cache", "cache: pages written requiring in-memory restoration",
- "cache: tracked dirty bytes in the cache", "cache: unmodified pages evicted",
+ "cache: pages requested from the cache",
+ "cache: pages seen by eviction walk",
+ "cache: pages written from cache",
+ "cache: pages written requiring in-memory restoration",
+ "cache: tracked dirty bytes in the cache",
+ "cache: unmodified pages evicted",
"cache_walk: Average difference between current eviction generation when the page was last "
"considered",
"cache_walk: Average on-disk page image size seen",
"cache_walk: Average time in cache for pages that have been visited by the eviction server",
"cache_walk: Average time in cache for pages that have not been visited by the eviction server",
- "cache_walk: Clean pages currently in cache", "cache_walk: Current eviction generation",
- "cache_walk: Dirty pages currently in cache", "cache_walk: Entries in the root page",
- "cache_walk: Internal pages currently in cache", "cache_walk: Leaf pages currently in cache",
+ "cache_walk: Clean pages currently in cache",
+ "cache_walk: Current eviction generation",
+ "cache_walk: Dirty pages currently in cache",
+ "cache_walk: Entries in the root page",
+ "cache_walk: Internal pages currently in cache",
+ "cache_walk: Leaf pages currently in cache",
"cache_walk: Maximum difference between current eviction generation when the page was last "
"considered",
- "cache_walk: Maximum page size seen", "cache_walk: Minimum on-disk page image size seen",
+ "cache_walk: Maximum page size seen",
+ "cache_walk: Minimum on-disk page image size seen",
"cache_walk: Number of pages never visited by eviction server",
"cache_walk: On-disk page image sizes smaller than a single allocation unit",
"cache_walk: Pages created in memory and never written",
"cache_walk: Pages currently queued for eviction",
"cache_walk: Pages that could not be queued for eviction",
- "cache_walk: Refs skipped during cache traversal", "cache_walk: Size of the root page",
+ "cache_walk: Refs skipped during cache traversal",
+ "cache_walk: Size of the root page",
"cache_walk: Total number of pages currently in cache",
"compression: compressed page maximum internal page size prior to compression",
"compression: compressed page maximum leaf page size prior to compression ",
- "compression: compressed pages read", "compression: compressed pages written",
+ "compression: compressed pages read",
+ "compression: compressed pages written",
"compression: page written failed to compress",
- "compression: page written was too small to compress", "cursor: bulk loaded cursor insert calls",
- "cursor: cache cursors reuse count", "cursor: close calls that result in cache",
- "cursor: create calls", "cursor: insert calls", "cursor: insert key and value bytes",
- "cursor: modify", "cursor: modify key and value bytes affected",
- "cursor: modify value bytes modified", "cursor: next calls", "cursor: open cursor count",
- "cursor: operation restarted", "cursor: prev calls", "cursor: remove calls",
- "cursor: remove key bytes removed", "cursor: reserve calls", "cursor: reset calls",
- "cursor: search calls", "cursor: search near calls", "cursor: truncate calls",
- "cursor: update calls", "cursor: update key and value bytes", "cursor: update value size change",
- "reconciliation: dictionary matches", "reconciliation: fast-path pages deleted",
+ "compression: page written was too small to compress",
+ "cursor: bulk loaded cursor insert calls",
+ "cursor: cache cursors reuse count",
+ "cursor: close calls that result in cache",
+ "cursor: create calls",
+ "cursor: insert calls",
+ "cursor: insert key and value bytes",
+ "cursor: modify",
+ "cursor: modify key and value bytes affected",
+ "cursor: modify value bytes modified",
+ "cursor: next calls",
+ "cursor: open cursor count",
+ "cursor: operation restarted",
+ "cursor: prev calls",
+ "cursor: remove calls",
+ "cursor: remove key bytes removed",
+ "cursor: reserve calls",
+ "cursor: reset calls",
+ "cursor: search calls",
+ "cursor: search near calls",
+ "cursor: truncate calls",
+ "cursor: update calls",
+ "cursor: update key and value bytes",
+ "cursor: update value size change",
+ "reconciliation: dictionary matches",
+ "reconciliation: fast-path pages deleted",
"reconciliation: internal page key bytes discarded using suffix compression",
- "reconciliation: internal page multi-block writes", "reconciliation: internal-page overflow keys",
+ "reconciliation: internal page multi-block writes",
+ "reconciliation: internal-page overflow keys",
"reconciliation: leaf page key bytes discarded using prefix compression",
- "reconciliation: leaf page multi-block writes", "reconciliation: leaf-page overflow keys",
- "reconciliation: maximum blocks required for a page", "reconciliation: overflow values written",
- "reconciliation: page checksum matches", "reconciliation: page reconciliation calls",
- "reconciliation: page reconciliation calls for eviction", "reconciliation: pages deleted",
- "session: object compaction", "transaction: update conflicts",
+ "reconciliation: leaf page multi-block writes",
+ "reconciliation: leaf-page overflow keys",
+ "reconciliation: maximum blocks required for a page",
+ "reconciliation: overflow values written",
+ "reconciliation: page checksum matches",
+ "reconciliation: page reconciliation calls",
+ "reconciliation: page reconciliation calls for eviction",
+ "reconciliation: pages deleted",
+ "session: object compaction",
+ "transaction: update conflicts",
};
int
@@ -154,6 +215,7 @@ __wt_stat_dsrc_clear_single(WT_DSRC_STATS *stats)
stats->block_size = 0;
stats->block_minor = 0;
/* not clearing btree_checkpoint_generation */
+ /* not clearing btree_clean_checkpoint_timer */
stats->btree_column_fix = 0;
stats->btree_column_internal = 0;
stats->btree_column_rle = 0;
@@ -319,6 +381,7 @@ __wt_stat_dsrc_aggregate_single(WT_DSRC_STATS *from, WT_DSRC_STATS *to)
if (from->block_minor > to->block_minor)
to->block_minor = from->block_minor;
to->btree_checkpoint_generation += from->btree_checkpoint_generation;
+ to->btree_clean_checkpoint_timer += from->btree_clean_checkpoint_timer;
to->btree_column_fix += from->btree_column_fix;
to->btree_column_internal += from->btree_column_internal;
to->btree_column_rle += from->btree_column_rle;
@@ -485,6 +548,7 @@ __wt_stat_dsrc_aggregate(WT_DSRC_STATS **from, WT_DSRC_STATS *to)
if ((v = WT_STAT_READ(from, block_minor)) > to->block_minor)
to->block_minor = v;
to->btree_checkpoint_generation += WT_STAT_READ(from, btree_checkpoint_generation);
+ to->btree_clean_checkpoint_timer += WT_STAT_READ(from, btree_clean_checkpoint_timer);
to->btree_column_fix += WT_STAT_READ(from, btree_column_fix);
to->btree_column_internal += WT_STAT_READ(from, btree_column_internal);
to->btree_column_rle += WT_STAT_READ(from, btree_column_rle);
@@ -623,45 +687,70 @@ __wt_stat_dsrc_aggregate(WT_DSRC_STATS **from, WT_DSRC_STATS *to)
}
static const char *const __stats_connection_desc[] = {
- "LSM: application work units currently queued", "LSM: merge work units currently queued",
- "LSM: rows merged in an LSM tree", "LSM: sleep for LSM checkpoint throttle",
- "LSM: sleep for LSM merge throttle", "LSM: switch work units currently queued",
- "LSM: tree maintenance operations discarded", "LSM: tree maintenance operations executed",
- "LSM: tree maintenance operations scheduled", "LSM: tree queue hit maximum",
- "async: current work queue length", "async: maximum work queue length",
- "async: number of allocation state races", "async: number of flush calls",
+ "LSM: application work units currently queued",
+ "LSM: merge work units currently queued",
+ "LSM: rows merged in an LSM tree",
+ "LSM: sleep for LSM checkpoint throttle",
+ "LSM: sleep for LSM merge throttle",
+ "LSM: switch work units currently queued",
+ "LSM: tree maintenance operations discarded",
+ "LSM: tree maintenance operations executed",
+ "LSM: tree maintenance operations scheduled",
+ "LSM: tree queue hit maximum",
+ "async: current work queue length",
+ "async: maximum work queue length",
+ "async: number of allocation state races",
+ "async: number of flush calls",
"async: number of operation slots viewed for allocation",
"async: number of times operation allocation failed",
- "async: number of times worker found no work", "async: total allocations",
- "async: total compact calls", "async: total insert calls", "async: total remove calls",
- "async: total search calls", "async: total update calls", "block-manager: blocks pre-loaded",
- "block-manager: blocks read", "block-manager: blocks written", "block-manager: bytes read",
- "block-manager: bytes written", "block-manager: bytes written for checkpoint",
- "block-manager: mapped blocks read", "block-manager: mapped bytes read",
+ "async: number of times worker found no work",
+ "async: total allocations",
+ "async: total compact calls",
+ "async: total insert calls",
+ "async: total remove calls",
+ "async: total search calls",
+ "async: total update calls",
+ "block-manager: blocks pre-loaded",
+ "block-manager: blocks read",
+ "block-manager: blocks written",
+ "block-manager: bytes read",
+ "block-manager: bytes written",
+ "block-manager: bytes written for checkpoint",
+ "block-manager: mapped blocks read",
+ "block-manager: mapped bytes read",
"cache: application threads page read from disk to cache count",
"cache: application threads page read from disk to cache time (usecs)",
"cache: application threads page write from cache to disk count",
"cache: application threads page write from cache to disk time (usecs)",
"cache: bytes belonging to page images in the cache",
"cache: bytes belonging to the cache overflow table in the cache",
- "cache: bytes currently in the cache", "cache: bytes dirty in the cache cumulative",
- "cache: bytes not belonging to page images in the cache", "cache: bytes read into cache",
+ "cache: bytes currently in the cache",
+ "cache: bytes dirty in the cache cumulative",
+ "cache: bytes not belonging to page images in the cache",
+ "cache: bytes read into cache",
"cache: bytes written from cache",
"cache: cache overflow cursor application thread wait time (usecs)",
- "cache: cache overflow cursor internal thread wait time (usecs)", "cache: cache overflow score",
- "cache: cache overflow table entries", "cache: cache overflow table insert calls",
- "cache: cache overflow table max on-disk size", "cache: cache overflow table on-disk size",
- "cache: cache overflow table remove calls", "cache: checkpoint blocked page eviction",
- "cache: eviction calls to get a page", "cache: eviction calls to get a page found queue empty",
+ "cache: cache overflow cursor internal thread wait time (usecs)",
+ "cache: cache overflow score",
+ "cache: cache overflow table entries",
+ "cache: cache overflow table insert calls",
+ "cache: cache overflow table max on-disk size",
+ "cache: cache overflow table on-disk size",
+ "cache: cache overflow table remove calls",
+ "cache: checkpoint blocked page eviction",
+ "cache: eviction calls to get a page",
+ "cache: eviction calls to get a page found queue empty",
"cache: eviction calls to get a page found queue empty after locking",
- "cache: eviction currently operating in aggressive mode", "cache: eviction empty score",
+ "cache: eviction currently operating in aggressive mode",
+ "cache: eviction empty score",
"cache: eviction passes of a file",
"cache: eviction server candidate queue empty when topping up",
"cache: eviction server candidate queue not empty when topping up",
"cache: eviction server evicting pages",
"cache: eviction server slept, because we did not make progress with eviction",
"cache: eviction server unable to reach eviction goal",
- "cache: eviction server waiting for a leaf page", "cache: eviction state",
+ "cache: eviction server waiting for a leaf page",
+ "cache: eviction state",
"cache: eviction walk target pages histogram - 0-9",
"cache: eviction walk target pages histogram - 10-31",
"cache: eviction walk target pages histogram - 128 and higher",
@@ -669,15 +758,20 @@ static const char *const __stats_connection_desc[] = {
"cache: eviction walk target pages histogram - 64-128",
"cache: eviction walk target strategy both clean and dirty pages",
"cache: eviction walk target strategy only clean pages",
- "cache: eviction walk target strategy only dirty pages", "cache: eviction walks abandoned",
+ "cache: eviction walk target strategy only dirty pages",
+ "cache: eviction walks abandoned",
"cache: eviction walks gave up because they restarted their walk twice",
"cache: eviction walks gave up because they saw too many pages and found no candidates",
"cache: eviction walks gave up because they saw too many pages and found too few candidates",
- "cache: eviction walks reached end of tree", "cache: eviction walks started from root of tree",
+ "cache: eviction walks reached end of tree",
+ "cache: eviction walks started from root of tree",
"cache: eviction walks started from saved location in tree",
- "cache: eviction worker thread active", "cache: eviction worker thread created",
- "cache: eviction worker thread evicting pages", "cache: eviction worker thread removed",
- "cache: eviction worker thread stable number", "cache: files with active eviction walks",
+ "cache: eviction worker thread active",
+ "cache: eviction worker thread created",
+ "cache: eviction worker thread evicting pages",
+ "cache: eviction worker thread removed",
+ "cache: eviction worker thread stable number",
+ "cache: files with active eviction walks",
"cache: files with new eviction walks started",
"cache: force re-tuning of eviction workers once in a while",
"cache: forced eviction - pages evicted that were clean count",
@@ -688,29 +782,42 @@ static const char *const __stats_connection_desc[] = {
"cache: forced eviction - pages selected count",
"cache: forced eviction - pages selected unable to be evicted count",
"cache: forced eviction - pages selected unable to be evicted time",
- "cache: hazard pointer blocked page eviction", "cache: hazard pointer check calls",
- "cache: hazard pointer check entries walked", "cache: hazard pointer maximum array length",
- "cache: in-memory page passed criteria to be split", "cache: in-memory page splits",
- "cache: internal pages evicted", "cache: internal pages queued for eviction",
+ "cache: hazard pointer blocked page eviction",
+ "cache: hazard pointer check calls",
+ "cache: hazard pointer check entries walked",
+ "cache: hazard pointer maximum array length",
+ "cache: in-memory page passed criteria to be split",
+ "cache: in-memory page splits",
+ "cache: internal pages evicted",
+ "cache: internal pages queued for eviction",
"cache: internal pages seen by eviction walk",
"cache: internal pages seen by eviction walk that are already queued",
- "cache: internal pages split during eviction", "cache: leaf pages split during eviction",
- "cache: maximum bytes configured", "cache: maximum page size at eviction",
- "cache: modified pages evicted", "cache: modified pages evicted by application threads",
- "cache: operations timed out waiting for space in cache", "cache: overflow pages read into cache",
+ "cache: internal pages split during eviction",
+ "cache: leaf pages split during eviction",
+ "cache: maximum bytes configured",
+ "cache: maximum page size at eviction",
+ "cache: modified pages evicted",
+ "cache: modified pages evicted by application threads",
+ "cache: operations timed out waiting for space in cache",
+ "cache: overflow pages read into cache",
"cache: page split during eviction deepened the tree",
"cache: page written requiring cache overflow records",
- "cache: pages currently held in the cache", "cache: pages evicted by application threads",
- "cache: pages queued for eviction", "cache: pages queued for eviction post lru sorting",
- "cache: pages queued for urgent eviction", "cache: pages queued for urgent eviction during walk",
- "cache: pages read into cache", "cache: pages read into cache after truncate",
+ "cache: pages currently held in the cache",
+ "cache: pages evicted by application threads",
+ "cache: pages queued for eviction",
+ "cache: pages queued for eviction post lru sorting",
+ "cache: pages queued for urgent eviction",
+ "cache: pages queued for urgent eviction during walk",
+ "cache: pages read into cache",
+ "cache: pages read into cache after truncate",
"cache: pages read into cache after truncate in prepare state",
"cache: pages read into cache requiring cache overflow entries",
"cache: pages read into cache requiring cache overflow for checkpoint",
"cache: pages read into cache skipping older cache overflow entries",
"cache: pages read into cache with skipped cache overflow entries needed later",
"cache: pages read into cache with skipped cache overflow entries needed later by checkpoint",
- "cache: pages requested from the cache", "cache: pages seen by eviction walk",
+ "cache: pages requested from the cache",
+ "cache: pages seen by eviction walk",
"cache: pages seen by eviction walk that are already queued",
"cache: pages selected for eviction unable to be evicted",
"cache: pages selected for eviction unable to be evicted as the parent page has overflow items",
@@ -719,92 +826,155 @@ static const char *const __stats_connection_desc[] = {
"cache: pages selected for eviction unable to be evicted because of failure in reconciliation",
"cache: pages selected for eviction unable to be evicted due to newer modifications on a clean "
"page",
- "cache: pages walked for eviction", "cache: pages written from cache",
- "cache: pages written requiring in-memory restoration", "cache: percentage overhead",
+ "cache: pages walked for eviction",
+ "cache: pages written from cache",
+ "cache: pages written requiring in-memory restoration",
+ "cache: percentage overhead",
"cache: tracked bytes belonging to internal pages in the cache",
"cache: tracked bytes belonging to leaf pages in the cache",
- "cache: tracked dirty bytes in the cache", "cache: tracked dirty pages in the cache",
- "cache: unmodified pages evicted", "capacity: background fsync file handles considered",
- "capacity: background fsync file handles synced", "capacity: background fsync time (msecs)",
- "capacity: bytes read", "capacity: bytes written for checkpoint",
- "capacity: bytes written for eviction", "capacity: bytes written for log",
- "capacity: bytes written total", "capacity: threshold to call fsync",
+ "cache: tracked dirty bytes in the cache",
+ "cache: tracked dirty pages in the cache",
+ "cache: unmodified pages evicted",
+ "capacity: background fsync file handles considered",
+ "capacity: background fsync file handles synced",
+ "capacity: background fsync time (msecs)",
+ "capacity: bytes read",
+ "capacity: bytes written for checkpoint",
+ "capacity: bytes written for eviction",
+ "capacity: bytes written for log",
+ "capacity: bytes written total",
+ "capacity: threshold to call fsync",
"capacity: time waiting due to total capacity (usecs)",
"capacity: time waiting during checkpoint (usecs)",
- "capacity: time waiting during eviction (usecs)", "capacity: time waiting during logging (usecs)",
- "capacity: time waiting during read (usecs)", "connection: auto adjusting condition resets",
+ "capacity: time waiting during eviction (usecs)",
+ "capacity: time waiting during logging (usecs)",
+ "capacity: time waiting during read (usecs)",
+ "connection: auto adjusting condition resets",
"connection: auto adjusting condition wait calls",
- "connection: detected system time went backwards", "connection: files currently open",
- "connection: memory allocations", "connection: memory frees", "connection: memory re-allocations",
+ "connection: detected system time went backwards",
+ "connection: files currently open",
+ "connection: hash bucket array size for data handles",
+ "connection: hash bucket array size general",
+ "connection: memory allocations",
+ "connection: memory frees",
+ "connection: memory re-allocations",
"connection: pthread mutex condition wait calls",
"connection: pthread mutex shared lock read-lock calls",
- "connection: pthread mutex shared lock write-lock calls", "connection: total fsync I/Os",
- "connection: total read I/Os", "connection: total write I/Os", "cursor: cached cursor count",
+ "connection: pthread mutex shared lock write-lock calls",
+ "connection: total fsync I/Os",
+ "connection: total read I/Os",
+ "connection: total write I/Os",
+ "cursor: cached cursor count",
"cursor: cursor bulk loaded cursor insert calls",
- "cursor: cursor close calls that result in cache", "cursor: cursor create calls",
- "cursor: cursor insert calls", "cursor: cursor insert key and value bytes",
- "cursor: cursor modify calls", "cursor: cursor modify key and value bytes affected",
- "cursor: cursor modify value bytes modified", "cursor: cursor next calls",
- "cursor: cursor operation restarted", "cursor: cursor prev calls", "cursor: cursor remove calls",
- "cursor: cursor remove key bytes removed", "cursor: cursor reserve calls",
- "cursor: cursor reset calls", "cursor: cursor search calls", "cursor: cursor search near calls",
- "cursor: cursor sweep buckets", "cursor: cursor sweep cursors closed",
- "cursor: cursor sweep cursors examined", "cursor: cursor sweeps", "cursor: cursor truncate calls",
- "cursor: cursor update calls", "cursor: cursor update key and value bytes",
- "cursor: cursor update value size change", "cursor: cursors reused from cache",
- "cursor: open cursor count", "data-handle: connection data handle size",
+ "cursor: cursor close calls that result in cache",
+ "cursor: cursor create calls",
+ "cursor: cursor insert calls",
+ "cursor: cursor insert key and value bytes",
+ "cursor: cursor modify calls",
+ "cursor: cursor modify key and value bytes affected",
+ "cursor: cursor modify value bytes modified",
+ "cursor: cursor next calls",
+ "cursor: cursor operation restarted",
+ "cursor: cursor prev calls",
+ "cursor: cursor remove calls",
+ "cursor: cursor remove key bytes removed",
+ "cursor: cursor reserve calls",
+ "cursor: cursor reset calls",
+ "cursor: cursor search calls",
+ "cursor: cursor search near calls",
+ "cursor: cursor sweep buckets",
+ "cursor: cursor sweep cursors closed",
+ "cursor: cursor sweep cursors examined",
+ "cursor: cursor sweeps",
+ "cursor: cursor truncate calls",
+ "cursor: cursor update calls",
+ "cursor: cursor update key and value bytes",
+ "cursor: cursor update value size change",
+ "cursor: cursors reused from cache",
+ "cursor: open cursor count",
+ "data-handle: connection data handle size",
"data-handle: connection data handles currently active",
"data-handle: connection sweep candidate became referenced",
"data-handle: connection sweep dhandles closed",
"data-handle: connection sweep dhandles removed from hash list",
- "data-handle: connection sweep time-of-death sets", "data-handle: connection sweeps",
- "data-handle: session dhandles swept", "data-handle: session sweep attempts",
+ "data-handle: connection sweep time-of-death sets",
+ "data-handle: connection sweeps",
+ "data-handle: session dhandles swept",
+ "data-handle: session sweep attempts",
"lock: checkpoint lock acquisitions",
"lock: checkpoint lock application thread wait time (usecs)",
"lock: checkpoint lock internal thread wait time (usecs)",
"lock: dhandle lock application thread time waiting (usecs)",
- "lock: dhandle lock internal thread time waiting (usecs)", "lock: dhandle read lock acquisitions",
+ "lock: dhandle lock internal thread time waiting (usecs)",
+ "lock: dhandle read lock acquisitions",
"lock: dhandle write lock acquisitions",
"lock: durable timestamp queue lock application thread time waiting (usecs)",
"lock: durable timestamp queue lock internal thread time waiting (usecs)",
"lock: durable timestamp queue read lock acquisitions",
- "lock: durable timestamp queue write lock acquisitions", "lock: metadata lock acquisitions",
+ "lock: durable timestamp queue write lock acquisitions",
+ "lock: metadata lock acquisitions",
"lock: metadata lock application thread wait time (usecs)",
"lock: metadata lock internal thread wait time (usecs)",
"lock: read timestamp queue lock application thread time waiting (usecs)",
"lock: read timestamp queue lock internal thread time waiting (usecs)",
"lock: read timestamp queue read lock acquisitions",
- "lock: read timestamp queue write lock acquisitions", "lock: schema lock acquisitions",
+ "lock: read timestamp queue write lock acquisitions",
+ "lock: schema lock acquisitions",
"lock: schema lock application thread wait time (usecs)",
"lock: schema lock internal thread wait time (usecs)",
"lock: table lock application thread time waiting for the table lock (usecs)",
"lock: table lock internal thread time waiting for the table lock (usecs)",
- "lock: table read lock acquisitions", "lock: table write lock acquisitions",
+ "lock: table read lock acquisitions",
+ "lock: table write lock acquisitions",
"lock: txn global lock application thread time waiting (usecs)",
"lock: txn global lock internal thread time waiting (usecs)",
- "lock: txn global read lock acquisitions", "lock: txn global write lock acquisitions",
- "log: busy returns attempting to switch slots", "log: force archive time sleeping (usecs)",
- "log: log bytes of payload data", "log: log bytes written", "log: log files manually zero-filled",
- "log: log flush operations", "log: log force write operations",
- "log: log force write operations skipped", "log: log records compressed",
- "log: log records not compressed", "log: log records too small to compress",
- "log: log release advances write LSN", "log: log scan operations",
- "log: log scan records requiring two reads", "log: log server thread advances write LSN",
- "log: log server thread write LSN walk skipped", "log: log sync operations",
- "log: log sync time duration (usecs)", "log: log sync_dir operations",
- "log: log sync_dir time duration (usecs)", "log: log write operations",
- "log: logging bytes consolidated", "log: maximum log file size",
+ "lock: txn global read lock acquisitions",
+ "lock: txn global write lock acquisitions",
+ "log: busy returns attempting to switch slots",
+ "log: force archive time sleeping (usecs)",
+ "log: log bytes of payload data",
+ "log: log bytes written",
+ "log: log files manually zero-filled",
+ "log: log flush operations",
+ "log: log force write operations",
+ "log: log force write operations skipped",
+ "log: log records compressed",
+ "log: log records not compressed",
+ "log: log records too small to compress",
+ "log: log release advances write LSN",
+ "log: log scan operations",
+ "log: log scan records requiring two reads",
+ "log: log server thread advances write LSN",
+ "log: log server thread write LSN walk skipped",
+ "log: log sync operations",
+ "log: log sync time duration (usecs)",
+ "log: log sync_dir operations",
+ "log: log sync_dir time duration (usecs)",
+ "log: log write operations",
+ "log: logging bytes consolidated",
+ "log: maximum log file size",
"log: number of pre-allocated log files to create",
- "log: pre-allocated log files not ready and missed", "log: pre-allocated log files prepared",
- "log: pre-allocated log files used", "log: records processed by log scan",
- "log: slot close lost race", "log: slot close unbuffered waits", "log: slot closures",
- "log: slot join atomic update races", "log: slot join calls atomic updates raced",
- "log: slot join calls did not yield", "log: slot join calls found active slot closed",
- "log: slot join calls slept", "log: slot join calls yielded",
- "log: slot join found active slot closed", "log: slot joins yield time (usecs)",
- "log: slot transitions unable to find free slot", "log: slot unbuffered writes",
- "log: total in-memory size of compressed records", "log: total log buffer size",
- "log: total size of compressed records", "log: written slots coalesced",
+ "log: pre-allocated log files not ready and missed",
+ "log: pre-allocated log files prepared",
+ "log: pre-allocated log files used",
+ "log: records processed by log scan",
+ "log: slot close lost race",
+ "log: slot close unbuffered waits",
+ "log: slot closures",
+ "log: slot join atomic update races",
+ "log: slot join calls atomic updates raced",
+ "log: slot join calls did not yield",
+ "log: slot join calls found active slot closed",
+ "log: slot join calls slept",
+ "log: slot join calls yielded",
+ "log: slot join found active slot closed",
+ "log: slot joins yield time (usecs)",
+ "log: slot transitions unable to find free slot",
+ "log: slot unbuffered writes",
+ "log: total in-memory size of compressed records",
+ "log: total log buffer size",
+ "log: total size of compressed records",
+ "log: written slots coalesced",
"log: yields waiting for previous log file close",
"perf: file system read latency histogram (bucket 1) - 10-49ms",
"perf: file system read latency histogram (bucket 2) - 50-99ms",
@@ -828,22 +998,37 @@ static const char *const __stats_connection_desc[] = {
"perf: operation write latency histogram (bucket 3) - 500-999us",
"perf: operation write latency histogram (bucket 4) - 1000-9999us",
"perf: operation write latency histogram (bucket 5) - 10000us+",
- "reconciliation: fast-path pages deleted", "reconciliation: page reconciliation calls",
- "reconciliation: page reconciliation calls for eviction", "reconciliation: pages deleted",
+ "reconciliation: fast-path pages deleted",
+ "reconciliation: page reconciliation calls",
+ "reconciliation: page reconciliation calls for eviction",
+ "reconciliation: pages deleted",
"reconciliation: split bytes currently awaiting free",
- "reconciliation: split objects currently awaiting free", "session: open session count",
- "session: session query timestamp calls", "session: table alter failed calls",
- "session: table alter successful calls", "session: table alter unchanged and skipped",
- "session: table compact failed calls", "session: table compact successful calls",
- "session: table create failed calls", "session: table create successful calls",
- "session: table drop failed calls", "session: table drop successful calls",
- "session: table import failed calls", "session: table import successful calls",
- "session: table rebalance failed calls", "session: table rebalance successful calls",
- "session: table rename failed calls", "session: table rename successful calls",
- "session: table salvage failed calls", "session: table salvage successful calls",
- "session: table truncate failed calls", "session: table truncate successful calls",
- "session: table verify failed calls", "session: table verify successful calls",
- "thread-state: active filesystem fsync calls", "thread-state: active filesystem read calls",
+ "reconciliation: split objects currently awaiting free",
+ "session: open session count",
+ "session: session query timestamp calls",
+ "session: table alter failed calls",
+ "session: table alter successful calls",
+ "session: table alter unchanged and skipped",
+ "session: table compact failed calls",
+ "session: table compact successful calls",
+ "session: table create failed calls",
+ "session: table create successful calls",
+ "session: table drop failed calls",
+ "session: table drop successful calls",
+ "session: table import failed calls",
+ "session: table import successful calls",
+ "session: table rebalance failed calls",
+ "session: table rebalance successful calls",
+ "session: table rename failed calls",
+ "session: table rename successful calls",
+ "session: table salvage failed calls",
+ "session: table salvage successful calls",
+ "session: table truncate failed calls",
+ "session: table truncate successful calls",
+ "session: table verify failed calls",
+ "session: table verify successful calls",
+ "thread-state: active filesystem fsync calls",
+ "thread-state: active filesystem read calls",
"thread-state: active filesystem write calls",
"thread-yield: application thread time evicting (usecs)",
"thread-yield: application thread time waiting for cache (usecs)",
@@ -853,8 +1038,10 @@ static const char *const __stats_connection_desc[] = {
"thread-yield: get reference for page index and slot time sleeping (usecs)",
"thread-yield: log server sync yielded for log write",
"thread-yield: page access yielded due to prepare state change",
- "thread-yield: page acquire busy blocked", "thread-yield: page acquire eviction blocked",
- "thread-yield: page acquire locked blocked", "thread-yield: page acquire read blocked",
+ "thread-yield: page acquire busy blocked",
+ "thread-yield: page acquire eviction blocked",
+ "thread-yield: page acquire locked blocked",
+ "thread-yield: page acquire read blocked",
"thread-yield: page acquire time sleeping (usecs)",
"thread-yield: page delete rollback time sleeping for state change (usecs)",
"thread-yield: page reconciliation yielded due to child modification",
@@ -864,29 +1051,45 @@ static const char *const __stats_connection_desc[] = {
"transaction: durable timestamp queue insert to empty",
"transaction: durable timestamp queue inserts to head",
"transaction: durable timestamp queue inserts total",
- "transaction: durable timestamp queue length", "transaction: number of named snapshots created",
- "transaction: number of named snapshots dropped", "transaction: prepared transactions",
+ "transaction: durable timestamp queue length",
+ "transaction: number of named snapshots created",
+ "transaction: number of named snapshots dropped",
+ "transaction: prepared transactions",
"transaction: prepared transactions committed",
"transaction: prepared transactions currently active",
- "transaction: prepared transactions rolled back", "transaction: query timestamp calls",
+ "transaction: prepared transactions rolled back",
+ "transaction: query timestamp calls",
"transaction: read timestamp queue entries walked",
"transaction: read timestamp queue insert to empty",
"transaction: read timestamp queue inserts to head",
- "transaction: read timestamp queue inserts total", "transaction: read timestamp queue length",
- "transaction: rollback to stable calls", "transaction: rollback to stable updates aborted",
+ "transaction: read timestamp queue inserts total",
+ "transaction: read timestamp queue length",
+ "transaction: rollback to stable calls",
+ "transaction: rollback to stable updates aborted",
"transaction: rollback to stable updates removed from cache overflow",
- "transaction: set timestamp calls", "transaction: set timestamp durable calls",
- "transaction: set timestamp durable updates", "transaction: set timestamp oldest calls",
- "transaction: set timestamp oldest updates", "transaction: set timestamp stable calls",
- "transaction: set timestamp stable updates", "transaction: transaction begins",
+ "transaction: set timestamp calls",
+ "transaction: set timestamp durable calls",
+ "transaction: set timestamp durable updates",
+ "transaction: set timestamp oldest calls",
+ "transaction: set timestamp oldest updates",
+ "transaction: set timestamp stable calls",
+ "transaction: set timestamp stable updates",
+ "transaction: transaction begins",
"transaction: transaction checkpoint currently running",
"transaction: transaction checkpoint generation",
"transaction: transaction checkpoint max time (msecs)",
"transaction: transaction checkpoint min time (msecs)",
+ "transaction: transaction checkpoint most recent duration for gathering all handles (usecs)",
+ "transaction: transaction checkpoint most recent duration for gathering applied handles (usecs)",
+ "transaction: transaction checkpoint most recent duration for gathering skipped handles (usecs)",
+ "transaction: transaction checkpoint most recent handles applied",
+ "transaction: transaction checkpoint most recent handles skipped",
+ "transaction: transaction checkpoint most recent handles walked",
"transaction: transaction checkpoint most recent time (msecs)",
"transaction: transaction checkpoint scrub dirty target",
"transaction: transaction checkpoint scrub time (msecs)",
- "transaction: transaction checkpoint total time (msecs)", "transaction: transaction checkpoints",
+ "transaction: transaction checkpoint total time (msecs)",
+ "transaction: transaction checkpoints",
"transaction: transaction checkpoints skipped because database was clean",
"transaction: transaction failures due to cache overflow",
"transaction: transaction fsync calls for checkpoint after allocating the transaction ID",
@@ -900,8 +1103,10 @@ static const char *const __stats_connection_desc[] = {
"transaction: transaction range of timestamps pinned by the oldest active read timestamp",
"transaction: transaction range of timestamps pinned by the oldest timestamp",
"transaction: transaction read timestamp of the oldest active reader",
- "transaction: transaction sync calls", "transaction: transactions committed",
- "transaction: transactions rolled back", "transaction: update conflicts",
+ "transaction: transaction sync calls",
+ "transaction: transactions committed",
+ "transaction: transactions rolled back",
+ "transaction: update conflicts",
};
int
@@ -1106,6 +1311,8 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cond_auto_wait = 0;
stats->time_travel = 0;
/* not clearing file_open */
+ /* not clearing buckets_dh */
+ /* not clearing buckets */
stats->memory_allocation = 0;
stats->memory_free = 0;
stats->memory_grow = 0;
@@ -1330,6 +1537,12 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
/* not clearing txn_checkpoint_generation */
/* not clearing txn_checkpoint_time_max */
/* not clearing txn_checkpoint_time_min */
+ /* not clearing txn_checkpoint_handle_duration */
+ /* not clearing txn_checkpoint_handle_duration_apply */
+ /* not clearing txn_checkpoint_handle_duration_skip */
+ stats->txn_checkpoint_handle_applied = 0;
+ stats->txn_checkpoint_handle_skipped = 0;
+ stats->txn_checkpoint_handle_walked = 0;
/* not clearing txn_checkpoint_time_recent */
/* not clearing txn_checkpoint_scrub_target */
/* not clearing txn_checkpoint_scrub_time */
@@ -1552,6 +1765,8 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->cond_auto_wait += WT_STAT_READ(from, cond_auto_wait);
to->time_travel += WT_STAT_READ(from, time_travel);
to->file_open += WT_STAT_READ(from, file_open);
+ to->buckets_dh += WT_STAT_READ(from, buckets_dh);
+ to->buckets += WT_STAT_READ(from, buckets);
to->memory_allocation += WT_STAT_READ(from, memory_allocation);
to->memory_free += WT_STAT_READ(from, memory_free);
to->memory_grow += WT_STAT_READ(from, memory_grow);
@@ -1781,6 +1996,14 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
to->txn_checkpoint_generation += WT_STAT_READ(from, txn_checkpoint_generation);
to->txn_checkpoint_time_max += WT_STAT_READ(from, txn_checkpoint_time_max);
to->txn_checkpoint_time_min += WT_STAT_READ(from, txn_checkpoint_time_min);
+ to->txn_checkpoint_handle_duration += WT_STAT_READ(from, txn_checkpoint_handle_duration);
+ to->txn_checkpoint_handle_duration_apply +=
+ WT_STAT_READ(from, txn_checkpoint_handle_duration_apply);
+ to->txn_checkpoint_handle_duration_skip +=
+ WT_STAT_READ(from, txn_checkpoint_handle_duration_skip);
+ to->txn_checkpoint_handle_applied += WT_STAT_READ(from, txn_checkpoint_handle_applied);
+ to->txn_checkpoint_handle_skipped += WT_STAT_READ(from, txn_checkpoint_handle_skipped);
+ to->txn_checkpoint_handle_walked += WT_STAT_READ(from, txn_checkpoint_handle_walked);
to->txn_checkpoint_time_recent += WT_STAT_READ(from, txn_checkpoint_time_recent);
to->txn_checkpoint_scrub_target += WT_STAT_READ(from, txn_checkpoint_scrub_target);
to->txn_checkpoint_scrub_time += WT_STAT_READ(from, txn_checkpoint_scrub_time);
@@ -1806,8 +2029,10 @@ __wt_stat_connection_aggregate(WT_CONNECTION_STATS **from, WT_CONNECTION_STATS *
}
static const char *const __stats_join_desc[] = {
- ": accesses to the main table", ": bloom filter false positives",
- ": checks that conditions of membership are satisfied", ": items inserted into a bloom filter",
+ ": accesses to the main table",
+ ": bloom filter false positives",
+ ": checks that conditions of membership are satisfied",
+ ": items inserted into a bloom filter",
": items iterated",
};
@@ -1855,9 +2080,12 @@ __wt_stat_join_aggregate(WT_JOIN_STATS **from, WT_JOIN_STATS *to)
}
static const char *const __stats_session_desc[] = {
- "session: bytes read into cache", "session: bytes written from cache",
- "session: dhandle lock wait time (usecs)", "session: page read from disk to cache time (usecs)",
- "session: page write from cache to disk time (usecs)", "session: schema lock wait time (usecs)",
+ "session: bytes read into cache",
+ "session: bytes written from cache",
+ "session: dhandle lock wait time (usecs)",
+ "session: page read from disk to cache time (usecs)",
+ "session: page write from cache to disk time (usecs)",
+ "session: schema lock wait time (usecs)",
"session: time waiting for cache (usecs)",
};
diff --git a/src/third_party/wiredtiger/src/support/thread_group.c b/src/third_party/wiredtiger/src/support/thread_group.c
index c01349016bf..9431142ef5d 100644
--- a/src/third_party/wiredtiger/src/support/thread_group.c
+++ b/src/third_party/wiredtiger/src/support/thread_group.c
@@ -47,7 +47,8 @@ err:
* 2. When the connection is closing.
* 3. When a shutdown has been requested via clearing the run flag.
*/
- WT_ASSERT(session, !F_ISSET(thread, WT_THREAD_RUN) ||
+ WT_ASSERT(session,
+ !F_ISSET(thread, WT_THREAD_RUN) ||
F_ISSET(S2C(session), WT_CONN_CLOSING | WT_CONN_RECOVERING));
return (WT_THREAD_RET_VALUE);
@@ -139,8 +140,9 @@ __thread_group_resize(WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, uint32_t
conn = S2C(session);
thread = NULL;
- __wt_verbose(session, WT_VERB_THREAD_GROUP, "Resize thread group: %s, from min: %" PRIu32
- " -> %" PRIu32 " from max: %" PRIu32 " -> %" PRIu32,
+ __wt_verbose(session, WT_VERB_THREAD_GROUP,
+ "Resize thread group: %s, from min: %" PRIu32 " -> %" PRIu32 " from max: %" PRIu32
+ " -> %" PRIu32,
group->name, group->min, new_min, group->max, new_max);
WT_ASSERT(session,
@@ -150,8 +152,9 @@ __thread_group_resize(WT_SESSION_IMPL *session, WT_THREAD_GROUP *group, uint32_t
return (0);
if (new_min > new_max)
- WT_RET_MSG(session, EINVAL, "Illegal thread group resize: %s, from min: %" PRIu32
- " -> %" PRIu32 " from max: %" PRIu32 " -> %" PRIu32,
+ WT_RET_MSG(session, EINVAL,
+ "Illegal thread group resize: %s, from min: %" PRIu32 " -> %" PRIu32 " from max: %" PRIu32
+ " -> %" PRIu32,
group->name, group->min, new_min, group->max, new_max);
/*
diff --git a/src/third_party/wiredtiger/src/txn/txn.c b/src/third_party/wiredtiger/src/txn/txn.c
index 58f16081f8e..4cebdfc9a87 100644
--- a/src/third_party/wiredtiger/src/txn/txn.c
+++ b/src/third_party/wiredtiger/src/txn/txn.c
@@ -124,8 +124,8 @@ __wt_txn_release_snapshot(WT_SESSION_IMPL *session)
txn_global = &S2C(session)->txn_global;
txn_state = WT_SESSION_TXN_STATE(session);
- WT_ASSERT(session, txn_state->pinned_id == WT_TXN_NONE ||
- session->txn.isolation == WT_ISO_READ_UNCOMMITTED ||
+ WT_ASSERT(session,
+ txn_state->pinned_id == WT_TXN_NONE || session->txn.isolation == WT_ISO_READ_UNCOMMITTED ||
!__wt_txn_visible_all(session, txn_state->pinned_id, WT_TS_NONE));
txn_state->metadata_pinned = txn_state->pinned_id = WT_TXN_NONE;
@@ -385,7 +385,7 @@ __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags)
if ((oldest_id == prev_oldest_id ||
(!strict && WT_TXNID_LT(oldest_id, prev_oldest_id + 100))) &&
((last_running == prev_last_running) ||
- (!strict && WT_TXNID_LT(last_running, prev_last_running + 100))) &&
+ (!strict && WT_TXNID_LT(last_running, prev_last_running + 100))) &&
metadata_pinned == prev_metadata_pinned)
return (0);
@@ -435,9 +435,7 @@ __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags)
if (WT_VERBOSE_ISSET(session, WT_VERB_TRANSACTION) && current_id - oldest_id > 10000 &&
oldest_session != NULL) {
__wt_verbose(session, WT_VERB_TRANSACTION,
- "old snapshot %" PRIu64 " pinned in session %" PRIu32
- " [%s]"
- " with snap_min %" PRIu64,
+ "old snapshot %" PRIu64 " pinned in session %" PRIu32 " [%s] with snap_min %" PRIu64,
oldest_id, oldest_session->id, oldest_session->lastop, oldest_session->txn.snap_min);
}
}
@@ -1197,8 +1195,8 @@ __wt_txn_prepare(WT_SESSION_IMPL *session, const char *cfg[])
*/
if (!FLD_ISSET(S2C(session)->log_flags, WT_CONN_LOG_DEBUG_MODE))
WT_RET_ASSERT(session, txn->logrec == NULL, EINVAL,
- "A transaction should not have been assigned a log"
- " record if WT_CONN_LOG_DEBUG mode is not enabled");
+ "A transaction should not have been assigned a log record if WT_CONN_LOG_DEBUG mode is "
+ "not enabled");
/* Set the prepare timestamp. */
WT_RET(__wt_txn_set_timestamp(session, cfg));
@@ -1726,26 +1724,27 @@ __wt_verbose_dump_txn_one(
* Dump the information of the passed transaction into a buffer, to be logged with an optional
* error message.
*/
- WT_RET(__wt_snprintf(buf,
- sizeof(buf), "transaction id: %" PRIu64 ", mod count: %u"
- ", snap min: %" PRIu64 ", snap max: %" PRIu64 ", snapshot count: %u"
- ", commit_timestamp: %s"
- ", durable_timestamp: %s"
- ", first_commit_timestamp: %s"
- ", prepare_timestamp: %s"
- ", read_timestamp: %s"
- ", checkpoint LSN: [%" PRIu32 "][%" PRIu32 "]"
- ", full checkpoint: %s"
- ", rollback reason: %s"
- ", flags: 0x%08" PRIx32 ", isolation: %s",
- txn->id, txn->mod_count, txn->snap_min, txn->snap_max, txn->snapshot_count,
- __wt_timestamp_to_string(txn->commit_timestamp, ts_string[0]),
- __wt_timestamp_to_string(txn->durable_timestamp, ts_string[1]),
- __wt_timestamp_to_string(txn->first_commit_timestamp, ts_string[2]),
- __wt_timestamp_to_string(txn->prepare_timestamp, ts_string[3]),
- __wt_timestamp_to_string(txn->read_timestamp, ts_string[4]), txn->ckpt_lsn.l.file,
- txn->ckpt_lsn.l.offset, txn->full_ckpt ? "true" : "false",
- txn->rollback_reason == NULL ? "" : txn->rollback_reason, txn->flags, iso_tag));
+ WT_RET(
+ __wt_snprintf(buf, sizeof(buf),
+ "transaction id: %" PRIu64 ", mod count: %u"
+ ", snap min: %" PRIu64 ", snap max: %" PRIu64 ", snapshot count: %u"
+ ", commit_timestamp: %s"
+ ", durable_timestamp: %s"
+ ", first_commit_timestamp: %s"
+ ", prepare_timestamp: %s"
+ ", read_timestamp: %s"
+ ", checkpoint LSN: [%" PRIu32 "][%" PRIu32 "]"
+ ", full checkpoint: %s"
+ ", rollback reason: %s"
+ ", flags: 0x%08" PRIx32 ", isolation: %s",
+ txn->id, txn->mod_count, txn->snap_min, txn->snap_max, txn->snapshot_count,
+ __wt_timestamp_to_string(txn->commit_timestamp, ts_string[0]),
+ __wt_timestamp_to_string(txn->durable_timestamp, ts_string[1]),
+ __wt_timestamp_to_string(txn->first_commit_timestamp, ts_string[2]),
+ __wt_timestamp_to_string(txn->prepare_timestamp, ts_string[3]),
+ __wt_timestamp_to_string(txn->read_timestamp, ts_string[4]), txn->ckpt_lsn.l.file,
+ txn->ckpt_lsn.l.offset, txn->full_ckpt ? "true" : "false",
+ txn->rollback_reason == NULL ? "" : txn->rollback_reason, txn->flags, iso_tag));
/*
* Log a message and return an error if error code and an optional error string has been passed.
@@ -1889,13 +1888,14 @@ __wt_verbose_dump_update(WT_SESSION_IMPL *session, WT_UPDATE *upd)
break;
}
- __wt_errx(session, "transaction id: %" PRIu64
- ", commit timestamp: %s"
- ", durable timestamp: %s"
- ", has next: %s"
- ", size: %" PRIu32
- ", type: %s"
- ", prepare state: %s",
+ __wt_errx(session,
+ "transaction id: %" PRIu64
+ ", commit timestamp: %s"
+ ", durable timestamp: %s"
+ ", has next: %s"
+ ", size: %" PRIu32
+ ", type: %s"
+ ", prepare state: %s",
upd->txnid, __wt_timestamp_to_string(upd->start_ts, ts_string[0]),
__wt_timestamp_to_string(upd->durable_ts, ts_string[1]), upd->next == NULL ? "no" : "yes",
upd->size, upd_type, prepare_state);
diff --git a/src/third_party/wiredtiger/src/txn/txn_ckpt.c b/src/third_party/wiredtiger/src/txn/txn_ckpt.c
index cba8357db23..7752d1cc19a 100644
--- a/src/third_party/wiredtiger/src/txn/txn_ckpt.c
+++ b/src/third_party/wiredtiger/src/txn/txn_ckpt.c
@@ -137,9 +137,7 @@ __checkpoint_apply_all(
}
if (v.len != 0)
- WT_ERR_MSG(session, EINVAL,
- "invalid checkpoint target %.*s: URIs may require "
- "quoting",
+ WT_ERR_MSG(session, EINVAL, "invalid checkpoint target %.*s: URIs may require quoting",
(int)cval.len, (char *)cval.str);
/* Some objects don't support named checkpoints. */
@@ -575,7 +573,8 @@ __checkpoint_prepare(WT_SESSION_IMPL *session, bool *trackingp, const char *cfg[
/*
* Sanity check that the oldest ID hasn't moved on before we have cleared our entry.
*/
- WT_ASSERT(session, WT_TXNID_LE(txn_global->oldest_id, txn_state->id) &&
+ WT_ASSERT(session,
+ WT_TXNID_LE(txn_global->oldest_id, txn_state->id) &&
WT_TXNID_LE(txn_global->oldest_id, txn_state->pinned_id));
/*
@@ -591,8 +590,9 @@ __checkpoint_prepare(WT_SESSION_IMPL *session, bool *trackingp, const char *cfg[
* We rely on having the global transaction data locked so the oldest timestamp can't move past
* the stable timestamp.
*/
- WT_ASSERT(session, !F_ISSET(txn, WT_TXN_HAS_TS_COMMIT | WT_TXN_HAS_TS_READ |
- WT_TXN_TS_PUBLISHED | WT_TXN_PUBLIC_TS_READ));
+ WT_ASSERT(session,
+ !F_ISSET(txn,
+ WT_TXN_HAS_TS_COMMIT | WT_TXN_HAS_TS_READ | WT_TXN_TS_PUBLISHED | WT_TXN_PUBLIC_TS_READ));
if (use_timestamp) {
/*
@@ -1226,9 +1226,8 @@ __checkpoint_lock_dirty_tree_int(WT_SESSION_IMPL *session, bool is_checkpoint, b
continue;
}
WT_RET_MSG(session, EBUSY,
- "checkpoint %s blocked by hot backup: it would "
- "delete an existing named checkpoint, and such "
- "checkpoints cannot be deleted during a hot backup",
+ "checkpoint %s blocked by hot backup: it would delete an existing named checkpoint, "
+ "and such checkpoints cannot be deleted during a hot backup",
ckpt->name);
}
/*
@@ -1259,8 +1258,9 @@ __checkpoint_lock_dirty_tree_int(WT_SESSION_IMPL *session, bool is_checkpoint, b
WT_CKPT_FOREACH (ckptbase, ckpt) {
if (!F_ISSET(ckpt, WT_CKPT_DELETE))
continue;
- WT_ASSERT(session, !WT_PREFIX_MATCH(ckpt->name, WT_CHECKPOINT) ||
- conn->hot_backup_start == 0 || ckpt->sec > conn->hot_backup_start);
+ WT_ASSERT(session,
+ !WT_PREFIX_MATCH(ckpt->name, WT_CHECKPOINT) || conn->hot_backup_start == 0 ||
+ ckpt->sec > conn->hot_backup_start);
/*
* We can't delete checkpoints referenced by a cursor. WiredTiger checkpoints are
* uniquely named and it's OK to have multiple in the system: clear the delete flag for
@@ -1301,17 +1301,16 @@ __checkpoint_lock_dirty_tree(
WT_CONFIG_ITEM cval, k, v;
WT_DATA_HANDLE *dhandle;
WT_DECL_RET;
+ uint64_t now;
char *name_alloc;
const char *name;
+ bool is_drop, is_wt_ckpt, skip_ckpt;
btree = S2BT(session);
ckpt = ckptbase = NULL;
dhandle = session->dhandle;
name_alloc = NULL;
- /* Only referenced in diagnostic builds. */
- WT_UNUSED(is_checkpoint);
-
/*
* Only referenced in diagnostic builds and gcc 5.1 isn't satisfied with wrapping the entire
* assert condition in the unused macro.
@@ -1327,21 +1326,57 @@ __checkpoint_lock_dirty_tree(
*/
WT_ASSERT(session, !need_tracking || WT_IS_METADATA(dhandle) || WT_META_TRACKING(session));
- /* Get the list of checkpoints for this file. */
- WT_RET(__wt_meta_ckptlist_get(session, dhandle->name, true, &ckptbase));
-
/* This may be a named checkpoint, check the configuration. */
cval.len = 0;
+ is_drop = is_wt_ckpt = false;
if (cfg != NULL)
WT_ERR(__wt_config_gets(session, cfg, "name", &cval));
- if (cval.len == 0)
+ if (cval.len == 0) {
name = WT_CHECKPOINT;
- else {
+ is_wt_ckpt = true;
+ } else {
WT_ERR(__checkpoint_name_ok(session, cval.str, cval.len));
WT_ERR(__wt_strndup(session, cval.str, cval.len, &name_alloc));
name = name_alloc;
}
+ /*
+ * Determine if a drop is part of the configuration. It usually isn't, so delay processing more
+ * until we know if we need to process this tree.
+ */
+ if (cfg != NULL) {
+ cval.len = 0;
+ WT_ERR(__wt_config_gets(session, cfg, "drop", &cval));
+ if (cval.len != 0)
+ is_drop = true;
+ }
+
+ /*
+ * This is a complicated test to determine if we can avoid the expensive call of getting the
+ * list of checkpoints for this file. We want to avoid that for clean files. But on clean files
+ * we want to periodically check if we need to delete old checkpoints that may have been in use
+ * by an open cursor.
+ */
+ if (!btree->modified && !force && is_checkpoint && is_wt_ckpt && !is_drop) {
+ /* In the common case of the timer set forever, don't even check the time. */
+ skip_ckpt = true;
+ if (btree->clean_ckpt_timer != WT_BTREE_CLEAN_CKPT_FOREVER) {
+ __wt_seconds(session, &now);
+ if (now > btree->clean_ckpt_timer)
+ skip_ckpt = false;
+ }
+ if (skip_ckpt) {
+ F_SET(btree, WT_BTREE_SKIP_CKPT);
+ goto skip;
+ }
+ }
+
+ /* If we have to process this btree for any reason, reset the timer. */
+ WT_BTREE_CLEAN_CKPT(session, btree, 0);
+
+ /* Get the list of checkpoints for this file. */
+ WT_ERR(__wt_meta_ckptlist_get(session, dhandle->name, true, &ckptbase));
+
/* We may be dropping specific checkpoints, check the configuration. */
if (cfg != NULL) {
cval.len = 0;
@@ -1362,9 +1397,7 @@ __checkpoint_lock_dirty_tree(
else if (WT_STRING_MATCH("to", k.str, k.len))
__drop_to(ckptbase, v.str, v.len);
else
- WT_ERR_MSG(session, EINVAL,
- "unexpected value for checkpoint "
- "key: %.*s",
+ WT_ERR_MSG(session, EINVAL, "unexpected value for checkpoint key: %.*s",
(int)k.len, k.str);
}
WT_ERR_NOTFOUND_OK(ret);
@@ -1396,6 +1429,7 @@ __checkpoint_lock_dirty_tree(
err:
__wt_meta_ckptlist_free(session, &ckptbase);
}
+skip:
__wt_free(session, name_alloc);
return (ret);
@@ -1410,6 +1444,7 @@ __checkpoint_mark_skip(WT_SESSION_IMPL *session, WT_CKPT *ckptbase, bool force)
{
WT_BTREE *btree;
WT_CKPT *ckpt;
+ uint64_t timer;
int deleted;
const char *name;
@@ -1451,9 +1486,22 @@ __checkpoint_mark_skip(WT_SESSION_IMPL *session, WT_CKPT *ckptbase, bool force)
name = (ckpt - 1)->name;
if (ckpt > ckptbase + 1 && deleted < 2 &&
(strcmp(name, (ckpt - 2)->name) == 0 ||
- (WT_PREFIX_MATCH(name, WT_CHECKPOINT) &&
- WT_PREFIX_MATCH((ckpt - 2)->name, WT_CHECKPOINT)))) {
+ (WT_PREFIX_MATCH(name, WT_CHECKPOINT) &&
+ WT_PREFIX_MATCH((ckpt - 2)->name, WT_CHECKPOINT)))) {
F_SET(btree, WT_BTREE_SKIP_CKPT);
+ /*
+ * If there are potentially extra checkpoints to delete, we set the timer to recheck
+ * later. If there are at most two checkpoints, the current one and possibly a previous
+ * one, then we know there are no additional ones to delete. In that case, set the timer
+ * to forever. If the table gets dirtied or a checkpoint is forced that will clear the
+ * timer.
+ */
+ if (ckpt - ckptbase > 2) {
+ __wt_seconds(session, &timer);
+ timer += WT_MINUTE * WT_BTREE_CLEAN_MINUTES;
+ WT_BTREE_CLEAN_CKPT(session, btree, timer);
+ } else
+ WT_BTREE_CLEAN_CKPT(session, btree, WT_BTREE_CLEAN_CKPT_FOREVER);
return (0);
}
}
diff --git a/src/third_party/wiredtiger/src/txn/txn_log.c b/src/third_party/wiredtiger/src/txn/txn_log.c
index dae4a2ba166..73d3f32ed88 100644
--- a/src/third_party/wiredtiger/src/txn/txn_log.c
+++ b/src/third_party/wiredtiger/src/txn/txn_log.c
@@ -552,7 +552,7 @@ __wt_txn_checkpoint_log(WT_SESSION_IMPL *session, bool full, uint32_t flags, WT_
*/
if (conn->hot_backup_start == 0 &&
(!FLD_ISSET(conn->log_flags, WT_CONN_LOG_RECOVER_DIRTY) ||
- FLD_ISSET(conn->log_flags, WT_CONN_LOG_FORCE_DOWNGRADE)) &&
+ FLD_ISSET(conn->log_flags, WT_CONN_LOG_FORCE_DOWNGRADE)) &&
txn->full_ckpt)
__wt_log_ckpt(session, ckpt_lsn);
diff --git a/src/third_party/wiredtiger/src/txn/txn_nsnap.c b/src/third_party/wiredtiger/src/txn/txn_nsnap.c
index ac842f32c44..799414a7f63 100644
--- a/src/third_party/wiredtiger/src/txn/txn_nsnap.c
+++ b/src/third_party/wiredtiger/src/txn/txn_nsnap.c
@@ -45,7 +45,8 @@ __nsnap_drop_one(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *name)
txn_global->nsnap_oldest_id =
(TAILQ_NEXT(found, q) != NULL) ? TAILQ_NEXT(found, q)->pinned_id : WT_TXN_NONE;
WT_DIAGNOSTIC_YIELD;
- WT_ASSERT(session, txn_global->nsnap_oldest_id == WT_TXN_NONE ||
+ WT_ASSERT(session,
+ txn_global->nsnap_oldest_id == WT_TXN_NONE ||
!__wt_txn_visible_all(session, txn_global->nsnap_oldest_id, WT_TS_NONE));
}
TAILQ_REMOVE(&txn_global->nsnaph, found, q);
@@ -116,12 +117,14 @@ __nsnap_drop_to(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *name, bool inclusive)
} while (nsnap != last && !TAILQ_EMPTY(&txn_global->nsnaph));
/* Now that the queue of named snapshots is updated, update the ID */
- WT_ASSERT(session, !__wt_txn_visible_all(session, txn_global->nsnap_oldest_id, WT_TS_NONE) &&
+ WT_ASSERT(session,
+ !__wt_txn_visible_all(session, txn_global->nsnap_oldest_id, WT_TS_NONE) &&
(new_nsnap_oldest == WT_TXN_NONE ||
- WT_TXNID_LE(txn_global->nsnap_oldest_id, new_nsnap_oldest)));
+ WT_TXNID_LE(txn_global->nsnap_oldest_id, new_nsnap_oldest)));
txn_global->nsnap_oldest_id = new_nsnap_oldest;
WT_DIAGNOSTIC_YIELD;
- WT_ASSERT(session, new_nsnap_oldest == WT_TXN_NONE ||
+ WT_ASSERT(session,
+ new_nsnap_oldest == WT_TXN_NONE ||
!__wt_txn_visible_all(session, new_nsnap_oldest, WT_TS_NONE));
return (0);
@@ -157,8 +160,7 @@ __wt_txn_named_snapshot_begin(WT_SESSION_IMPL *session, const char *cfg[])
if (!F_ISSET(txn, WT_TXN_RUNNING)) {
if (include_updates)
WT_RET_MSG(session, EINVAL,
- "A transaction must be "
- "running to include updates in a named snapshot");
+ "A transaction must be running to include updates in a named snapshot");
WT_RET(__wt_txn_begin(session, txn_cfg));
started_txn = true;
@@ -198,7 +200,8 @@ __wt_txn_named_snapshot_begin(WT_SESSION_IMPL *session, const char *cfg[])
WT_ERR_NOTFOUND_OK(__nsnap_drop_one(session, &cval));
if (TAILQ_EMPTY(&txn_global->nsnaph)) {
- WT_ASSERT(session, txn_global->nsnap_oldest_id == WT_TXN_NONE &&
+ WT_ASSERT(session,
+ txn_global->nsnap_oldest_id == WT_TXN_NONE &&
!__wt_txn_visible_all(session, nsnap_new->pinned_id, WT_TS_NONE));
__wt_readlock(session, &txn_global->rwlock);
txn_global->nsnap_oldest_id = nsnap_new->pinned_id;
@@ -295,7 +298,8 @@ __wt_txn_named_snapshot_get(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *nameval)
txn_state->pinned_id = nsnap->pinned_id;
__wt_readunlock(session, &txn_global->rwlock);
- WT_ASSERT(session, !__wt_txn_visible_all(session, txn_state->pinned_id, WT_TS_NONE) &&
+ WT_ASSERT(session,
+ !__wt_txn_visible_all(session, txn_state->pinned_id, WT_TS_NONE) &&
txn_global->nsnap_oldest_id != WT_TXN_NONE &&
WT_TXNID_LE(txn_global->nsnap_oldest_id, txn_state->pinned_id));
txn->snap_min = nsnap->snap_min;
@@ -348,12 +352,11 @@ __wt_txn_named_snapshot_config(
if (F_ISSET(txn, WT_TXN_RUNNING) && txn->isolation != WT_ISO_SNAPSHOT)
WT_RET_MSG(session, EINVAL,
- "Can't create a named snapshot from a running "
- "transaction that isn't snapshot isolation");
+ "Can't create a named snapshot from a running transaction that isn't snapshot "
+ "isolation");
else if (F_ISSET(txn, WT_TXN_RUNNING) && txn->mod_count != 0)
WT_RET_MSG(session, EINVAL,
- "Can't create a named snapshot from a running "
- "transaction that has made updates");
+ "Can't create a named snapshot from a running transaction that has made updates");
*has_create = true;
}
@@ -368,20 +371,18 @@ __wt_txn_named_snapshot_config(
to_config.len != 0) {
if (before_config.len != 0 && to_config.len != 0)
WT_RET_MSG(session, EINVAL,
- "Illegal configuration; named snapshot drop can't "
- "specify both before and to options");
+ "Illegal configuration; named snapshot drop can't specify both before and to "
+ "options");
if (all_config.val != 0 &&
(names_config.len != 0 || to_config.len != 0 || before_config.len != 0))
WT_RET_MSG(session, EINVAL,
- "Illegal configuration; named snapshot drop can't "
- "specify all and any other options");
+ "Illegal configuration; named snapshot drop can't specify all and any other options");
*has_drops = true;
}
if (!*has_create && !*has_drops)
- WT_RET_MSG(session, EINVAL,
- "WT_SESSION::snapshot API called without any drop or "
- "name option");
+ WT_RET_MSG(
+ session, EINVAL, "WT_SESSION::snapshot API called without any drop or name option");
return (0);
}
diff --git a/src/third_party/wiredtiger/src/txn/txn_recover.c b/src/third_party/wiredtiger/src/txn/txn_recover.c
index 598dbb3f9d7..f546d8f2e43 100644
--- a/src/third_party/wiredtiger/src/txn/txn_recover.c
+++ b/src/third_party/wiredtiger/src/txn/txn_recover.c
@@ -282,8 +282,9 @@ done:
return (0);
err:
- __wt_err(session, ret, "operation apply failed during recovery: operation type %" PRIu32
- " at LSN %" PRIu32 "/%" PRIu32,
+ __wt_err(session, ret,
+ "operation apply failed during recovery: operation type %" PRIu32 " at LSN %" PRIu32
+ "/%" PRIu32,
optype, lsnp->l.file, lsnp->l.offset);
return (ret);
}
@@ -425,9 +426,8 @@ __recovery_setup_file(WT_RECOVERY *r, const char *uri, const char *config)
if (r->files[fileid].uri != NULL)
WT_PANIC_RET(r->session, WT_PANIC,
- "metadata corruption: files %s and %s have the same "
- "file ID %u",
- uri, r->files[fileid].uri, fileid);
+ "metadata corruption: files %s and %s have the same file ID %u", uri,
+ r->files[fileid].uri, fileid);
WT_RET(__wt_strdup(r->session, uri, &r->files[fileid].uri));
WT_RET(__wt_config_getones(r->session, config, "checkpoint_lsn", &cval));
/* If there is checkpoint logged for the file, apply everything. */
diff --git a/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c b/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c
index b0e0df6b724..22a0e95fa59 100644
--- a/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c
+++ b/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c
@@ -111,7 +111,8 @@ __txn_abort_newer_update(
* is not configured for key consistency check, the timestamps could be out of order
* here.
*/
- WT_ASSERT(session, !FLD_ISSET(S2BT(session)->assert_flags, WT_ASSERT_COMMIT_TS_KEYS) ||
+ WT_ASSERT(session,
+ !FLD_ISSET(S2BT(session)->assert_flags, WT_ASSERT_COMMIT_TS_KEYS) ||
upd == first_upd);
first_upd = upd->next;
diff --git a/src/third_party/wiredtiger/src/txn/txn_timestamp.c b/src/third_party/wiredtiger/src/txn/txn_timestamp.c
index a0cd978529a..a45315d8e1d 100644
--- a/src/third_party/wiredtiger/src/txn/txn_timestamp.c
+++ b/src/third_party/wiredtiger/src/txn/txn_timestamp.c
@@ -500,8 +500,7 @@ __wt_txn_global_set_timestamp(WT_SESSION_IMPL *session, const char *cfg[])
if (has_durable && (has_oldest || txn_global->has_oldest_timestamp) && oldest_ts > durable_ts) {
__wt_readunlock(session, &txn_global->rwlock);
WT_RET_MSG(session, EINVAL,
- "set_timestamp: oldest timestamp %s must not be later than "
- "durable timestamp %s",
+ "set_timestamp: oldest timestamp %s must not be later than durable timestamp %s",
__wt_timestamp_to_string(oldest_ts, ts_string[0]),
__wt_timestamp_to_string(durable_ts, ts_string[1]));
}
@@ -509,8 +508,7 @@ __wt_txn_global_set_timestamp(WT_SESSION_IMPL *session, const char *cfg[])
if (has_durable && (has_stable || txn_global->has_stable_timestamp) && stable_ts > durable_ts) {
__wt_readunlock(session, &txn_global->rwlock);
WT_RET_MSG(session, EINVAL,
- "set_timestamp: stable timestamp %s must not be later than "
- "durable timestamp %s",
+ "set_timestamp: stable timestamp %s must not be later than durable timestamp %s",
__wt_timestamp_to_string(stable_ts, ts_string[0]),
__wt_timestamp_to_string(durable_ts, ts_string[1]));
}
@@ -522,8 +520,7 @@ __wt_txn_global_set_timestamp(WT_SESSION_IMPL *session, const char *cfg[])
(has_stable || txn_global->has_stable_timestamp) && oldest_ts > stable_ts) {
__wt_readunlock(session, &txn_global->rwlock);
WT_RET_MSG(session, EINVAL,
- "set_timestamp: oldest timestamp %s must not be later than "
- "stable timestamp %s",
+ "set_timestamp: oldest timestamp %s must not be later than stable timestamp %s",
__wt_timestamp_to_string(oldest_ts, ts_string[0]),
__wt_timestamp_to_string(stable_ts, ts_string[1]));
}
@@ -612,9 +609,8 @@ __txn_assert_after_reads(
if (tmp_timestamp >= ts) {
__wt_readunlock(session, &txn_global->read_timestamp_rwlock);
WT_RET_MSG(session, EINVAL,
- "%s timestamp %s must be greater than the "
- "latest active read timestamp %s ",
- op, __wt_timestamp_to_string(ts, ts_string[0]),
+ "%s timestamp %s must be greater than the latest active read timestamp %s ", op,
+ __wt_timestamp_to_string(ts, ts_string[0]),
__wt_timestamp_to_string(tmp_timestamp, ts_string[1]));
}
break;
@@ -655,9 +651,7 @@ __wt_txn_set_commit_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t commit_ts
if (txn->isolation != WT_ISO_SNAPSHOT)
WT_RET_MSG(session, EINVAL,
- "setting a commit_timestamp"
- " requires a transaction running at snapshot"
- " isolation");
+ "setting a commit_timestamp requires a transaction running at snapshot isolation");
/*
* Compare against the oldest and the stable timestamp. Return an error if the given timestamp
@@ -676,16 +670,12 @@ __wt_txn_set_commit_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t commit_ts
* timestamp.
*/
if (has_oldest_ts && commit_ts < oldest_ts)
- WT_RET_MSG(session, EINVAL,
- "commit timestamp %s is less than the oldest "
- "timestamp %s",
+ WT_RET_MSG(session, EINVAL, "commit timestamp %s is less than the oldest timestamp %s",
__wt_timestamp_to_string(commit_ts, ts_string[0]),
__wt_timestamp_to_string(oldest_ts, ts_string[1]));
if (has_stable_ts && commit_ts < stable_ts)
- WT_RET_MSG(session, EINVAL,
- "commit timestamp %s is less than the stable "
- "timestamp %s",
+ WT_RET_MSG(session, EINVAL, "commit timestamp %s is less than the stable timestamp %s",
__wt_timestamp_to_string(commit_ts, ts_string[0]),
__wt_timestamp_to_string(stable_ts, ts_string[1]));
@@ -695,8 +685,7 @@ __wt_txn_set_commit_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t commit_ts
*/
if (F_ISSET(txn, WT_TXN_HAS_TS_COMMIT) && commit_ts < txn->first_commit_timestamp)
WT_RET_MSG(session, EINVAL,
- "commit timestamp %s older than the first "
- "commit timestamp %s for this transaction",
+ "commit timestamp %s older than the first commit timestamp %s for this transaction",
__wt_timestamp_to_string(commit_ts, ts_string[0]),
__wt_timestamp_to_string(txn->first_commit_timestamp, ts_string[1]));
@@ -714,8 +703,7 @@ __wt_txn_set_commit_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t commit_ts
if (txn->prepare_timestamp > commit_ts) {
if (!F_ISSET(txn, WT_TXN_TS_ROUND_PREPARED))
WT_RET_MSG(session, EINVAL,
- "commit timestamp %s is less than the "
- "prepare timestamp %s for this transaction",
+ "commit timestamp %s is less than the prepare timestamp %s for this transaction",
__wt_timestamp_to_string(commit_ts, ts_string[0]),
__wt_timestamp_to_string(txn->prepare_timestamp, ts_string[1]));
commit_ts = txn->prepare_timestamp;
@@ -761,8 +749,7 @@ __wt_txn_set_durable_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t durable_
if (!F_ISSET(txn, WT_TXN_PREPARE))
WT_RET_MSG(session, EINVAL,
- "durable timestamp should not be specified for "
- "non-prepared transaction");
+ "durable timestamp should not be specified for non-prepared transaction");
if (!F_ISSET(txn, WT_TXN_HAS_TS_COMMIT))
WT_RET_MSG(session, EINVAL, "commit timestamp is needed before the durable timestamp");
@@ -795,8 +782,7 @@ __wt_txn_set_durable_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t durable_
/* Check if the durable timestamp is less than the commit timestamp. */
if (durable_ts < txn->commit_timestamp)
WT_RET_MSG(session, EINVAL,
- "durable timestamp %s is less than the commit timestamp %s "
- "for this transaction",
+ "durable timestamp %s is less than the commit timestamp %s for this transaction",
__wt_timestamp_to_string(durable_ts, ts_string[0]),
__wt_timestamp_to_string(txn->commit_timestamp, ts_string[1]));
@@ -825,8 +811,7 @@ __wt_txn_set_prepare_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t prepare_
if (F_ISSET(txn, WT_TXN_HAS_TS_COMMIT))
WT_RET_MSG(session, EINVAL,
- "commit timestamp "
- "should not have been set before the prepare timestamp");
+ "commit timestamp should not have been set before the prepare timestamp");
WT_RET(__txn_assert_after_reads(session, "prepare", prepare_ts, &prev));
@@ -846,16 +831,14 @@ __wt_txn_set_prepare_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t prepare_
WT_ASSERT(session, prev == NULL);
__wt_verbose(session, WT_VERB_TIMESTAMP,
- "prepare timestamp %s rounded to oldest "
- "timestamp %s",
+ "prepare timestamp %s rounded to oldest timestamp %s",
__wt_timestamp_to_string(prepare_ts, ts_string[0]),
__wt_timestamp_to_string(oldest_ts, ts_string[1]));
prepare_ts = oldest_ts;
} else
WT_RET_MSG(session, EINVAL,
- "prepare timestamp %s is older than the oldest "
- "timestamp %s",
+ "prepare timestamp %s is older than the oldest timestamp %s",
__wt_timestamp_to_string(prepare_ts, ts_string[0]),
__wt_timestamp_to_string(oldest_ts, ts_string[1]));
}
@@ -885,15 +868,11 @@ __wt_txn_set_read_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t read_ts)
txn->isolation = WT_ISO_SNAPSHOT;
else if (txn->isolation != WT_ISO_SNAPSHOT)
WT_RET_MSG(session, EINVAL,
- "setting a read_timestamp"
- " requires a transaction running at snapshot"
- " isolation");
+ "setting a read_timestamp requires a transaction running at snapshot isolation");
/* Read timestamps can't change once set. */
if (F_ISSET(txn, WT_TXN_HAS_TS_READ))
- WT_RET_MSG(session, EINVAL,
- "a read_timestamp"
- " may only be set once per transaction");
+ WT_RET_MSG(session, EINVAL, "a read_timestamp may only be set once per transaction");
/*
* This code is not using the timestamp validate function to avoid a race between checking and
@@ -920,9 +899,7 @@ __wt_txn_set_read_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t read_ts)
* error message because that logs a MongoDB error, use an informational message to
* provide the context instead.
*/
- WT_RET(__wt_msg(session,
- "read timestamp "
- "%s less than the oldest timestamp %s",
+ WT_RET(__wt_msg(session, "read timestamp %s less than the oldest timestamp %s",
__wt_timestamp_to_string(read_ts, ts_string[0]),
__wt_timestamp_to_string(ts_oldest, ts_string[1])));
return (EINVAL);
@@ -938,8 +915,7 @@ __wt_txn_set_read_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t read_ts)
*/
if (did_roundup_to_oldest)
__wt_verbose(session, WT_VERB_TIMESTAMP,
- "read "
- "timestamp %s : rounded to oldest timestamp %s",
+ "read timestamp %s : rounded to oldest timestamp %s",
__wt_timestamp_to_string(read_ts, ts_string[0]),
__wt_timestamp_to_string(ts_oldest, ts_string[1]));
diff --git a/src/third_party/wiredtiger/src/utilities/util_alter.c b/src/third_party/wiredtiger/src/utilities/util_alter.c
index be7524b4b5c..e98bf478280 100644
--- a/src/third_party/wiredtiger/src/utilities/util_alter.c
+++ b/src/third_party/wiredtiger/src/utilities/util_alter.c
@@ -42,9 +42,6 @@ util_alter(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "alter uri configuration ...\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s alter uri configuration ...\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_backup.c b/src/third_party/wiredtiger/src/utilities/util_backup.c
index a7a0e8d0a38..7e987f43951 100644
--- a/src/third_party/wiredtiger/src/utilities/util_backup.c
+++ b/src/third_party/wiredtiger/src/utilities/util_backup.c
@@ -118,9 +118,6 @@ err:
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "backup [-t uri] directory\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s backup [-t uri] directory\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_compact.c b/src/third_party/wiredtiger/src/utilities/util_compact.c
index 298f4b234e0..ba1745c0d8a 100644
--- a/src/third_party/wiredtiger/src/utilities/util_compact.c
+++ b/src/third_party/wiredtiger/src/utilities/util_compact.c
@@ -43,9 +43,6 @@ util_compact(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "compact uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s compact uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_create.c b/src/third_party/wiredtiger/src/utilities/util_create.c
index 0b6bb4fb4ad..c5f82138641 100644
--- a/src/third_party/wiredtiger/src/utilities/util_create.c
+++ b/src/third_party/wiredtiger/src/utilities/util_create.c
@@ -48,9 +48,6 @@ util_create(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "create [-c configuration] uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s create [-c configuration] uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_downgrade.c b/src/third_party/wiredtiger/src/utilities/util_downgrade.c
index c091a4cc9ef..bee6bcbee84 100644
--- a/src/third_party/wiredtiger/src/utilities/util_downgrade.c
+++ b/src/third_party/wiredtiger/src/utilities/util_downgrade.c
@@ -49,9 +49,6 @@ util_downgrade(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "downgrade -V release\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s downgrade -V release\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_drop.c b/src/third_party/wiredtiger/src/utilities/util_drop.c
index 594e5629e1e..89426da1ad4 100644
--- a/src/third_party/wiredtiger/src/utilities/util_drop.c
+++ b/src/third_party/wiredtiger/src/utilities/util_drop.c
@@ -44,9 +44,6 @@ util_drop(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "drop uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s drop uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_dump.c b/src/third_party/wiredtiger/src/utilities/util_dump.c
index a4834cbd596..f9cd63af350 100644
--- a/src/third_party/wiredtiger/src/utilities/util_dump.c
+++ b/src/third_party/wiredtiger/src/utilities/util_dump.c
@@ -624,9 +624,7 @@ print_config(WT_SESSION *session, const char *key, const char *cfg, bool json, b
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "dump [-jrx] [-c checkpoint] [-f output-file] uri\n",
+ (void)fprintf(stderr, "usage: %s %s dump [-jrx] [-c checkpoint] [-f output-file] uri\n",
progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_import.c b/src/third_party/wiredtiger/src/utilities/util_import.c
index 9420ff35b20..1eaaec53021 100644
--- a/src/third_party/wiredtiger/src/utilities/util_import.c
+++ b/src/third_party/wiredtiger/src/utilities/util_import.c
@@ -11,10 +11,7 @@
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "import uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s import uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_list.c b/src/third_party/wiredtiger/src/utilities/util_list.c
index 76f9fc05206..d2317f4edb8 100644
--- a/src/third_party/wiredtiger/src/utilities/util_list.c
+++ b/src/third_party/wiredtiger/src/utilities/util_list.c
@@ -284,9 +284,6 @@ list_print_checkpoint(WT_SESSION *session, const char *key)
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "list [-cv] [uri]\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s list [-cv] [uri]\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_load.c b/src/third_party/wiredtiger/src/utilities/util_load.c
index de1931835bb..b5887441f51 100644
--- a/src/third_party/wiredtiger/src/utilities/util_load.c
+++ b/src/third_party/wiredtiger/src/utilities/util_load.c
@@ -61,9 +61,8 @@ util_load(WT_SESSION *session, int argc, char *argv[])
/* -a and -o are mutually exclusive. */
if (append && no_overwrite)
- return (util_err(session, EINVAL,
- "the -a (append) and -n (no-overwrite) flags are mutually "
- "exclusive"));
+ return (util_err(
+ session, EINVAL, "the -a (append) and -n (no-overwrite) flags are mutually exclusive"));
/* The remaining arguments are configuration uri/string pairs. */
if (argc != 0) {
@@ -132,9 +131,7 @@ load_dump(WT_SESSION *session)
* Check the append flag (it only applies to objects where the primary key is a record number).
*/
if (append && !WT_STREQ(cursor->key_format, "r")) {
- fprintf(stderr,
- "%s: %s: -a option illegal unless the primary key is a "
- "record number\n",
+ fprintf(stderr, "%s: %s: -a option illegal unless the primary key is a record number\n",
progname, uri);
ret = 1;
} else
@@ -393,9 +390,7 @@ config_update(WT_SESSION *session, char **list)
*/
for (configp = cmdconfig; configp != NULL && *configp != NULL; configp += 2)
if (strstr(configp[1], "key_format=") || strstr(configp[1], "value_format="))
- return (util_err(session, 0,
- "an object's key or value format may not be "
- "modified"));
+ return (util_err(session, 0, "an object's key or value format may not be modified"));
/*
* If there were command-line configuration pairs, walk the list of command-line URIs and find a
@@ -409,15 +404,14 @@ config_update(WT_SESSION *session, char **list)
switch (found) {
case 0:
return (util_err(session, 0,
- "the command line object name %s was not matched "
- "by any loaded object name",
+ "the command line object name %s was not matched by any loaded object name",
*configp));
case 1:
break;
default:
return (util_err(session, 0,
- "the command line object name %s was not unique, "
- "matching more than a single loaded object name",
+ "the command line object name %s was not unique, matching more than a single loaded "
+ "object name",
*configp));
}
}
@@ -448,8 +442,8 @@ config_update(WT_SESSION *session, char **list)
cfg[cnt++] = NULL;
if ((ret = __wt_config_merge((WT_SESSION_IMPL *)session, cfg,
- "filename=,id=,"
- "checkpoint=,checkpoint_backup_info=,checkpoint_lsn=,version=,source=,",
+ "filename=,id=,checkpoint=,checkpoint_backup_info=,checkpoint_lsn=,version=,source="
+ ",",
&p)) != 0)
break;
@@ -566,8 +560,7 @@ static int
usage(void)
{
(void)fprintf(stderr,
- "usage: %s %s "
- "load [-as] [-f input-file] [-r name] [object configuration ...]\n",
- progname, usage_prefix);
+ "usage: %s %s load [-as] [-f input-file] [-r name] [object configuration ...]\n", progname,
+ usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_loadtext.c b/src/third_party/wiredtiger/src/utilities/util_loadtext.c
index afd845c95c6..beaa0b17579 100644
--- a/src/third_party/wiredtiger/src/utilities/util_loadtext.c
+++ b/src/third_party/wiredtiger/src/utilities/util_loadtext.c
@@ -73,8 +73,8 @@ text(WT_SESSION *session, const char *uri)
if (!WT_STREQ(cursor->value_format, "S") ||
(!WT_STREQ(cursor->key_format, "S") && !WT_STREQ(cursor->key_format, "r")))
return (util_err(session, EINVAL,
- "the loadtext command can only load objects configured "
- "for record number or string keys, and string values"));
+ "the loadtext command can only load objects configured for record number or string keys, "
+ "and string values"));
readkey = !WT_STREQ(cursor->key_format, "r");
/* Insert the records */
@@ -155,9 +155,6 @@ insert(WT_CURSOR *cursor, const char *name, bool readkey)
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "loadtext [-f input-file] uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s loadtext [-f input-file] uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_misc.c b/src/third_party/wiredtiger/src/utilities/util_misc.c
index a999f334e3f..6ea5e688fae 100644
--- a/src/third_party/wiredtiger/src/utilities/util_misc.c
+++ b/src/third_party/wiredtiger/src/utilities/util_misc.c
@@ -116,7 +116,7 @@ util_str2num(WT_SESSION *session, const char *p, bool endnul, uint64_t *vp)
*/
if (endnul && endptr[0] != '\0')
format:
- return (util_err(session, EINVAL, "%s: invalid number", p));
+ return (util_err(session, EINVAL, "%s: invalid number", p));
*vp = v;
return (0);
diff --git a/src/third_party/wiredtiger/src/utilities/util_printlog.c b/src/third_party/wiredtiger/src/utilities/util_printlog.c
index fa96ae2065c..b9ce0a59435 100644
--- a/src/third_party/wiredtiger/src/utilities/util_printlog.c
+++ b/src/third_party/wiredtiger/src/utilities/util_printlog.c
@@ -47,9 +47,6 @@ util_printlog(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "printlog [-x] [-f output-file]\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s printlog [-x] [-f output-file]\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_read.c b/src/third_party/wiredtiger/src/utilities/util_read.c
index 9266bf5c026..e9f913f91cd 100644
--- a/src/third_party/wiredtiger/src/utilities/util_read.c
+++ b/src/third_party/wiredtiger/src/utilities/util_read.c
@@ -51,17 +51,14 @@ util_read(WT_SESSION *session, int argc, char *argv[])
*/
if (!WT_STREQ(cursor->key_format, "r") && !WT_STREQ(cursor->key_format, "S")) {
fprintf(stderr,
- "%s: read command only possible when the key format is "
- "a record number or string\n",
+ "%s: read command only possible when the key format is a record number or string\n",
progname);
return (1);
}
rkey = WT_STREQ(cursor->key_format, "r");
if (!WT_STREQ(cursor->value_format, "S")) {
- fprintf(stderr,
- "%s: read command only possible when the value format is "
- "a string\n",
- progname);
+ fprintf(
+ stderr, "%s: read command only possible when the value format is a string\n", progname);
return (1);
}
@@ -98,9 +95,6 @@ util_read(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "read uri key ...\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s read uri key ...\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_rebalance.c b/src/third_party/wiredtiger/src/utilities/util_rebalance.c
index 279c0d46958..c62e97cdae1 100644
--- a/src/third_party/wiredtiger/src/utilities/util_rebalance.c
+++ b/src/third_party/wiredtiger/src/utilities/util_rebalance.c
@@ -50,9 +50,6 @@ util_rebalance(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "rebalance uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s rebalance uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_rename.c b/src/third_party/wiredtiger/src/utilities/util_rename.c
index 4dc03e83243..882d7ab663b 100644
--- a/src/third_party/wiredtiger/src/utilities/util_rename.c
+++ b/src/third_party/wiredtiger/src/utilities/util_rename.c
@@ -44,9 +44,6 @@ util_rename(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "rename uri newuri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s rename uri newuri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_salvage.c b/src/third_party/wiredtiger/src/utilities/util_salvage.c
index f6ff1a1fbb2..7983d57cfd5 100644
--- a/src/third_party/wiredtiger/src/utilities/util_salvage.c
+++ b/src/third_party/wiredtiger/src/utilities/util_salvage.c
@@ -55,9 +55,6 @@ util_salvage(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "salvage [-F] uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s salvage [-F] uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_stat.c b/src/third_party/wiredtiger/src/utilities/util_stat.c
index 4ffed2b5376..64084cd4997 100644
--- a/src/third_party/wiredtiger/src/utilities/util_stat.c
+++ b/src/third_party/wiredtiger/src/utilities/util_stat.c
@@ -107,9 +107,6 @@ err:
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "stat [-f] [uri]\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s stat [-f] [uri]\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_truncate.c b/src/third_party/wiredtiger/src/utilities/util_truncate.c
index d6904a18e51..8d681daf391 100644
--- a/src/third_party/wiredtiger/src/utilities/util_truncate.c
+++ b/src/third_party/wiredtiger/src/utilities/util_truncate.c
@@ -44,9 +44,6 @@ util_truncate(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "truncate uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s truncate uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_upgrade.c b/src/third_party/wiredtiger/src/utilities/util_upgrade.c
index 2aad1d1e8d3..09ccd49c624 100644
--- a/src/third_party/wiredtiger/src/utilities/util_upgrade.c
+++ b/src/third_party/wiredtiger/src/utilities/util_upgrade.c
@@ -50,9 +50,6 @@ util_upgrade(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "upgrade uri\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s upgrade uri\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_verify.c b/src/third_party/wiredtiger/src/utilities/util_verify.c
index 29b777ea8b7..41fef5e98c2 100644
--- a/src/third_party/wiredtiger/src/utilities/util_verify.c
+++ b/src/third_party/wiredtiger/src/utilities/util_verify.c
@@ -32,10 +32,8 @@ util_verify(WT_SESSION *session, int argc, char *argv[])
dump_layout = true;
else if (WT_PREFIX_MATCH(__wt_optarg, "dump_offsets=")) {
if (dump_offsets != NULL) {
- fprintf(stderr,
- "%s: only a single 'dump_offsets' "
- "argument supported\n",
- progname);
+ fprintf(
+ stderr, "%s: only a single 'dump_offsets' argument supported\n", progname);
return (usage());
}
dump_offsets = __wt_optarg + strlen("dump_offsets=");
@@ -94,11 +92,7 @@ err:
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "verify %s\n",
- progname, usage_prefix,
- "[-d dump_address | dump_blocks | dump_layout | "
- "dump_offsets=#,# | dump_pages] uri");
+ (void)fprintf(stderr, "usage: %s %s verify %s\n", progname, usage_prefix,
+ "[-d dump_address | dump_blocks | dump_layout | dump_offsets=#,# | dump_pages] uri");
return (1);
}
diff --git a/src/third_party/wiredtiger/src/utilities/util_write.c b/src/third_party/wiredtiger/src/utilities/util_write.c
index fa5b56b0d44..8f7ce676af2 100644
--- a/src/third_party/wiredtiger/src/utilities/util_write.c
+++ b/src/third_party/wiredtiger/src/utilities/util_write.c
@@ -69,17 +69,14 @@ util_write(WT_SESSION *session, int argc, char *argv[])
*/
if (!WT_STREQ(cursor->key_format, "r") && !WT_STREQ(cursor->key_format, "S")) {
fprintf(stderr,
- "%s: write command only possible when the key format is "
- "a record number or string\n",
+ "%s: write command only possible when the key format is a record number or string\n",
progname);
return (1);
}
rkey = WT_STREQ(cursor->key_format, "r");
if (!WT_STREQ(cursor->value_format, "S")) {
- fprintf(stderr,
- "%s: write command only possible when the value format is "
- "a string\n",
- progname);
+ fprintf(
+ stderr, "%s: write command only possible when the value format is a string\n", progname);
return (1);
}
@@ -106,9 +103,6 @@ util_write(WT_SESSION *session, int argc, char *argv[])
static int
usage(void)
{
- (void)fprintf(stderr,
- "usage: %s %s "
- "write [-ao] uri key ...\n",
- progname, usage_prefix);
+ (void)fprintf(stderr, "usage: %s %s write [-ao] uri key ...\n", progname, usage_prefix);
return (1);
}
diff --git a/src/third_party/wiredtiger/test/checkpoint/checkpointer.c b/src/third_party/wiredtiger/test/checkpoint/checkpointer.c
index 28a6f6202f7..f478e5cdb62 100644
--- a/src/third_party/wiredtiger/test/checkpoint/checkpointer.c
+++ b/src/third_party/wiredtiger/test/checkpoint/checkpointer.c
@@ -267,9 +267,7 @@ verify_consistency(WT_SESSION *session, bool use_checkpoint)
continue;
else if (ret == WT_NOTFOUND || t_ret == WT_NOTFOUND) {
(void)log_print_err(
- "verify_consistency tables with different"
- " amount of data",
- EFAULT, 1);
+ "verify_consistency tables with different amount of data", EFAULT, 1);
goto err;
}
diff --git a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
index e588eba913e..9149fac571f 100644
--- a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
+++ b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
@@ -335,10 +335,8 @@ static int
usage(void)
{
fprintf(stderr,
- "usage: %s "
- "[-C wiredtiger-config] [-c checkpoint] [-h home] [-k keys]\n\t"
- "[-l log] [-n ops] [-r runs] [-T table-config] [-t f|r|v]\n\t"
- "[-W workers]\n",
+ "usage: %s [-C wiredtiger-config] [-c checkpoint] [-h home] [-k keys]\n\t[-l log] [-n ops] "
+ "[-r runs] [-T table-config] [-t f|r|v]\n\t[-W workers]\n",
progname);
fprintf(stderr, "%s",
"\t-C specify wiredtiger_open configuration arguments\n"
diff --git a/src/third_party/wiredtiger/test/csuite/incr_backup/main.c b/src/third_party/wiredtiger/test/csuite/incr_backup/main.c
index 5120b9ece82..cfaa35bae47 100644
--- a/src/third_party/wiredtiger/test/csuite/incr_backup/main.c
+++ b/src/third_party/wiredtiger/test/csuite/incr_backup/main.c
@@ -48,6 +48,8 @@
#define URI_FORMAT "table:t%d-%d"
#define KEY_FORMAT "key-%d-%d"
+#define CONN_CONFIG_COMMON "timing_stress_for_test=[backup_rename]"
+
static int verbose_level = 0;
static uint64_t seed = 0;
@@ -59,7 +61,7 @@ static void usage(void) WT_GCC_FUNC_DECL_ATTRIBUTE((noreturn));
static bool slow_incremental = false;
static bool do_drop = true;
-static bool do_rename = false;
+static bool do_rename = true;
#define VERBOSE(level, fmt, ...) \
do { \
@@ -711,7 +713,7 @@ check_backup(const char *backup_home, const char *backup_check, TABLE_INFO *tinf
buf, sizeof(buf), "rm -rf %s && cp -r %s %s", backup_check, backup_home, backup_check));
testutil_check(system(buf));
- testutil_check(wiredtiger_open(backup_check, NULL, NULL, &conn));
+ testutil_check(wiredtiger_open(backup_check, NULL, CONN_CONFIG_COMMON, &conn));
testutil_check(conn->open_session(conn, NULL, NULL, &session));
for (slot = 0; slot < tinfo->table_count; slot++) {
@@ -799,8 +801,9 @@ main(int argc, char *argv[])
file_max = 200 + __wt_random(&rnd) % 1000; /* 200K to ~1M */
else
file_max = 1000 + __wt_random(&rnd) % 20000; /* 1M to ~20M */
- testutil_check(__wt_snprintf(conf, sizeof(conf),
- "create,%s,log=(enabled=true,file_max=%" PRIu32 "K)", backup_verbose, file_max));
+ testutil_check(
+ __wt_snprintf(conf, sizeof(conf), "%s,create,%s,log=(enabled=true,file_max=%" PRIu32 "K)",
+ CONN_CONFIG_COMMON, backup_verbose, file_max));
VERBOSE(2, "wiredtiger config: %s\n", conf);
testutil_check(wiredtiger_open(home, NULL, conf, &conn));
testutil_check(conn->open_session(conn, NULL, NULL, &session));
diff --git a/src/third_party/wiredtiger/test/csuite/random_abort/main.c b/src/third_party/wiredtiger/test/csuite/random_abort/main.c
index 9d75cb4e463..f172ac4c273 100644
--- a/src/third_party/wiredtiger/test/csuite/random_abort/main.c
+++ b/src/third_party/wiredtiger/test/csuite/random_abort/main.c
@@ -455,9 +455,7 @@ recover_and_verify(uint32_t nthreads)
fatal = true;
} else {
if (!inmem)
- printf(
- "%s: deleted record"
- " found with key %" PRIu64 "\n",
+ printf("%s: deleted record found with key %" PRIu64 "\n",
fname[DELETE_RECORD_FILE_ID], key);
absent++;
middle = key;
@@ -477,9 +475,7 @@ recover_and_verify(uint32_t nthreads)
if (ret != WT_NOTFOUND)
testutil_die(ret, "search");
if (!inmem)
- printf(
- "%s: no insert record"
- " with key %" PRIu64 "\n",
+ printf("%s: no insert record with key %" PRIu64 "\n",
fname[INSERT_RECORD_FILE_ID], key);
absent++;
middle = key;
@@ -722,9 +718,7 @@ main(int argc, char *argv[])
testutil_die(errno, "parent chdir: %s", home);
testutil_check(__wt_snprintf(buf, sizeof(buf),
- "rm -rf ../%s.SAVE; mkdir ../%s.SAVE; "
- "cp -p WiredTigerLog.* ../%s.SAVE;",
- home, home, home));
+ "rm -rf ../%s.SAVE; mkdir ../%s.SAVE; cp -p WiredTigerLog.* ../%s.SAVE;", home, home, home));
if ((status = system(buf)) < 0)
testutil_die(status, "system: %s", buf);
diff --git a/src/third_party/wiredtiger/test/csuite/random_directio/main.c b/src/third_party/wiredtiger/test/csuite/random_directio/main.c
index 09c8f1b3de3..6a9967a4f3d 100644
--- a/src/third_party/wiredtiger/test/csuite/random_directio/main.c
+++ b/src/third_party/wiredtiger/test/csuite/random_directio/main.c
@@ -1131,9 +1131,7 @@ main(int argc, char *argv[])
}
if (!LF_ISSET(SCHEMA_INTEGRATED) &&
LF_ISSET(SCHEMA_CREATE_CHECK | SCHEMA_DATA_CHECK | SCHEMA_DROP_CHECK)) {
- fprintf(stderr,
- "Schema '*check' options cannot be used "
- "without 'integrated'\n");
+ fprintf(stderr, "Schema '*check' options cannot be used without 'integrated'\n");
usage();
}
printf("CONFIG:%s\n", args);
diff --git a/src/third_party/wiredtiger/test/csuite/schema_abort/main.c b/src/third_party/wiredtiger/test/csuite/schema_abort/main.c
index eda25c511bb..5b216e17d71 100644
--- a/src/third_party/wiredtiger/test/csuite/schema_abort/main.c
+++ b/src/third_party/wiredtiger/test/csuite/schema_abort/main.c
@@ -487,7 +487,7 @@ thread_ts_run(void *arg)
}
} else
ts_wait:
- __wt_sleep(0, 1000);
+ __wt_sleep(0, 1000);
}
/* NOTREACHED */
}
@@ -536,10 +536,8 @@ thread_ckpt_run(void *arg)
if (WT_TIMEDIFF_SEC(now, start) >= 1)
printf("CKPT: !stable_set time %" PRIu64 "\n", WT_TIMEDIFF_SEC(now, start));
if (WT_TIMEDIFF_SEC(now, start) > MAX_STARTUP) {
- fprintf(stderr,
- "After %d seconds stable still not "
- "set. Aborting.\n",
- MAX_STARTUP);
+ fprintf(
+ stderr, "After %d seconds stable still not set. Aborting.\n", MAX_STARTUP);
/*
* For the checkpoint thread the info contains the number of threads.
*/
@@ -868,9 +866,7 @@ print_missing(REPORT *r, const char *fname, const char *msg)
{
if (r->exist_key != INVALID_KEY)
printf("%s: %s error %" PRIu64 " absent records %" PRIu64 "-%" PRIu64 ". Then keys %" PRIu64
- "-%" PRIu64
- " exist."
- " Key range %" PRIu64 "-%" PRIu64 "\n",
+ "-%" PRIu64 " exist. Key range %" PRIu64 "-%" PRIu64 "\n",
fname, msg, (r->exist_key - r->first_miss) - 1, r->first_miss, r->exist_key - 1,
r->exist_key, r->last_key, r->first_key, r->last_key);
}
@@ -987,9 +983,7 @@ main(int argc, char *argv[])
nth = MIN_TH;
}
- printf(
- "Parent: compatibility: %s, "
- "in-mem log sync: %s, timestamp in use: %s\n",
+ printf("Parent: compatibility: %s, in-mem log sync: %s, timestamp in use: %s\n",
compat ? "true" : "false", inmem ? "true" : "false", use_ts ? "true" : "false");
printf("Parent: Create %" PRIu32 " threads; sleep %" PRIu32 " seconds\n", nth, timeout);
printf("CONFIG: %s%s%s%s -h %s -T %" PRIu32 " -t %" PRIu32 "\n", progname,
@@ -1044,9 +1038,7 @@ main(int argc, char *argv[])
* particularly in automated testing.
*/
testutil_check(__wt_snprintf(buf, sizeof(buf),
- "rm -rf ../%s.SAVE && mkdir ../%s.SAVE && "
- "cp -p * ../%s.SAVE",
- home, home, home));
+ "rm -rf ../%s.SAVE && mkdir ../%s.SAVE && cp -p * ../%s.SAVE", home, home, home));
if ((status = system(buf)) < 0)
testutil_die(status, "system: %s", buf);
printf("Open database, run recovery and verify content\n");
@@ -1131,9 +1123,8 @@ main(int argc, char *argv[])
* larger than the saved one.
*/
if (!inmem && stable_fp != 0 && stable_fp <= stable_val) {
- printf(
- "%s: COLLECTION no record with "
- "key %" PRIu64 " record ts %" PRIu64 " <= stable ts %" PRIu64 "\n",
+ printf("%s: COLLECTION no record with key %" PRIu64 " record ts %" PRIu64
+ " <= stable ts %" PRIu64 "\n",
fname, key, stable_fp, stable_val);
absent_coll++;
}
@@ -1152,9 +1143,8 @@ main(int argc, char *argv[])
* If we found a record, the stable timestamp written to our file better be no
* larger than the checkpoint one.
*/
- printf(
- "%s: COLLECTION record with "
- "key %" PRIu64 " record ts %" PRIu64 " > stable ts %" PRIu64 "\n",
+ printf("%s: COLLECTION record with key %" PRIu64 " record ts %" PRIu64
+ " > stable ts %" PRIu64 "\n",
fname, key, stable_fp, stable_val);
fatal = true;
}
diff --git a/src/third_party/wiredtiger/test/csuite/scope/main.c b/src/third_party/wiredtiger/test/csuite/scope/main.c
index 145472fdc01..ff7057c4104 100644
--- a/src/third_party/wiredtiger/test/csuite/scope/main.c
+++ b/src/third_party/wiredtiger/test/csuite/scope/main.c
@@ -38,8 +38,9 @@ handle_error(WT_EVENT_HANDLER *handler, WT_SESSION *session, int error, const ch
(void)(handler);
/* Skip the error messages we're expecting to see. */
- if (ignore_errors > 0 && (strstr(message, "requires key be set") != NULL ||
- strstr(message, "requires value be set") != NULL)) {
+ if (ignore_errors > 0 &&
+ (strstr(message, "requires key be set") != NULL ||
+ strstr(message, "requires value be set") != NULL)) {
--ignore_errors;
return (0);
}
@@ -87,41 +88,52 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
RESERVE,
UPDATE
} func;
- } * op, ops[] = {/*
- * The ops order is specific: insert has to happen first so
- * other operations are possible, and remove has to be last.
- */
- {
- "insert", INSERT_GET_KEY,
- },
- {
- "insert", INSERT_GET_VALUE,
- },
- {
- "search", SEARCH,
- },
- {
- "search", SEARCH_NEAR,
- },
- {
- "reserve", RESERVE,
- },
- {
- "insert", MODIFY,
- },
- {
- "update", UPDATE,
- },
- {
- "remove", REMOVE_GET_KEY,
- },
- {
- "remove", REMOVE_GET_VALUE,
- },
- {
- "remove", REMOVE_POS,
- },
- {NULL, INSERT_GET_KEY}};
+ } * op,
+ ops[] = {/*
+ * The ops order is specific: insert has to happen first so
+ * other operations are possible, and remove has to be last.
+ */
+ {
+ "insert",
+ INSERT_GET_KEY,
+ },
+ {
+ "insert",
+ INSERT_GET_VALUE,
+ },
+ {
+ "search",
+ SEARCH,
+ },
+ {
+ "search",
+ SEARCH_NEAR,
+ },
+ {
+ "reserve",
+ RESERVE,
+ },
+ {
+ "insert",
+ MODIFY,
+ },
+ {
+ "update",
+ UPDATE,
+ },
+ {
+ "remove",
+ REMOVE_GET_KEY,
+ },
+ {
+ "remove",
+ REMOVE_GET_VALUE,
+ },
+ {
+ "remove",
+ REMOVE_POS,
+ },
+ {NULL, INSERT_GET_KEY}};
WT_CURSOR *cursor;
#define MODIFY_ENTRIES 2
WT_MODIFY entries[MODIFY_ENTRIES];
diff --git a/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c b/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c
index 1035764c5d1..57b7141b11d 100644
--- a/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c
+++ b/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c
@@ -488,9 +488,7 @@ print_missing(REPORT *r, const char *fname, const char *msg)
{
if (r->exist_key != INVALID_KEY)
printf("%s: %s error %" PRIu64 " absent records %" PRIu64 "-%" PRIu64 ". Then keys %" PRIu64
- "-%" PRIu64
- " exist."
- " Key range %" PRIu64 "-%" PRIu64 "\n",
+ "-%" PRIu64 " exist. Key range %" PRIu64 "-%" PRIu64 "\n",
fname, msg, (r->exist_key - r->first_miss) - 1, r->first_miss, r->exist_key - 1,
r->exist_key, r->last_key, r->first_key, r->last_key);
}
@@ -560,10 +558,8 @@ main(int argc, char *argv[])
rand_th = false;
nth = (uint32_t)atoi(__wt_optarg);
if (nth > MAX_TH) {
- fprintf(stderr,
- "Number of threads is larger than the"
- " maximum %" PRId32 "\n",
- MAX_TH);
+ fprintf(
+ stderr, "Number of threads is larger than the maximum %" PRId32 "\n", MAX_TH);
return (EXIT_FAILURE);
}
break;
@@ -610,9 +606,7 @@ main(int argc, char *argv[])
nth = MIN_TH;
}
- printf(
- "Parent: compatibility: %s, "
- "in-mem log sync: %s, timestamp in use: %s\n",
+ printf("Parent: compatibility: %s, in-mem log sync: %s, timestamp in use: %s\n",
compat ? "true" : "false", inmem ? "true" : "false", use_ts ? "true" : "false");
printf("Parent: Create %" PRIu32 " threads; sleep %" PRIu32 " seconds\n", nth, timeout);
printf("CONFIG: %s%s%s%s -h %s -T %" PRIu32 " -t %" PRIu32 "\n", progname,
@@ -667,9 +661,7 @@ main(int argc, char *argv[])
* particularly in automated testing.
*/
testutil_check(__wt_snprintf(buf, sizeof(buf),
- "rm -rf ../%s.SAVE && mkdir ../%s.SAVE && "
- "cp -p * ../%s.SAVE",
- home, home, home));
+ "rm -rf ../%s.SAVE && mkdir ../%s.SAVE && cp -p * ../%s.SAVE", home, home, home));
if ((status = system(buf)) < 0)
testutil_die(status, "system: %s", buf);
printf("Open database, run recovery and verify content\n");
@@ -764,9 +756,8 @@ main(int argc, char *argv[])
* larger than the saved one.
*/
if (!inmem && stable_fp != 0 && stable_fp <= stable_val) {
- printf(
- "%s: COLLECTION no record with "
- "key %" PRIu64 " record ts %" PRIu64 " <= stable ts %" PRIu64 "\n",
+ printf("%s: COLLECTION no record with key %" PRIu64 " record ts %" PRIu64
+ " <= stable ts %" PRIu64 "\n",
fname, key, stable_fp, stable_val);
absent_coll++;
}
@@ -785,9 +776,8 @@ main(int argc, char *argv[])
* If we found a record, the stable timestamp written to our file better be no
* larger than the checkpoint one.
*/
- printf(
- "%s: COLLECTION record with "
- "key %" PRIu64 " record ts %" PRIu64 " > stable ts %" PRIu64 "\n",
+ printf("%s: COLLECTION record with key %" PRIu64 " record ts %" PRIu64
+ " > stable ts %" PRIu64 "\n",
fname, key, stable_fp, stable_val);
fatal = true;
} else if ((ret = cur_shadow->search(cur_shadow)) != 0)
diff --git a/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c b/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c
index a518f6bed0e..f4b428fda2e 100644
--- a/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c
@@ -114,10 +114,8 @@ main(int argc, char *argv[])
testutil_make_work_dir(opts->home);
testutil_check(wiredtiger_open(opts->home, NULL,
- "create,cache_size=1G,checkpoint=(wait=30),"
- "eviction_trigger=80,eviction_target=64,eviction_dirty_target=65,"
- "log=(enabled,file_max=10M),"
- "transaction_sync=(enabled=true,method=none)",
+ "create,cache_size=1G,checkpoint=(wait=30),eviction_trigger=80,eviction_target=64,eviction_"
+ "dirty_target=65,log=(enabled,file_max=10M),transaction_sync=(enabled=true,method=none)",
&opts->conn));
testutil_check(opts->conn->open_session(opts->conn, NULL, NULL, &session));
diff --git a/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c b/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c
index 0131c020994..e227a6fd5d7 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c
@@ -107,16 +107,12 @@ main(int argc, char *argv[])
testutil_make_work_dir(opts->home);
testutil_check(__wt_snprintf(buf, sizeof(buf),
- "create,"
- "cache_size=%s,"
- "eviction=(threads_max=5),"
- "statistics=(fast)",
+ "create,cache_size=%s,eviction=(threads_max=5),statistics=(fast)",
opts->table_type == TABLE_FIX ? "500MB" : "2GB"));
testutil_check(wiredtiger_open(opts->home, NULL, buf, &opts->conn));
testutil_check(opts->conn->open_session(opts->conn, NULL, NULL, &session));
testutil_check(__wt_snprintf(buf, sizeof(buf),
- "key_format=r,value_format=%s,"
- "allocation_size=4K,leaf_page_max=64K",
+ "key_format=r,value_format=%s,allocation_size=4K,leaf_page_max=64K",
opts->table_type == TABLE_FIX ? "8t" : "S"));
testutil_check(session->create(session, opts->uri, buf));
testutil_check(session->close(session, NULL));
diff --git a/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c b/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c
index edf0a9b851e..7b427a1d904 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c
@@ -151,9 +151,8 @@ test_join(TEST_OPTS *opts, SHARED_OPTS *sharedopts, bool bloom, bool sometimes_r
* Note: id is repeated as id2. This makes it easier to identify the primary key in dumps of the
* index files.
*/
- testutil_check(session->create(session, opts->uri,
- "key_format=i,value_format=iiSii,"
- "columns=(id,post,bal,extra,flag,id2)"));
+ testutil_check(session->create(
+ session, opts->uri, "key_format=i,value_format=iiSii,columns=(id,post,bal,extra,flag,id2)"));
testutil_check(session->create(session, sharedopts->posturi, "columns=(post)"));
testutil_check(session->create(session, sharedopts->baluri, "columns=(bal)"));
@@ -203,9 +202,8 @@ test_join(TEST_OPTS *opts, SHARED_OPTS *sharedopts, bool bloom, bool sometimes_r
}
for (i = 0; i < N_INSERT_THREAD; ++i)
fprintf(stderr,
- " insert thread %d did "
- "%d inserts, %d removes, %d notfound, %d rollbacks\n",
- i, insert_args[i].inserts, insert_args[i].removes, insert_args[i].notfounds,
+ " insert thread %d did %d inserts, %d removes, %d notfound, %d rollbacks\n", i,
+ insert_args[i].inserts, insert_args[i].removes, insert_args[i].notfounds,
insert_args[i].rollbacks);
testutil_check(session->drop(session, sharedopts->posturi, NULL));
@@ -350,9 +348,7 @@ thread_join(void *arg)
*/
testutil_check(joincur->get_key(joincur, &key));
testutil_check(joincur->get_value(joincur, &post, &bal, &extra, &flag, &key2));
- fprintf(stderr,
- "FAIL: iteration %d: "
- "key=%d/%d, postal_code=%d, balance=%d, flag=%d\n",
+ fprintf(stderr, "FAIL: iteration %d: key=%d/%d, postal_code=%d, balance=%d, flag=%d\n",
threadargs->joins, key, key2, post, bal, flag);
/* Save the results. */
testutil_check(opts->conn->close(opts->conn, NULL));
diff --git a/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c b/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c
index e49d0cbe0aa..f8b5098b1a3 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c
@@ -62,15 +62,10 @@ main(int argc, char *argv[])
testutil_make_work_dir(opts->home);
testutil_check(wiredtiger_open(opts->home, NULL,
- "create,"
- "cache_size=2G,"
- "eviction=(threads_max=5),"
- "statistics=(fast)",
- &opts->conn));
+ "create,cache_size=2G,eviction=(threads_max=5),statistics=(fast)", &opts->conn));
testutil_check(opts->conn->open_session(opts->conn, NULL, NULL, &session));
- testutil_check(session->create(session, opts->uri,
- "key_format=Q,value_format=Q,"
- "leaf_page_max=32k,"));
+ testutil_check(
+ session->create(session, opts->uri, "key_format=Q,value_format=Q,leaf_page_max=32k,"));
/* Create the single record. */
testutil_check(session->open_cursor(session, opts->uri, NULL, NULL, &c));
diff --git a/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c b/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c
index 4f211493c57..c101c824fc0 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c
@@ -74,10 +74,8 @@ main(int argc, char *argv[])
testutil_check(wiredtiger_open(opts->home, NULL, "create,cache_size=200M", &opts->conn));
testutil_check(opts->conn->open_session(opts->conn, NULL, NULL, &session));
- testutil_check(session->create(session, opts->uri,
- "key_format=r,"
- "value_format=5sHQ,"
- "columns=(id,country,year,population)"));
+ testutil_check(session->create(
+ session, opts->uri, "key_format=r,value_format=5sHQ,columns=(id,country,year,population)"));
/* Create an index with a simple key. */
testutil_check(session->create(session, countryuri, "columns=(country)"));
diff --git a/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c b/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c
index bee38e812ab..1cb98c6b717 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c
@@ -74,9 +74,8 @@ main(int argc, char *argv[])
* Note: repeated primary key 'id' as 'id2'. This makes it easier to dump an index and know
* which record we're looking at.
*/
- testutil_check(session->create(session, opts->uri,
- "key_format=i,value_format=iiii,"
- "columns=(id,post,balance,flag,id2)"));
+ testutil_check(session->create(
+ session, opts->uri, "key_format=i,value_format=iiii,columns=(id,post,balance,flag,id2)"));
tablename = strchr(opts->uri, ':');
testutil_assert(tablename != NULL);
@@ -136,10 +135,8 @@ main(int argc, char *argv[])
*/
testutil_check(joincur->get_key(joincur, &key));
testutil_check(joincur->get_value(joincur, &post, &balance, &flag, &key2));
- fprintf(stderr,
- "FAIL: "
- "key=%d/%d, postal_code=%d, balance=%d, flag=%d\n",
- key, key2, post, balance, flag);
+ fprintf(stderr, "FAIL: key=%d/%d, postal_code=%d, balance=%d, flag=%d\n", key, key2, post,
+ balance, flag);
count++;
}
testutil_assert(ret == WT_NOTFOUND);
diff --git a/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c b/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c
index 3e25ee1ebdf..3036a1ba6df 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c
@@ -111,9 +111,8 @@ main(int argc, char *argv[])
* Note: id is repeated as id2. This makes it easier to identify the primary key in dumps of the
* index files.
*/
- testutil_check(session->create(session, opts->uri,
- "key_format=i,value_format=iiSii,"
- "columns=(id,post,bal,extra,flag,id2)"));
+ testutil_check(session->create(
+ session, opts->uri, "key_format=i,value_format=iiSii,columns=(id,post,bal,extra,flag,id2)"));
tablename = strchr(opts->uri, ':');
testutil_assert(tablename != NULL);
diff --git a/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c b/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c
index 1285109e706..0a26f9e87ec 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c
@@ -342,9 +342,7 @@ run_check_subtest_range(TEST_OPTS *opts, const char *debugger, bool close_test)
bool got_failure, got_success;
if (opts->verbose)
- printf(
- "Determining best range of operations until failure, "
- "with close_test %s.\n",
+ printf("Determining best range of operations until failure, with close_test %s.\n",
(close_test ? "enabled" : "disabled"));
run_check_subtest(opts, debugger, 1, close_test, &cutoff);
@@ -511,17 +509,14 @@ subtest_main(int argc, char *argv[], bool close_test)
if ((p = getenv("top_builddir")) == NULL)
p = "../../build_posix";
testutil_check(__wt_snprintf(config, sizeof(config),
- "create,cache_size=250M,log=(enabled),"
- "transaction_sync=(enabled,method=none),"
- "extensions=(%s/%s="
- "(early_load,config={environment=true,verbose=true}))",
+ "create,cache_size=250M,log=(enabled),transaction_sync=(enabled,method=none),extensions=(%s/"
+ "%s=(early_load,config={environment=true,verbose=true}))",
p, WT_FAIL_FS_LIB));
testutil_check(wiredtiger_open(opts->home, &event_handler, config, &opts->conn));
testutil_check(opts->conn->open_session(opts->conn, NULL, NULL, &session));
- testutil_check(session->create(session, "table:subtest",
- "key_format=i,value_format=iiiS,"
- "columns=(id,v0,v1,v2,big)"));
+ testutil_check(session->create(
+ session, "table:subtest", "key_format=i,value_format=iiiS,columns=(id,v0,v1,v2,big)"));
testutil_check(session->create(session, "table:subtest2", "key_format=i,value_format=i"));
diff --git a/src/third_party/wiredtiger/test/csuite/wt3363_checkpoint_op_races/main.c b/src/third_party/wiredtiger/test/csuite/wt3363_checkpoint_op_races/main.c
index 9c433ed127e..baca92846bc 100644
--- a/src/third_party/wiredtiger/test/csuite/wt3363_checkpoint_op_races/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt3363_checkpoint_op_races/main.c
@@ -188,10 +188,8 @@ monitor(void *args)
if (ctr != last_ops[i])
last_ops[i] = ctr;
else {
- printf(
- "Thread %d had a task running"
- " for more than %d seconds\n",
- i, MAX_EXECUTION_TIME / 2);
+ printf("Thread %d had a task running for more than %d seconds\n", i,
+ MAX_EXECUTION_TIME / 2);
abort();
}
}
diff --git a/src/third_party/wiredtiger/test/csuite/wt4105_large_doc_small_upd/main.c b/src/third_party/wiredtiger/test/csuite/wt4105_large_doc_small_upd/main.c
index ba91ffed0a9..d2a4aec646c 100644
--- a/src/third_party/wiredtiger/test/csuite/wt4105_large_doc_small_upd/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt4105_large_doc_small_upd/main.c
@@ -54,8 +54,9 @@ handle_error(WT_EVENT_HANDLER *handler, WT_SESSION *session, int error, const ch
(void)(handler);
/* Skip the error messages we're expecting to see. */
- if (ignore_errors > 0 && (strstr(message, "requires key be set") != NULL ||
- strstr(message, "requires value be set") != NULL)) {
+ if (ignore_errors > 0 &&
+ (strstr(message, "requires key be set") != NULL ||
+ strstr(message, "requires value be set") != NULL)) {
--ignore_errors;
return (0);
}
@@ -83,15 +84,11 @@ main(int argc, char *argv[])
testutil_make_work_dir(opts->home);
testutil_check(wiredtiger_open(opts->home, &event_handler,
- "create,"
- "cache_size=1G,"
- "statistics_log=(json,wait=1)",
- &opts->conn));
+ "create,cache_size=1G,statistics_log=(json,wait=1)", &opts->conn));
testutil_check(opts->conn->open_session(opts->conn, NULL, NULL, &session));
testutil_check(session->create(session, uri,
- "key_format=Q,value_format=u,"
- "leaf_item_max=64M,leaf_page_max=32k,memory_page_max=1M"));
+ "key_format=Q,value_format=u,leaf_item_max=64M,leaf_page_max=32k,memory_page_max=1M"));
testutil_check(session->open_cursor(session, uri, NULL, NULL, &c));
diff --git a/src/third_party/wiredtiger/test/csuite/wt4156_metadata_salvage/main.c b/src/third_party/wiredtiger/test/csuite/wt4156_metadata_salvage/main.c
index 0bc6adbbc00..f453bd5e9d8 100644
--- a/src/third_party/wiredtiger/test/csuite/wt4156_metadata_salvage/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt4156_metadata_salvage/main.c
@@ -312,9 +312,7 @@ copy_database(const char *sfx)
char buf[1024];
testutil_check(__wt_snprintf(buf, sizeof(buf),
- "rm -rf ./%s.%s; mkdir ./%s.%s; "
- "cp -p %s/* ./%s.%s",
- home, sfx, home, sfx, home, home, sfx));
+ "rm -rf ./%s.%s; mkdir ./%s.%s; cp -p %s/* ./%s.%s", home, sfx, home, sfx, home, home, sfx));
printf("copy: %s\n", buf);
if ((ret = system(buf)) < 0)
testutil_die(ret, "system: %s", buf);
diff --git a/src/third_party/wiredtiger/test/csuite/wt4333_handle_locks/main.c b/src/third_party/wiredtiger/test/csuite/wt4333_handle_locks/main.c
index c88895212cb..54a67a5f9e1 100644
--- a/src/third_party/wiredtiger/test/csuite/wt4333_handle_locks/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt4333_handle_locks/main.c
@@ -57,9 +57,8 @@ uri_init(void)
/* Initialize the file contents. */
for (i = 0; i < uris; ++i) {
- testutil_check(__wt_snprintf(buf, sizeof(buf),
- "key_format=S,value_format=S,"
- "allocation_size=4K,leaf_page_max=32KB,"));
+ testutil_check(__wt_snprintf(
+ buf, sizeof(buf), "key_format=S,value_format=S,allocation_size=4K,leaf_page_max=32KB,"));
testutil_check(session->create(session, uri_list[i], buf));
testutil_check(session->open_cursor(session, uri_list[i], NULL, NULL, &cursor));
for (key = 1; key < MAXKEY; ++key) {
@@ -300,10 +299,21 @@ run(int argc, char *argv[])
u_int uris;
bool cache_cursors;
} runs[] = {
- {1, 1, false}, {1, 1, true}, {8, 1, false}, {8, 1, true}, {16, 1, false}, {16, 1, true},
- {16, WT_ELEMENTS(uri_list), false}, {16, WT_ELEMENTS(uri_list), true}, {200, 100, false},
- {200, 100, true}, {200, WT_ELEMENTS(uri_list), false}, {200, WT_ELEMENTS(uri_list), true},
- {300, 100, false}, {300, 100, true}, {600, WT_ELEMENTS(uri_list), false},
+ {1, 1, false},
+ {1, 1, true},
+ {8, 1, false},
+ {8, 1, true},
+ {16, 1, false},
+ {16, 1, true},
+ {16, WT_ELEMENTS(uri_list), false},
+ {16, WT_ELEMENTS(uri_list), true},
+ {200, 100, false},
+ {200, 100, true},
+ {200, WT_ELEMENTS(uri_list), false},
+ {200, WT_ELEMENTS(uri_list), true},
+ {300, 100, false},
+ {300, 100, true},
+ {600, WT_ELEMENTS(uri_list), false},
{600, WT_ELEMENTS(uri_list), true},
};
WT_RAND_STATE rnd;
diff --git a/src/third_party/wiredtiger/test/fops/t.c b/src/third_party/wiredtiger/test/fops/t.c
index d73fe635abe..48f62378124 100644
--- a/src/third_party/wiredtiger/test/fops/t.c
+++ b/src/third_party/wiredtiger/test/fops/t.c
@@ -57,11 +57,12 @@ main(int argc, char *argv[])
const char *uri;
const char *desc;
const char *config;
- } * cp, configs[] = {{"file:wt", NULL, NULL}, {"table:wt", NULL, NULL},
+ } * cp,
+ configs[] = {{"file:wt", NULL, NULL}, {"table:wt", NULL, NULL},
/* Configure for a modest cache size. */
#define LSM_CONFIG "lsm=(chunk_size=1m,merge_max=2),leaf_page_max=4k"
- {"lsm:wt", NULL, LSM_CONFIG}, {"table:wt", " [lsm]", "type=lsm," LSM_CONFIG},
- {NULL, NULL, NULL}};
+ {"lsm:wt", NULL, LSM_CONFIG}, {"table:wt", " [lsm]", "type=lsm," LSM_CONFIG},
+ {NULL, NULL, NULL}};
u_int nthreads;
int ch, cnt, runs;
char *config_open, *working_dir;
@@ -233,9 +234,7 @@ static int
usage(void)
{
fprintf(stderr,
- "usage: %s "
- "[-C wiredtiger-config] [-l log] [-n ops] [-r runs] [-t threads] "
- "[-x] \n",
+ "usage: %s [-C wiredtiger-config] [-l log] [-n ops] [-r runs] [-t threads] [-x] \n",
progname);
fprintf(stderr, "%s",
"\t-C specify wiredtiger_open configuration arguments\n"
diff --git a/src/third_party/wiredtiger/test/format/backup.c b/src/third_party/wiredtiger/test/format/backup.c
index 66d859849a5..56f48c6888d 100644
--- a/src/third_party/wiredtiger/test/format/backup.c
+++ b/src/third_party/wiredtiger/test/format/backup.c
@@ -41,8 +41,33 @@ check_copy(void)
size_t len;
char *path;
- len = strlen(g.home) + strlen("BACKUP") + 2;
+ len = WT_MAX(strlen(BACKUP_INFO_FILE), strlen(BACKUP_INFO_FILE_TMP));
+ len = WT_MAX(len, strlen("BACKUP"));
+ len += strlen(g.home) + 2;
path = dmalloc(len);
+ /*
+ * Remove any backup info files that exist. We're about the run recovery in the backup directory
+ * so we cannot use the backup directory after that restart. We must remove the files before the
+ * restart to avoid a window where they could exist and the backup directory has had recovery
+ * run.
+ */
+ testutil_check(__wt_snprintf(path, len, "%s/%s", g.home, BACKUP_INFO_FILE_TMP));
+ ret = unlink(path);
+ /* It is fine if the file does not exist. */
+ if (ret == 0 || errno == ENOENT)
+ ret = 0;
+ else
+ testutil_die(errno, "unlink %s", path);
+
+ testutil_check(__wt_snprintf(path, len, "%s/%s", g.home, BACKUP_INFO_FILE));
+ ret = unlink(path);
+ /* It is fine if the file does not exist. */
+ if (ret == 0 || errno == ENOENT)
+ ret = 0;
+ else
+ testutil_die(errno, "unlink %s", path);
+
+ /* Now setup and open the path for real. */
testutil_check(__wt_snprintf(path, len, "%s/BACKUP", g.home));
wts_open(path, false, &conn);
@@ -329,6 +354,119 @@ copy_file(WT_SESSION *session, const char *name)
*/
#define HOME_BACKUP_INIT_CMD "rm -rf %s/BACKUP %s/BACKUP.copy && mkdir %s/BACKUP %s/BACKUP.copy"
+#define RESTORE_SKIP 1
+#define RESTORE_SUCCESS 0
+/*
+ * restore_backup_info --
+ * If it exists, restore the backup information. Return 0 on success.
+ */
+static int
+restore_backup_info(WT_SESSION *session, ACTIVE_FILES *active)
+{
+ FILE *fp;
+ WT_CURSOR *cursor;
+ WT_DECL_RET;
+ size_t len;
+ uint64_t id;
+ uint32_t i;
+ char buf[512], *path;
+
+ testutil_assert(g.c_backup_incr_flag == INCREMENTAL_BLOCK);
+ len = strlen(g.home) + strlen(BACKUP_INFO_FILE) + 2;
+ path = dmalloc(len);
+ testutil_check(__wt_snprintf(path, len, "%s/%s", g.home, BACKUP_INFO_FILE));
+ errno = 0;
+ ret = RESTORE_SUCCESS;
+ if ((fp = fopen(path, "r")) == NULL && errno != ENOENT)
+ testutil_die(errno, "restore_backup_info fopen: %s", path);
+ free(path);
+ if (errno == ENOENT)
+ return (RESTORE_SKIP);
+ ret = fscanf(fp, "%" SCNu64 "\n", &id);
+ if (ret != 1)
+ testutil_die(EINVAL, "restore_backup_info ID");
+ /*
+ * Try to open the backup cursor. We may get ENOENT if the source ID we wrote to the program
+ * file was not yet checkpointed. Sometimes it will, sometimes it won't. If we don't find it
+ * then return non-zero so that we skip incremental restart testing.
+ *
+ * NOTE: This call to open a backup cursor to check the source id uses a made up 'this_id' that
+ * tries to generate one that cannot possibly be in use. This call can/should be changed if the
+ * API ever allows us to open a cursor with a source id that does not require a this id.
+ */
+ testutil_check(__wt_snprintf(buf, sizeof(buf),
+ "incremental=(enabled,src_id=%" PRIu64 ",this_id=%" PRIu64 ")", id, id / 2));
+ while ((ret = session->open_cursor(session, "backup:", NULL, buf, &cursor)) == EBUSY)
+ __wt_yield();
+ if (ret != 0) {
+ if (ret == ENOENT) {
+ ret = RESTORE_SKIP;
+ goto out;
+ }
+ testutil_die(ret, "session.open_cursor: backup");
+ }
+ testutil_check(cursor->close(cursor));
+
+ active_files_init(active);
+ ret = fscanf(fp, "%" SCNu32 "\n", &active->count);
+ /* We could save just an ID if the file count was 0, so return if we find that case. */
+ if (ret != 1) {
+ ret = RESTORE_SKIP;
+ goto out;
+ }
+
+ /* Set global id after error paths. */
+ g.backup_id = id + 1;
+ active->names = drealloc(active->names, sizeof(char *) * active->count);
+ for (i = 0; i < active->count; ++i) {
+ memset(buf, 0, sizeof(buf));
+ ret = fscanf(fp, "%511s\n", buf);
+ if (ret != 1) {
+ ret = RESTORE_SKIP;
+ goto out;
+ }
+ active->names[i] = strdup(buf);
+ }
+ ret = RESTORE_SUCCESS;
+out:
+ fclose_and_clear(&fp);
+ return (ret);
+}
+
+/*
+ * save_backup_info --
+ * Save backup information to a text file format can use to restore on a reopen.
+ */
+static void
+save_backup_info(ACTIVE_FILES *active, uint64_t id)
+{
+ FILE *fp;
+ size_t len;
+ uint32_t i;
+ char *from_path, *to_path;
+
+ if (g.c_backup_incr_flag != INCREMENTAL_BLOCK)
+ return;
+ len = strlen(g.home) + strlen(BACKUP_INFO_FILE_TMP) + 2;
+ from_path = dmalloc(len);
+ testutil_check(__wt_snprintf(from_path, len, "%s/%s", g.home, BACKUP_INFO_FILE_TMP));
+ if ((fp = fopen(from_path, "w")) == NULL)
+ testutil_die(errno, "save_backup_info fopen: %s", from_path);
+ fprintf(fp, "%" PRIu64 "\n", id);
+ if (active->count > 0) {
+ fprintf(fp, "%" PRIu32 "\n", active->count);
+ for (i = 0; i < active->count; ++i)
+ fprintf(fp, "%s\n", active->names[i]);
+ }
+ fclose_and_clear(&fp);
+ len = strlen(g.home) + strlen(BACKUP_INFO_FILE) + 2;
+ to_path = dmalloc(len);
+ testutil_check(__wt_snprintf(to_path, len, "%s/%s", g.home, BACKUP_INFO_FILE));
+ error_sys_check(rename(from_path, to_path));
+ free(from_path);
+ free(to_path);
+}
+
/*
* backup --
* Periodically do a backup and verify it.
@@ -343,7 +481,7 @@ backup(void *arg)
WT_SESSION *session;
size_t len;
u_int incremental, period;
- uint64_t src_id;
+ uint64_t src_id, this_id;
const char *config, *key;
char cfg[512], *cmd;
bool full, incr_full;
@@ -351,22 +489,34 @@ backup(void *arg)
(void)(arg);
conn = g.wts_conn;
-
- /* Guarantee backup ID uniqueness, we might be reopening an existing database. */
- __wt_seconds(NULL, &g.backup_id);
-
/* Open a session. */
testutil_check(conn->open_session(conn, NULL, NULL, &session));
+ __wt_seconds(NULL, &g.backup_id);
+ active_files_init(&active[0]);
+ active_files_init(&active[1]);
+ active_now = active_prev = NULL;
+ incr_full = true;
+ incremental = 0;
+ /*
+ * If we're reopening an existing database and doing incremental backup we reset the initialized
+ * variables based on whatever they were at the end of the previous run. We want to make sure
+ * that we can take an incremental backup and use the older id as a source identifier. We force
+ * that only if the restore function was successful in restoring the backup information.
+ */
+ if (g.reopen && g.c_backup_incr_flag == INCREMENTAL_BLOCK &&
+ restore_backup_info(session, &active[0]) == RESTORE_SUCCESS) {
+ incr_full = false;
+ full = false;
+ incremental = 1;
+ active_prev = &active[0];
+ }
+
/*
* Perform a full backup at somewhere under 10 seconds (that way there's at least one), then at
* larger intervals, optionally do incremental backups between full backups.
*/
- incr_full = true;
- incremental = 0;
- active_files_init(&active[0]);
- active_files_init(&active[1]);
- active_now = active_prev = NULL;
+ this_id = 0;
for (period = mmrand(NULL, 1, 10);; period = mmrand(NULL, 20, 45)) {
/* Sleep for short periods so we don't make the run wait. */
while (period > 0 && !g.workers_finished) {
@@ -396,8 +546,8 @@ backup(void *arg)
active_now = &active[g.backup_id % 2];
active_prev = NULL;
testutil_check(__wt_snprintf(cfg, sizeof(cfg),
- "incremental=(enabled,granularity=%" PRIu32 "K,this_id=ID%" PRIu64 ")",
- g.c_backup_incr_granularity, g.backup_id++));
+ "incremental=(enabled,granularity=%" PRIu32 "K,this_id=%" PRIu64 ")",
+ g.c_backup_incr_granularity, g.backup_id));
full = true;
incr_full = false;
} else {
@@ -407,12 +557,13 @@ backup(void *arg)
active_now = &active[0];
src_id = g.backup_id - 1;
testutil_check(__wt_snprintf(cfg, sizeof(cfg),
- "incremental=(enabled,src_id=ID%" PRIu64 ",this_id=ID%" PRIu64 ")", src_id,
- g.backup_id++));
+ "incremental=(enabled,src_id=%" PRIu64 ",this_id=%" PRIu64 ")", src_id,
+ g.backup_id));
/* Restart a full incremental every once in a while. */
full = false;
incr_full = mmrand(NULL, 1, 8) == 1;
}
+ this_id = g.backup_id++;
config = cfg;
/* Free up the old active file list we're going to overwrite. */
active_files_free(active_now);
@@ -475,6 +626,8 @@ backup(void *arg)
lock_writeunlock(session, &g.backup_lock);
active_files_sort(active_now);
active_files_remove_missing(active_prev, active_now);
+ /* Save the backup information to a file so we can restart on a reopen. */
+ save_backup_info(active_now, this_id);
active_prev = active_now;
/*
@@ -483,8 +636,13 @@ backup(void *arg)
* intermediate states, once we perform recovery on the backup database, we can't do any
* more incremental backups).
*/
- if (full)
- incremental = g.c_logging_archive ? 1 : mmrand(NULL, 1, 8);
+ if (full) {
+ incremental = 1;
+ if (g.c_backup_incr_flag == INCREMENTAL_LOG)
+ incremental = g.c_logging_archive ? 1 : mmrand(NULL, 1, 8);
+ else if (g.c_backup_incr_flag == INCREMENTAL_BLOCK)
+ incremental = mmrand(NULL, 1, 8);
+ }
if (--incremental == 0) {
check_copy();
/* We ran recovery in the backup directory, so next time it must be a full backup. */
diff --git a/src/third_party/wiredtiger/test/format/config.c b/src/third_party/wiredtiger/test/format/config.c
index de68fd9fe60..ec2ca096e6a 100644
--- a/src/third_party/wiredtiger/test/format/config.c
+++ b/src/third_party/wiredtiger/test/format/config.c
@@ -383,12 +383,6 @@ config_backward_compatible(void)
if (!backward_compatible)
return;
- if (g.c_backup_incr_flag != INCREMENTAL_OFF) {
- if (config_is_perm("backup.incremental"))
- testutil_die(EINVAL, "incremental backup not supported in backward compatibility mode");
- config_single("backup.incremental=off", false);
- }
-
if (g.c_mmap_all) {
if (config_is_perm("disk.mmap_all"))
testutil_die(EINVAL, "disk.mmap_all not supported in backward compatibility mode");
@@ -791,9 +785,11 @@ config_pct(void)
uint32_t *vp; /* Value store */
u_int order; /* Order of assignment */
} list[] = {
- {"ops.pct.delete", &g.c_delete_pct, 0}, {"ops.pct.insert", &g.c_insert_pct, 0},
+ {"ops.pct.delete", &g.c_delete_pct, 0},
+ {"ops.pct.insert", &g.c_insert_pct, 0},
#define CONFIG_MODIFY_ENTRY 2
- {"ops.pct.modify", &g.c_modify_pct, 0}, {"ops.pct.read", &g.c_read_pct, 0},
+ {"ops.pct.modify", &g.c_modify_pct, 0},
+ {"ops.pct.read", &g.c_read_pct, 0},
{"ops.pct.write", &g.c_write_pct, 0},
};
u_int i, max_order, max_slot, n, pct;
diff --git a/src/third_party/wiredtiger/test/format/config_compat.c b/src/third_party/wiredtiger/test/format/config_compat.c
index 0a5fe4424f7..93616108769 100644
--- a/src/third_party/wiredtiger/test/format/config_compat.c
+++ b/src/third_party/wiredtiger/test/format/config_compat.c
@@ -29,43 +29,185 @@
#include "format.h"
static const char *list[] = {
- "abort=", "format.abort", "alter=", "ops.alter", "assert_commit_timestamp=",
- "assert.commit_timestamp", "assert_read_timestamp=", "assert.read_timestamp", "auto_throttle=",
- "lsm.auto_throttle", "backup_incremental=", "backup.incremental", "backups=", "backup", "bitcnt=",
- "btree.bitcnt", "bloom=", "lsm.bloom", "bloom_bit_count=", "lsm.bloom_bit_count",
- "bloom_hash_count=", "lsm.bloom_hash_count", "bloom_oldest=", "lsm.bloom_oldest", "cache=",
- "cache", "cache_minimum=", "cache.minimum", "checkpoint_log_size=", "checkpoint.log_size",
- "checkpoint_wait=", "checkpoint.wait", "checkpoints=", "checkpoint", "checksum=", "disk.checksum",
- "chunk_size=", "lsm.chunk_size", "compaction=", "ops.compaction", "compression=",
- "btree.compression", "data_extend=", "disk.data_extend", "data_source=", "runs.source",
- "delete_pct=", "ops.pct.delete", "dictionary=", "btree.dictionary", "direct_io=",
- "disk.direct_io", "encryption=", "disk.encryption", "evict_max=", "cache.evict_max", "file_type=",
- "runs.type", "firstfit=", "disk.firstfit", "huffman_key=", "btree.huffman_key", "huffman_value=",
- "btree.huffman_value", "in_memory=", "runs.in_memory", "independent_thread_rng=",
- "format.independent_thread_rng", "insert_pct=", "ops.pct.insert", "internal_key_truncation=",
- "btree.internal_key_truncation", "internal_page_max=", "btree.internal_page_max", "isolation=",
- "transaction.isolation", "key_gap=", "btree.key_gap", "key_max=", "btree.key_max", "key_min=",
- "btree.key_min", "leaf_page_max=", "btree.leaf_page_max", "leak_memory=",
- "wiredtiger.leak_memory", "logging_archive=", "logging.archive", "logging_compression=",
- "logging.compression", "logging_file_max=", "logging.file_max", "logging_prealloc=",
- "logging.prealloc", "lsm_worker_threads=", "lsm.worker_threads", "major_timeout=",
- "format.major_timeout", "memory_page_max=", "btree.memory_page_max", "merge_max=",
- "lsm.merge_max", "mmap=", "disk.mmap", "mmap_all=", "disk.mmap_all", "modify_pct=",
- "ops.pct.modify", "ops=", "runs.ops", "prefix_compression=", "btree.prefix_compression",
- "prefix_compression_min=", "btree.prefix_compression_min", "prepare=", "ops.prepare",
- "random_cursor=", "ops.random_cursor", "read_pct=", "ops.pct.read", "rebalance=", "ops.rebalance",
- "repeat_data_pct=", "btree.repeat_data_pct", "reverse=", "btree.reverse", "rows=", "runs.rows",
- "salvage=", "ops.salvage", "split_pct=", "btree.split_pct", "statistics=", "statistics",
- "statistics_server=", "statistics.server", "threads=", "runs.threads", "timer=", "runs.timer",
- "timing_stress_aggressive_sweep=", "stress.aggressive_sweep", "timing_stress_checkpoint=",
- "stress.checkpoint", "timing_stress_hs_sweep=", "stress.hs_sweep", "timing_stress_split_1=",
- "stress.split_1", "timing_stress_split_2=", "stress.split_2", "timing_stress_split_3=",
- "stress.split_3", "timing_stress_split_4=", "stress.split_4", "timing_stress_split_5=",
- "stress.split_5", "timing_stress_split_6=", "stress.split_6", "timing_stress_split_7=",
- "stress.split_7", "timing_stress_split_8=", "stress.split_8", "transaction-frequency=",
- "transaction.frequency", "transaction_timestamps=", "transaction.timestamps", "truncate=",
- "ops.truncate", "value_max=", "btree.value_max", "value_min=", "btree.value_min", "verify=",
- "ops.verify", "wiredtiger_config=", "wiredtiger.config", "write_pct=", "ops.pct.write", NULL,
+ "abort=",
+ "format.abort",
+ "alter=",
+ "ops.alter",
+ "assert_commit_timestamp=",
+ "assert.commit_timestamp",
+ "assert_read_timestamp=",
+ "assert.read_timestamp",
+ "auto_throttle=",
+ "lsm.auto_throttle",
+ "backup_incremental=",
+ "backup.incremental",
+ "backups=",
+ "backup",
+ "bitcnt=",
+ "btree.bitcnt",
+ "bloom=",
+ "lsm.bloom",
+ "bloom_bit_count=",
+ "lsm.bloom_bit_count",
+ "bloom_hash_count=",
+ "lsm.bloom_hash_count",
+ "bloom_oldest=",
+ "lsm.bloom_oldest",
+ "cache=",
+ "cache",
+ "cache_minimum=",
+ "cache.minimum",
+ "checkpoint_log_size=",
+ "checkpoint.log_size",
+ "checkpoint_wait=",
+ "checkpoint.wait",
+ "checkpoints=",
+ "checkpoint",
+ "checksum=",
+ "disk.checksum",
+ "chunk_size=",
+ "lsm.chunk_size",
+ "compaction=",
+ "ops.compaction",
+ "compression=",
+ "btree.compression",
+ "data_extend=",
+ "disk.data_extend",
+ "data_source=",
+ "runs.source",
+ "delete_pct=",
+ "ops.pct.delete",
+ "dictionary=",
+ "btree.dictionary",
+ "direct_io=",
+ "disk.direct_io",
+ "encryption=",
+ "disk.encryption",
+ "evict_max=",
+ "cache.evict_max",
+ "file_type=",
+ "runs.type",
+ "firstfit=",
+ "disk.firstfit",
+ "huffman_key=",
+ "btree.huffman_key",
+ "huffman_value=",
+ "btree.huffman_value",
+ "in_memory=",
+ "runs.in_memory",
+ "independent_thread_rng=",
+ "format.independent_thread_rng",
+ "insert_pct=",
+ "ops.pct.insert",
+ "internal_key_truncation=",
+ "btree.internal_key_truncation",
+ "internal_page_max=",
+ "btree.internal_page_max",
+ "isolation=",
+ "transaction.isolation",
+ "key_gap=",
+ "btree.key_gap",
+ "key_max=",
+ "btree.key_max",
+ "key_min=",
+ "btree.key_min",
+ "leaf_page_max=",
+ "btree.leaf_page_max",
+ "leak_memory=",
+ "wiredtiger.leak_memory",
+ "logging_archive=",
+ "logging.archive",
+ "logging_compression=",
+ "logging.compression",
+ "logging_file_max=",
+ "logging.file_max",
+ "logging_prealloc=",
+ "logging.prealloc",
+ "lsm_worker_threads=",
+ "lsm.worker_threads",
+ "major_timeout=",
+ "format.major_timeout",
+ "memory_page_max=",
+ "btree.memory_page_max",
+ "merge_max=",
+ "lsm.merge_max",
+ "mmap=",
+ "disk.mmap",
+ "mmap_all=",
+ "disk.mmap_all",
+ "modify_pct=",
+ "ops.pct.modify",
+ "ops=",
+ "runs.ops",
+ "prefix_compression=",
+ "btree.prefix_compression",
+ "prefix_compression_min=",
+ "btree.prefix_compression_min",
+ "prepare=",
+ "ops.prepare",
+ "random_cursor=",
+ "ops.random_cursor",
+ "read_pct=",
+ "ops.pct.read",
+ "rebalance=",
+ "ops.rebalance",
+ "repeat_data_pct=",
+ "btree.repeat_data_pct",
+ "reverse=",
+ "btree.reverse",
+ "rows=",
+ "runs.rows",
+ "salvage=",
+ "ops.salvage",
+ "split_pct=",
+ "btree.split_pct",
+ "statistics=",
+ "statistics",
+ "statistics_server=",
+ "statistics.server",
+ "threads=",
+ "runs.threads",
+ "timer=",
+ "runs.timer",
+ "timing_stress_aggressive_sweep=",
+ "stress.aggressive_sweep",
+ "timing_stress_checkpoint=",
+ "stress.checkpoint",
+ "timing_stress_hs_sweep=",
+ "stress.hs_sweep",
+ "timing_stress_split_1=",
+ "stress.split_1",
+ "timing_stress_split_2=",
+ "stress.split_2",
+ "timing_stress_split_3=",
+ "stress.split_3",
+ "timing_stress_split_4=",
+ "stress.split_4",
+ "timing_stress_split_5=",
+ "stress.split_5",
+ "timing_stress_split_6=",
+ "stress.split_6",
+ "timing_stress_split_7=",
+ "stress.split_7",
+ "timing_stress_split_8=",
+ "stress.split_8",
+ "transaction-frequency=",
+ "transaction.frequency",
+ "transaction_timestamps=",
+ "transaction.timestamps",
+ "truncate=",
+ "ops.truncate",
+ "value_max=",
+ "btree.value_max",
+ "value_min=",
+ "btree.value_min",
+ "verify=",
+ "ops.verify",
+ "wiredtiger_config=",
+ "wiredtiger.config",
+ "write_pct=",
+ "ops.pct.write",
+ NULL,
NULL,
};
diff --git a/src/third_party/wiredtiger/test/format/format.h b/src/third_party/wiredtiger/test/format/format.h
index 5133f27c925..79dd0837a22 100644
--- a/src/third_party/wiredtiger/test/format/format.h
+++ b/src/third_party/wiredtiger/test/format/format.h
@@ -51,7 +51,9 @@
#undef MEGABYTE
#define MEGABYTE(v) ((v)*WT_MEGABYTE)
-#define WT_NAME "wt" /* Object name */
+#define BACKUP_INFO_FILE "BACKUP_INFO" /* Format's backup information for restart */
+#define BACKUP_INFO_FILE_TMP "BACKUP_INFO.TMP" /* Format's backup information for restart */
+#define WT_NAME "wt" /* Object name */
#define DATASOURCE(v) (strcmp(v, g.c_data_source) == 0 ? 1 : 0)
#define SINGLETHREADED (g.c_threads == 1)
diff --git a/src/third_party/wiredtiger/test/format/util.c b/src/third_party/wiredtiger/test/format/util.c
index 7aba99c20de..38be76826a8 100644
--- a/src/third_party/wiredtiger/test/format/util.c
+++ b/src/third_party/wiredtiger/test/format/util.c
@@ -45,19 +45,21 @@ track(const char *tag, uint64_t cnt, TINFO *tinfo)
testutil_check(__wt_snprintf_len_set(
msg, sizeof(msg), &len, "%4" PRIu32 ": %s: %" PRIu64, g.run_cnt, tag, cnt));
else
- testutil_check(__wt_snprintf_len_set(msg, sizeof(msg), &len, "%4" PRIu32 ": %s: "
- "search %" PRIu64 "%s, "
- "insert %" PRIu64 "%s, "
- "update %" PRIu64 "%s, "
- "remove %" PRIu64 "%s",
- g.run_cnt, tag, tinfo->search > M(9) ? tinfo->search / M(1) : tinfo->search,
- tinfo->search > M(9) ? "M" : "",
- tinfo->insert > M(9) ? tinfo->insert / M(1) : tinfo->insert,
- tinfo->insert > M(9) ? "M" : "",
- tinfo->update > M(9) ? tinfo->update / M(1) : tinfo->update,
- tinfo->update > M(9) ? "M" : "",
- tinfo->remove > M(9) ? tinfo->remove / M(1) : tinfo->remove,
- tinfo->remove > M(9) ? "M" : ""));
+ testutil_check(
+ __wt_snprintf_len_set(msg, sizeof(msg), &len,
+ "%4" PRIu32 ": %s: "
+ "search %" PRIu64 "%s, "
+ "insert %" PRIu64 "%s, "
+ "update %" PRIu64 "%s, "
+ "remove %" PRIu64 "%s",
+ g.run_cnt, tag, tinfo->search > M(9) ? tinfo->search / M(1) : tinfo->search,
+ tinfo->search > M(9) ? "M" : "",
+ tinfo->insert > M(9) ? tinfo->insert / M(1) : tinfo->insert,
+ tinfo->insert > M(9) ? "M" : "",
+ tinfo->update > M(9) ? tinfo->update / M(1) : tinfo->update,
+ tinfo->update > M(9) ? "M" : "",
+ tinfo->remove > M(9) ? tinfo->remove / M(1) : tinfo->remove,
+ tinfo->remove > M(9) ? "M" : ""));
if (lastlen > len) {
memset(msg + len, ' ', (size_t)(lastlen - len));
diff --git a/src/third_party/wiredtiger/test/format/wts.c b/src/third_party/wiredtiger/test/format/wts.c
index 66a319a9982..28832ff26da 100644
--- a/src/third_party/wiredtiger/test/format/wts.c
+++ b/src/third_party/wiredtiger/test/format/wts.c
@@ -214,8 +214,7 @@ wts_open(const char *home, bool set_api, WT_CONNECTION **connp)
/* Logging configuration. */
if (g.c_logging)
CONFIG_APPEND(p,
- ",log=(enabled=true,archive=%d,"
- "prealloc=%d,file_max=%" PRIu32 ",compressor=\"%s\")",
+ ",log=(enabled=true,archive=%d,prealloc=%d,file_max=%" PRIu32 ",compressor=\"%s\")",
g.c_logging_archive ? 1 : 0, g.c_logging_prealloc ? 1 : 0, KILOBYTE(g.c_logging_file_max),
compressor(g.c_logging_compression_flag));
@@ -245,13 +244,10 @@ wts_open(const char *home, bool set_api, WT_CONNECTION **connp)
*/
if (g.c_statistics_server) {
if (mmrand(NULL, 0, 5) == 1 && memcmp(g.uri, "file:", strlen("file:")) == 0)
- CONFIG_APPEND(p,
- ",statistics=(fast),statistics_log="
- "(json,on_close,wait=5,sources=(\"file:\"))");
+ CONFIG_APPEND(
+ p, ",statistics=(fast),statistics_log=(json,on_close,wait=5,sources=(\"file:\"))");
else
- CONFIG_APPEND(p,
- ",statistics=(fast),statistics_log="
- "(json,on_close,wait=5)");
+ CONFIG_APPEND(p, ",statistics=(fast),statistics_log=(json,on_close,wait=5)");
} else
CONFIG_APPEND(p, ",statistics=(%s)", g.c_statistics ? "fast" : "none");
diff --git a/src/third_party/wiredtiger/test/huge/huge.c b/src/third_party/wiredtiger/test/huge/huge.c
index d9b51ecc8a8..25101046265 100644
--- a/src/third_party/wiredtiger/test/huge/huge.c
+++ b/src/third_party/wiredtiger/test/huge/huge.c
@@ -86,8 +86,9 @@ run(CONFIG *cp, int bigkey, size_t bytes)
printf(SIZET_FMT "%s%s: %s %s big %s\n",
bytes < MEGABYTE ? bytes : (bytes < GIGABYTE ? bytes / MEGABYTE : bytes / GIGABYTE),
- bytes < MEGABYTE ? "" : (bytes < GIGABYTE ? (bytes % MEGABYTE == 0 ? "" : "+") :
- (bytes % GIGABYTE == 0 ? "" : "+")),
+ bytes < MEGABYTE ? "" :
+ (bytes < GIGABYTE ? (bytes % MEGABYTE == 0 ? "" : "+") :
+ (bytes % GIGABYTE == 0 ? "" : "+")),
bytes < MEGABYTE ? "B" : (bytes < GIGABYTE ? "MB" : "GB"), cp->uri, cp->config,
bigkey ? "key" : "value");
diff --git a/src/third_party/wiredtiger/test/packing/intpack-test3.c b/src/third_party/wiredtiger/test/packing/intpack-test3.c
index 8bd8cc8a8c9..0eadfa656fa 100644
--- a/src/third_party/wiredtiger/test/packing/intpack-test3.c
+++ b/src/third_party/wiredtiger/test/packing/intpack-test3.c
@@ -63,10 +63,12 @@ test_value(int64_t val)
}
/* Ensure that decoding used the correct amount of buffer */
if (cp != p) {
- fprintf(stderr, "Unpack consumed wrong size for %" PRId64 ", expected %" WT_SIZET_FMT
- ", got %" WT_SIZET_FMT "\n",
- sinput, used_len, cp > p ? used_len + (size_t)(cp - p) : /* More than buf used */
- used_len - (size_t)(p - cp)); /* Less than buf used */
+ fprintf(stderr,
+ "Unpack consumed wrong size for %" PRId64 ", expected %" WT_SIZET_FMT
+ ", got %" WT_SIZET_FMT "\n",
+ sinput, used_len,
+ cp > p ? used_len + (size_t)(cp - p) : /* More than buf used */
+ used_len - (size_t)(p - cp)); /* Less than buf used */
abort();
}
@@ -86,8 +88,9 @@ test_value(int64_t val)
}
/* Ensure that decoding used the correct amount of buffer */
if (cp != p) {
- fprintf(stderr, "Unpack consumed wrong size for %" PRId64 ", expected %" WT_SIZET_FMT
- ", got %" WT_SIZET_FMT "\n",
+ fprintf(stderr,
+ "Unpack consumed wrong size for %" PRId64 ", expected %" WT_SIZET_FMT
+ ", got %" WT_SIZET_FMT "\n",
sinput, used_len, cp > p ? used_len + (size_t)(cp - p) : used_len - (size_t)(p - cp));
abort();
}
diff --git a/src/third_party/wiredtiger/test/readonly/readonly.c b/src/third_party/wiredtiger/test/readonly/readonly.c
index c7e3279db06..3741109a625 100644
--- a/src/third_party/wiredtiger/test/readonly/readonly.c
+++ b/src/third_party/wiredtiger/test/readonly/readonly.c
@@ -253,9 +253,8 @@ main(int argc, char *argv[])
testutil_die(status, "system: %s", cmd);
testutil_check(__wt_snprintf(cmd, sizeof(cmd),
- "cp -rp %s/* %s; rm -f %s/WiredTiger.lock; "
- "chmod 0555 %s; chmod -R 0444 %s/*",
- home, home_rd2, home_rd2, home_rd2, home_rd2));
+ "cp -rp %s/* %s; rm -f %s/WiredTiger.lock; chmod 0555 %s; chmod -R 0444 %s/*", home, home_rd2,
+ home_rd2, home_rd2, home_rd2));
if ((status = system(cmd)) < 0)
testutil_die(status, "system: %s", cmd);
diff --git a/src/third_party/wiredtiger/test/salvage/salvage.c b/src/third_party/wiredtiger/test/salvage/salvage.c
index b378fbf5845..af61d8e11ec 100644
--- a/src/third_party/wiredtiger/test/salvage/salvage.c
+++ b/src/third_party/wiredtiger/test/salvage/salvage.c
@@ -510,26 +510,20 @@ build(int ikey, int ivalue, int cnt)
switch (page_type) {
case WT_PAGE_COL_FIX:
testutil_check(__wt_snprintf(config, sizeof(config),
- "key_format=r,value_format=7t,"
- "allocation_size=%d,"
- "internal_page_max=%d,internal_item_max=%d,"
- "leaf_page_max=%d,leaf_item_max=%d",
+ "key_format=r,value_format=7t,allocation_size=%d,internal_page_max=%d,internal_item_max=%"
+ "d,leaf_page_max=%d,leaf_item_max=%d",
PSIZE, PSIZE, OSIZE, PSIZE, OSIZE));
break;
case WT_PAGE_COL_VAR:
testutil_check(__wt_snprintf(config, sizeof(config),
- "key_format=r,"
- "allocation_size=%d,"
- "internal_page_max=%d,internal_item_max=%d,"
- "leaf_page_max=%d,leaf_item_max=%d",
+ "key_format=r,allocation_size=%d,internal_page_max=%d,internal_item_max=%d,leaf_page_max="
+ "%d,leaf_item_max=%d",
PSIZE, PSIZE, OSIZE, PSIZE, OSIZE));
break;
case WT_PAGE_ROW_LEAF:
testutil_check(__wt_snprintf(config, sizeof(config),
- "key_format=u,"
- "allocation_size=%d,"
- "internal_page_max=%d,internal_item_max=%d,"
- "leaf_page_max=%d,leaf_item_max=%d",
+ "key_format=u,allocation_size=%d,internal_page_max=%d,internal_item_max=%d,leaf_page_max="
+ "%d,leaf_item_max=%d",
PSIZE, PSIZE, OSIZE, PSIZE, OSIZE));
break;
default:
diff --git a/src/third_party/wiredtiger/test/suite/test_checkpoint05.py b/src/third_party/wiredtiger/test/suite/test_checkpoint05.py
index 58af3003a60..c28d634d54f 100644
--- a/src/third_party/wiredtiger/test/suite/test_checkpoint05.py
+++ b/src/third_party/wiredtiger/test/suite/test_checkpoint05.py
@@ -44,7 +44,7 @@ class test_checkpoint05(wttest.WiredTigerTestCase):
while metadata_cursor.next() == 0:
key = metadata_cursor.get_key()
value = metadata_cursor[key]
- nckpt = nckpt + value.count("WiredTigerCheckpoint")
+ nckpt += value.count("WiredTigerCheckpoint")
metadata_cursor.close()
return nckpt
diff --git a/src/third_party/wiredtiger/test/suite/test_checkpoint07.py b/src/third_party/wiredtiger/test/suite/test_checkpoint07.py
new file mode 100755
index 00000000000..52b3104f69b
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_checkpoint07.py
@@ -0,0 +1,182 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2020 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# test_checkpoint07.py
+# Test that the checkpoints timing statistics are populated as expected.
+
+import wiredtiger, wttest
+from wiredtiger import stat
+from wtdataset import SimpleDataSet
+
+def timestamp_str(t):
+ return '%x' % t
+
+class test_checkpoint07(wttest.WiredTigerTestCase):
+ conn_config = 'cache_size=50MB,log=(enabled),statistics=(all)'
+ session_config = 'isolation=snapshot'
+
+ def get_stat(self, uri):
+ stat_uri = 'statistics:' + uri
+ stat_cursor = self.session.open_cursor(stat_uri)
+ val = stat_cursor[stat.dsrc.btree_clean_checkpoint_timer][2]
+ stat_cursor.close()
+ return val
+
+ def test_checkpoint07(self):
+ self.uri1 = 'table:ckpt05.1'
+ self.file1 = 'file:ckpt05.1.wt'
+ self.uri2 = 'table:ckpt05.2'
+ self.file2 = 'file:ckpt05.2.wt'
+ self.uri3 = 'table:ckpt05.3'
+ self.file3 = 'file:ckpt05.3.wt'
+ self.session.create(self.uri1, 'key_format=i,value_format=i')
+ self.session.create(self.uri2, 'key_format=i,value_format=i')
+ self.session.create(self.uri3, 'key_format=i,value_format=i')
+
+ # Setup: Insert some data and checkpoint it. Then modify only
+ # the data in the first table and checkpoint. Verify the clean skip
+ # timer is not set for the modified table and is set for the clean one.
+ c1 = self.session.open_cursor(self.uri1, None)
+ c2 = self.session.open_cursor(self.uri2, None)
+ c3 = self.session.open_cursor(self.uri3, None)
+ c1[1] = 1
+ c2[1] = 1
+ c3[1] = 1
+ self.session.checkpoint(None)
+ c1[2] = 2
+ self.session.checkpoint(None)
+ val1 = self.get_stat(self.file1)
+ self.assertEqual(val1, 0)
+ val2 = self.get_stat(self.file2)
+ self.assertNotEqual(val2, 0)
+ val3 = self.get_stat(self.file3)
+ self.assertNotEqual(val3, 0)
+ # It is possible that we could span the second timer when processing table
+ # two and table three during the checkpoint. If they're different check
+ # they are within 1 second of each other.
+ if val2 != val3:
+ self.assertTrue(val2 == val3 - 1 or val3 == val2 - 1)
+
+ # Now force a checkpoint on clean tables. No clean timer should be set.
+ self.session.checkpoint('force=true')
+ val = self.get_stat(self.uri1)
+ self.assertEqual(val, 0)
+ val = self.get_stat(self.uri2)
+ self.assertEqual(val, 0)
+ val = self.get_stat(self.uri3)
+ self.assertEqual(val, 0)
+
+ # Modify the first two tables and reverify all three.
+ c1[3] = 3
+ c2[3] = 3
+ self.session.checkpoint(None)
+ val = self.get_stat(self.uri1)
+ self.assertEqual(val, 0)
+ val = self.get_stat(self.uri2)
+ self.assertEqual(val, 0)
+ val = self.get_stat(self.uri3)
+ self.assertNotEqual(val, 0)
+
+ # Open a backup cursor. This will pin the most recent checkpoint.
+ # Modify table 1 and checkpoint, then modify table 2 and checkpoint.
+ # The open backup cursor will cause table 1 to get the smaller timer.
+ backup_cursor = self.session.open_cursor('backup:', None, None)
+ c1[4] = 4
+ self.session.checkpoint(None)
+ val = self.get_stat(self.uri1)
+ self.assertEqual(val, 0)
+
+ c2[4] = 4
+ self.session.checkpoint(None)
+ val2 = self.get_stat(self.uri2)
+ self.assertEqual(val2, 0)
+
+ val1 = self.get_stat(self.uri1)
+ val3 = self.get_stat(self.uri3)
+ # Assert table 1 does not have the forever timer value, but it is set.
+ # This assumes table 3 has the forever value.
+ self.assertNotEqual(val1, 0)
+ self.assertNotEqual(val3, 0)
+ self.assertLess(val1, val3)
+ # Save the old forever value from table 3.
+ oldval3 = val3
+
+ # Force a checkpoint while the backup cursor is open. Then write again
+ # to table 2. Since table 1 and table 3 are clean again, this should
+ # force both table 1 and table 3 to have the smaller timer.
+ self.session.checkpoint('force=true')
+ val1 = self.get_stat(self.uri1)
+ val3 = self.get_stat(self.uri3)
+ self.assertEqual(val1, 0)
+ self.assertEqual(val3, 0)
+ c2[5] = 5
+ self.session.checkpoint(None)
+ val2 = self.get_stat(self.uri2)
+ self.assertEqual(val2, 0)
+
+ val1 = self.get_stat(self.uri1)
+ val3 = self.get_stat(self.uri3)
+ self.assertNotEqual(val1, 0)
+ self.assertNotEqual(val3, 0)
+ self.assertLess(val3, oldval3)
+ # It is possible that we could span the second timer when processing table
+ # two and table three during the checkpoint. If they're different check
+ # they are within 1 second of each other.
+ if val1 != val3:
+ self.assertTrue(val1 == val3 - 1 or val3 == val1 - 1)
+
+ backup_cursor.close()
+
+ # Repeat the sequence of forcing a checkpoint and then modifying after
+ # closing the backup cursor to check that both tables are now marked
+ # with the forever value.
+ self.session.checkpoint('force=true')
+ val1 = self.get_stat(self.uri1)
+ val3 = self.get_stat(self.uri3)
+ self.assertEqual(val1, 0)
+ self.assertEqual(val3, 0)
+ c2[6] = 6
+ self.session.checkpoint(None)
+ val2 = self.get_stat(self.uri2)
+ self.assertEqual(val2, 0)
+
+ val1 = self.get_stat(self.uri1)
+ val3 = self.get_stat(self.uri3)
+ self.assertNotEqual(val1, 0)
+ self.assertNotEqual(val3, 0)
+ # It is possible that we could span the second timer when processing table
+ # two and table three during the checkpoint. If they're different check
+ # they are within 1 second of each other.
+ if val1 != val3:
+ self.assertTrue(val1 == val3 - 1 or val3 == val1 - 1)
+ self.assertEqual(val3, oldval3)
+
+ self.session.close()
+
+if __name__ == '__main__':
+ wttest.run()
diff --git a/src/third_party/wiredtiger/test/suite/test_config09.py b/src/third_party/wiredtiger/test/suite/test_config09.py
new file mode 100644
index 00000000000..d55c0a8c87d
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_config09.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2020 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# test_config09.py
+# Test the configuration that enables/disables dirty table flushing.
+#
+
+import wiredtiger, wttest
+from wiredtiger import stat
+
+class test_config09(wttest.WiredTigerTestCase):
+ ntables = 50
+ nentries = 5
+ uri = 'table:config09.'
+ conn_config = 'hash=(buckets=256,dhandle_buckets=1024),statistics=(fast)'
+
+ # Create, populate and checkpoint the initial tables.
+ def create_tables(self):
+ for i in range(self.ntables):
+ uri = self.uri + str(i)
+ self.session.create(uri, 'key_format=i,value_format=i')
+ c = self.session.open_cursor(uri)
+ for j in range(self.nentries):
+ c[j] = j
+ c.close()
+ self.session.checkpoint()
+
+ # Update half the tables.
+ def update_tables(self):
+ for i in range(self.ntables//2):
+ uri = self.uri + str(i)
+ c = self.session.open_cursor(uri)
+ for j in range(self.nentries):
+ c[j] = j + 100
+ c.close()
+ self.session.checkpoint()
+
+ # Verify statistics.
+ def get_stat(self, stat):
+ stat_cursor = self.session.open_cursor('statistics:', None, None)
+ val = stat_cursor[stat][2]
+ stat_cursor.close()
+ return val
+
+ def test_config09_invalid(self):
+ self.conn.close()
+
+ # Verify the message when using non-power-of-two values.
+ msg = '/power of 2/'
+ config = 'hash=(buckets=255,dhandle_buckets=1024)'
+ self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
+ lambda: self.wiredtiger_open('.', config), msg)
+ config = 'hash=(buckets=256,dhandle_buckets=1000)'
+ self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
+ lambda: self.wiredtiger_open('.', config), msg)
+ config = 'hash=(dhandle_buckets=1000)'
+ self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
+ lambda: self.wiredtiger_open('.', config), msg)
+
+ def test_config09(self):
+ self.create_tables()
+
+ val = self.get_stat(stat.conn.buckets)
+ self.assertEqual(val, 256)
+ val = self.get_stat(stat.conn.buckets_dh)
+ self.assertEqual(val, 1024)
+
+ self.update_tables()
+ val = self.get_stat(stat.conn.txn_checkpoint_handle_applied)
+ # We cannot assert it is equal to half because there could be other
+ # internal tables in the count. Assert it is less than 75% and at least
+ # half.
+ self.assertGreaterEqual(val, self.ntables // 2)
+ self.assertLess(val, self.ntables // 4 * 3)
+ val = self.get_stat(stat.conn.txn_checkpoint_handle_skipped)
+ self.assertNotEqual(val, 0)
+
+ self.conn.close()
+
+if __name__ == '__main__':
+ wttest.run()
diff --git a/src/third_party/wiredtiger/test/utility/misc.c b/src/third_party/wiredtiger/test/utility/misc.c
index ed54bed74b3..aebc6ae85d7 100644
--- a/src/third_party/wiredtiger/test/utility/misc.c
+++ b/src/third_party/wiredtiger/test/utility/misc.c
@@ -246,14 +246,10 @@ testutil_sleep_wait(uint32_t seconds, pid_t pid)
while (seconds > 0) {
if ((got = waitpid(pid, &status, WNOHANG | WUNTRACED)) == pid) {
if (WIFEXITED(status))
- testutil_die(EINVAL, "Child process %" PRIu64
- " exited early"
- " with status %d",
+ testutil_die(EINVAL, "Child process %" PRIu64 " exited early with status %d",
(uint64_t)pid, WEXITSTATUS(status));
if (WIFSIGNALED(status))
- testutil_die(EINVAL, "Child process %" PRIu64
- " terminated "
- " with signal %d",
+ testutil_die(EINVAL, "Child process %" PRIu64 " terminated with signal %d",
(uint64_t)pid, WTERMSIG(status));
} else if (got == -1)
testutil_die(errno, "waitpid");