@nxtedition/rocksdb 10.0.13 → 10.0.15
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/.tap/coverage/213879bb-47ae-470e-bb54-f4157d9f60e2.json +162898 -0
- package/.tap/processinfo/{4c642b53-6895-4ef0-9391-7c6b8d484262.json → 213879bb-47ae-470e-bb54-f4157d9f60e2.json} +117 -121
- 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 +1705 -0
- package/.tap/test-results/test/batch-test.js.tap +12 -0
- package/.tap/test-results/test/chained-batch-gc-test.js.tap +11 -0
- package/.tap/test-results/test/cleanup-hanging-iterators-test.js.tap +58 -0
- package/.tap/test-results/test/clear-gc-test.js.tap +13 -0
- package/.tap/test-results/test/column-test.js.tap +55 -0
- package/.tap/test-results/test/common.js.tap +0 -0
- package/.tap/test-results/test/compression-test.js.tap +30 -0
- package/.tap/test-results/test/db-identity.js.tap +12 -0
- package/.tap/test-results/test/electron.js.tap +0 -0
- package/.tap/test-results/test/env-cleanup-hook-test.js.tap +2 -0
- 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 +29 -0
- package/.tap/test-results/test/iterator-gc-test.js.tap +4 -0
- package/.tap/test-results/test/iterator-hwm-test.js.tap +24 -0
- package/.tap/test-results/test/iterator-recursion-test.js.tap +12 -0
- package/.tap/test-results/test/iterator-starvation-test.js.tap +2 -0
- package/.tap/test-results/test/iterator-test.js.tap +0 -0
- 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 -0
- 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 -12
- package/.tap/test-results/test/merge-operator-test.js.tap +0 -0
- package/.tap/test-results/test/mkdir-test.js.tap +0 -0
- package/.tap/test-results/test/segfault-test.js.tap +0 -0
- package/.tap/test-results/test/stack-blower.js.tap +0 -0
- package/binding.cc +42 -34
- package/deps/rocksdb/rocksdb/CMakeLists.txt +44 -14
- package/deps/rocksdb/rocksdb/Makefile +34 -17
- package/deps/rocksdb/rocksdb/TARGETS +27 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +95 -42
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +0 -1
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +5 -3
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +381 -393
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +88 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +14 -7
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +1 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +21 -19
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +8 -7
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +1 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +89 -13
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +16 -8
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +6 -6
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +15 -9
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +16 -13
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +306 -23
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +3 -4
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +30 -27
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +8 -10
- package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.cc +20 -0
- package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.h +83 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +19 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +18 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +7 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +56 -27
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +11 -7
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +20 -19
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +106 -31
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +5 -8
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +4 -2
- package/deps/rocksdb/rocksdb/db/builder.cc +89 -44
- package/deps/rocksdb/rocksdb/db/builder.h +4 -6
- package/deps/rocksdb/rocksdb/db/c.cc +205 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -20
- package/deps/rocksdb/rocksdb/db/coalescing_iterator.cc +47 -0
- package/deps/rocksdb/rocksdb/db/coalescing_iterator.h +79 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +100 -36
- package/deps/rocksdb/rocksdb/db/column_family.h +46 -28
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +168 -46
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +51 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +72 -24
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +11 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +7 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +87 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +310 -70
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +78 -62
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +0 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +33 -96
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +18 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +7 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +42 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +20 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +7 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +18 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +95 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +6 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +213 -34
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +4 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +7 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +16 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +75 -142
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +577 -34
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience.cc +1 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +7 -38
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +366 -136
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +9 -10
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +282 -6
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +551 -150
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +41 -13
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +54 -17
- package/deps/rocksdb/rocksdb/db/db_follower_test.cc +527 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -58
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +34 -45
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +699 -580
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +308 -230
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +180 -107
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +10 -6
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +36 -61
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +347 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.h +54 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +206 -155
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +5 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +41 -39
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +26 -22
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +14 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +126 -46
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +21 -9
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +294 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +116 -78
- package/deps/rocksdb/rocksdb/db/db_iter.h +31 -7
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +34 -14
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +69 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +153 -18
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +9 -1
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +6 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +105 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +97 -111
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +12 -3
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +82 -30
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +5 -7
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +64 -22
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +74 -0
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +175 -47
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/db_test.cc +133 -109
- package/deps/rocksdb/rocksdb/db/db_test2.cc +227 -139
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +42 -19
- package/deps/rocksdb/rocksdb/db/db_test_util.h +67 -24
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +140 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +17 -19
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +332 -87
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +250 -30
- package/deps/rocksdb/rocksdb/db/dbformat.cc +41 -8
- package/deps/rocksdb/rocksdb/db/dbformat.h +100 -17
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +48 -8
- package/deps/rocksdb/rocksdb/db/error_handler.cc +102 -116
- package/deps/rocksdb/rocksdb/db/error_handler.h +28 -6
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +263 -99
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +3 -1
- package/deps/rocksdb/rocksdb/db/experimental.cc +1073 -7
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +261 -111
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +263 -183
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +31 -12
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +698 -7
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/flush_job.cc +41 -41
- package/deps/rocksdb/rocksdb/db/flush_job.h +11 -8
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -13
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +19 -6
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +12 -12
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +83 -52
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +169 -2
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +12 -6
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -2
- package/deps/rocksdb/rocksdb/db/job_context.h +17 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +44 -20
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +81 -17
- package/deps/rocksdb/rocksdb/db/log_writer.cc +135 -92
- package/deps/rocksdb/rocksdb/db/log_writer.h +11 -10
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -3
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/memtable.cc +82 -62
- package/deps/rocksdb/rocksdb/db/memtable.h +17 -9
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +19 -13
- package/deps/rocksdb/rocksdb/db/memtable_list.h +3 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +38 -5
- package/deps/rocksdb/rocksdb/db/merge_context.h +3 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +34 -156
- package/deps/rocksdb/rocksdb/db/merge_helper.h +52 -46
- package/deps/rocksdb/rocksdb/db/merge_test.cc +16 -11
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +289 -0
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_test.cc +918 -0
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/output_validator.cc +8 -12
- package/deps/rocksdb/rocksdb/db/output_validator.h +1 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +23 -4
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +2 -3
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +2 -2
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -6
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +21 -8
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +0 -2
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +0 -1
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +17 -4
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +6 -3
- package/deps/rocksdb/rocksdb/db/repair.cc +35 -29
- package/deps/rocksdb/rocksdb/db/repair_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +428 -156
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +393 -227
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +154 -82
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +2 -2
- package/deps/rocksdb/rocksdb/db/table_cache.cc +9 -11
- package/deps/rocksdb/rocksdb/db/table_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +8 -3
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +27 -26
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +23 -23
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +5 -5
- package/deps/rocksdb/rocksdb/db/version_builder.cc +6 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +62 -29
- package/deps/rocksdb/rocksdb/db/version_edit.cc +1 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +30 -11
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +291 -116
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +54 -11
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +3 -1
- package/deps/rocksdb/rocksdb/db/version_set.cc +301 -141
- package/deps/rocksdb/rocksdb/db/version_set.h +90 -33
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +817 -193
- package/deps/rocksdb/rocksdb/db/version_util.h +10 -5
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +15 -11
- package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -1
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +10 -9
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +403 -28
- package/deps/rocksdb/rocksdb/db/wide/wide_columns.cc +2 -2
- package/deps/rocksdb/rocksdb/db/write_batch.cc +204 -18
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +4 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +149 -5
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/write_stall_stats.h +7 -7
- package/deps/rocksdb/rocksdb/db/write_thread.cc +86 -47
- package/deps/rocksdb/rocksdb/db/write_thread.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +176 -68
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +337 -125
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +38 -9
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +126 -34
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +2 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +161 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +267 -9
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +13 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +9 -9
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +535 -86
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +27 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +8 -15
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +46 -21
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +74 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +28 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +426 -151
- package/deps/rocksdb/rocksdb/env/composite_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/emulated_clock.h +6 -6
- package/deps/rocksdb/rocksdb/env/env.cc +21 -11
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +9 -9
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +3 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +3 -3
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +2 -2
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -10
- package/deps/rocksdb/rocksdb/env/env_test.cc +24 -18
- package/deps/rocksdb/rocksdb/env/file_system.cc +7 -6
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +3 -3
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +3 -3
- package/deps/rocksdb/rocksdb/env/fs_on_demand.cc +331 -0
- package/deps/rocksdb/rocksdb/env/fs_on_demand.h +139 -0
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +14 -15
- package/deps/rocksdb/rocksdb/env/io_posix.cc +15 -10
- package/deps/rocksdb/rocksdb/env/io_posix.h +86 -92
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +6 -6
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +8 -6
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +599 -592
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +312 -200
- package/deps/rocksdb/rocksdb/file/file_util.cc +19 -14
- package/deps/rocksdb/rocksdb/file/file_util.h +34 -24
- package/deps/rocksdb/rocksdb/file/filename.cc +32 -17
- package/deps/rocksdb/rocksdb/file/filename.h +51 -53
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +82 -441
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +7 -6
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +5 -5
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +9 -3
- package/deps/rocksdb/rocksdb/file/read_write_util.h +3 -3
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +6 -2
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +9 -4
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +8 -4
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +110 -89
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +34 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +39 -189
- package/deps/rocksdb/rocksdb/include/rocksdb/attribute_groups.h +114 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +91 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +52 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +27 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +146 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +254 -151
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +39 -36
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +431 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +57 -23
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +27 -57
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +74 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +11 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +146 -71
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +7 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +17 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +17 -19
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +10 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +18 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +12 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +118 -116
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +26 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +18 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/threadpool.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +8 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +12 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +4 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +5 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +159 -167
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +52 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +3 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/types_util.h +36 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +118 -20
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/wide_columns.h +87 -45
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +26 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +22 -1
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +7 -9
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +5 -6
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +2 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +3 -3
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +1 -1
- package/deps/rocksdb/rocksdb/logging/log_buffer.h +3 -3
- package/deps/rocksdb/rocksdb/memory/arena.h +11 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +17 -2
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +1 -1
- package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +1 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator_impl.h +1 -1
- package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +11 -10
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +8 -7
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +3 -3
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +2 -2
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +3 -1
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +2 -2
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +20 -10
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +15 -15
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +7 -3
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +14 -14
- package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +4 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +8 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +5 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +64 -58
- package/deps/rocksdb/rocksdb/monitoring/statistics_impl.h +11 -12
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +7 -1
- package/deps/rocksdb/rocksdb/options/cf_options.cc +20 -28
- package/deps/rocksdb/rocksdb/options/cf_options.h +7 -14
- package/deps/rocksdb/rocksdb/options/configurable.cc +20 -12
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +4 -6
- package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -2
- package/deps/rocksdb/rocksdb/options/customizable.cc +1 -1
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +3 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +22 -48
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -3
- package/deps/rocksdb/rocksdb/options/offpeak_time_info.cc +59 -0
- package/deps/rocksdb/rocksdb/options/offpeak_time_info.h +37 -0
- package/deps/rocksdb/rocksdb/options/options.cc +14 -6
- package/deps/rocksdb/rocksdb/options/options_helper.cc +8 -13
- package/deps/rocksdb/rocksdb/options/options_helper.h +2 -3
- package/deps/rocksdb/rocksdb/options/options_parser.cc +35 -26
- package/deps/rocksdb/rocksdb/options/options_parser.h +4 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +3 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +30 -23
- package/deps/rocksdb/rocksdb/port/lang.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_example.h +7 -7
- package/deps/rocksdb/rocksdb/port/port_posix.cc +7 -7
- package/deps/rocksdb/rocksdb/port/port_posix.h +7 -7
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +85 -24
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +1 -2
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +4 -4
- package/deps/rocksdb/rocksdb/port/win/io_win.h +13 -17
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +3 -2
- package/deps/rocksdb/rocksdb/port/win/port_win.h +4 -4
- package/deps/rocksdb/rocksdb/src.mk +16 -1
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -7
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +39 -15
- package/deps/rocksdb/rocksdb/table/block_based/block.h +7 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +80 -40
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +20 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +228 -122
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +50 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +82 -25
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +17 -20
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +47 -13
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +163 -50
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +23 -23
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +2 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +6 -4
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +32 -27
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +7 -10
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +25 -7
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +3 -5
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +6 -6
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +3 -5
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -5
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +138 -86
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +22 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +26 -13
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +11 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +11 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +10 -5
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +6 -7
- package/deps/rocksdb/rocksdb/table/format.cc +15 -21
- package/deps/rocksdb/rocksdb/table/format.h +8 -0
- package/deps/rocksdb/rocksdb/table/get_context.cc +121 -78
- package/deps/rocksdb/rocksdb/table/get_context.h +11 -6
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +12 -5
- package/deps/rocksdb/rocksdb/table/iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -1
- package/deps/rocksdb/rocksdb/table/merger_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +5 -0
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +4 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +15 -11
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +8 -4
- package/deps/rocksdb/rocksdb/table/mock_table.cc +12 -8
- package/deps/rocksdb/rocksdb/table/mock_table.h +1 -3
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +0 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -21
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +4 -14
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +7 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +7 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +15 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +75 -30
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +7 -2
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +76 -11
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +358 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +93 -16
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +12 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +12 -6
- package/deps/rocksdb/rocksdb/table/table_iterator.h +69 -0
- package/deps/rocksdb/rocksdb/table/table_properties.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +8 -6
- package/deps/rocksdb/rocksdb/table/table_test.cc +732 -121
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +3 -1
- package/deps/rocksdb/rocksdb/table/two_level_iterator.h +1 -1
- package/deps/rocksdb/rocksdb/table/unique_id.cc +2 -2
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +2 -2
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +5 -5
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -6
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +2 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +56 -32
- package/deps/rocksdb/rocksdb/test_util/testutil.h +57 -34
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +18 -1
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +210 -112
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +3 -3
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +22 -27
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +10 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +328 -59
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +34 -2
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +64 -17
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +8 -1
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +3 -2
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +136 -10
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -2
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +50 -8
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +51 -45
- package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +1 -1
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +10 -10
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +14 -4
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +2 -1
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +2 -2
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +2 -4
- package/deps/rocksdb/rocksdb/util/atomic.h +111 -0
- package/deps/rocksdb/rocksdb/util/autovector.h +5 -1
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +12 -2
- package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
- package/deps/rocksdb/rocksdb/util/coding.h +34 -38
- package/deps/rocksdb/rocksdb/util/coding_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/comparator.cc +18 -5
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +4 -4
- package/deps/rocksdb/rocksdb/util/crc32c.cc +3 -6
- package/deps/rocksdb/rocksdb/util/crc32c.h +3 -3
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +3 -4
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -2
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +2 -4
- package/deps/rocksdb/rocksdb/util/data_structure.cc +2 -4
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -2
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +3 -3
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +83 -59
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/hash.h +4 -4
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +3 -3
- package/deps/rocksdb/rocksdb/util/murmurhash.cc +1 -1
- package/deps/rocksdb/rocksdb/util/random.cc +3 -4
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +23 -43
- package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +21 -16
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +44 -24
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +2 -3
- package/deps/rocksdb/rocksdb/util/ribbon_config.cc +2 -10
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/slice.cc +4 -5
- package/deps/rocksdb/rocksdb/util/slice_test.cc +70 -4
- package/deps/rocksdb/rocksdb/util/status.cc +1 -1
- package/deps/rocksdb/rocksdb/util/stderr_logger.cc +39 -7
- package/deps/rocksdb/rocksdb/util/stderr_logger.h +12 -2
- package/deps/rocksdb/rocksdb/util/string_util.cc +31 -18
- package/deps/rocksdb/rocksdb/util/string_util.h +9 -9
- package/deps/rocksdb/rocksdb/util/string_util_test.cc +36 -0
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +5 -5
- package/deps/rocksdb/rocksdb/util/thread_local.cc +1 -1
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +3 -4
- package/deps/rocksdb/rocksdb/util/threadpool_imp.h +1 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +4 -4
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +12 -16
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +5 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +116 -116
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +33 -31
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -22
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +9 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +3 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +22 -55
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +113 -74
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +36 -24
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +27 -11
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +68 -54
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +16 -16
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +29 -9
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +27 -14
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +8 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +3 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +2 -4
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +9 -7
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +7 -10
- package/deps/rocksdb/rocksdb/utilities/debug.cc +6 -2
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +18 -11
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +18 -25
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +32 -23
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +51 -48
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +5 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +3 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +7 -7
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +10 -10
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +5 -6
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +5 -6
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -8
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +29 -21
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +14 -15
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_bench.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +3 -5
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +8 -8
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +6 -9
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +6 -6
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +12 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +17 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +442 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +27 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +28 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +70 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +50 -22
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +64 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +76 -17
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +6 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +573 -77
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +65 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +13 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +14 -16
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +37 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +23 -29
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +4 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +31 -40
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +8 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +3 -4
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +34 -18
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +21 -25
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/types_util.cc +88 -0
- package/deps/rocksdb/rocksdb/utilities/types_util_test.cc +98 -0
- package/deps/rocksdb/rocksdb/utilities/util_merge_operators_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +463 -90
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +259 -76
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +70 -14
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +609 -10
- package/deps/rocksdb/rocksdb.gyp +8 -4
- package/index.js +18 -4
- package/max_rev_operator.h +2 -0
- package/package.json +2 -2
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/util.h +29 -5
- package/.tap/coverage/4c642b53-6895-4ef0-9391-7c6b8d484262.json +0 -14334
- package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +0 -57
|
@@ -89,6 +89,10 @@ class StressTest {
|
|
|
89
89
|
return {rand_key};
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
virtual void TestKeyMayExist(ThreadState*, const ReadOptions&,
|
|
93
|
+
const std::vector<int>&,
|
|
94
|
+
const std::vector<int64_t>&) {}
|
|
95
|
+
|
|
92
96
|
virtual Status TestGet(ThreadState* thread, const ReadOptions& read_opts,
|
|
93
97
|
const std::vector<int>& rand_column_families,
|
|
94
98
|
const std::vector<int64_t>& rand_keys) = 0;
|
|
@@ -136,6 +140,9 @@ class StressTest {
|
|
|
136
140
|
const Slice& start_key,
|
|
137
141
|
ColumnFamilyHandle* column_family);
|
|
138
142
|
|
|
143
|
+
virtual void TestPromoteL0(ThreadState* thread,
|
|
144
|
+
ColumnFamilyHandle* column_family);
|
|
145
|
+
|
|
139
146
|
// Calculate a hash value for all keys in range [start_key, end_key]
|
|
140
147
|
// at a certain snapshot.
|
|
141
148
|
uint32_t GetRangeHash(ThreadState* thread, const Snapshot* snapshot,
|
|
@@ -194,6 +201,8 @@ class StressTest {
|
|
|
194
201
|
const std::vector<int>& rand_column_families,
|
|
195
202
|
const std::vector<int64_t>& rand_keys);
|
|
196
203
|
|
|
204
|
+
virtual Status PrepareOptionsForRestoredDB(Options* options);
|
|
205
|
+
|
|
197
206
|
virtual Status TestCheckpoint(ThreadState* thread,
|
|
198
207
|
const std::vector<int>& rand_column_families,
|
|
199
208
|
const std::vector<int64_t>& rand_keys);
|
|
@@ -202,16 +211,28 @@ class StressTest {
|
|
|
202
211
|
|
|
203
212
|
Status TestFlush(const std::vector<int>& rand_column_families);
|
|
204
213
|
|
|
214
|
+
Status TestResetStats();
|
|
215
|
+
|
|
205
216
|
Status TestPauseBackground(ThreadState* thread);
|
|
206
217
|
|
|
218
|
+
Status TestDisableFileDeletions(ThreadState* thread);
|
|
219
|
+
|
|
220
|
+
Status TestDisableManualCompaction(ThreadState* thread);
|
|
221
|
+
|
|
207
222
|
void TestAcquireSnapshot(ThreadState* thread, int rand_column_family,
|
|
208
223
|
const std::string& keystr, uint64_t i);
|
|
209
224
|
|
|
210
225
|
Status MaybeReleaseSnapshots(ThreadState* thread, uint64_t i);
|
|
226
|
+
|
|
211
227
|
Status VerifyGetLiveFiles() const;
|
|
228
|
+
Status VerifyGetLiveFilesMetaData() const;
|
|
229
|
+
Status VerifyGetLiveFilesStorageInfo() const;
|
|
230
|
+
Status VerifyGetAllColumnFamilyMetaData() const;
|
|
231
|
+
|
|
212
232
|
Status VerifyGetSortedWalFiles() const;
|
|
213
233
|
Status VerifyGetCurrentWalFile() const;
|
|
214
234
|
void TestGetProperty(ThreadState* thread) const;
|
|
235
|
+
Status TestGetPropertiesOfAllTables() const;
|
|
215
236
|
|
|
216
237
|
virtual Status TestApproximateSize(
|
|
217
238
|
ThreadState* thread, uint64_t iteration,
|
|
@@ -224,7 +245,8 @@ class StressTest {
|
|
|
224
245
|
return Status::NotSupported("TestCustomOperations() must be overridden");
|
|
225
246
|
}
|
|
226
247
|
|
|
227
|
-
void ProcessStatus(SharedState* shared, std::string msg, Status s
|
|
248
|
+
void ProcessStatus(SharedState* shared, std::string msg, const Status& s,
|
|
249
|
+
bool ignore_injected_error = true) const;
|
|
228
250
|
|
|
229
251
|
void VerificationAbort(SharedState* shared, std::string msg) const;
|
|
230
252
|
|
|
@@ -289,13 +311,13 @@ class StressTest {
|
|
|
289
311
|
};
|
|
290
312
|
|
|
291
313
|
// Load options from OPTIONS file and populate `options`.
|
|
292
|
-
|
|
314
|
+
bool InitializeOptionsFromFile(Options& options);
|
|
293
315
|
|
|
294
316
|
// Initialize `options` using command line arguments.
|
|
295
317
|
// When this function is called, `cache`, `block_cache_compressed`,
|
|
296
318
|
// `filter_policy` have all been initialized. Therefore, we just pass them as
|
|
297
319
|
// input arguments.
|
|
298
|
-
|
|
320
|
+
void InitializeOptionsFromFlags(
|
|
299
321
|
const std::shared_ptr<Cache>& cache,
|
|
300
322
|
const std::shared_ptr<const FilterPolicy>& filter_policy, Options& options);
|
|
301
323
|
|
|
@@ -320,7 +342,7 @@ extern void InitializeOptionsFromFlags(
|
|
|
320
342
|
//
|
|
321
343
|
// InitializeOptionsGeneral() must not overwrite fields of `options` loaded
|
|
322
344
|
// from OPTIONS file.
|
|
323
|
-
|
|
345
|
+
void InitializeOptionsGeneral(
|
|
324
346
|
const std::shared_ptr<Cache>& cache,
|
|
325
347
|
const std::shared_ptr<const FilterPolicy>& filter_policy, Options& options);
|
|
326
348
|
|
|
@@ -328,7 +350,7 @@ extern void InitializeOptionsGeneral(
|
|
|
328
350
|
// user-defined timestamp which requires `-user_timestamp_size=8`.
|
|
329
351
|
// This function also checks for known (currently) incompatible features with
|
|
330
352
|
// user-defined timestamp.
|
|
331
|
-
|
|
353
|
+
void CheckAndSetOptionsForUserTimestamp(Options& options);
|
|
332
354
|
|
|
333
355
|
} // namespace ROCKSDB_NAMESPACE
|
|
334
356
|
#endif // GFLAGS
|
|
@@ -100,17 +100,6 @@ int db_stress_tool(int argc, char** argv) {
|
|
|
100
100
|
|
|
101
101
|
env_wrapper_guard = std::make_shared<CompositeEnvWrapper>(
|
|
102
102
|
raw_env, std::make_shared<DbStressFSWrapper>(raw_env->GetFileSystem()));
|
|
103
|
-
if (!env_opts && !FLAGS_use_io_uring) {
|
|
104
|
-
// If using the default Env (Posix), wrap DbStressEnvWrapper with the
|
|
105
|
-
// legacy EnvWrapper. This is a workaround to prevent MultiGet and scans
|
|
106
|
-
// from failing when IO uring is disabled. The EnvWrapper
|
|
107
|
-
// has a default implementation of ReadAsync that redirects to Read.
|
|
108
|
-
legacy_env_wrapper_guard = std::make_shared<EnvWrapper>(raw_env);
|
|
109
|
-
env_wrapper_guard = std::make_shared<CompositeEnvWrapper>(
|
|
110
|
-
legacy_env_wrapper_guard,
|
|
111
|
-
std::make_shared<DbStressFSWrapper>(
|
|
112
|
-
legacy_env_wrapper_guard->GetFileSystem()));
|
|
113
|
-
}
|
|
114
103
|
db_stress_env = env_wrapper_guard.get();
|
|
115
104
|
|
|
116
105
|
FLAGS_rep_factory = StringToRepFactory(FLAGS_memtablerep.c_str());
|
|
@@ -260,14 +249,18 @@ int db_stress_tool(int argc, char** argv) {
|
|
|
260
249
|
exit(1);
|
|
261
250
|
}
|
|
262
251
|
}
|
|
263
|
-
if (FLAGS_enable_compaction_filter &&
|
|
252
|
+
if ((FLAGS_enable_compaction_filter || FLAGS_inplace_update_support) &&
|
|
264
253
|
(FLAGS_acquire_snapshot_one_in > 0 || FLAGS_compact_range_one_in > 0 ||
|
|
265
|
-
FLAGS_iterpercent > 0 ||
|
|
266
|
-
FLAGS_test_cf_consistency
|
|
254
|
+
FLAGS_iterpercent > 0 || FLAGS_prefixpercent > 0 ||
|
|
255
|
+
FLAGS_test_batches_snapshots || FLAGS_test_cf_consistency ||
|
|
256
|
+
FLAGS_check_multiget_consistency ||
|
|
257
|
+
FLAGS_check_multiget_entity_consistency)) {
|
|
267
258
|
fprintf(
|
|
268
259
|
stderr,
|
|
269
260
|
"Error: acquire_snapshot_one_in, compact_range_one_in, iterpercent, "
|
|
270
|
-
"test_batches_snapshots
|
|
261
|
+
"prefixpercent, test_batches_snapshots, test_cf_consistency, "
|
|
262
|
+
"check_multiget_consistency, check_multiget_entity_consistency must "
|
|
263
|
+
"all be 0 when using compaction filter or inplace update support\n");
|
|
271
264
|
exit(1);
|
|
272
265
|
}
|
|
273
266
|
if (FLAGS_test_multi_ops_txns) {
|
|
@@ -79,6 +79,8 @@ std::vector<PendingExpectedValue> ExpectedState::PrepareDeleteRange(
|
|
|
79
79
|
PrepareDelete(cf, key, &prepared);
|
|
80
80
|
if (prepared) {
|
|
81
81
|
pending_expected_values.push_back(pending_expected_value);
|
|
82
|
+
} else {
|
|
83
|
+
pending_expected_value.PermitUnclosedPendingState();
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
return pending_expected_values;
|
|
@@ -185,7 +187,7 @@ ExpectedStateManager::ExpectedStateManager(size_t max_key,
|
|
|
185
187
|
num_column_families_(num_column_families),
|
|
186
188
|
latest_(nullptr) {}
|
|
187
189
|
|
|
188
|
-
ExpectedStateManager::~ExpectedStateManager()
|
|
190
|
+
ExpectedStateManager::~ExpectedStateManager() = default;
|
|
189
191
|
|
|
190
192
|
const std::string FileExpectedStateManager::kLatestBasename = "LATEST";
|
|
191
193
|
const std::string FileExpectedStateManager::kStateFilenameSuffix = ".state";
|
|
@@ -306,9 +308,10 @@ Status FileExpectedStateManager::SaveAtAndAfter(DB* db) {
|
|
|
306
308
|
|
|
307
309
|
// Populate a tempfile and then rename it to atomically create "<seqno>.state"
|
|
308
310
|
// with contents from "LATEST.state"
|
|
309
|
-
Status s =
|
|
310
|
-
|
|
311
|
-
|
|
311
|
+
Status s =
|
|
312
|
+
CopyFile(FileSystem::Default(), latest_file_path, Temperature::kUnknown,
|
|
313
|
+
state_file_temp_path, Temperature::kUnknown, 0 /* size */,
|
|
314
|
+
false /* use_fsync */, nullptr /* io_tracer */);
|
|
312
315
|
if (s.ok()) {
|
|
313
316
|
s = FileSystem::Default()->RenameFile(state_file_temp_path, state_file_path,
|
|
314
317
|
IOOptions(), nullptr /* dbg */);
|
|
@@ -434,6 +437,28 @@ class ExpectedStateTraceRecordHandler : public TraceRecord::Handler,
|
|
|
434
437
|
return Status::OK();
|
|
435
438
|
}
|
|
436
439
|
|
|
440
|
+
Status TimedPutCF(uint32_t column_family_id, const Slice& key_with_ts,
|
|
441
|
+
const Slice& value, uint64_t write_unix_time) override {
|
|
442
|
+
Slice key =
|
|
443
|
+
StripTimestampFromUserKey(key_with_ts, FLAGS_user_timestamp_size);
|
|
444
|
+
uint64_t key_id;
|
|
445
|
+
if (!GetIntVal(key.ToString(), &key_id)) {
|
|
446
|
+
return Status::Corruption("unable to parse key", key.ToString());
|
|
447
|
+
}
|
|
448
|
+
uint32_t value_base = GetValueBase(value);
|
|
449
|
+
|
|
450
|
+
bool should_buffer_write = !(buffered_writes_ == nullptr);
|
|
451
|
+
if (should_buffer_write) {
|
|
452
|
+
return WriteBatchInternal::TimedPut(buffered_writes_.get(),
|
|
453
|
+
column_family_id, key, value,
|
|
454
|
+
write_unix_time);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
state_->SyncPut(column_family_id, static_cast<int64_t>(key_id), value_base);
|
|
458
|
+
++num_write_ops_;
|
|
459
|
+
return Status::OK();
|
|
460
|
+
}
|
|
461
|
+
|
|
437
462
|
Status PutEntityCF(uint32_t column_family_id, const Slice& key_with_ts,
|
|
438
463
|
const Slice& entity) override {
|
|
439
464
|
Slice key =
|
|
@@ -631,9 +656,9 @@ Status FileExpectedStateManager::Restore(DB* db) {
|
|
|
631
656
|
// We are going to replay on top of "`seqno`.state" to create a new
|
|
632
657
|
// "LATEST.state". Start off by creating a tempfile so we can later make the
|
|
633
658
|
// new "LATEST.state" appear atomically using `RenameFile()`.
|
|
634
|
-
s = CopyFile(FileSystem::Default(), state_file_path,
|
|
635
|
-
0 /* size */,
|
|
636
|
-
|
|
659
|
+
s = CopyFile(FileSystem::Default(), state_file_path, Temperature::kUnknown,
|
|
660
|
+
latest_file_temp_path, Temperature::kUnknown, 0 /* size */,
|
|
661
|
+
false /* use_fsync */, nullptr /* io_tracer */);
|
|
637
662
|
}
|
|
638
663
|
|
|
639
664
|
{
|
|
@@ -658,26 +683,26 @@ Status FileExpectedStateManager::Restore(DB* db) {
|
|
|
658
683
|
if (s.ok()) {
|
|
659
684
|
s = replayer->Prepare();
|
|
660
685
|
}
|
|
661
|
-
for (
|
|
686
|
+
for (; s.ok();) {
|
|
662
687
|
std::unique_ptr<TraceRecord> record;
|
|
663
688
|
s = replayer->Next(&record);
|
|
664
689
|
if (!s.ok()) {
|
|
690
|
+
if (s.IsCorruption() && handler->IsDone()) {
|
|
691
|
+
// There could be a corruption reading the tail record of the trace
|
|
692
|
+
// due to `db_stress` crashing while writing it. It shouldn't matter
|
|
693
|
+
// as long as we already found all the write ops we need to catch up
|
|
694
|
+
// the expected state.
|
|
695
|
+
s = Status::OK();
|
|
696
|
+
}
|
|
697
|
+
if (s.IsIncomplete()) {
|
|
698
|
+
// OK because `Status::Incomplete` is expected upon finishing all the
|
|
699
|
+
// trace records.
|
|
700
|
+
s = Status::OK();
|
|
701
|
+
}
|
|
665
702
|
break;
|
|
666
703
|
}
|
|
667
704
|
std::unique_ptr<TraceRecordResult> res;
|
|
668
|
-
record->Accept(handler.get(), &res);
|
|
669
|
-
}
|
|
670
|
-
if (s.IsCorruption() && handler->IsDone()) {
|
|
671
|
-
// There could be a corruption reading the tail record of the trace due to
|
|
672
|
-
// `db_stress` crashing while writing it. It shouldn't matter as long as
|
|
673
|
-
// we already found all the write ops we need to catch up the expected
|
|
674
|
-
// state.
|
|
675
|
-
s = Status::OK();
|
|
676
|
-
}
|
|
677
|
-
if (s.IsIncomplete()) {
|
|
678
|
-
// OK because `Status::Incomplete` is expected upon finishing all the
|
|
679
|
-
// trace records.
|
|
680
|
-
s = Status::OK();
|
|
705
|
+
s = record->Accept(handler.get(), &res);
|
|
681
706
|
}
|
|
682
707
|
}
|
|
683
708
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
10
|
#include <stdint.h>
|
|
11
|
+
#include <stdio.h>
|
|
11
12
|
|
|
12
13
|
#include <atomic>
|
|
13
14
|
#include <cassert>
|
|
@@ -150,6 +151,11 @@ class ExpectedValue {
|
|
|
150
151
|
// `PendingExpectedValue` represents the expected value of a key undergoing a
|
|
151
152
|
// pending operation in db stress.
|
|
152
153
|
//
|
|
154
|
+
// After a `PendingExpectedValue` object is created, either `Rollback` or
|
|
155
|
+
// `Commit` should be called to close its pending state before it's destructed.
|
|
156
|
+
// In case no pending state was introduced while creating this
|
|
157
|
+
// `PendingExpectedValue` and user want to ignore the unclosed pending state,
|
|
158
|
+
// `PermitUnclosedPendingState` should be called explicitly.
|
|
153
159
|
// This class is not thread-safe.
|
|
154
160
|
class PendingExpectedValue {
|
|
155
161
|
public:
|
|
@@ -158,21 +164,85 @@ class PendingExpectedValue {
|
|
|
158
164
|
ExpectedValue final_value)
|
|
159
165
|
: value_ptr_(value_ptr),
|
|
160
166
|
orig_value_(orig_value),
|
|
161
|
-
final_value_(final_value)
|
|
167
|
+
final_value_(final_value),
|
|
168
|
+
pending_state_closed_(false) {}
|
|
169
|
+
|
|
170
|
+
PendingExpectedValue(const PendingExpectedValue& other)
|
|
171
|
+
: value_ptr_(other.value_ptr_),
|
|
172
|
+
orig_value_(other.orig_value_),
|
|
173
|
+
final_value_(other.final_value_),
|
|
174
|
+
pending_state_closed_(false) {
|
|
175
|
+
other.ClosePendingState();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
PendingExpectedValue(PendingExpectedValue&& other) noexcept
|
|
179
|
+
: value_ptr_(std::move(other.value_ptr_)),
|
|
180
|
+
orig_value_(std::move(other.orig_value_)),
|
|
181
|
+
final_value_(std::move(other.final_value_)),
|
|
182
|
+
pending_state_closed_(false) {
|
|
183
|
+
other.ClosePendingState();
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
PendingExpectedValue& operator=(const PendingExpectedValue& other) {
|
|
187
|
+
if (this != &other) {
|
|
188
|
+
other.ClosePendingState();
|
|
189
|
+
value_ptr_ = other.value_ptr_;
|
|
190
|
+
orig_value_ = other.orig_value_;
|
|
191
|
+
final_value_ = other.final_value_;
|
|
192
|
+
pending_state_closed_ = false;
|
|
193
|
+
}
|
|
194
|
+
return *this;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
PendingExpectedValue& operator=(PendingExpectedValue&& other) {
|
|
198
|
+
if (this != &other) {
|
|
199
|
+
other.ClosePendingState();
|
|
200
|
+
value_ptr_ = std::move(other.value_ptr_);
|
|
201
|
+
orig_value_ = std::move(other.orig_value_);
|
|
202
|
+
final_value_ = std::move(other.final_value_);
|
|
203
|
+
pending_state_closed_ = false;
|
|
204
|
+
}
|
|
205
|
+
return *this;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
~PendingExpectedValue() { assert(pending_state_closed_); }
|
|
162
209
|
|
|
163
210
|
void Commit() {
|
|
211
|
+
assert(!pending_state_closed_);
|
|
212
|
+
ClosePendingState();
|
|
164
213
|
// To prevent low-level instruction reordering that results
|
|
165
214
|
// in setting expected value happens before db write
|
|
166
215
|
std::atomic_thread_fence(std::memory_order_release);
|
|
167
216
|
value_ptr_->store(final_value_.Read());
|
|
168
217
|
}
|
|
169
218
|
|
|
219
|
+
// Rollbacks the key to its original state.
|
|
220
|
+
// This rollbacks the pending state created in `ExpectedState::Precommit`,
|
|
221
|
+
// such as pending delete, pending put. If `ExpectedState::Precommit()` is not
|
|
222
|
+
// called before creating this `PendingExpectedValue`, this is a no-op.
|
|
223
|
+
void Rollback() {
|
|
224
|
+
assert(!pending_state_closed_);
|
|
225
|
+
ClosePendingState();
|
|
226
|
+
// To prevent low-level instruction reordering that results
|
|
227
|
+
// in setting expected value happens before db write
|
|
228
|
+
std::atomic_thread_fence(std::memory_order_release);
|
|
229
|
+
value_ptr_->store(orig_value_.Read());
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
void PermitUnclosedPendingState() const {
|
|
233
|
+
assert(!pending_state_closed_);
|
|
234
|
+
ClosePendingState();
|
|
235
|
+
}
|
|
236
|
+
|
|
170
237
|
uint32_t GetFinalValueBase() { return final_value_.GetValueBase(); }
|
|
171
238
|
|
|
172
239
|
private:
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
240
|
+
inline void ClosePendingState() const { pending_state_closed_ = true; }
|
|
241
|
+
|
|
242
|
+
std::atomic<uint32_t>* value_ptr_;
|
|
243
|
+
ExpectedValue orig_value_;
|
|
244
|
+
ExpectedValue final_value_;
|
|
245
|
+
mutable bool pending_state_closed_;
|
|
176
246
|
};
|
|
177
247
|
|
|
178
248
|
// `ExpectedValueHelper` provides utils to parse `ExpectedValue` to obtain
|
|
@@ -150,7 +150,7 @@ std::string MultiOpsTxnsStressTest::Record::EncodePrimaryKey(uint32_t a) {
|
|
|
150
150
|
PutFixed32(&ret, kPrimaryIndexId);
|
|
151
151
|
PutFixed32(&ret, a);
|
|
152
152
|
|
|
153
|
-
char* const buf =
|
|
153
|
+
char* const buf = ret.data();
|
|
154
154
|
std::reverse(buf, buf + sizeof(kPrimaryIndexId));
|
|
155
155
|
std::reverse(buf + sizeof(kPrimaryIndexId),
|
|
156
156
|
buf + sizeof(kPrimaryIndexId) + sizeof(a));
|
|
@@ -162,7 +162,7 @@ std::string MultiOpsTxnsStressTest::Record::EncodeSecondaryKey(uint32_t c) {
|
|
|
162
162
|
PutFixed32(&ret, kSecondaryIndexId);
|
|
163
163
|
PutFixed32(&ret, c);
|
|
164
164
|
|
|
165
|
-
char* const buf =
|
|
165
|
+
char* const buf = ret.data();
|
|
166
166
|
std::reverse(buf, buf + sizeof(kSecondaryIndexId));
|
|
167
167
|
std::reverse(buf + sizeof(kSecondaryIndexId),
|
|
168
168
|
buf + sizeof(kSecondaryIndexId) + sizeof(c));
|
|
@@ -176,7 +176,7 @@ std::string MultiOpsTxnsStressTest::Record::EncodeSecondaryKey(uint32_t c,
|
|
|
176
176
|
PutFixed32(&ret, c);
|
|
177
177
|
PutFixed32(&ret, a);
|
|
178
178
|
|
|
179
|
-
char* const buf =
|
|
179
|
+
char* const buf = ret.data();
|
|
180
180
|
std::reverse(buf, buf + sizeof(kSecondaryIndexId));
|
|
181
181
|
std::reverse(buf + sizeof(kSecondaryIndexId),
|
|
182
182
|
buf + sizeof(kSecondaryIndexId) + sizeof(c));
|
|
@@ -373,10 +373,15 @@ Status MultiOpsTxnsStressTest::TestGet(
|
|
|
373
373
|
ThreadState* thread, const ReadOptions& read_opts,
|
|
374
374
|
const std::vector<int>& /*rand_column_families*/,
|
|
375
375
|
const std::vector<int64_t>& /*rand_keys*/) {
|
|
376
|
+
ThreadStatus::OperationType cur_op_type =
|
|
377
|
+
ThreadStatusUtil::GetThreadOperation();
|
|
378
|
+
ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType::OP_UNKNOWN);
|
|
376
379
|
uint32_t a = 0;
|
|
377
380
|
uint32_t pos = 0;
|
|
378
381
|
std::tie(a, pos) = ChooseExistingA(thread);
|
|
379
|
-
|
|
382
|
+
Status s = PointLookupTxn(thread, read_opts, a);
|
|
383
|
+
ThreadStatusUtil::SetThreadOperation(cur_op_type);
|
|
384
|
+
return s;
|
|
380
385
|
}
|
|
381
386
|
|
|
382
387
|
// Not used.
|
|
@@ -416,10 +421,15 @@ Status MultiOpsTxnsStressTest::TestIterate(
|
|
|
416
421
|
ThreadState* thread, const ReadOptions& read_opts,
|
|
417
422
|
const std::vector<int>& /*rand_column_families*/,
|
|
418
423
|
const std::vector<int64_t>& /*rand_keys*/) {
|
|
424
|
+
ThreadStatus::OperationType cur_op_type =
|
|
425
|
+
ThreadStatusUtil::GetThreadOperation();
|
|
426
|
+
ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType::OP_UNKNOWN);
|
|
419
427
|
uint32_t c = 0;
|
|
420
428
|
uint32_t pos = 0;
|
|
421
429
|
std::tie(c, pos) = ChooseExistingC(thread);
|
|
422
|
-
|
|
430
|
+
Status s = RangeScanTxn(thread, read_opts, c);
|
|
431
|
+
ThreadStatusUtil::SetThreadOperation(cur_op_type);
|
|
432
|
+
return s;
|
|
423
433
|
}
|
|
424
434
|
|
|
425
435
|
// Not intended for use.
|
|
@@ -1221,7 +1231,11 @@ void MultiOpsTxnsStressTest::VerifyPkSkFast(const ReadOptions& read_options,
|
|
|
1221
1231
|
assert(db_ == db);
|
|
1222
1232
|
assert(db_ != nullptr);
|
|
1223
1233
|
|
|
1234
|
+
ThreadStatus::OperationType cur_op_type =
|
|
1235
|
+
ThreadStatusUtil::GetThreadOperation();
|
|
1236
|
+
ThreadStatusUtil::SetThreadOperation(ThreadStatus::OperationType::OP_UNKNOWN);
|
|
1224
1237
|
const Snapshot* const snapshot = db_->GetSnapshot();
|
|
1238
|
+
ThreadStatusUtil::SetThreadOperation(cur_op_type);
|
|
1225
1239
|
assert(snapshot);
|
|
1226
1240
|
ManagedSnapshot snapshot_guard(db_, snapshot);
|
|
1227
1241
|
|
|
@@ -1317,14 +1331,16 @@ uint32_t MultiOpsTxnsStressTest::GenerateNextC(ThreadState* thread) {
|
|
|
1317
1331
|
}
|
|
1318
1332
|
|
|
1319
1333
|
void MultiOpsTxnsStressTest::ProcessRecoveredPreparedTxnsHelper(
|
|
1320
|
-
Transaction* txn, SharedState*) {
|
|
1334
|
+
Transaction* txn, SharedState* shared) {
|
|
1321
1335
|
thread_local Random rand(static_cast<uint32_t>(FLAGS_seed));
|
|
1322
1336
|
if (rand.OneIn(2)) {
|
|
1323
1337
|
Status s = txn->Commit();
|
|
1324
|
-
|
|
1338
|
+
ProcessStatus(shared, "ProcessRecoveredPreparedTxnsHelper", s,
|
|
1339
|
+
/*ignore_injected_error=*/false);
|
|
1325
1340
|
} else {
|
|
1326
1341
|
Status s = txn->Rollback();
|
|
1327
|
-
|
|
1342
|
+
ProcessStatus(shared, "ProcessRecoveredPreparedTxnsHelper", s,
|
|
1343
|
+
/*ignore_injected_error=*/false);
|
|
1328
1344
|
}
|
|
1329
1345
|
}
|
|
1330
1346
|
|
|
@@ -1503,14 +1519,15 @@ void MultiOpsTxnsStressTest::PreloadDb(SharedState* shared, int threads,
|
|
|
1503
1519
|
WriteBatch wb;
|
|
1504
1520
|
const auto primary_index_entry = record.EncodePrimaryIndexEntry();
|
|
1505
1521
|
Status s = wb.Put(primary_index_entry.first, primary_index_entry.second);
|
|
1506
|
-
|
|
1522
|
+
ProcessStatus(shared, "PreloadDB", s, /*ignore_injected_error=*/false);
|
|
1507
1523
|
|
|
1508
1524
|
const auto secondary_index_entry = record.EncodeSecondaryIndexEntry();
|
|
1509
1525
|
s = wb.Put(secondary_index_entry.first, secondary_index_entry.second);
|
|
1510
|
-
|
|
1526
|
+
ProcessStatus(shared, "PreloadDB", s, /*ignore_injected_error=*/false);
|
|
1511
1527
|
|
|
1512
1528
|
s = txn_db_->Write(wopts, &wb);
|
|
1513
1529
|
assert(s.ok());
|
|
1530
|
+
ProcessStatus(shared, "PreloadDB", s, /*ignore_injected_error=*/false);
|
|
1514
1531
|
|
|
1515
1532
|
// TODO (yanqin): make the following check optional, especially when data
|
|
1516
1533
|
// size is large.
|
|
@@ -1518,7 +1535,7 @@ void MultiOpsTxnsStressTest::PreloadDb(SharedState* shared, int threads,
|
|
|
1518
1535
|
tmp_rec.SetB(record.b_value());
|
|
1519
1536
|
s = tmp_rec.DecodeSecondaryIndexEntry(secondary_index_entry.first,
|
|
1520
1537
|
secondary_index_entry.second);
|
|
1521
|
-
|
|
1538
|
+
ProcessStatus(shared, "PreloadDB", s, /*ignore_injected_error=*/false);
|
|
1522
1539
|
assert(tmp_rec == record);
|
|
1523
1540
|
|
|
1524
1541
|
existing_a_uniqs[tid].insert(a);
|