@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
|
@@ -288,39 +288,37 @@ void CompactionJob::Prepare() {
|
|
|
288
288
|
|
|
289
289
|
if (preserve_time_duration > 0) {
|
|
290
290
|
const ReadOptions read_options(Env::IOActivity::kCompaction);
|
|
291
|
-
//
|
|
292
|
-
seqno_to_time_mapping_.
|
|
291
|
+
// Setup seqno_to_time_mapping_ with relevant time range.
|
|
292
|
+
seqno_to_time_mapping_.SetMaxTimeSpan(preserve_time_duration);
|
|
293
293
|
for (const auto& each_level : *c->inputs()) {
|
|
294
294
|
for (const auto& fmd : each_level.files) {
|
|
295
295
|
std::shared_ptr<const TableProperties> tp;
|
|
296
296
|
Status s =
|
|
297
297
|
cfd->current()->GetTableProperties(read_options, &tp, fmd, nullptr);
|
|
298
298
|
if (s.ok()) {
|
|
299
|
-
seqno_to_time_mapping_.
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
299
|
+
s = seqno_to_time_mapping_.DecodeFrom(tp->seqno_to_time_mapping);
|
|
300
|
+
}
|
|
301
|
+
if (!s.ok()) {
|
|
302
|
+
ROCKS_LOG_WARN(
|
|
303
|
+
db_options_.info_log,
|
|
304
|
+
"Problem reading or processing seqno-to-time mapping: %s",
|
|
305
|
+
s.ToString().c_str());
|
|
303
306
|
}
|
|
304
307
|
}
|
|
305
308
|
}
|
|
306
309
|
|
|
307
|
-
auto status = seqno_to_time_mapping_.Sort();
|
|
308
|
-
if (!status.ok()) {
|
|
309
|
-
ROCKS_LOG_WARN(db_options_.info_log,
|
|
310
|
-
"Invalid sequence number to time mapping: Status: %s",
|
|
311
|
-
status.ToString().c_str());
|
|
312
|
-
}
|
|
313
310
|
int64_t _current_time = 0;
|
|
314
|
-
|
|
315
|
-
if (!
|
|
311
|
+
Status s = db_options_.clock->GetCurrentTime(&_current_time);
|
|
312
|
+
if (!s.ok()) {
|
|
316
313
|
ROCKS_LOG_WARN(db_options_.info_log,
|
|
317
314
|
"Failed to get current time in compaction: Status: %s",
|
|
318
|
-
|
|
315
|
+
s.ToString().c_str());
|
|
319
316
|
// preserve all time information
|
|
320
317
|
preserve_time_min_seqno_ = 0;
|
|
321
318
|
preclude_last_level_min_seqno_ = 0;
|
|
319
|
+
seqno_to_time_mapping_.Enforce();
|
|
322
320
|
} else {
|
|
323
|
-
seqno_to_time_mapping_.
|
|
321
|
+
seqno_to_time_mapping_.Enforce(_current_time);
|
|
324
322
|
uint64_t preserve_time =
|
|
325
323
|
static_cast<uint64_t>(_current_time) > preserve_time_duration
|
|
326
324
|
? _current_time - preserve_time_duration
|
|
@@ -344,6 +342,16 @@ void CompactionJob::Prepare() {
|
|
|
344
342
|
1;
|
|
345
343
|
}
|
|
346
344
|
}
|
|
345
|
+
// For accuracy of the GetProximalSeqnoBeforeTime queries above, we only
|
|
346
|
+
// limit the capacity after them.
|
|
347
|
+
// Here If we set capacity to the per-SST limit, we could be throwing away
|
|
348
|
+
// fidelity when a compaction output file has a narrower seqno range than
|
|
349
|
+
// all the inputs. If we only limit capacity for each compaction output, we
|
|
350
|
+
// could be doing a lot of unnecessary recomputation in a large compaction
|
|
351
|
+
// (up to quadratic in number of files). Thus, we do soemthing in the
|
|
352
|
+
// middle: enforce a resonably large constant size limit substantially
|
|
353
|
+
// larger than kMaxSeqnoTimePairsPerSST.
|
|
354
|
+
seqno_to_time_mapping_.SetCapacity(kMaxSeqnoToTimeEntries);
|
|
347
355
|
}
|
|
348
356
|
}
|
|
349
357
|
|
|
@@ -396,7 +404,9 @@ void CompactionJob::AcquireSubcompactionResources(
|
|
|
396
404
|
|
|
397
405
|
void CompactionJob::ShrinkSubcompactionResources(uint64_t num_extra_resources) {
|
|
398
406
|
// Do nothing when we have zero resources to shrink
|
|
399
|
-
if (num_extra_resources == 0)
|
|
407
|
+
if (num_extra_resources == 0) {
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
400
410
|
db_mutex_->Lock();
|
|
401
411
|
// We cannot release threads more than what we reserved before
|
|
402
412
|
int extra_num_subcompaction_threads_released = env_->ReleaseThreads(
|
|
@@ -442,14 +452,6 @@ void CompactionJob::ReleaseSubcompactionResources() {
|
|
|
442
452
|
ShrinkSubcompactionResources(extra_num_subcompaction_threads_reserved_);
|
|
443
453
|
}
|
|
444
454
|
|
|
445
|
-
struct RangeWithSize {
|
|
446
|
-
Range range;
|
|
447
|
-
uint64_t size;
|
|
448
|
-
|
|
449
|
-
RangeWithSize(const Slice& a, const Slice& b, uint64_t s = 0)
|
|
450
|
-
: range(a, b), size(s) {}
|
|
451
|
-
};
|
|
452
|
-
|
|
453
455
|
void CompactionJob::GenSubcompactionBoundaries() {
|
|
454
456
|
// The goal is to find some boundary keys so that we can evenly partition
|
|
455
457
|
// the compaction input data into max_subcompactions ranges.
|
|
@@ -476,7 +478,8 @@ void CompactionJob::GenSubcompactionBoundaries() {
|
|
|
476
478
|
// overlap with N-1 other ranges. Since we requested a relatively large number
|
|
477
479
|
// (128) of ranges from each input files, even N range overlapping would
|
|
478
480
|
// cause relatively small inaccuracy.
|
|
479
|
-
|
|
481
|
+
ReadOptions read_options(Env::IOActivity::kCompaction);
|
|
482
|
+
read_options.rate_limiter_priority = GetRateLimiterPriority();
|
|
480
483
|
auto* c = compact_->compaction;
|
|
481
484
|
if (c->max_subcompactions() <= 1 &&
|
|
482
485
|
!(c->immutable_options()->compaction_pri == kRoundRobin &&
|
|
@@ -583,7 +586,9 @@ void CompactionJob::GenSubcompactionBoundaries() {
|
|
|
583
586
|
|
|
584
587
|
TEST_SYNC_POINT_CALLBACK("CompactionJob::GenSubcompactionBoundaries:0",
|
|
585
588
|
&num_planned_subcompactions);
|
|
586
|
-
if (num_planned_subcompactions == 1)
|
|
589
|
+
if (num_planned_subcompactions == 1) {
|
|
590
|
+
return;
|
|
591
|
+
}
|
|
587
592
|
|
|
588
593
|
// Group the ranges into subcompactions
|
|
589
594
|
uint64_t target_range_size = std::max(
|
|
@@ -640,7 +645,7 @@ Status CompactionJob::Run() {
|
|
|
640
645
|
|
|
641
646
|
// Always schedule the first subcompaction (whether or not there are also
|
|
642
647
|
// others) in the current thread to be efficient with resources
|
|
643
|
-
ProcessKeyValueCompaction(
|
|
648
|
+
ProcessKeyValueCompaction(compact_->sub_compact_states.data());
|
|
644
649
|
|
|
645
650
|
// Wait for all other threads (if there are any) to finish execution
|
|
646
651
|
for (auto& thread : thread_pool) {
|
|
@@ -728,8 +733,9 @@ Status CompactionJob::Run() {
|
|
|
728
733
|
// use_direct_io_for_flush_and_compaction is true, we will regard this
|
|
729
734
|
// verification as user reads since the goal is to cache it here for
|
|
730
735
|
// further user reads
|
|
731
|
-
|
|
732
|
-
|
|
736
|
+
ReadOptions verify_table_read_options(Env::IOActivity::kCompaction);
|
|
737
|
+
verify_table_read_options.rate_limiter_priority =
|
|
738
|
+
GetRateLimiterPriority();
|
|
733
739
|
InternalIterator* iter = cfd->table_cache()->NewIterator(
|
|
734
740
|
verify_table_read_options, file_options_,
|
|
735
741
|
cfd->internal_comparator(), files_output[file_idx]->meta,
|
|
@@ -750,7 +756,6 @@ Status CompactionJob::Run() {
|
|
|
750
756
|
|
|
751
757
|
if (s.ok() && paranoid_file_checks_) {
|
|
752
758
|
OutputValidator validator(cfd->internal_comparator(),
|
|
753
|
-
/*_enable_order_check=*/true,
|
|
754
759
|
/*_enable_hash=*/true);
|
|
755
760
|
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
|
|
756
761
|
s = validator.Add(iter->key(), iter->value());
|
|
@@ -821,24 +826,27 @@ Status CompactionJob::Run() {
|
|
|
821
826
|
// input keys. So the number of keys it processed is not suitable for
|
|
822
827
|
// verification here.
|
|
823
828
|
// TODO: support verification when trim_ts_ is non-empty.
|
|
824
|
-
if (!(ts_sz > 0 && !trim_ts_.empty())
|
|
825
|
-
db_options_.compaction_verify_record_count) {
|
|
829
|
+
if (!(ts_sz > 0 && !trim_ts_.empty())) {
|
|
826
830
|
assert(compaction_stats_.stats.num_input_records > 0);
|
|
827
831
|
// TODO: verify the number of range deletion entries.
|
|
828
832
|
uint64_t expected =
|
|
829
833
|
compaction_stats_.stats.num_input_records - num_input_range_del;
|
|
830
834
|
uint64_t actual = compaction_job_stats_->num_input_records;
|
|
831
835
|
if (expected != actual) {
|
|
836
|
+
char scratch[2345];
|
|
837
|
+
compact_->compaction->Summary(scratch, sizeof(scratch));
|
|
832
838
|
std::string msg =
|
|
833
|
-
"
|
|
834
|
-
"
|
|
839
|
+
"Compaction number of input keys does not match "
|
|
840
|
+
"number of keys processed. Expected " +
|
|
841
|
+
std::to_string(expected) + " but processed " +
|
|
842
|
+
std::to_string(actual) + ". Compaction summary: " + scratch;
|
|
835
843
|
ROCKS_LOG_WARN(
|
|
836
|
-
db_options_.info_log, "[%s] [JOB %d] Compaction %s",
|
|
844
|
+
db_options_.info_log, "[%s] [JOB %d] Compaction with status: %s",
|
|
837
845
|
compact_->compaction->column_family_data()->GetName().c_str(),
|
|
838
846
|
job_context_->job_id, msg.c_str());
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
847
|
+
if (db_options_.compaction_verify_record_count) {
|
|
848
|
+
status = Status::Corruption(msg);
|
|
849
|
+
}
|
|
842
850
|
}
|
|
843
851
|
}
|
|
844
852
|
}
|
|
@@ -1130,6 +1138,9 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
|
|
|
1130
1138
|
// (b) CompactionFilter::Decision::kRemoveAndSkipUntil.
|
|
1131
1139
|
read_options.total_order_seek = true;
|
|
1132
1140
|
|
|
1141
|
+
const WriteOptions write_options(Env::IOPriority::IO_LOW,
|
|
1142
|
+
Env::IOActivity::kCompaction);
|
|
1143
|
+
|
|
1133
1144
|
// Remove the timestamps from boundaries because boundaries created in
|
|
1134
1145
|
// GenSubcompactionBoundaries doesn't strip away the timestamp.
|
|
1135
1146
|
size_t ts_sz = cfd->user_comparator()->timestamp_size();
|
|
@@ -1264,18 +1275,17 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
|
|
|
1264
1275
|
? new BlobFileBuilder(
|
|
1265
1276
|
versions_, fs_.get(),
|
|
1266
1277
|
sub_compact->compaction->immutable_options(),
|
|
1267
|
-
mutable_cf_options, &file_options_,
|
|
1268
|
-
job_id_, cfd->GetID(), cfd->GetName(),
|
|
1278
|
+
mutable_cf_options, &file_options_, &write_options, db_id_,
|
|
1279
|
+
db_session_id_, job_id_, cfd->GetID(), cfd->GetName(),
|
|
1269
1280
|
write_hint_, io_tracer_, blob_callback_,
|
|
1270
1281
|
BlobFileCreationReason::kCompaction, &blob_file_paths,
|
|
1271
1282
|
sub_compact->Current().GetBlobFileAdditionsPtr())
|
|
1272
1283
|
: nullptr);
|
|
1273
1284
|
|
|
1274
1285
|
TEST_SYNC_POINT("CompactionJob::Run():Inprogress");
|
|
1275
|
-
TEST_SYNC_POINT_CALLBACK(
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
const_cast<std::atomic<bool>*>(&manual_compaction_canceled_)));
|
|
1286
|
+
TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():PausingManualCompaction:1",
|
|
1287
|
+
static_cast<void*>(const_cast<std::atomic<bool>*>(
|
|
1288
|
+
&manual_compaction_canceled_)));
|
|
1279
1289
|
|
|
1280
1290
|
const std::string* const full_history_ts_low =
|
|
1281
1291
|
full_history_ts_low_.empty() ? nullptr : &full_history_ts_low_;
|
|
@@ -1323,8 +1333,7 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
|
|
|
1323
1333
|
Status status;
|
|
1324
1334
|
TEST_SYNC_POINT_CALLBACK(
|
|
1325
1335
|
"CompactionJob::ProcessKeyValueCompaction()::Processing",
|
|
1326
|
-
|
|
1327
|
-
const_cast<Compaction*>(sub_compact->compaction)));
|
|
1336
|
+
static_cast<void*>(const_cast<Compaction*>(sub_compact->compaction)));
|
|
1328
1337
|
uint64_t last_cpu_micros = prev_cpu_micros;
|
|
1329
1338
|
while (status.ok() && !cfd->IsDropped() && c_iter->Valid()) {
|
|
1330
1339
|
// Invariant: c_iter.status() is guaranteed to be OK if c_iter->Valid()
|
|
@@ -1355,10 +1364,9 @@ void CompactionJob::ProcessKeyValueCompaction(SubcompactionState* sub_compact) {
|
|
|
1355
1364
|
break;
|
|
1356
1365
|
}
|
|
1357
1366
|
|
|
1358
|
-
TEST_SYNC_POINT_CALLBACK(
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
const_cast<std::atomic<bool>*>(&manual_compaction_canceled_)));
|
|
1367
|
+
TEST_SYNC_POINT_CALLBACK("CompactionJob::Run():PausingManualCompaction:2",
|
|
1368
|
+
static_cast<void*>(const_cast<std::atomic<bool>*>(
|
|
1369
|
+
&manual_compaction_canceled_)));
|
|
1362
1370
|
c_iter->Next();
|
|
1363
1371
|
if (c_iter->status().IsManualCompactionPaused()) {
|
|
1364
1372
|
break;
|
|
@@ -1710,6 +1718,8 @@ Status CompactionJob::InstallCompactionResults(
|
|
|
1710
1718
|
db_mutex_->AssertHeld();
|
|
1711
1719
|
|
|
1712
1720
|
const ReadOptions read_options(Env::IOActivity::kCompaction);
|
|
1721
|
+
const WriteOptions write_options(Env::IOActivity::kCompaction);
|
|
1722
|
+
|
|
1713
1723
|
auto* compaction = compact_->compaction;
|
|
1714
1724
|
assert(compaction);
|
|
1715
1725
|
|
|
@@ -1792,8 +1802,9 @@ Status CompactionJob::InstallCompactionResults(
|
|
|
1792
1802
|
};
|
|
1793
1803
|
|
|
1794
1804
|
return versions_->LogAndApply(
|
|
1795
|
-
compaction->column_family_data(), mutable_cf_options, read_options,
|
|
1796
|
-
db_mutex_, db_directory_,
|
|
1805
|
+
compaction->column_family_data(), mutable_cf_options, read_options,
|
|
1806
|
+
write_options, edit, db_mutex_, db_directory_,
|
|
1807
|
+
/*new_descriptor_log=*/false,
|
|
1797
1808
|
/*column_family_options=*/nullptr, manifest_wcb);
|
|
1798
1809
|
}
|
|
1799
1810
|
|
|
@@ -1843,13 +1854,14 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
|
|
|
1843
1854
|
// Pass temperature of the last level files to FileSystem.
|
|
1844
1855
|
FileOptions fo_copy = file_options_;
|
|
1845
1856
|
Temperature temperature = sub_compact->compaction->output_temperature();
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1857
|
+
Temperature last_level_temp =
|
|
1858
|
+
sub_compact->compaction->mutable_cf_options()->last_level_temperature;
|
|
1859
|
+
// Here last_level_temperature supersedes default_write_temperature, when
|
|
1860
|
+
// enabled and applicable
|
|
1861
|
+
if (last_level_temp != Temperature::kUnknown &&
|
|
1849
1862
|
sub_compact->compaction->is_last_level() &&
|
|
1850
1863
|
!sub_compact->IsCurrentPenultimateLevel()) {
|
|
1851
|
-
temperature =
|
|
1852
|
-
sub_compact->compaction->mutable_cf_options()->last_level_temperature;
|
|
1864
|
+
temperature = last_level_temp;
|
|
1853
1865
|
}
|
|
1854
1866
|
fo_copy.temperature = temperature;
|
|
1855
1867
|
|
|
@@ -1900,6 +1912,8 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
|
|
|
1900
1912
|
sub_compact->start.has_value() ? &tmp_start : nullptr,
|
|
1901
1913
|
sub_compact->end.has_value() ? &tmp_end : nullptr);
|
|
1902
1914
|
if (oldest_ancester_time == std::numeric_limits<uint64_t>::max()) {
|
|
1915
|
+
// TODO: fix DBSSTTest.GetTotalSstFilesSize and use
|
|
1916
|
+
// kUnknownOldestAncesterTime
|
|
1903
1917
|
oldest_ancester_time = current_time;
|
|
1904
1918
|
}
|
|
1905
1919
|
|
|
@@ -1927,8 +1941,6 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
|
|
|
1927
1941
|
}
|
|
1928
1942
|
|
|
1929
1943
|
outputs.AddOutput(std::move(meta), cfd->internal_comparator(),
|
|
1930
|
-
sub_compact->compaction->mutable_cf_options()
|
|
1931
|
-
->check_flush_compaction_key_order,
|
|
1932
1944
|
paranoid_file_checks_);
|
|
1933
1945
|
}
|
|
1934
1946
|
|
|
@@ -1941,13 +1953,17 @@ Status CompactionJob::OpenCompactionOutputFile(SubcompactionState* sub_compact,
|
|
|
1941
1953
|
sub_compact->compaction->immutable_options()->listeners;
|
|
1942
1954
|
outputs.AssignFileWriter(new WritableFileWriter(
|
|
1943
1955
|
std::move(writable_file), fname, fo_copy, db_options_.clock, io_tracer_,
|
|
1944
|
-
db_options_.stats,
|
|
1956
|
+
db_options_.stats, Histograms::SST_WRITE_MICROS, listeners,
|
|
1957
|
+
db_options_.file_checksum_gen_factory.get(),
|
|
1945
1958
|
tmp_set.Contains(FileType::kTableFile), false));
|
|
1946
1959
|
|
|
1947
1960
|
// TODO(hx235): pass in the correct `oldest_key_time` instead of `0`
|
|
1961
|
+
const ReadOptions read_options(Env::IOActivity::kCompaction);
|
|
1962
|
+
const WriteOptions write_options(Env::IOActivity::kCompaction);
|
|
1948
1963
|
TableBuilderOptions tboptions(
|
|
1949
1964
|
*cfd->ioptions(), *(sub_compact->compaction->mutable_cf_options()),
|
|
1950
|
-
|
|
1965
|
+
read_options, write_options, cfd->internal_comparator(),
|
|
1966
|
+
cfd->internal_tbl_prop_coll_factories(),
|
|
1951
1967
|
sub_compact->compaction->output_compression(),
|
|
1952
1968
|
sub_compact->compaction->output_compression_opts(), cfd->GetID(),
|
|
1953
1969
|
cfd->GetName(), sub_compact->compaction->output_level(),
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
#include "table/block_based/block_based_table_factory.h"
|
|
47
47
|
#include "table/mock_table.h"
|
|
48
48
|
#include "table/plain/plain_table_factory.h"
|
|
49
|
-
#include "table/scoped_arena_iterator.h"
|
|
50
49
|
#include "test_util/sync_point.h"
|
|
51
50
|
#include "test_util/testharness.h"
|
|
52
51
|
#include "test_util/testutil.h"
|
|
@@ -131,7 +130,7 @@ class CompactionJobStatsTest : public testing::Test,
|
|
|
131
130
|
ColumnFamilyOptions cf_opts(options);
|
|
132
131
|
size_t cfi = handles_.size();
|
|
133
132
|
handles_.resize(cfi + cfs.size());
|
|
134
|
-
for (auto cf : cfs) {
|
|
133
|
+
for (const auto& cf : cfs) {
|
|
135
134
|
ASSERT_OK(db_->CreateColumnFamily(cf_opts, cf, &handles_[cfi++]));
|
|
136
135
|
}
|
|
137
136
|
}
|
|
@@ -160,7 +159,7 @@ class CompactionJobStatsTest : public testing::Test,
|
|
|
160
159
|
EXPECT_EQ(cfs.size(), options.size());
|
|
161
160
|
std::vector<ColumnFamilyDescriptor> column_families;
|
|
162
161
|
for (size_t i = 0; i < cfs.size(); ++i) {
|
|
163
|
-
column_families.
|
|
162
|
+
column_families.emplace_back(cfs[i], options[i]);
|
|
164
163
|
}
|
|
165
164
|
DBOptions db_opts = DBOptions(options[0]);
|
|
166
165
|
return DB::Open(db_opts, dbname_, column_families, &handles_, &db_);
|
|
@@ -215,7 +215,9 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
215
215
|
dbname_, &db_options_, env_options_, table_cache_.get(),
|
|
216
216
|
&write_buffer_manager_, &write_controller_,
|
|
217
217
|
/*block_cache_tracer=*/nullptr,
|
|
218
|
-
/*io_tracer=*/nullptr, /*db_id
|
|
218
|
+
/*io_tracer=*/nullptr, /*db_id=*/"", /*db_session_id=*/"",
|
|
219
|
+
/*daily_offpeak_time_utc=*/"",
|
|
220
|
+
/*error_handler=*/nullptr, /*read_only=*/false)),
|
|
219
221
|
shutting_down_(false),
|
|
220
222
|
mock_table_factory_(new mock::MockTableFactory()),
|
|
221
223
|
error_handler_(nullptr, db_options_, &mutex_),
|
|
@@ -293,17 +295,20 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
293
295
|
Status s = WritableFileWriter::Create(fs_, table_name, FileOptions(),
|
|
294
296
|
&file_writer, nullptr);
|
|
295
297
|
ASSERT_OK(s);
|
|
298
|
+
const ReadOptions read_options;
|
|
299
|
+
const WriteOptions write_options;
|
|
296
300
|
std::unique_ptr<TableBuilder> table_builder(
|
|
297
301
|
cf_options_.table_factory->NewTableBuilder(
|
|
298
302
|
TableBuilderOptions(*cfd_->ioptions(), mutable_cf_options_,
|
|
303
|
+
read_options, write_options,
|
|
299
304
|
cfd_->internal_comparator(),
|
|
300
|
-
cfd_->
|
|
305
|
+
cfd_->internal_tbl_prop_coll_factories(),
|
|
301
306
|
CompressionType::kNoCompression,
|
|
302
307
|
CompressionOptions(), 0 /* column_family_id */,
|
|
303
308
|
kDefaultColumnFamilyName, -1 /* level */),
|
|
304
309
|
file_writer.get()));
|
|
305
310
|
// Build table.
|
|
306
|
-
for (auto kv : contents) {
|
|
311
|
+
for (const auto& kv : contents) {
|
|
307
312
|
std::string key;
|
|
308
313
|
std::string value;
|
|
309
314
|
std::tie(key, value) = kv;
|
|
@@ -322,7 +327,7 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
322
327
|
SequenceNumber smallest_seqno = kMaxSequenceNumber;
|
|
323
328
|
SequenceNumber largest_seqno = 0;
|
|
324
329
|
uint64_t oldest_blob_file_number = kInvalidBlobFileNumber;
|
|
325
|
-
for (auto kv : contents) {
|
|
330
|
+
for (const auto& kv : contents) {
|
|
326
331
|
ParsedInternalKey key;
|
|
327
332
|
std::string skey;
|
|
328
333
|
std::string value;
|
|
@@ -392,7 +397,7 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
392
397
|
mutex_.Lock();
|
|
393
398
|
EXPECT_OK(versions_->LogAndApply(
|
|
394
399
|
versions_->GetColumnFamilySet()->GetDefault(), mutable_cf_options_,
|
|
395
|
-
read_options_, &edit, &mutex_, nullptr));
|
|
400
|
+
read_options_, write_options_, &edit, &mutex_, nullptr));
|
|
396
401
|
mutex_.Unlock();
|
|
397
402
|
}
|
|
398
403
|
|
|
@@ -540,13 +545,14 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
540
545
|
ASSERT_OK(s);
|
|
541
546
|
db_options_.info_log = info_log;
|
|
542
547
|
|
|
543
|
-
versions_.reset(
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
+
versions_.reset(new VersionSet(
|
|
549
|
+
dbname_, &db_options_, env_options_, table_cache_.get(),
|
|
550
|
+
&write_buffer_manager_, &write_controller_,
|
|
551
|
+
/*block_cache_tracer=*/nullptr, /*io_tracer=*/nullptr,
|
|
552
|
+
/*db_id=*/"", /*db_session_id=*/"", /*daily_offpeak_time_utc=*/"",
|
|
553
|
+
/*error_handler=*/nullptr, /*read_only=*/false));
|
|
548
554
|
compaction_job_stats_.Reset();
|
|
549
|
-
ASSERT_OK(SetIdentityFile(env_, dbname_));
|
|
555
|
+
ASSERT_OK(SetIdentityFile(WriteOptions(), env_, dbname_));
|
|
550
556
|
|
|
551
557
|
VersionEdit new_db;
|
|
552
558
|
new_db.SetLogNumber(0);
|
|
@@ -565,11 +571,11 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
565
571
|
log::Writer log(std::move(file_writer), 0, false);
|
|
566
572
|
std::string record;
|
|
567
573
|
new_db.EncodeTo(&record);
|
|
568
|
-
s = log.AddRecord(record);
|
|
574
|
+
s = log.AddRecord(WriteOptions(), record);
|
|
569
575
|
}
|
|
570
576
|
ASSERT_OK(s);
|
|
571
577
|
// Make "CURRENT" file that points to the new manifest file.
|
|
572
|
-
s = SetCurrentFile(fs_.get(), dbname_, 1, nullptr);
|
|
578
|
+
s = SetCurrentFile(WriteOptions(), fs_.get(), dbname_, 1, nullptr);
|
|
573
579
|
|
|
574
580
|
ASSERT_OK(s);
|
|
575
581
|
|
|
@@ -733,6 +739,7 @@ class CompactionJobTestBase : public testing::Test {
|
|
|
733
739
|
MutableCFOptions mutable_cf_options_;
|
|
734
740
|
MutableDBOptions mutable_db_options_;
|
|
735
741
|
const ReadOptions read_options_;
|
|
742
|
+
const WriteOptions write_options_;
|
|
736
743
|
std::shared_ptr<Cache> table_cache_;
|
|
737
744
|
WriteController write_controller_;
|
|
738
745
|
WriteBufferManager write_buffer_manager_;
|
|
@@ -1466,7 +1473,7 @@ TEST_F(CompactionJobTest, OldestBlobFileNumber) {
|
|
|
1466
1473
|
}
|
|
1467
1474
|
|
|
1468
1475
|
TEST_F(CompactionJobTest, VerifyPenultimateLevelOutput) {
|
|
1469
|
-
cf_options_.
|
|
1476
|
+
cf_options_.last_level_temperature = Temperature::kCold;
|
|
1470
1477
|
SyncPoint::GetInstance()->SetCallBack(
|
|
1471
1478
|
"Compaction::SupportsPerKeyPlacement:Enabled", [&](void* arg) {
|
|
1472
1479
|
auto supports_per_key_placement = static_cast<bool*>(arg);
|
|
@@ -1524,13 +1531,15 @@ TEST_F(CompactionJobTest, VerifyPenultimateLevelOutput) {
|
|
|
1524
1531
|
{files0, files1, files2, files3}, input_levels,
|
|
1525
1532
|
/*verify_func=*/[&](Compaction& comp) {
|
|
1526
1533
|
for (char c = 'a'; c <= 'z'; c++) {
|
|
1527
|
-
std::string c_str;
|
|
1528
|
-
c_str = c;
|
|
1529
|
-
const Slice key(c_str);
|
|
1530
1534
|
if (c == 'a') {
|
|
1531
|
-
|
|
1535
|
+
ParsedInternalKey pik("a", 0U, kTypeValue);
|
|
1536
|
+
ASSERT_FALSE(comp.WithinPenultimateLevelOutputRange(pik));
|
|
1532
1537
|
} else {
|
|
1533
|
-
|
|
1538
|
+
std::string c_str{c};
|
|
1539
|
+
// WithinPenultimateLevelOutputRange checks internal key range.
|
|
1540
|
+
// 'z' is the last key, so set seqno properly.
|
|
1541
|
+
ParsedInternalKey pik(c_str, c == 'z' ? 12U : 0U, kTypeValue);
|
|
1542
|
+
ASSERT_TRUE(comp.WithinPenultimateLevelOutputRange(pik));
|
|
1534
1543
|
}
|
|
1535
1544
|
}
|
|
1536
1545
|
});
|
|
@@ -1743,23 +1752,9 @@ TEST_F(CompactionJobTest, ResultSerialization) {
|
|
|
1743
1752
|
}
|
|
1744
1753
|
}
|
|
1745
1754
|
|
|
1746
|
-
|
|
1747
|
-
: public CompactionJobTestBase,
|
|
1748
|
-
public ::testing::WithParamInterface<bool> {
|
|
1749
|
-
public:
|
|
1750
|
-
CompactionJobDynamicFileSizeTest()
|
|
1751
|
-
: CompactionJobTestBase(
|
|
1752
|
-
test::PerThreadDBPath("compaction_job_dynamic_file_size_test"),
|
|
1753
|
-
BytewiseComparator(), [](uint64_t /*ts*/) { return ""; },
|
|
1754
|
-
/*test_io_priority=*/false, TableTypeForTest::kMockTable) {}
|
|
1755
|
-
};
|
|
1756
|
-
|
|
1757
|
-
TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytes) {
|
|
1755
|
+
TEST_F(CompactionJobTest, CutForMaxCompactionBytes) {
|
|
1758
1756
|
// dynamic_file_size option should have no impact on cutting for max
|
|
1759
1757
|
// compaction bytes.
|
|
1760
|
-
bool enable_dyanmic_file_size = GetParam();
|
|
1761
|
-
cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
|
|
1762
|
-
|
|
1763
1758
|
NewDB();
|
|
1764
1759
|
mutable_cf_options_.target_file_size_base = 80;
|
|
1765
1760
|
mutable_cf_options_.max_compaction_bytes = 21;
|
|
@@ -1833,10 +1828,7 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytes) {
|
|
|
1833
1828
|
{expected_file1, expected_file2});
|
|
1834
1829
|
}
|
|
1835
1830
|
|
|
1836
|
-
|
|
1837
|
-
bool enable_dyanmic_file_size = GetParam();
|
|
1838
|
-
cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
|
|
1839
|
-
|
|
1831
|
+
TEST_F(CompactionJobTest, CutToSkipGrandparentFile) {
|
|
1840
1832
|
NewDB();
|
|
1841
1833
|
// Make sure the grandparent level file size (10) qualifies skipping.
|
|
1842
1834
|
// Currently, it has to be > 1/8 of target file size.
|
|
@@ -1871,28 +1863,15 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToSkipGrandparentFile) {
|
|
|
1871
1863
|
mock::MakeMockFile({{KeyStr("x", 4U, kTypeValue), "val"},
|
|
1872
1864
|
{KeyStr("z", 6U, kTypeValue), "val3"}});
|
|
1873
1865
|
|
|
1874
|
-
auto expected_file_disable_dynamic_file_size =
|
|
1875
|
-
mock::MakeMockFile({{KeyStr("a", 5U, kTypeValue), "val2"},
|
|
1876
|
-
{KeyStr("c", 3U, kTypeValue), "val"},
|
|
1877
|
-
{KeyStr("x", 4U, kTypeValue), "val"},
|
|
1878
|
-
{KeyStr("z", 6U, kTypeValue), "val3"}});
|
|
1879
|
-
|
|
1880
1866
|
SetLastSequence(6U);
|
|
1881
1867
|
const std::vector<int> input_levels = {0, 1};
|
|
1882
1868
|
auto lvl0_files = cfd_->current()->storage_info()->LevelFiles(0);
|
|
1883
1869
|
auto lvl1_files = cfd_->current()->storage_info()->LevelFiles(1);
|
|
1884
|
-
if (enable_dyanmic_file_size) {
|
|
1885
1870
|
RunCompaction({lvl0_files, lvl1_files}, input_levels,
|
|
1886
1871
|
{expected_file1, expected_file2});
|
|
1887
|
-
} else {
|
|
1888
|
-
RunCompaction({lvl0_files, lvl1_files}, input_levels,
|
|
1889
|
-
{expected_file_disable_dynamic_file_size});
|
|
1890
|
-
}
|
|
1891
1872
|
}
|
|
1892
1873
|
|
|
1893
|
-
|
|
1894
|
-
bool enable_dyanmic_file_size = GetParam();
|
|
1895
|
-
cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
|
|
1874
|
+
TEST_F(CompactionJobTest, CutToAlignGrandparentBoundary) {
|
|
1896
1875
|
NewDB();
|
|
1897
1876
|
|
|
1898
1877
|
// MockTable has 1 byte per entry by default and each file is 10 bytes.
|
|
@@ -1959,40 +1938,15 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundary) {
|
|
|
1959
1938
|
}
|
|
1960
1939
|
expected_file2.emplace_back(KeyStr("s", 4U, kTypeValue), "val");
|
|
1961
1940
|
|
|
1962
|
-
mock::KVVector expected_file_disable_dynamic_file_size1;
|
|
1963
|
-
for (char i = 0; i < 10; i++) {
|
|
1964
|
-
expected_file_disable_dynamic_file_size1.emplace_back(
|
|
1965
|
-
KeyStr(std::string(1, ch + i), i + 10, kTypeValue),
|
|
1966
|
-
"val" + std::to_string(i));
|
|
1967
|
-
}
|
|
1968
|
-
|
|
1969
|
-
mock::KVVector expected_file_disable_dynamic_file_size2;
|
|
1970
|
-
for (char i = 10; i < 12; i++) {
|
|
1971
|
-
expected_file_disable_dynamic_file_size2.emplace_back(
|
|
1972
|
-
KeyStr(std::string(1, ch + i), i + 10, kTypeValue),
|
|
1973
|
-
"val" + std::to_string(i));
|
|
1974
|
-
}
|
|
1975
|
-
|
|
1976
|
-
expected_file_disable_dynamic_file_size2.emplace_back(
|
|
1977
|
-
KeyStr("s", 4U, kTypeValue), "val");
|
|
1978
|
-
|
|
1979
1941
|
SetLastSequence(22U);
|
|
1980
1942
|
const std::vector<int> input_levels = {0, 1};
|
|
1981
1943
|
auto lvl0_files = cfd_->current()->storage_info()->LevelFiles(0);
|
|
1982
1944
|
auto lvl1_files = cfd_->current()->storage_info()->LevelFiles(1);
|
|
1983
|
-
if (enable_dyanmic_file_size) {
|
|
1984
1945
|
RunCompaction({lvl0_files, lvl1_files}, input_levels,
|
|
1985
1946
|
{expected_file1, expected_file2});
|
|
1986
|
-
} else {
|
|
1987
|
-
RunCompaction({lvl0_files, lvl1_files}, input_levels,
|
|
1988
|
-
{expected_file_disable_dynamic_file_size1,
|
|
1989
|
-
expected_file_disable_dynamic_file_size2});
|
|
1990
|
-
}
|
|
1991
1947
|
}
|
|
1992
1948
|
|
|
1993
|
-
|
|
1994
|
-
bool enable_dyanmic_file_size = GetParam();
|
|
1995
|
-
cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
|
|
1949
|
+
TEST_F(CompactionJobTest, CutToAlignGrandparentBoundarySameKey) {
|
|
1996
1950
|
NewDB();
|
|
1997
1951
|
|
|
1998
1952
|
// MockTable has 1 byte per entry by default and each file is 10 bytes.
|
|
@@ -2029,13 +1983,9 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
|
|
|
2029
1983
|
AddMockFile(file5, 2);
|
|
2030
1984
|
|
|
2031
1985
|
mock::KVVector expected_file1;
|
|
2032
|
-
mock::KVVector expected_file_disable_dynamic_file_size;
|
|
2033
|
-
|
|
2034
1986
|
for (int i = 0; i < 8; i++) {
|
|
2035
1987
|
expected_file1.emplace_back(KeyStr("a", 100 - i, kTypeValue),
|
|
2036
1988
|
"val" + std::to_string(100 - i));
|
|
2037
|
-
expected_file_disable_dynamic_file_size.emplace_back(
|
|
2038
|
-
KeyStr("a", 100 - i, kTypeValue), "val" + std::to_string(100 - i));
|
|
2039
1989
|
}
|
|
2040
1990
|
|
|
2041
1991
|
// make sure `b` is cut in a separated file (so internally it's not using
|
|
@@ -2044,9 +1994,6 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
|
|
|
2044
1994
|
auto expected_file2 =
|
|
2045
1995
|
mock::MakeMockFile({{KeyStr("b", 90U, kTypeValue), "valb"}});
|
|
2046
1996
|
|
|
2047
|
-
expected_file_disable_dynamic_file_size.emplace_back(
|
|
2048
|
-
KeyStr("b", 90U, kTypeValue), "valb");
|
|
2049
|
-
|
|
2050
1997
|
SetLastSequence(122U);
|
|
2051
1998
|
const std::vector<int> input_levels = {0, 1};
|
|
2052
1999
|
auto lvl0_files = cfd_->current()->storage_info()->LevelFiles(0);
|
|
@@ -2057,20 +2004,13 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutToAlignGrandparentBoundarySameKey) {
|
|
|
2057
2004
|
for (int i = 80; i <= 100; i++) {
|
|
2058
2005
|
snapshots.emplace_back(i);
|
|
2059
2006
|
}
|
|
2060
|
-
if (enable_dyanmic_file_size) {
|
|
2061
2007
|
RunCompaction({lvl0_files, lvl1_files}, input_levels,
|
|
2062
2008
|
{expected_file1, expected_file2}, snapshots);
|
|
2063
|
-
} else {
|
|
2064
|
-
RunCompaction({lvl0_files, lvl1_files}, input_levels,
|
|
2065
|
-
{expected_file_disable_dynamic_file_size}, snapshots);
|
|
2066
|
-
}
|
|
2067
2009
|
}
|
|
2068
2010
|
|
|
2069
|
-
|
|
2011
|
+
TEST_F(CompactionJobTest, CutForMaxCompactionBytesSameKey) {
|
|
2070
2012
|
// dynamic_file_size option should have no impact on cutting for max
|
|
2071
2013
|
// compaction bytes.
|
|
2072
|
-
bool enable_dyanmic_file_size = GetParam();
|
|
2073
|
-
cf_options_.level_compaction_dynamic_file_size = enable_dyanmic_file_size;
|
|
2074
2014
|
|
|
2075
2015
|
NewDB();
|
|
2076
2016
|
mutable_cf_options_.target_file_size_base = 80;
|
|
@@ -2127,9 +2067,6 @@ TEST_P(CompactionJobDynamicFileSizeTest, CutForMaxCompactionBytesSameKey) {
|
|
|
2127
2067
|
{expected_file1, expected_file2, expected_file3}, snapshots);
|
|
2128
2068
|
}
|
|
2129
2069
|
|
|
2130
|
-
INSTANTIATE_TEST_CASE_P(CompactionJobDynamicFileSizeTest,
|
|
2131
|
-
CompactionJobDynamicFileSizeTest, testing::Bool());
|
|
2132
|
-
|
|
2133
2070
|
class CompactionJobTimestampTest : public CompactionJobTestBase {
|
|
2134
2071
|
public:
|
|
2135
2072
|
CompactionJobTimestampTest()
|