@nxtedition/rocksdb 15.4.1 → 16.0.0
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 +70 -23
- package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
- package/deps/rocksdb/rocksdb/BUCK +42 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
- package/deps/rocksdb/rocksdb/Makefile +59 -32
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
- package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
- package/deps/rocksdb/rocksdb/db/builder.h +7 -0
- package/deps/rocksdb/rocksdb/db/c.cc +373 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
- package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
- package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
- package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
- package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
- package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
- package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
- package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
- package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
- package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
- package/deps/rocksdb/rocksdb/env/env.cc +1 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
- package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
- package/deps/rocksdb/rocksdb/folly.mk +22 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
- package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
- package/deps/rocksdb/rocksdb/options/options.cc +5 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
- package/deps/rocksdb/rocksdb/port/lang.h +4 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
- package/deps/rocksdb/rocksdb/src.mk +12 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
- package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
- package/deps/rocksdb/rocksdb/table/format.cc +27 -15
- package/deps/rocksdb/rocksdb/table/format.h +41 -15
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
- package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
- package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
- package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
- package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
- package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
- package/deps/rocksdb/rocksdb/util/coding.h +14 -27
- package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
- package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
- package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
- package/deps/rocksdb/rocksdb/util/math.h +3 -1
- package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
- package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
- package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
- package/deps/rocksdb/rocksdb/util/status.cc +3 -1
- package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
- package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
- package/deps/rocksdb/rocksdb.gyp +7 -0
- package/index.js +70 -10
- package/iterator.js +25 -3
- package/max_rev_operator.h +9 -5
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
|
@@ -98,7 +98,7 @@ IOStatus TestFSDirectory::Fsync(const IOOptions& options, IODebugContext* dbg) {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
101
|
-
FaultInjectionIOType::kMetadataWrite, options);
|
|
101
|
+
FaultInjectionIOType::kMetadataWrite, options, "Fsync", dirname_);
|
|
102
102
|
if (!s.ok()) {
|
|
103
103
|
return s;
|
|
104
104
|
}
|
|
@@ -114,7 +114,7 @@ IOStatus TestFSDirectory::Close(const IOOptions& options, IODebugContext* dbg) {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
117
|
-
FaultInjectionIOType::kMetadataWrite, options);
|
|
117
|
+
FaultInjectionIOType::kMetadataWrite, options, "Close", dirname_);
|
|
118
118
|
if (!s.ok()) {
|
|
119
119
|
return s;
|
|
120
120
|
}
|
|
@@ -130,7 +130,8 @@ IOStatus TestFSDirectory::FsyncWithDirOptions(
|
|
|
130
130
|
return fs_->GetError();
|
|
131
131
|
}
|
|
132
132
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
133
|
-
FaultInjectionIOType::kMetadataWrite, options
|
|
133
|
+
FaultInjectionIOType::kMetadataWrite, options, "FsyncWithDirOptions",
|
|
134
|
+
dirname_);
|
|
134
135
|
if (!s.ok()) {
|
|
135
136
|
return s;
|
|
136
137
|
}
|
|
@@ -169,7 +170,8 @@ IOStatus TestFSWritableFile::Append(const Slice& data, const IOOptions& options,
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
172
|
-
FaultInjectionIOType::kWrite, options, state_.filename_,
|
|
173
|
+
FaultInjectionIOType::kWrite, options, "Append", state_.filename_,
|
|
174
|
+
fault_injection_detail::SizeAndHead(data),
|
|
173
175
|
FaultInjectionTestFS::ErrorOperation::kAppend);
|
|
174
176
|
if (!s.ok()) {
|
|
175
177
|
return s;
|
|
@@ -205,7 +207,8 @@ IOStatus TestFSWritableFile::Append(
|
|
|
205
207
|
}
|
|
206
208
|
|
|
207
209
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
208
|
-
FaultInjectionIOType::kWrite, options, state_.filename_,
|
|
210
|
+
FaultInjectionIOType::kWrite, options, "Append", state_.filename_,
|
|
211
|
+
fault_injection_detail::SizeAndHead(data),
|
|
209
212
|
FaultInjectionTestFS::ErrorOperation::kAppend);
|
|
210
213
|
if (!s.ok()) {
|
|
211
214
|
return s;
|
|
@@ -244,8 +247,9 @@ IOStatus TestFSWritableFile::Truncate(uint64_t size, const IOOptions& options,
|
|
|
244
247
|
if (!fs_->IsFilesystemActive()) {
|
|
245
248
|
return fs_->GetError();
|
|
246
249
|
}
|
|
247
|
-
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
248
|
-
|
|
250
|
+
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
251
|
+
FaultInjectionIOType::kWrite, options, "Truncate", state_.filename_,
|
|
252
|
+
fault_injection_detail::Size(size));
|
|
249
253
|
if (!s.ok()) {
|
|
250
254
|
return s;
|
|
251
255
|
}
|
|
@@ -269,7 +273,8 @@ IOStatus TestFSWritableFile::PositionedAppend(const Slice& data,
|
|
|
269
273
|
return IOStatus::Corruption("Data is corrupted!");
|
|
270
274
|
}
|
|
271
275
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
272
|
-
FaultInjectionIOType::kWrite, options,
|
|
276
|
+
FaultInjectionIOType::kWrite, options, "PositionedAppend",
|
|
277
|
+
state_.filename_, fault_injection_detail::OffsetSizeAndHead(offset, data),
|
|
273
278
|
FaultInjectionTestFS::ErrorOperation::kPositionedAppend);
|
|
274
279
|
if (!s.ok()) {
|
|
275
280
|
return s;
|
|
@@ -296,7 +301,8 @@ IOStatus TestFSWritableFile::PositionedAppend(
|
|
|
296
301
|
return IOStatus::Corruption("Data is corrupted!");
|
|
297
302
|
}
|
|
298
303
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
299
|
-
FaultInjectionIOType::kWrite, options,
|
|
304
|
+
FaultInjectionIOType::kWrite, options, "PositionedAppend",
|
|
305
|
+
state_.filename_, fault_injection_detail::OffsetSizeAndHead(offset, data),
|
|
300
306
|
FaultInjectionTestFS::ErrorOperation::kPositionedAppend);
|
|
301
307
|
if (!s.ok()) {
|
|
302
308
|
return s;
|
|
@@ -332,7 +338,7 @@ IOStatus TestFSWritableFile::Close(const IOOptions& options,
|
|
|
332
338
|
return fs_->GetError();
|
|
333
339
|
}
|
|
334
340
|
IOStatus io_s = fs_->MaybeInjectThreadLocalError(
|
|
335
|
-
FaultInjectionIOType::kMetadataWrite, options);
|
|
341
|
+
FaultInjectionIOType::kMetadataWrite, options, "Close", state_.filename_);
|
|
336
342
|
if (!io_s.ok()) {
|
|
337
343
|
return io_s;
|
|
338
344
|
}
|
|
@@ -460,7 +466,10 @@ IOStatus TestFSRandomRWFile::Sync(const IOOptions& options,
|
|
|
460
466
|
TestFSRandomAccessFile::TestFSRandomAccessFile(
|
|
461
467
|
const std::string& fname, std::unique_ptr<FSRandomAccessFile>&& f,
|
|
462
468
|
FaultInjectionTestFS* fs)
|
|
463
|
-
:
|
|
469
|
+
: fname_(fname),
|
|
470
|
+
target_(std::move(f)),
|
|
471
|
+
fs_(fs),
|
|
472
|
+
is_sst_(EndsWith(fname, ".sst")) {
|
|
464
473
|
assert(target_ != nullptr);
|
|
465
474
|
}
|
|
466
475
|
|
|
@@ -473,7 +482,8 @@ IOStatus TestFSRandomAccessFile::Read(uint64_t offset, size_t n,
|
|
|
473
482
|
return fs_->GetError();
|
|
474
483
|
}
|
|
475
484
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
476
|
-
FaultInjectionIOType::kRead, options, "",
|
|
485
|
+
FaultInjectionIOType::kRead, options, "Read", fname_,
|
|
486
|
+
fault_injection_detail::OffsetAndSize(offset, n),
|
|
477
487
|
FaultInjectionTestFS::ErrorOperation::kRead, result, use_direct_io(),
|
|
478
488
|
scratch, /*need_count_increase=*/true,
|
|
479
489
|
/*fault_injected=*/nullptr);
|
|
@@ -498,7 +508,8 @@ IOStatus TestFSRandomAccessFile::ReadAsync(
|
|
|
498
508
|
}
|
|
499
509
|
if (res_status.ok()) {
|
|
500
510
|
res_status = fs_->MaybeInjectThreadLocalError(
|
|
501
|
-
FaultInjectionIOType::kRead, opts, "",
|
|
511
|
+
FaultInjectionIOType::kRead, opts, "ReadAsync", fname_,
|
|
512
|
+
fault_injection_detail::OffsetAndSize(req.offset, req.len),
|
|
502
513
|
FaultInjectionTestFS::ErrorOperation::kRead, &res.result,
|
|
503
514
|
use_direct_io(), req.scratch, /*need_count_increase=*/true,
|
|
504
515
|
/*fault_injected=*/nullptr);
|
|
@@ -538,7 +549,9 @@ IOStatus TestFSRandomAccessFile::MultiRead(FSReadRequest* reqs, size_t num_reqs,
|
|
|
538
549
|
}
|
|
539
550
|
bool this_injected_error;
|
|
540
551
|
reqs[i].status = fs_->MaybeInjectThreadLocalError(
|
|
541
|
-
FaultInjectionIOType::kRead, options, "",
|
|
552
|
+
FaultInjectionIOType::kRead, options, "MultiRead", fname_,
|
|
553
|
+
fault_injection_detail::ReqOffsetAndSize(i, reqs[i].offset,
|
|
554
|
+
reqs[i].len),
|
|
542
555
|
FaultInjectionTestFS::ErrorOperation::kRead, &(reqs[i].result),
|
|
543
556
|
use_direct_io(), reqs[i].scratch,
|
|
544
557
|
/*need_count_increase=*/true,
|
|
@@ -547,7 +560,8 @@ IOStatus TestFSRandomAccessFile::MultiRead(FSReadRequest* reqs, size_t num_reqs,
|
|
|
547
560
|
}
|
|
548
561
|
if (s.ok()) {
|
|
549
562
|
s = fs_->MaybeInjectThreadLocalError(
|
|
550
|
-
FaultInjectionIOType::kRead, options, "",
|
|
563
|
+
FaultInjectionIOType::kRead, options, "MultiRead", "",
|
|
564
|
+
fault_injection_detail::Count(num_reqs),
|
|
551
565
|
FaultInjectionTestFS::ErrorOperation::kMultiRead, nullptr,
|
|
552
566
|
use_direct_io(), nullptr, /*need_count_increase=*/!injected_error,
|
|
553
567
|
/*fault_injected=*/nullptr);
|
|
@@ -617,7 +631,8 @@ IOStatus TestFSSequentialFile::Read(size_t n, const IOOptions& options,
|
|
|
617
631
|
Slice* result, char* scratch,
|
|
618
632
|
IODebugContext* dbg) {
|
|
619
633
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
620
|
-
FaultInjectionIOType::kRead, options, "",
|
|
634
|
+
FaultInjectionIOType::kRead, options, "Read", fname_,
|
|
635
|
+
fault_injection_detail::Size(n),
|
|
621
636
|
FaultInjectionTestFS::ErrorOperation::kRead, result, use_direct_io(),
|
|
622
637
|
scratch, true /*need_count_increase=*/, nullptr /* fault_injected*/);
|
|
623
638
|
if (!s.ok()) {
|
|
@@ -768,7 +783,8 @@ IOStatus TestFSSequentialFile::PositionedRead(uint64_t offset, size_t n,
|
|
|
768
783
|
Slice* result, char* scratch,
|
|
769
784
|
IODebugContext* dbg) {
|
|
770
785
|
IOStatus s = fs_->MaybeInjectThreadLocalError(
|
|
771
|
-
FaultInjectionIOType::kRead, options, "",
|
|
786
|
+
FaultInjectionIOType::kRead, options, "PositionedRead", fname_,
|
|
787
|
+
fault_injection_detail::OffsetAndSize(offset, n),
|
|
772
788
|
FaultInjectionTestFS::ErrorOperation::kRead, result, use_direct_io(),
|
|
773
789
|
scratch, true /*need_count_increase=*/, nullptr /* fault_injected */);
|
|
774
790
|
if (!s.ok()) {
|
|
@@ -800,8 +816,8 @@ IOStatus FaultInjectionTestFS::FileExists(const std::string& fname,
|
|
|
800
816
|
return GetError();
|
|
801
817
|
}
|
|
802
818
|
|
|
803
|
-
IOStatus io_s =
|
|
804
|
-
|
|
819
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
820
|
+
FaultInjectionIOType::kMetadataRead, options, "FileExists", fname);
|
|
805
821
|
if (!io_s.ok()) {
|
|
806
822
|
return io_s;
|
|
807
823
|
}
|
|
@@ -818,8 +834,8 @@ IOStatus FaultInjectionTestFS::GetChildren(const std::string& dir,
|
|
|
818
834
|
return GetError();
|
|
819
835
|
}
|
|
820
836
|
|
|
821
|
-
IOStatus io_s =
|
|
822
|
-
|
|
837
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
838
|
+
FaultInjectionIOType::kMetadataRead, options, "GetChildren", dir);
|
|
823
839
|
if (!io_s.ok()) {
|
|
824
840
|
return io_s;
|
|
825
841
|
}
|
|
@@ -836,7 +852,8 @@ IOStatus FaultInjectionTestFS::GetChildrenFileAttributes(
|
|
|
836
852
|
}
|
|
837
853
|
|
|
838
854
|
IOStatus io_s =
|
|
839
|
-
MaybeInjectThreadLocalError(FaultInjectionIOType::kMetadataRead, options
|
|
855
|
+
MaybeInjectThreadLocalError(FaultInjectionIOType::kMetadataRead, options,
|
|
856
|
+
"GetChildrenFileAttributes", dir);
|
|
840
857
|
if (!io_s.ok()) {
|
|
841
858
|
return io_s;
|
|
842
859
|
}
|
|
@@ -857,8 +874,8 @@ IOStatus FaultInjectionTestFS::NewWritableFile(
|
|
|
857
874
|
}
|
|
858
875
|
|
|
859
876
|
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
860
|
-
FaultInjectionIOType::kWrite, file_opts.io_options,
|
|
861
|
-
FaultInjectionTestFS::ErrorOperation::kOpen);
|
|
877
|
+
FaultInjectionIOType::kWrite, file_opts.io_options, "NewWritableFile",
|
|
878
|
+
fname, {}, FaultInjectionTestFS::ErrorOperation::kOpen);
|
|
862
879
|
if (!io_s.ok()) {
|
|
863
880
|
return io_s;
|
|
864
881
|
}
|
|
@@ -894,7 +911,8 @@ IOStatus FaultInjectionTestFS::ReopenWritableFile(
|
|
|
894
911
|
return target()->ReopenWritableFile(fname, file_opts, result, dbg);
|
|
895
912
|
}
|
|
896
913
|
IOStatus io_s = MaybeInjectThreadLocalError(FaultInjectionIOType::kWrite,
|
|
897
|
-
file_opts.io_options,
|
|
914
|
+
file_opts.io_options,
|
|
915
|
+
"ReopenWritableFile", fname);
|
|
898
916
|
if (!io_s.ok()) {
|
|
899
917
|
return io_s;
|
|
900
918
|
}
|
|
@@ -970,7 +988,8 @@ IOStatus FaultInjectionTestFS::NewRandomRWFile(
|
|
|
970
988
|
return target()->NewRandomRWFile(fname, file_opts, result, dbg);
|
|
971
989
|
}
|
|
972
990
|
IOStatus io_s = MaybeInjectThreadLocalError(FaultInjectionIOType::kWrite,
|
|
973
|
-
file_opts.io_options,
|
|
991
|
+
file_opts.io_options,
|
|
992
|
+
"NewRandomRWFile", fname);
|
|
974
993
|
if (!io_s.ok()) {
|
|
975
994
|
return io_s;
|
|
976
995
|
}
|
|
@@ -1002,10 +1021,10 @@ IOStatus FaultInjectionTestFS::NewRandomAccessFile(
|
|
|
1002
1021
|
return GetError();
|
|
1003
1022
|
}
|
|
1004
1023
|
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1005
|
-
FaultInjectionIOType::kRead, file_opts.io_options,
|
|
1006
|
-
ErrorOperation::kOpen, nullptr /* result */,
|
|
1007
|
-
|
|
1008
|
-
nullptr /*fault_injected*/);
|
|
1024
|
+
FaultInjectionIOType::kRead, file_opts.io_options, "NewRandomAccessFile",
|
|
1025
|
+
fname, {}, ErrorOperation::kOpen, nullptr /* result */,
|
|
1026
|
+
false /* direct_io */, nullptr /* scratch */,
|
|
1027
|
+
true /*need_count_increase*/, nullptr /*fault_injected*/);
|
|
1009
1028
|
if (!io_s.ok()) {
|
|
1010
1029
|
return io_s;
|
|
1011
1030
|
}
|
|
@@ -1025,10 +1044,10 @@ IOStatus FaultInjectionTestFS::NewSequentialFile(
|
|
|
1025
1044
|
return GetError();
|
|
1026
1045
|
}
|
|
1027
1046
|
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1028
|
-
FaultInjectionIOType::kRead, file_opts.io_options,
|
|
1029
|
-
ErrorOperation::kOpen, nullptr /* result */,
|
|
1030
|
-
|
|
1031
|
-
nullptr /*fault_injected*/);
|
|
1047
|
+
FaultInjectionIOType::kRead, file_opts.io_options, "NewSequentialFile",
|
|
1048
|
+
fname, {}, ErrorOperation::kOpen, nullptr /* result */,
|
|
1049
|
+
false /* direct_io */, nullptr /* scratch */,
|
|
1050
|
+
true /*need_count_increase*/, nullptr /*fault_injected*/);
|
|
1032
1051
|
if (!io_s.ok()) {
|
|
1033
1052
|
return io_s;
|
|
1034
1053
|
}
|
|
@@ -1048,7 +1067,7 @@ IOStatus FaultInjectionTestFS::DeleteFile(const std::string& f,
|
|
|
1048
1067
|
return GetError();
|
|
1049
1068
|
}
|
|
1050
1069
|
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1051
|
-
FaultInjectionIOType::kMetadataWrite, options);
|
|
1070
|
+
FaultInjectionIOType::kMetadataWrite, options, "DeleteFile", f);
|
|
1052
1071
|
if (!io_s.ok()) {
|
|
1053
1072
|
return io_s;
|
|
1054
1073
|
}
|
|
@@ -1071,8 +1090,8 @@ IOStatus FaultInjectionTestFS::GetFileSize(const std::string& f,
|
|
|
1071
1090
|
if (!IsFilesystemActive()) {
|
|
1072
1091
|
return GetError();
|
|
1073
1092
|
}
|
|
1074
|
-
IOStatus io_s =
|
|
1075
|
-
|
|
1093
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1094
|
+
FaultInjectionIOType::kMetadataRead, options, "GetFileSize", f);
|
|
1076
1095
|
if (!io_s.ok()) {
|
|
1077
1096
|
return io_s;
|
|
1078
1097
|
}
|
|
@@ -1101,7 +1120,8 @@ IOStatus FaultInjectionTestFS::GetFileModificationTime(const std::string& fname,
|
|
|
1101
1120
|
return GetError();
|
|
1102
1121
|
}
|
|
1103
1122
|
IOStatus io_s =
|
|
1104
|
-
MaybeInjectThreadLocalError(FaultInjectionIOType::kMetadataRead, options
|
|
1123
|
+
MaybeInjectThreadLocalError(FaultInjectionIOType::kMetadataRead, options,
|
|
1124
|
+
"GetFileModificationTime", fname);
|
|
1105
1125
|
if (!io_s.ok()) {
|
|
1106
1126
|
return io_s;
|
|
1107
1127
|
}
|
|
@@ -1118,12 +1138,13 @@ IOStatus FaultInjectionTestFS::RenameFile(const std::string& s,
|
|
|
1118
1138
|
return GetError();
|
|
1119
1139
|
}
|
|
1120
1140
|
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1121
|
-
FaultInjectionIOType::kMetadataWrite, options
|
|
1141
|
+
FaultInjectionIOType::kMetadataWrite, options, "RenameFile", s,
|
|
1142
|
+
fault_injection_detail::TwoFiles(s, t));
|
|
1122
1143
|
if (!io_s.ok()) {
|
|
1123
1144
|
return io_s;
|
|
1124
1145
|
}
|
|
1125
1146
|
|
|
1126
|
-
// We preserve contents of overwritten files
|
|
1147
|
+
// We preserve contents of overwritten files
|
|
1127
1148
|
// We could keep previous file in another name, but we need to worry about
|
|
1128
1149
|
// garbage collect the those files. We do it if it is needed later.
|
|
1129
1150
|
// We ignore I/O errors here for simplicity.
|
|
@@ -1164,7 +1185,8 @@ IOStatus FaultInjectionTestFS::LinkFile(const std::string& s,
|
|
|
1164
1185
|
return GetError();
|
|
1165
1186
|
}
|
|
1166
1187
|
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1167
|
-
FaultInjectionIOType::kMetadataWrite, options
|
|
1188
|
+
FaultInjectionIOType::kMetadataWrite, options, "LinkFile", s,
|
|
1189
|
+
fault_injection_detail::TwoFiles(s, t));
|
|
1168
1190
|
if (!io_s.ok()) {
|
|
1169
1191
|
return io_s;
|
|
1170
1192
|
}
|
|
@@ -1208,8 +1230,8 @@ IOStatus FaultInjectionTestFS::NumFileLinks(const std::string& fname,
|
|
|
1208
1230
|
if (!IsFilesystemActive()) {
|
|
1209
1231
|
return GetError();
|
|
1210
1232
|
}
|
|
1211
|
-
IOStatus io_s =
|
|
1212
|
-
|
|
1233
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1234
|
+
FaultInjectionIOType::kMetadataRead, options, "NumFileLinks", fname);
|
|
1213
1235
|
if (!io_s.ok()) {
|
|
1214
1236
|
return io_s;
|
|
1215
1237
|
}
|
|
@@ -1225,8 +1247,9 @@ IOStatus FaultInjectionTestFS::AreFilesSame(const std::string& first,
|
|
|
1225
1247
|
if (!IsFilesystemActive()) {
|
|
1226
1248
|
return GetError();
|
|
1227
1249
|
}
|
|
1228
|
-
IOStatus io_s =
|
|
1229
|
-
|
|
1250
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1251
|
+
FaultInjectionIOType::kMetadataRead, options, "AreFilesSame", first,
|
|
1252
|
+
fault_injection_detail::TwoFiles(first, second));
|
|
1230
1253
|
if (!io_s.ok()) {
|
|
1231
1254
|
return io_s;
|
|
1232
1255
|
}
|
|
@@ -1242,8 +1265,8 @@ IOStatus FaultInjectionTestFS::GetAbsolutePath(const std::string& db_path,
|
|
|
1242
1265
|
if (!IsFilesystemActive()) {
|
|
1243
1266
|
return GetError();
|
|
1244
1267
|
}
|
|
1245
|
-
IOStatus io_s =
|
|
1246
|
-
|
|
1268
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1269
|
+
FaultInjectionIOType::kMetadataRead, options, "GetAbsolutePath", db_path);
|
|
1247
1270
|
if (!io_s.ok()) {
|
|
1248
1271
|
return io_s;
|
|
1249
1272
|
}
|
|
@@ -1258,8 +1281,8 @@ IOStatus FaultInjectionTestFS::IsDirectory(const std::string& path,
|
|
|
1258
1281
|
if (!IsFilesystemActive()) {
|
|
1259
1282
|
return GetError();
|
|
1260
1283
|
}
|
|
1261
|
-
IOStatus io_s =
|
|
1262
|
-
|
|
1284
|
+
IOStatus io_s = MaybeInjectThreadLocalError(
|
|
1285
|
+
FaultInjectionIOType::kMetadataRead, options, "IsDirectory", path);
|
|
1263
1286
|
if (!io_s.ok()) {
|
|
1264
1287
|
return io_s;
|
|
1265
1288
|
}
|
|
@@ -1389,9 +1412,10 @@ void FaultInjectionTestFS::UntrackFile(const std::string& f) {
|
|
|
1389
1412
|
}
|
|
1390
1413
|
|
|
1391
1414
|
IOStatus FaultInjectionTestFS::MaybeInjectThreadLocalReadError(
|
|
1392
|
-
const IOOptions& io_options,
|
|
1393
|
-
|
|
1394
|
-
bool*
|
|
1415
|
+
const IOOptions& io_options, const char* op_name,
|
|
1416
|
+
const std::string& file_name, std::function<std::string()> detail_fn,
|
|
1417
|
+
ErrorOperation op, Slice* result, bool direct_io, char* scratch,
|
|
1418
|
+
bool need_count_increase, bool* fault_injected) {
|
|
1395
1419
|
bool dummy_bool;
|
|
1396
1420
|
bool& ret_fault_injected = fault_injected ? *fault_injected : dummy_bool;
|
|
1397
1421
|
ret_fault_injected = false;
|
|
@@ -1461,6 +1485,17 @@ IOStatus FaultInjectionTestFS::MaybeInjectThreadLocalReadError(
|
|
|
1461
1485
|
|
|
1462
1486
|
ret.SetRetryable(ctx->retryable);
|
|
1463
1487
|
ret.SetDataLoss(ctx->has_data_loss);
|
|
1488
|
+
if (!ret.ok()) {
|
|
1489
|
+
std::string detail = detail_fn ? detail_fn() : "";
|
|
1490
|
+
if (detail.empty()) {
|
|
1491
|
+
injected_error_log_.Record("%s(\"%.128s\") -> %s", op_name,
|
|
1492
|
+
file_name.c_str(), ret.ToString().c_str());
|
|
1493
|
+
} else {
|
|
1494
|
+
injected_error_log_.Record("%s(\"%.128s\", %s) -> %s", op_name,
|
|
1495
|
+
file_name.c_str(), detail.c_str(),
|
|
1496
|
+
ret.ToString().c_str());
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1464
1499
|
return ret;
|
|
1465
1500
|
}
|
|
1466
1501
|
|
|
@@ -1472,14 +1507,14 @@ bool FaultInjectionTestFS::TryParseFileName(const std::string& file_name,
|
|
|
1472
1507
|
}
|
|
1473
1508
|
|
|
1474
1509
|
IOStatus FaultInjectionTestFS::MaybeInjectThreadLocalError(
|
|
1475
|
-
FaultInjectionIOType type, const IOOptions& io_options,
|
|
1476
|
-
const std::string& file_name,
|
|
1477
|
-
bool direct_io, char* scratch,
|
|
1478
|
-
bool* fault_injected) {
|
|
1510
|
+
FaultInjectionIOType type, const IOOptions& io_options, const char* op_name,
|
|
1511
|
+
const std::string& file_name, std::function<std::string()> detail_fn,
|
|
1512
|
+
ErrorOperation op, Slice* result, bool direct_io, char* scratch,
|
|
1513
|
+
bool need_count_increase, bool* fault_injected) {
|
|
1479
1514
|
if (type == FaultInjectionIOType::kRead) {
|
|
1480
|
-
return MaybeInjectThreadLocalReadError(
|
|
1481
|
-
|
|
1482
|
-
|
|
1515
|
+
return MaybeInjectThreadLocalReadError(
|
|
1516
|
+
io_options, op_name, file_name, std::move(detail_fn), op, result,
|
|
1517
|
+
direct_io, scratch, need_count_increase, fault_injected);
|
|
1483
1518
|
}
|
|
1484
1519
|
|
|
1485
1520
|
ErrorContext* ctx = GetErrorContextFromFaultInjectionIOType(type);
|
|
@@ -1501,6 +1536,17 @@ IOStatus FaultInjectionTestFS::MaybeInjectThreadLocalError(
|
|
|
1501
1536
|
ret = IOStatus::IOError(ctx->message);
|
|
1502
1537
|
ret.SetRetryable(ctx->retryable);
|
|
1503
1538
|
ret.SetDataLoss(ctx->has_data_loss);
|
|
1539
|
+
{
|
|
1540
|
+
std::string detail = detail_fn ? detail_fn() : "";
|
|
1541
|
+
if (detail.empty()) {
|
|
1542
|
+
injected_error_log_.Record("%s(\"%.128s\") -> %s", op_name,
|
|
1543
|
+
file_name.c_str(), ret.ToString().c_str());
|
|
1544
|
+
} else {
|
|
1545
|
+
injected_error_log_.Record("%s(\"%.128s\", %s) -> %s", op_name,
|
|
1546
|
+
file_name.c_str(), detail.c_str(),
|
|
1547
|
+
ret.ToString().c_str());
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1504
1550
|
if (type == FaultInjectionIOType::kWrite) {
|
|
1505
1551
|
TEST_SYNC_POINT(
|
|
1506
1552
|
"FaultInjectionTestFS::InjectMetadataWriteError:Injected");
|