@nxtedition/rocksdb 10.1.4 → 10.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +16 -12
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -5
- package/deps/rocksdb/rocksdb/Makefile +38 -15
- package/deps/rocksdb/rocksdb/TARGETS +10 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +58 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +4 -4
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +4 -2
- package/deps/rocksdb/rocksdb/db/builder.cc +2 -2
- package/deps/rocksdb/rocksdb/db/builder.h +1 -1
- package/deps/rocksdb/rocksdb/db/c.cc +205 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +189 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +28 -0
- package/deps/rocksdb/rocksdb/db/column_family.h +17 -0
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +234 -60
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +8 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +11 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +22 -25
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +112 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +72 -21
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +77 -0
- package/deps/rocksdb/rocksdb/db/convenience.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +269 -112
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +107 -43
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +93 -24
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +157 -68
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +56 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +78 -105
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +39 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +21 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +107 -63
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +43 -2
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +4 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_test.cc +10 -2
- package/deps/rocksdb/rocksdb/db/db_test2.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +7 -6
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +92 -2
- package/deps/rocksdb/rocksdb/db/error_handler.cc +34 -39
- package/deps/rocksdb/rocksdb/db/error_handler.h +3 -4
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +6 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +71 -15
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +11 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +383 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +88 -72
- package/deps/rocksdb/rocksdb/db/flush_job.cc +30 -3
- package/deps/rocksdb/rocksdb/db/flush_job.h +14 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +60 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +20 -1
- package/deps/rocksdb/rocksdb/db/log_writer.cc +24 -0
- package/deps/rocksdb/rocksdb/db/log_writer.h +5 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +6 -4
- package/deps/rocksdb/rocksdb/db/memtable.h +10 -10
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +4 -4
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +10 -3
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +8 -10
- package/deps/rocksdb/rocksdb/db/repair.cc +4 -3
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +30 -0
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +9 -0
- package/deps/rocksdb/rocksdb/db/table_cache.cc +17 -2
- package/deps/rocksdb/rocksdb/db/table_cache.h +9 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +9 -2
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +3 -3
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_edit.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -6
- package/deps/rocksdb/rocksdb/db/version_set.cc +54 -31
- package/deps/rocksdb/rocksdb/db/version_set.h +14 -7
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +37 -29
- package/deps/rocksdb/rocksdb/db/wal_manager.h +6 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +54 -23
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +46 -5
- package/deps/rocksdb/rocksdb/db/write_thread.cc +53 -5
- package/deps/rocksdb/rocksdb/db/write_thread.h +36 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +57 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +11 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +8 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +10 -25
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +25 -88
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_filters.cc +93 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_filters.h +16 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +43 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +109 -21
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +8 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +666 -205
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +55 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +18 -16
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +782 -494
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +21 -0
- package/deps/rocksdb/rocksdb/env/env.cc +6 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +0 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +34 -19
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +29 -32
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +41 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +4 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +63 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +16 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +0 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +21 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +76 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +17 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +12 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +31 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/user_write_callback.h +29 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +4 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +17 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +13 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +6 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +8 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +9 -5
- package/deps/rocksdb/rocksdb/options/options.cc +3 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +1 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +2 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +1 -0
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +3 -2
- package/deps/rocksdb/rocksdb/src.mk +4 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +15 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +102 -41
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +15 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +31 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +10 -5
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +11 -15
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +17 -11
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -21
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +9 -11
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -16
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +14 -9
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +82 -41
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +13 -14
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +18 -22
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +51 -13
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +3 -11
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -3
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +9 -10
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +3 -2
- package/deps/rocksdb/rocksdb/table/format.cc +1 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +18 -13
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +5 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +2 -2
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +3 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +8 -7
- package/deps/rocksdb/rocksdb/table/table_reader.h +9 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +1 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +6 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +19 -0
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +434 -110
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +3 -1
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +3 -0
- package/deps/rocksdb/rocksdb/util/aligned_storage.h +24 -0
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/random.cc +2 -1
- package/deps/rocksdb/rocksdb/util/stderr_logger.h +1 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +33 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +7 -0
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +33 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +5 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +10 -3
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +13 -13
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +104 -48
- package/deps/rocksdb/rocksdb/utilities/debug.cc +16 -4
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +647 -235
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -157
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +144 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +45 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector_test.cc +139 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +12 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +105 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +64 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +43 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +154 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +158 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +16 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +9 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +43 -7
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +1 -1
- package/index.js +1 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/util.h +25 -2
- package/.tap/test-results/node_modules/abstract-level/test/chained-batch-test.js.tap +0 -0
- package/.tap/test-results/node_modules/abstract-level/test/get-test.js.tap +0 -0
- package/.tap/test-results/test/abstract-level-test.js.tap +0 -1077
- package/.tap/test-results/test/batch-test.js.tap +0 -12
- package/.tap/test-results/test/chained-batch-gc-test.js.tap +0 -11
- package/.tap/test-results/test/cleanup-hanging-iterators-test.js.tap +0 -135
- package/.tap/test-results/test/clear-gc-test.js.tap +0 -13
- package/.tap/test-results/test/column-test.js.tap +0 -55
- package/.tap/test-results/test/common.js.tap +0 -0
- package/.tap/test-results/test/compression-test.js.tap +0 -30
- package/.tap/test-results/test/db-identity.js.tap +0 -12
- package/.tap/test-results/test/electron.js.tap +0 -0
- package/.tap/test-results/test/env-cleanup-hook-test.js.tap +0 -40
- package/.tap/test-results/test/env-cleanup-hook.js.tap +0 -0
- package/.tap/test-results/test/gc.js.tap +0 -0
- package/.tap/test-results/test/getproperty-test.js.tap +0 -29
- package/.tap/test-results/test/iterator-gc-test.js.tap +0 -15
- package/.tap/test-results/test/iterator-hwm-test.js.tap +0 -131
- package/.tap/test-results/test/iterator-recursion-test.js.tap +0 -12
- package/.tap/test-results/test/iterator-starvation-test.js.tap +0 -73
- package/.tap/test-results/test/iterator-test.js.tap +0 -6
- package/.tap/test-results/test/leak-tester-batch.js.tap +0 -0
- package/.tap/test-results/test/leak-tester-iterator.js.tap +0 -0
- package/.tap/test-results/test/leak-tester.js.tap +0 -0
- package/.tap/test-results/test/lock-test.js.tap +0 -18
- package/.tap/test-results/test/lock.js.tap +0 -0
- package/.tap/test-results/test/make.js.tap +0 -0
- package/.tap/test-results/test/max-rev-merge.js.tap +0 -0
- package/.tap/test-results/test/merge-operator-test.js.tap +0 -12
- package/.tap/test-results/test/mkdir-test.js.tap +0 -15
- package/.tap/test-results/test/segfault-test.js.tap +0 -76
- package/.tap/test-results/test/stack-blower.js.tap +0 -0
- package/deps/rocksdb/rocksdb/README.md +0 -29
- package/deps/rocksdb/rocksdb/microbench/README.md +0 -60
- package/deps/rocksdb/rocksdb/plugin/README.md +0 -43
- package/deps/rocksdb/rocksdb/port/README +0 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
- package/tmp/000099.sst +0 -0
- package/tmp/000102.sst +0 -0
- package/tmp/000103.log +0 -0
- package/tmp/CURRENT +0 -1
- package/tmp/IDENTITY +0 -1
- package/tmp/LOCK +0 -0
- package/tmp/MANIFEST-000104 +0 -0
- package/tmp/OPTIONS-000098 +0 -207
- package/tmp/OPTIONS-000106 +0 -207
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
// Use of this source code is governed by a BSD-style license that can be
|
|
8
8
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
9
9
|
|
|
10
|
+
#include "rocksdb/io_status.h"
|
|
10
11
|
#ifdef GFLAGS
|
|
11
12
|
#pragma once
|
|
12
13
|
|
|
13
14
|
#include "db_stress_tool/db_stress_common.h"
|
|
14
15
|
#include "db_stress_tool/db_stress_shared_state.h"
|
|
16
|
+
#include "rocksdb/experimental.h"
|
|
15
17
|
|
|
16
18
|
namespace ROCKSDB_NAMESPACE {
|
|
17
19
|
class SystemClock;
|
|
@@ -19,12 +21,13 @@ class Transaction;
|
|
|
19
21
|
class TransactionDB;
|
|
20
22
|
class OptimisticTransactionDB;
|
|
21
23
|
struct TransactionDBOptions;
|
|
24
|
+
using experimental::SstQueryFilterConfigsManager;
|
|
22
25
|
|
|
23
26
|
class StressTest {
|
|
24
27
|
public:
|
|
25
28
|
StressTest();
|
|
26
29
|
|
|
27
|
-
virtual ~StressTest()
|
|
30
|
+
virtual ~StressTest() {}
|
|
28
31
|
|
|
29
32
|
std::shared_ptr<Cache> NewCache(size_t capacity, int32_t num_shard_bits);
|
|
30
33
|
|
|
@@ -41,8 +44,25 @@ class StressTest {
|
|
|
41
44
|
virtual void VerifyDb(ThreadState* thread) const = 0;
|
|
42
45
|
virtual void ContinuouslyVerifyDb(ThreadState* /*thread*/) const = 0;
|
|
43
46
|
void PrintStatistics();
|
|
47
|
+
bool MightHaveUnsyncedDataLoss() {
|
|
48
|
+
return FLAGS_sync_fault_injection || FLAGS_disable_wal ||
|
|
49
|
+
FLAGS_manual_wal_flush_one_in > 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
void CleanUp();
|
|
44
53
|
|
|
45
54
|
protected:
|
|
55
|
+
static int GetMinInjectedErrorCount(int error_count_1, int error_count_2) {
|
|
56
|
+
if (error_count_1 > 0 && error_count_2 > 0) {
|
|
57
|
+
return std::min(error_count_1, error_count_2);
|
|
58
|
+
} else if (error_count_1 > 0) {
|
|
59
|
+
return error_count_1;
|
|
60
|
+
} else if (error_count_2 > 0) {
|
|
61
|
+
return error_count_2;
|
|
62
|
+
} else {
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
46
66
|
Status AssertSame(DB* db, ColumnFamilyHandle* cf,
|
|
47
67
|
ThreadState::SnapshotState& snap_state);
|
|
48
68
|
|
|
@@ -169,6 +189,20 @@ class StressTest {
|
|
|
169
189
|
const std::vector<int>& rand_column_families,
|
|
170
190
|
const std::vector<int64_t>& rand_keys);
|
|
171
191
|
|
|
192
|
+
// Given a key K, this creates an attribute group iterator which scans to K
|
|
193
|
+
// and then does a random sequence of Next/Prev operations. Called only when
|
|
194
|
+
// use_attribute_group=1
|
|
195
|
+
virtual Status TestIterateAttributeGroups(
|
|
196
|
+
ThreadState* thread, const ReadOptions& read_opts,
|
|
197
|
+
const std::vector<int>& rand_column_families,
|
|
198
|
+
const std::vector<int64_t>& rand_keys);
|
|
199
|
+
|
|
200
|
+
template <typename IterType, typename NewIterFunc, typename VerifyFunc>
|
|
201
|
+
Status TestIterateImpl(ThreadState* thread, const ReadOptions& read_opts,
|
|
202
|
+
const std::vector<int>& rand_column_families,
|
|
203
|
+
const std::vector<int64_t>& rand_keys,
|
|
204
|
+
NewIterFunc new_iter_func, VerifyFunc verify_func);
|
|
205
|
+
|
|
172
206
|
virtual Status TestIterateAgainstExpected(
|
|
173
207
|
ThreadState* /* thread */, const ReadOptions& /* read_opts */,
|
|
174
208
|
const std::vector<int>& /* rand_column_families */,
|
|
@@ -192,10 +226,12 @@ class StressTest {
|
|
|
192
226
|
// diverged = true if the two iterator is already diverged.
|
|
193
227
|
// True if verification passed, false if not.
|
|
194
228
|
// op_logs is the information to print when validation fails.
|
|
229
|
+
template <typename IterType, typename VerifyFuncType>
|
|
195
230
|
void VerifyIterator(ThreadState* thread, ColumnFamilyHandle* cmp_cfh,
|
|
196
|
-
const ReadOptions& ro,
|
|
231
|
+
const ReadOptions& ro, IterType* iter, Iterator* cmp_iter,
|
|
197
232
|
LastIterateOp op, const Slice& seek_key,
|
|
198
|
-
const std::string& op_logs,
|
|
233
|
+
const std::string& op_logs, VerifyFuncType verifyFunc,
|
|
234
|
+
bool* diverged);
|
|
199
235
|
|
|
200
236
|
virtual Status TestBackupRestore(ThreadState* thread,
|
|
201
237
|
const std::vector<int>& rand_column_families,
|
|
@@ -224,13 +260,13 @@ class StressTest {
|
|
|
224
260
|
|
|
225
261
|
Status MaybeReleaseSnapshots(ThreadState* thread, uint64_t i);
|
|
226
262
|
|
|
227
|
-
Status
|
|
228
|
-
Status
|
|
229
|
-
Status
|
|
230
|
-
Status
|
|
263
|
+
Status TestGetLiveFiles() const;
|
|
264
|
+
Status TestGetLiveFilesMetaData() const;
|
|
265
|
+
Status TestGetLiveFilesStorageInfo() const;
|
|
266
|
+
Status TestGetAllColumnFamilyMetaData() const;
|
|
231
267
|
|
|
232
|
-
Status
|
|
233
|
-
Status
|
|
268
|
+
Status TestGetSortedWalFiles() const;
|
|
269
|
+
Status TestGetCurrentWalFile() const;
|
|
234
270
|
void TestGetProperty(ThreadState* thread) const;
|
|
235
271
|
Status TestGetPropertiesOfAllTables() const;
|
|
236
272
|
|
|
@@ -245,6 +281,12 @@ class StressTest {
|
|
|
245
281
|
return Status::NotSupported("TestCustomOperations() must be overridden");
|
|
246
282
|
}
|
|
247
283
|
|
|
284
|
+
bool IsErrorInjectedAndRetryable(const Status& error_s) const {
|
|
285
|
+
assert(!error_s.ok());
|
|
286
|
+
return error_s.getState() && std::strstr(error_s.getState(), "inject") &&
|
|
287
|
+
!status_to_io_status(Status(error_s)).GetDataLoss();
|
|
288
|
+
}
|
|
289
|
+
|
|
248
290
|
void ProcessStatus(SharedState* shared, std::string msg, const Status& s,
|
|
249
291
|
bool ignore_injected_error = true) const;
|
|
250
292
|
|
|
@@ -303,6 +345,7 @@ class StressTest {
|
|
|
303
345
|
std::unordered_map<std::string, std::vector<std::string>> options_table_;
|
|
304
346
|
std::vector<std::string> options_index_;
|
|
305
347
|
std::atomic<bool> db_preload_finished_;
|
|
348
|
+
std::shared_ptr<SstQueryFilterConfigsManager::Factory> sqfc_factory_;
|
|
306
349
|
|
|
307
350
|
// Fields used for continuous verification from another thread
|
|
308
351
|
DB* cmp_db_;
|
|
@@ -344,7 +387,9 @@ void InitializeOptionsFromFlags(
|
|
|
344
387
|
// from OPTIONS file.
|
|
345
388
|
void InitializeOptionsGeneral(
|
|
346
389
|
const std::shared_ptr<Cache>& cache,
|
|
347
|
-
const std::shared_ptr<const FilterPolicy>& filter_policy,
|
|
390
|
+
const std::shared_ptr<const FilterPolicy>& filter_policy,
|
|
391
|
+
const std::shared_ptr<SstQueryFilterConfigsManager::Factory>& sqfc_factory,
|
|
392
|
+
Options& options);
|
|
348
393
|
|
|
349
394
|
// If no OPTIONS file is specified, set up `options` so that we can test
|
|
350
395
|
// user-defined timestamp which requires `-user_timestamp_size=8`.
|
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
// NOTE that if FLAGS_test_batches_snapshots is set, the test will have
|
|
21
21
|
// different behavior. See comment of the flag for details.
|
|
22
22
|
|
|
23
|
-
#include "db_stress_tool/db_stress_shared_state.h"
|
|
24
23
|
#ifdef GFLAGS
|
|
25
24
|
#include "db_stress_tool/db_stress_common.h"
|
|
26
25
|
#include "db_stress_tool/db_stress_driver.h"
|
|
26
|
+
#include "db_stress_tool/db_stress_shared_state.h"
|
|
27
27
|
#include "rocksdb/convenience.h"
|
|
28
28
|
#include "utilities/fault_injection_fs.h"
|
|
29
29
|
|
|
@@ -82,16 +82,18 @@ int db_stress_tool(int argc, char** argv) {
|
|
|
82
82
|
dbsl_env_wrapper_guard = std::make_shared<CompositeEnvWrapper>(raw_env);
|
|
83
83
|
db_stress_listener_env = dbsl_env_wrapper_guard.get();
|
|
84
84
|
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
FLAGS_open_write_fault_one_in ||
|
|
85
|
+
if (FLAGS_open_metadata_read_fault_one_in ||
|
|
86
|
+
FLAGS_open_metadata_write_fault_one_in || FLAGS_open_read_fault_one_in ||
|
|
87
|
+
FLAGS_open_write_fault_one_in || FLAGS_metadata_read_fault_one_in ||
|
|
88
|
+
FLAGS_metadata_write_fault_one_in || FLAGS_read_fault_one_in ||
|
|
89
|
+
FLAGS_write_fault_one_in || FLAGS_sync_fault_injection) {
|
|
88
90
|
FaultInjectionTestFS* fs =
|
|
89
91
|
new FaultInjectionTestFS(raw_env->GetFileSystem());
|
|
90
92
|
fault_fs_guard.reset(fs);
|
|
91
|
-
// Set it to direct writable here to
|
|
92
|
-
//
|
|
93
|
-
//
|
|
94
|
-
//
|
|
93
|
+
// Set it to direct writable here to initially bypass any fault injection
|
|
94
|
+
// during DB open This will correspondingly be overwritten in
|
|
95
|
+
// StressTest::Open() for open fault injection and in RunStressTestImpl()
|
|
96
|
+
// for proper fault injection setup.
|
|
95
97
|
fault_fs_guard->SetFilesystemDirectWritable(true);
|
|
96
98
|
fault_env_guard =
|
|
97
99
|
std::make_shared<CompositeEnvWrapper>(raw_env, fault_fs_guard);
|
|
@@ -301,11 +303,11 @@ int db_stress_tool(int argc, char** argv) {
|
|
|
301
303
|
}
|
|
302
304
|
|
|
303
305
|
if (FLAGS_use_put_entity_one_in > 0 &&
|
|
304
|
-
(FLAGS_use_full_merge_v1 ||
|
|
306
|
+
(FLAGS_use_full_merge_v1 || FLAGS_test_multi_ops_txns ||
|
|
305
307
|
FLAGS_user_timestamp_size > 0)) {
|
|
306
308
|
fprintf(stderr,
|
|
307
|
-
"Wide columns are incompatible with V1 Merge,
|
|
308
|
-
"user-defined timestamps\n");
|
|
309
|
+
"Wide columns are incompatible with V1 Merge, the multi-op "
|
|
310
|
+
"transaction test, and user-defined timestamps\n");
|
|
309
311
|
exit(1);
|
|
310
312
|
}
|
|
311
313
|
|
|
@@ -360,11 +362,11 @@ int db_stress_tool(int argc, char** argv) {
|
|
|
360
362
|
// Initialize the Zipfian pre-calculated array
|
|
361
363
|
InitializeHotKeyGenerator(FLAGS_hot_key_alpha);
|
|
362
364
|
shared.reset(new SharedState(db_stress_env, stress.get()));
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
365
|
+
bool run_stress_test = RunStressTest(shared.get());
|
|
366
|
+
// Close DB in CleanUp() before destructor to prevent race between destructor
|
|
367
|
+
// and operations in listener callbacks (e.g. MultiOpsTxnsStressListener).
|
|
368
|
+
stress->CleanUp();
|
|
369
|
+
return run_stress_test ? 0 : 1;
|
|
368
370
|
}
|
|
369
371
|
|
|
370
372
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -432,6 +432,13 @@ Status MultiOpsTxnsStressTest::TestIterate(
|
|
|
432
432
|
return s;
|
|
433
433
|
}
|
|
434
434
|
|
|
435
|
+
Status MultiOpsTxnsStressTest::TestIterateAttributeGroups(
|
|
436
|
+
ThreadState* /*thread*/, const ReadOptions& /*read_opts*/,
|
|
437
|
+
const std::vector<int>& /*rand_column_families*/,
|
|
438
|
+
const std::vector<int64_t>& /*rand_keys*/) {
|
|
439
|
+
return Status::NotSupported();
|
|
440
|
+
}
|
|
441
|
+
|
|
435
442
|
// Not intended for use.
|
|
436
443
|
Status MultiOpsTxnsStressTest::TestPut(ThreadState* /*thread*/,
|
|
437
444
|
WriteOptions& /*write_opts*/,
|
|
@@ -749,6 +756,10 @@ Status MultiOpsTxnsStressTest::SecondaryKeyUpdateTxn(ThreadState* thread,
|
|
|
749
756
|
ropts.iterate_upper_bound = &iter_ub;
|
|
750
757
|
ropts.rate_limiter_priority =
|
|
751
758
|
FLAGS_rate_limit_user_ops ? Env::IO_USER : Env::IO_TOTAL;
|
|
759
|
+
if (FLAGS_use_sqfc_for_range_queries) {
|
|
760
|
+
ropts.table_filter =
|
|
761
|
+
sqfc_factory_->GetTableFilterForRangeQuery(old_sk_prefix, iter_ub);
|
|
762
|
+
}
|
|
752
763
|
it = txn->GetIterator(ropts);
|
|
753
764
|
|
|
754
765
|
assert(it);
|
|
@@ -1107,6 +1118,10 @@ void MultiOpsTxnsStressTest::VerifyDb(ThreadState* thread) const {
|
|
|
1107
1118
|
ropts.snapshot = snapshot;
|
|
1108
1119
|
ropts.total_order_seek = true;
|
|
1109
1120
|
ropts.iterate_upper_bound = &iter_ub;
|
|
1121
|
+
if (FLAGS_use_sqfc_for_range_queries) {
|
|
1122
|
+
ropts.table_filter =
|
|
1123
|
+
sqfc_factory_->GetTableFilterForRangeQuery(start_key, iter_ub);
|
|
1124
|
+
}
|
|
1110
1125
|
|
|
1111
1126
|
std::unique_ptr<Iterator> it(db_->NewIterator(ropts));
|
|
1112
1127
|
for (it->Seek(start_key); it->Valid(); it->Next()) {
|
|
@@ -1615,6 +1630,10 @@ void MultiOpsTxnsStressTest::ScanExistingDb(SharedState* shared, int threads) {
|
|
|
1615
1630
|
ropts.iterate_lower_bound = &pk_lb;
|
|
1616
1631
|
ropts.iterate_upper_bound = &pk_ub;
|
|
1617
1632
|
ropts.total_order_seek = true;
|
|
1633
|
+
if (FLAGS_use_sqfc_for_range_queries) {
|
|
1634
|
+
ropts.table_filter =
|
|
1635
|
+
sqfc_factory_->GetTableFilterForRangeQuery(pk_lb, pk_ub);
|
|
1636
|
+
}
|
|
1618
1637
|
std::unique_ptr<Iterator> it(db_->NewIterator(ropts));
|
|
1619
1638
|
|
|
1620
1639
|
for (it->SeekToFirst(); it->Valid(); it->Next()) {
|
|
@@ -228,6 +228,11 @@ class MultiOpsTxnsStressTest : public StressTest {
|
|
|
228
228
|
const std::vector<int>& rand_column_families,
|
|
229
229
|
const std::vector<int64_t>& rand_keys) override;
|
|
230
230
|
|
|
231
|
+
Status TestIterateAttributeGroups(
|
|
232
|
+
ThreadState* thread, const ReadOptions& read_opts,
|
|
233
|
+
const std::vector<int>& rand_column_families,
|
|
234
|
+
const std::vector<int64_t>& rand_keys) override;
|
|
235
|
+
|
|
231
236
|
Status TestPut(ThreadState* thread, WriteOptions& write_opts,
|
|
232
237
|
const ReadOptions& read_opts, const std::vector<int>& cf_ids,
|
|
233
238
|
const std::vector<int64_t>& keys, char (&value)[100]) override;
|