@nxtedition/rocksdb 8.2.0 → 8.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +3 -3
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
- package/deps/rocksdb/rocksdb/Makefile +10 -5
- package/deps/rocksdb/rocksdb/TARGETS +8 -345
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
- package/deps/rocksdb/rocksdb/db/builder.h +2 -2
- package/deps/rocksdb/rocksdb/db/c.cc +76 -5
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
- package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
- package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
- package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
- package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
- package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
- package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
- package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
- package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
- package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
- package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
- package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
- package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
- package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
- package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
- package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
- package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/options.cc +12 -53
- package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
- package/deps/rocksdb/rocksdb/port/lang.h +27 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
- package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
- package/deps/rocksdb/rocksdb/table/format.cc +4 -4
- package/deps/rocksdb/rocksdb/table/format.h +1 -1
- package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
- package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
- package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/compression.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
- package/deps/rocksdb/rocksdb/util/math.h +12 -7
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
- package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- /package/deps/rocksdb/rocksdb/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include "db/column_family.h"
|
|
17
17
|
#include "logging/log_buffer.h"
|
|
18
18
|
#include "logging/logging.h"
|
|
19
|
+
#include "options/options_helper.h"
|
|
19
20
|
#include "util/string_util.h"
|
|
20
21
|
|
|
21
22
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -284,31 +285,36 @@ Compaction* FIFOCompactionPicker::PickSizeCompaction(
|
|
|
284
285
|
return c;
|
|
285
286
|
}
|
|
286
287
|
|
|
287
|
-
Compaction* FIFOCompactionPicker::
|
|
288
|
+
Compaction* FIFOCompactionPicker::PickTemperatureChangeCompaction(
|
|
288
289
|
const std::string& cf_name, const MutableCFOptions& mutable_cf_options,
|
|
289
290
|
const MutableDBOptions& mutable_db_options, VersionStorageInfo* vstorage,
|
|
290
291
|
LogBuffer* log_buffer) {
|
|
291
|
-
|
|
292
|
+
const std::vector<FileTemperatureAge>& ages =
|
|
293
|
+
mutable_cf_options.compaction_options_fifo
|
|
294
|
+
.file_temperature_age_thresholds;
|
|
295
|
+
if (ages.empty()) {
|
|
292
296
|
return nullptr;
|
|
293
297
|
}
|
|
294
298
|
|
|
295
|
-
//
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
return nullptr;
|
|
299
|
-
}
|
|
299
|
+
// Does not apply to multi-level FIFO.
|
|
300
|
+
if (vstorage->num_levels() > 1) {
|
|
301
|
+
return nullptr;
|
|
300
302
|
}
|
|
301
303
|
|
|
302
304
|
const int kLevel0 = 0;
|
|
303
305
|
const std::vector<FileMetaData*>& level_files = vstorage->LevelFiles(kLevel0);
|
|
306
|
+
if (level_files.empty()) {
|
|
307
|
+
return nullptr;
|
|
308
|
+
}
|
|
304
309
|
|
|
305
310
|
int64_t _current_time;
|
|
306
311
|
auto status = ioptions_.clock->GetCurrentTime(&_current_time);
|
|
307
312
|
if (!status.ok()) {
|
|
308
|
-
ROCKS_LOG_BUFFER(
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
313
|
+
ROCKS_LOG_BUFFER(
|
|
314
|
+
log_buffer,
|
|
315
|
+
"[%s] FIFO compaction: Couldn't get current time: %s. "
|
|
316
|
+
"Not doing compactions based on file temperature-age threshold. ",
|
|
317
|
+
cf_name.c_str(), status.ToString().c_str());
|
|
312
318
|
return nullptr;
|
|
313
319
|
}
|
|
314
320
|
const uint64_t current_time = static_cast<uint64_t>(_current_time);
|
|
@@ -327,56 +333,77 @@ Compaction* FIFOCompactionPicker::PickCompactionToWarm(
|
|
|
327
333
|
inputs[0].level = 0;
|
|
328
334
|
|
|
329
335
|
// avoid underflow
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
336
|
+
uint64_t min_age = ages[0].age;
|
|
337
|
+
// kLastTemperature means target temperature is to be determined.
|
|
338
|
+
Temperature compaction_target_temp = Temperature::kLastTemperature;
|
|
339
|
+
if (current_time > min_age) {
|
|
340
|
+
uint64_t create_time_threshold = current_time - min_age;
|
|
333
341
|
uint64_t compaction_size = 0;
|
|
334
|
-
// We will ideally identify a file qualifying for
|
|
335
|
-
// the timestamp for the youngest entry in the file. However, right
|
|
336
|
-
// we don't have the information. We infer it by looking at timestamp
|
|
337
|
-
//
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
342
|
+
// We will ideally identify a file qualifying for temperature change by
|
|
343
|
+
// knowing the timestamp for the youngest entry in the file. However, right
|
|
344
|
+
// now we don't have the information. We infer it by looking at timestamp of
|
|
345
|
+
// the previous file's (which is just younger) oldest entry's timestamp.
|
|
346
|
+
Temperature cur_target_temp;
|
|
347
|
+
// avoid index underflow
|
|
348
|
+
assert(level_files.size() >= 1);
|
|
349
|
+
for (size_t index = level_files.size() - 1; index >= 1; --index) {
|
|
350
|
+
// Try to add cur_file to compaction inputs.
|
|
351
|
+
FileMetaData* cur_file = level_files[index];
|
|
352
|
+
// prev_file is just younger than cur_file
|
|
353
|
+
FileMetaData* prev_file = level_files[index - 1];
|
|
354
|
+
if (cur_file->being_compacted) {
|
|
355
|
+
// Should not happen since we check for
|
|
356
|
+
// `level0_compactions_in_progress_` above. Here we simply just don't
|
|
357
|
+
// schedule anything.
|
|
346
358
|
return nullptr;
|
|
347
359
|
}
|
|
348
|
-
uint64_t
|
|
349
|
-
if (
|
|
360
|
+
uint64_t oldest_ancestor_time = prev_file->TryGetOldestAncesterTime();
|
|
361
|
+
if (oldest_ancestor_time == kUnknownOldestAncesterTime) {
|
|
350
362
|
// Older files might not have enough information. It is possible to
|
|
351
363
|
// handle these files by looking at newer files, but maintaining the
|
|
352
364
|
// logic isn't worth it.
|
|
353
365
|
break;
|
|
354
366
|
}
|
|
355
|
-
if (
|
|
356
|
-
//
|
|
357
|
-
// for warm tier.
|
|
367
|
+
if (oldest_ancestor_time > create_time_threshold) {
|
|
368
|
+
// cur_file is too fresh
|
|
358
369
|
break;
|
|
359
370
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
if (
|
|
371
|
+
cur_target_temp = ages[0].temperature;
|
|
372
|
+
for (size_t i = 1; i < ages.size(); ++i) {
|
|
373
|
+
if (current_time >= ages[i].age &&
|
|
374
|
+
oldest_ancestor_time <= current_time - ages[i].age) {
|
|
375
|
+
cur_target_temp = ages[i].temperature;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
if (cur_file->temperature == cur_target_temp) {
|
|
379
|
+
if (inputs[0].empty()) {
|
|
380
|
+
continue;
|
|
381
|
+
} else {
|
|
363
382
|
break;
|
|
364
383
|
}
|
|
365
|
-
inputs[0].files.push_back(prev_file);
|
|
366
|
-
ROCKS_LOG_BUFFER(log_buffer,
|
|
367
|
-
"[%s] FIFO compaction: picking file %" PRIu64
|
|
368
|
-
" with next file's oldest time %" PRIu64 " for warm",
|
|
369
|
-
cf_name.c_str(), prev_file->fd.GetNumber(),
|
|
370
|
-
oldest_ancester_time);
|
|
371
384
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
385
|
+
|
|
386
|
+
// cur_file needs to change temperature
|
|
387
|
+
if (compaction_target_temp == Temperature::kLastTemperature) {
|
|
388
|
+
assert(inputs[0].empty());
|
|
389
|
+
compaction_target_temp = cur_target_temp;
|
|
390
|
+
} else if (cur_target_temp != compaction_target_temp) {
|
|
391
|
+
assert(!inputs[0].empty());
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
if (inputs[0].empty() || compaction_size + cur_file->fd.GetFileSize() <=
|
|
395
|
+
mutable_cf_options.max_compaction_bytes) {
|
|
396
|
+
inputs[0].files.push_back(cur_file);
|
|
397
|
+
compaction_size += cur_file->fd.GetFileSize();
|
|
398
|
+
ROCKS_LOG_BUFFER(
|
|
399
|
+
log_buffer,
|
|
400
|
+
"[%s] FIFO compaction: picking file %" PRIu64
|
|
401
|
+
" with next file's oldest time %" PRIu64 " for temperature %s.",
|
|
402
|
+
cf_name.c_str(), cur_file->fd.GetNumber(), oldest_ancestor_time,
|
|
403
|
+
temperature_to_string[cur_target_temp].c_str());
|
|
404
|
+
}
|
|
405
|
+
if (compaction_size > mutable_cf_options.max_compaction_bytes) {
|
|
377
406
|
break;
|
|
378
|
-
} else {
|
|
379
|
-
assert(prev_file == nullptr);
|
|
380
407
|
}
|
|
381
408
|
}
|
|
382
409
|
}
|
|
@@ -390,7 +417,7 @@ Compaction* FIFOCompactionPicker::PickCompactionToWarm(
|
|
|
390
417
|
std::move(inputs), 0, 0 /* output file size limit */,
|
|
391
418
|
0 /* max compaction bytes, not applicable */, 0 /* output path ID */,
|
|
392
419
|
mutable_cf_options.compression, mutable_cf_options.compression_opts,
|
|
393
|
-
|
|
420
|
+
compaction_target_temp,
|
|
394
421
|
/* max_subcompactions */ 0, {}, /* is manual */ false, /* trim_ts */ "",
|
|
395
422
|
vstorage->CompactionScore(0),
|
|
396
423
|
/* is deletion compaction */ false, /* l0_files_might_overlap */ true,
|
|
@@ -412,8 +439,8 @@ Compaction* FIFOCompactionPicker::PickCompaction(
|
|
|
412
439
|
vstorage, log_buffer);
|
|
413
440
|
}
|
|
414
441
|
if (c == nullptr) {
|
|
415
|
-
c =
|
|
416
|
-
|
|
442
|
+
c = PickTemperatureChangeCompaction(
|
|
443
|
+
cf_name, mutable_cf_options, mutable_db_options, vstorage, log_buffer);
|
|
417
444
|
}
|
|
418
445
|
RegisterCompaction(c);
|
|
419
446
|
return c;
|
|
@@ -52,10 +52,9 @@ class FIFOCompactionPicker : public CompactionPicker {
|
|
|
52
52
|
VersionStorageInfo* version,
|
|
53
53
|
LogBuffer* log_buffer);
|
|
54
54
|
|
|
55
|
-
Compaction*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
LogBuffer* log_buffer);
|
|
55
|
+
Compaction* PickTemperatureChangeCompaction(
|
|
56
|
+
const std::string& cf_name, const MutableCFOptions& mutable_cf_options,
|
|
57
|
+
const MutableDBOptions& mutable_db_options, VersionStorageInfo* vstorage,
|
|
58
|
+
LogBuffer* log_buffer);
|
|
60
59
|
};
|
|
61
60
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -83,7 +83,7 @@ class LevelCompactionBuilder {
|
|
|
83
83
|
|
|
84
84
|
Compaction* GetCompaction();
|
|
85
85
|
|
|
86
|
-
//
|
|
86
|
+
// From `start_level_`, pick files to compact to `output_level_`.
|
|
87
87
|
// Returns false if there is no file to compact.
|
|
88
88
|
// If it returns true, inputs->files.size() will be exactly one for
|
|
89
89
|
// all compaction priorities except round-robin. For round-robin,
|
|
@@ -107,8 +107,9 @@ class LevelCompactionBuilder {
|
|
|
107
107
|
bool PickIntraL0Compaction();
|
|
108
108
|
|
|
109
109
|
// Return true if TrivialMove is extended. `start_index` is the index of
|
|
110
|
-
// the
|
|
111
|
-
bool TryExtendNonL0TrivialMove(int start_index
|
|
110
|
+
// the initial file picked, which should already be in `start_level_inputs_`.
|
|
111
|
+
bool TryExtendNonL0TrivialMove(int start_index,
|
|
112
|
+
bool only_expand_right = false);
|
|
112
113
|
|
|
113
114
|
// Picks a file from level_files to compact.
|
|
114
115
|
// level_files is a vector of (level, file metadata) in ascending order of
|
|
@@ -355,7 +356,8 @@ void LevelCompactionBuilder::SetupOtherFilesWithRoundRobinExpansion() {
|
|
|
355
356
|
vstorage_->GetOverlappingInputs(output_level_, &smallest, &largest,
|
|
356
357
|
&output_level_inputs.files);
|
|
357
358
|
if (output_level_inputs.empty()) {
|
|
358
|
-
if (TryExtendNonL0TrivialMove((int)start_index
|
|
359
|
+
if (TryExtendNonL0TrivialMove((int)start_index,
|
|
360
|
+
true /* only_expand_right */)) {
|
|
359
361
|
return;
|
|
360
362
|
}
|
|
361
363
|
}
|
|
@@ -501,6 +503,16 @@ Compaction* LevelCompactionBuilder::PickCompaction() {
|
|
|
501
503
|
}
|
|
502
504
|
|
|
503
505
|
Compaction* LevelCompactionBuilder::GetCompaction() {
|
|
506
|
+
// TryPickL0TrivialMove() does not apply to the case when compacting L0 to an
|
|
507
|
+
// empty output level. So L0 files is picked in PickFileToCompact() by
|
|
508
|
+
// compaction score. We may still be able to do trivial move when this file
|
|
509
|
+
// does not overlap with other L0s. This happens when
|
|
510
|
+
// compaction_inputs_[0].size() == 1 since SetupOtherL0FilesIfNeeded() did not
|
|
511
|
+
// pull in more L0s.
|
|
512
|
+
assert(!compaction_inputs_.empty());
|
|
513
|
+
bool l0_files_might_overlap =
|
|
514
|
+
start_level_ == 0 && !is_l0_trivial_move_ &&
|
|
515
|
+
(compaction_inputs_.size() > 1 || compaction_inputs_[0].size() > 1);
|
|
504
516
|
auto c = new Compaction(
|
|
505
517
|
vstorage_, ioptions_, mutable_cf_options_, mutable_db_options_,
|
|
506
518
|
std::move(compaction_inputs_), output_level_,
|
|
@@ -515,8 +527,7 @@ Compaction* LevelCompactionBuilder::GetCompaction() {
|
|
|
515
527
|
Temperature::kUnknown,
|
|
516
528
|
/* max_subcompactions */ 0, std::move(grandparents_), is_manual_,
|
|
517
529
|
/* trim_ts */ "", start_level_score_, false /* deletion_compaction */,
|
|
518
|
-
|
|
519
|
-
compaction_reason_);
|
|
530
|
+
l0_files_might_overlap, compaction_reason_);
|
|
520
531
|
|
|
521
532
|
// If it's level 0 compaction, make sure we don't execute any other level 0
|
|
522
533
|
// compactions in parallel
|
|
@@ -653,7 +664,8 @@ bool LevelCompactionBuilder::TryPickL0TrivialMove() {
|
|
|
653
664
|
return false;
|
|
654
665
|
}
|
|
655
666
|
|
|
656
|
-
bool LevelCompactionBuilder::TryExtendNonL0TrivialMove(int start_index
|
|
667
|
+
bool LevelCompactionBuilder::TryExtendNonL0TrivialMove(int start_index,
|
|
668
|
+
bool only_expand_right) {
|
|
657
669
|
if (start_level_inputs_.size() == 1 &&
|
|
658
670
|
(ioptions_.db_paths.empty() || ioptions_.db_paths.size() == 1) &&
|
|
659
671
|
(mutable_cf_options_.compression_per_level.empty())) {
|
|
@@ -670,6 +682,7 @@ bool LevelCompactionBuilder::TryExtendNonL0TrivialMove(int start_index) {
|
|
|
670
682
|
size_t total_size = initial_file->fd.GetFileSize();
|
|
671
683
|
CompactionInputFiles output_level_inputs;
|
|
672
684
|
output_level_inputs.level = output_level_;
|
|
685
|
+
// Expand towards right
|
|
673
686
|
for (int i = start_index + 1;
|
|
674
687
|
i < static_cast<int>(level_files.size()) &&
|
|
675
688
|
start_level_inputs_.size() < kMaxMultiTrivialMove;
|
|
@@ -702,6 +715,37 @@ bool LevelCompactionBuilder::TryExtendNonL0TrivialMove(int start_index) {
|
|
|
702
715
|
}
|
|
703
716
|
start_level_inputs_.files.push_back(next_file);
|
|
704
717
|
}
|
|
718
|
+
// Expand towards left
|
|
719
|
+
if (!only_expand_right) {
|
|
720
|
+
for (int i = start_index - 1;
|
|
721
|
+
i >= 0 && start_level_inputs_.size() < kMaxMultiTrivialMove; i--) {
|
|
722
|
+
FileMetaData* next_file = level_files[i];
|
|
723
|
+
if (next_file->being_compacted) {
|
|
724
|
+
break;
|
|
725
|
+
}
|
|
726
|
+
vstorage_->GetOverlappingInputs(output_level_, &(next_file->smallest),
|
|
727
|
+
&(initial_file->largest),
|
|
728
|
+
&output_level_inputs.files);
|
|
729
|
+
if (!output_level_inputs.empty()) {
|
|
730
|
+
break;
|
|
731
|
+
}
|
|
732
|
+
if (i > 0 && compaction_picker_->icmp()
|
|
733
|
+
->user_comparator()
|
|
734
|
+
->CompareWithoutTimestamp(
|
|
735
|
+
next_file->smallest.user_key(),
|
|
736
|
+
level_files[i - 1]->largest.user_key()) == 0) {
|
|
737
|
+
// Not a clean up after adding the next file. Skip.
|
|
738
|
+
break;
|
|
739
|
+
}
|
|
740
|
+
total_size += next_file->fd.GetFileSize();
|
|
741
|
+
if (total_size > mutable_cf_options_.max_compaction_bytes) {
|
|
742
|
+
break;
|
|
743
|
+
}
|
|
744
|
+
// keep `files` sorted in increasing order by key range
|
|
745
|
+
start_level_inputs_.files.insert(start_level_inputs_.files.begin(),
|
|
746
|
+
next_file);
|
|
747
|
+
}
|
|
748
|
+
}
|
|
705
749
|
return start_level_inputs_.size() > 1;
|
|
706
750
|
}
|
|
707
751
|
return false;
|
|
@@ -785,7 +829,10 @@ bool LevelCompactionBuilder::PickFileToCompact() {
|
|
|
785
829
|
vstorage_->GetOverlappingInputs(output_level_, &smallest, &largest,
|
|
786
830
|
&output_level_inputs.files);
|
|
787
831
|
if (output_level_inputs.empty()) {
|
|
788
|
-
if (
|
|
832
|
+
if (start_level_ > 0 &&
|
|
833
|
+
TryExtendNonL0TrivialMove(index,
|
|
834
|
+
ioptions_.compaction_pri ==
|
|
835
|
+
kRoundRobin /* only_expand_right */)) {
|
|
789
836
|
break;
|
|
790
837
|
}
|
|
791
838
|
} else {
|