@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
|
@@ -71,22 +71,53 @@ class DbStressListener : public EventListener {
|
|
|
71
71
|
VerifyFilePath(info.file_path);
|
|
72
72
|
// pretending doing some work here
|
|
73
73
|
RandomSleep();
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
if (fault_fs_guard) {
|
|
75
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
76
|
+
FaultInjectionIOType::kRead);
|
|
77
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
78
|
+
FaultInjectionIOType::kWrite);
|
|
79
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
80
|
+
FaultInjectionIOType::kMetadataRead);
|
|
81
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
82
|
+
FaultInjectionIOType::kMetadataWrite);
|
|
77
83
|
}
|
|
78
84
|
}
|
|
79
85
|
|
|
80
86
|
void OnFlushBegin(DB* /*db*/,
|
|
81
87
|
const FlushJobInfo& /*flush_job_info*/) override {
|
|
82
88
|
RandomSleep();
|
|
83
|
-
if (
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
fault_fs_guard->
|
|
89
|
+
if (fault_fs_guard) {
|
|
90
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
91
|
+
FaultInjectionIOType::kRead, static_cast<uint32_t>(FLAGS_seed),
|
|
92
|
+
FLAGS_read_fault_one_in,
|
|
93
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
94
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
95
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
96
|
+
FaultInjectionIOType::kRead);
|
|
97
|
+
|
|
98
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
99
|
+
FaultInjectionIOType::kWrite, static_cast<uint32_t>(FLAGS_seed),
|
|
100
|
+
FLAGS_write_fault_one_in,
|
|
101
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
102
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
103
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
104
|
+
FaultInjectionIOType::kWrite);
|
|
105
|
+
|
|
106
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
107
|
+
FaultInjectionIOType::kMetadataRead,
|
|
108
|
+
static_cast<uint32_t>(FLAGS_seed), FLAGS_metadata_read_fault_one_in,
|
|
109
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
110
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
111
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
112
|
+
FaultInjectionIOType::kMetadataRead);
|
|
113
|
+
|
|
114
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
115
|
+
FaultInjectionIOType::kMetadataWrite,
|
|
116
|
+
static_cast<uint32_t>(FLAGS_seed), FLAGS_metadata_write_fault_one_in,
|
|
117
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
118
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
119
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
120
|
+
FaultInjectionIOType::kMetadataWrite);
|
|
90
121
|
}
|
|
91
122
|
}
|
|
92
123
|
|
|
@@ -112,20 +143,51 @@ class DbStressListener : public EventListener {
|
|
|
112
143
|
}
|
|
113
144
|
|
|
114
145
|
void OnSubcompactionBegin(const SubcompactionJobInfo& /* si */) override {
|
|
115
|
-
if (
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
fault_fs_guard->
|
|
146
|
+
if (fault_fs_guard) {
|
|
147
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
148
|
+
FaultInjectionIOType::kRead, static_cast<uint32_t>(FLAGS_seed),
|
|
149
|
+
FLAGS_read_fault_one_in,
|
|
150
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
151
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
152
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
153
|
+
FaultInjectionIOType::kRead);
|
|
154
|
+
|
|
155
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
156
|
+
FaultInjectionIOType::kWrite, static_cast<uint32_t>(FLAGS_seed),
|
|
157
|
+
FLAGS_write_fault_one_in,
|
|
158
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
159
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
160
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
161
|
+
FaultInjectionIOType::kWrite);
|
|
162
|
+
|
|
163
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
164
|
+
FaultInjectionIOType::kMetadataRead,
|
|
165
|
+
static_cast<uint32_t>(FLAGS_seed), FLAGS_metadata_read_fault_one_in,
|
|
166
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
167
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
168
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
169
|
+
FaultInjectionIOType::kMetadataRead);
|
|
170
|
+
|
|
171
|
+
fault_fs_guard->SetThreadLocalErrorContext(
|
|
172
|
+
FaultInjectionIOType::kMetadataWrite,
|
|
173
|
+
static_cast<uint32_t>(FLAGS_seed), FLAGS_metadata_write_fault_one_in,
|
|
174
|
+
FLAGS_inject_error_severity == 1 /* retryable */,
|
|
175
|
+
FLAGS_inject_error_severity == 2 /* has_data_loss*/);
|
|
176
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
177
|
+
FaultInjectionIOType::kMetadataWrite);
|
|
122
178
|
}
|
|
123
179
|
}
|
|
124
180
|
|
|
125
181
|
void OnSubcompactionCompleted(const SubcompactionJobInfo& /* si */) override {
|
|
126
|
-
if (
|
|
127
|
-
|
|
128
|
-
|
|
182
|
+
if (fault_fs_guard) {
|
|
183
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
184
|
+
FaultInjectionIOType::kRead);
|
|
185
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
186
|
+
FaultInjectionIOType::kWrite);
|
|
187
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
188
|
+
FaultInjectionIOType::kMetadataRead);
|
|
189
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
190
|
+
FaultInjectionIOType::kMetadataWrite);
|
|
129
191
|
}
|
|
130
192
|
}
|
|
131
193
|
|
|
@@ -211,10 +273,36 @@ class DbStressListener : public EventListener {
|
|
|
211
273
|
Status /* bg_error */,
|
|
212
274
|
bool* /* auto_recovery */) override {
|
|
213
275
|
RandomSleep();
|
|
276
|
+
if (FLAGS_error_recovery_with_no_fault_injection && fault_fs_guard) {
|
|
277
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
278
|
+
FaultInjectionIOType::kRead);
|
|
279
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
280
|
+
FaultInjectionIOType::kWrite);
|
|
281
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
282
|
+
FaultInjectionIOType::kMetadataRead);
|
|
283
|
+
fault_fs_guard->DisableThreadLocalErrorInjection(
|
|
284
|
+
FaultInjectionIOType::kMetadataWrite);
|
|
285
|
+
// TODO(hx235): only exempt the flush thread during error recovery instead
|
|
286
|
+
// of all the flush threads from error injection
|
|
287
|
+
fault_fs_guard->SetIOActivtiesExcludedFromFaultInjection(
|
|
288
|
+
{Env::IOActivity::kFlush});
|
|
289
|
+
}
|
|
214
290
|
}
|
|
215
291
|
|
|
216
|
-
void
|
|
292
|
+
void OnErrorRecoveryEnd(
|
|
293
|
+
const BackgroundErrorRecoveryInfo& /*info*/) override {
|
|
217
294
|
RandomSleep();
|
|
295
|
+
if (FLAGS_error_recovery_with_no_fault_injection && fault_fs_guard) {
|
|
296
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
297
|
+
FaultInjectionIOType::kRead);
|
|
298
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
299
|
+
FaultInjectionIOType::kWrite);
|
|
300
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
301
|
+
FaultInjectionIOType::kMetadataRead);
|
|
302
|
+
fault_fs_guard->EnableThreadLocalErrorInjection(
|
|
303
|
+
FaultInjectionIOType::kMetadataWrite);
|
|
304
|
+
fault_fs_guard->SetIOActivtiesExcludedFromFaultInjection({});
|
|
305
|
+
}
|
|
218
306
|
}
|
|
219
307
|
|
|
220
308
|
protected:
|
|
@@ -29,8 +29,16 @@ DECLARE_int32(clear_column_family_one_in);
|
|
|
29
29
|
DECLARE_bool(test_batches_snapshots);
|
|
30
30
|
DECLARE_int32(compaction_thread_pool_adjust_interval);
|
|
31
31
|
DECLARE_int32(continuous_verification_interval);
|
|
32
|
+
DECLARE_bool(error_recovery_with_no_fault_injection);
|
|
33
|
+
DECLARE_bool(sync_fault_injection);
|
|
34
|
+
DECLARE_bool(disable_wal);
|
|
35
|
+
DECLARE_int32(manual_wal_flush_one_in);
|
|
36
|
+
DECLARE_int32(metadata_read_fault_one_in);
|
|
37
|
+
DECLARE_int32(metadata_write_fault_one_in);
|
|
32
38
|
DECLARE_int32(read_fault_one_in);
|
|
33
39
|
DECLARE_int32(write_fault_one_in);
|
|
40
|
+
DECLARE_bool(exclude_wal_from_write_fault_injection);
|
|
41
|
+
DECLARE_int32(open_metadata_read_fault_one_in);
|
|
34
42
|
DECLARE_int32(open_metadata_write_fault_one_in);
|
|
35
43
|
DECLARE_int32(open_write_fault_one_in);
|
|
36
44
|
DECLARE_int32(open_read_fault_one_in);
|