@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
|
@@ -53,7 +53,9 @@ class BlockBasedTableBuilder : public TableBuilder {
|
|
|
53
53
|
~BlockBasedTableBuilder();
|
|
54
54
|
|
|
55
55
|
// Add key,value to the table being constructed.
|
|
56
|
-
// REQUIRES: key
|
|
56
|
+
// REQUIRES: Unless key has type kTypeRangeDeletion, key is after any
|
|
57
|
+
// previously added non-kTypeRangeDeletion key according to
|
|
58
|
+
// comparator.
|
|
57
59
|
// REQUIRES: Finish(), Abandon() have not been called
|
|
58
60
|
void Add(const Slice& key, const Slice& value) override;
|
|
59
61
|
|
|
@@ -89,6 +91,10 @@ class BlockBasedTableBuilder : public TableBuilder {
|
|
|
89
91
|
// is enabled.
|
|
90
92
|
uint64_t EstimatedFileSize() const override;
|
|
91
93
|
|
|
94
|
+
// Get the size of the "tail" part of a SST file. "Tail" refers to
|
|
95
|
+
// all blocks after data blocks till the end of the SST file.
|
|
96
|
+
uint64_t GetTailSize() const override;
|
|
97
|
+
|
|
92
98
|
bool NeedCompact() const override;
|
|
93
99
|
|
|
94
100
|
// Get table properties
|
|
@@ -443,11 +443,8 @@ void BlockBasedTableFactory::InitializeOptions() {
|
|
|
443
443
|
table_options_.block_cache.reset();
|
|
444
444
|
} else if (table_options_.block_cache == nullptr) {
|
|
445
445
|
LRUCacheOptions co;
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
// block size is only 8MB.
|
|
449
|
-
co.high_pri_pool_ratio = 0.0;
|
|
450
|
-
co.low_pri_pool_ratio = 0.0;
|
|
446
|
+
// 32MB, the recommended minimum size for 64 shards, to reduce contention
|
|
447
|
+
co.capacity = 32 << 20;
|
|
451
448
|
table_options_.block_cache = NewLRUCache(co);
|
|
452
449
|
}
|
|
453
450
|
if (table_options_.block_size_deviation < 0 ||
|
|
@@ -570,7 +567,8 @@ Status BlockBasedTableFactory::NewTableReader(
|
|
|
570
567
|
return BlockBasedTable::Open(
|
|
571
568
|
ro, table_reader_options.ioptions, table_reader_options.env_options,
|
|
572
569
|
table_options_, table_reader_options.internal_comparator, std::move(file),
|
|
573
|
-
file_size,
|
|
570
|
+
file_size, table_reader_options.block_protection_bytes_per_key,
|
|
571
|
+
table_reader, table_reader_options.tail_size, table_reader_cache_res_mgr_,
|
|
574
572
|
table_reader_options.prefix_extractor, prefetch_index_and_filter_in_cache,
|
|
575
573
|
table_reader_options.skip_filters, table_reader_options.level,
|
|
576
574
|
table_reader_options.immortal, table_reader_options.largest_seqno,
|
|
@@ -28,6 +28,9 @@ class BlockBasedTableBuilder;
|
|
|
28
28
|
class RandomAccessFileReader;
|
|
29
29
|
class WritableFileWriter;
|
|
30
30
|
|
|
31
|
+
// TODO: deprecate this class as it can be replaced with
|
|
32
|
+
// `FileMetaData::tail_size`
|
|
33
|
+
//
|
|
31
34
|
// A class used to track actual bytes written from the tail in the recent SST
|
|
32
35
|
// file opens, and provide a suggestion for following open.
|
|
33
36
|
class TailPrefetchStats {
|
|
@@ -26,10 +26,22 @@ void BlockBasedTableIterator::SeekImpl(const Slice* target,
|
|
|
26
26
|
|
|
27
27
|
is_out_of_bound_ = false;
|
|
28
28
|
is_at_first_key_from_index_ = false;
|
|
29
|
-
|
|
29
|
+
seek_stat_state_ = kNone;
|
|
30
|
+
bool filter_checked = false;
|
|
31
|
+
if (target &&
|
|
32
|
+
!CheckPrefixMayMatch(*target, IterDirection::kForward, &filter_checked)) {
|
|
30
33
|
ResetDataIter();
|
|
34
|
+
RecordTick(table_->GetStatistics(), is_last_level_
|
|
35
|
+
? LAST_LEVEL_SEEK_FILTERED
|
|
36
|
+
: NON_LAST_LEVEL_SEEK_FILTERED);
|
|
31
37
|
return;
|
|
32
38
|
}
|
|
39
|
+
if (filter_checked) {
|
|
40
|
+
seek_stat_state_ = kFilterUsed;
|
|
41
|
+
RecordTick(table_->GetStatistics(), is_last_level_
|
|
42
|
+
? LAST_LEVEL_SEEK_FILTER_MATCH
|
|
43
|
+
: NON_LAST_LEVEL_SEEK_FILTER_MATCH);
|
|
44
|
+
}
|
|
33
45
|
|
|
34
46
|
bool need_seek_index = true;
|
|
35
47
|
if (block_iter_points_to_real_block_ && block_iter_.Valid()) {
|
|
@@ -125,12 +137,23 @@ void BlockBasedTableIterator::SeekImpl(const Slice* target,
|
|
|
125
137
|
void BlockBasedTableIterator::SeekForPrev(const Slice& target) {
|
|
126
138
|
is_out_of_bound_ = false;
|
|
127
139
|
is_at_first_key_from_index_ = false;
|
|
140
|
+
seek_stat_state_ = kNone;
|
|
141
|
+
bool filter_checked = false;
|
|
128
142
|
// For now totally disable prefix seek in auto prefix mode because we don't
|
|
129
143
|
// have logic
|
|
130
|
-
if (!CheckPrefixMayMatch(target, IterDirection::kBackward)) {
|
|
144
|
+
if (!CheckPrefixMayMatch(target, IterDirection::kBackward, &filter_checked)) {
|
|
131
145
|
ResetDataIter();
|
|
146
|
+
RecordTick(table_->GetStatistics(), is_last_level_
|
|
147
|
+
? LAST_LEVEL_SEEK_FILTERED
|
|
148
|
+
: NON_LAST_LEVEL_SEEK_FILTERED);
|
|
132
149
|
return;
|
|
133
150
|
}
|
|
151
|
+
if (filter_checked) {
|
|
152
|
+
seek_stat_state_ = kFilterUsed;
|
|
153
|
+
RecordTick(table_->GetStatistics(), is_last_level_
|
|
154
|
+
? LAST_LEVEL_SEEK_FILTER_MATCH
|
|
155
|
+
: NON_LAST_LEVEL_SEEK_FILTER_MATCH);
|
|
156
|
+
}
|
|
134
157
|
|
|
135
158
|
SavePrevIndexValue();
|
|
136
159
|
|
|
@@ -185,6 +208,7 @@ void BlockBasedTableIterator::SeekForPrev(const Slice& target) {
|
|
|
185
208
|
void BlockBasedTableIterator::SeekToLast() {
|
|
186
209
|
is_out_of_bound_ = false;
|
|
187
210
|
is_at_first_key_from_index_ = false;
|
|
211
|
+
seek_stat_state_ = kNone;
|
|
188
212
|
SavePrevIndexValue();
|
|
189
213
|
index_iter_->SeekToLast();
|
|
190
214
|
if (!index_iter_->Valid()) {
|
|
@@ -266,6 +290,14 @@ void BlockBasedTableIterator::InitDataBlock() {
|
|
|
266
290
|
/*for_compaction=*/is_for_compaction, /*async_read=*/false, s);
|
|
267
291
|
block_iter_points_to_real_block_ = true;
|
|
268
292
|
CheckDataBlockWithinUpperBound();
|
|
293
|
+
if (!is_for_compaction &&
|
|
294
|
+
(seek_stat_state_ & kDataBlockReadSinceLastSeek) == 0) {
|
|
295
|
+
RecordTick(table_->GetStatistics(), is_last_level_
|
|
296
|
+
? LAST_LEVEL_SEEK_DATA
|
|
297
|
+
: NON_LAST_LEVEL_SEEK_DATA);
|
|
298
|
+
seek_stat_state_ = static_cast<SeekStatState>(
|
|
299
|
+
seek_stat_state_ | kDataBlockReadSinceLastSeek | kReportOnUseful);
|
|
300
|
+
}
|
|
269
301
|
}
|
|
270
302
|
}
|
|
271
303
|
|
|
@@ -320,6 +352,15 @@ void BlockBasedTableIterator::AsyncInitDataBlock(bool is_first_pass) {
|
|
|
320
352
|
}
|
|
321
353
|
block_iter_points_to_real_block_ = true;
|
|
322
354
|
CheckDataBlockWithinUpperBound();
|
|
355
|
+
|
|
356
|
+
if (!is_for_compaction &&
|
|
357
|
+
(seek_stat_state_ & kDataBlockReadSinceLastSeek) == 0) {
|
|
358
|
+
RecordTick(table_->GetStatistics(), is_last_level_
|
|
359
|
+
? LAST_LEVEL_SEEK_DATA
|
|
360
|
+
: NON_LAST_LEVEL_SEEK_DATA);
|
|
361
|
+
seek_stat_state_ = static_cast<SeekStatState>(
|
|
362
|
+
seek_stat_state_ | kDataBlockReadSinceLastSeek | kReportOnUseful);
|
|
363
|
+
}
|
|
323
364
|
async_read_in_progress_ = false;
|
|
324
365
|
}
|
|
325
366
|
|
|
@@ -41,7 +41,8 @@ class BlockBasedTableIterator : public InternalIteratorBase<Slice> {
|
|
|
41
41
|
block_iter_points_to_real_block_(false),
|
|
42
42
|
check_filter_(check_filter),
|
|
43
43
|
need_upper_bound_check_(need_upper_bound_check),
|
|
44
|
-
async_read_in_progress_(false)
|
|
44
|
+
async_read_in_progress_(false),
|
|
45
|
+
is_last_level_(table->IsLastLevel()) {}
|
|
45
46
|
|
|
46
47
|
~BlockBasedTableIterator() {}
|
|
47
48
|
|
|
@@ -88,6 +89,18 @@ class BlockBasedTableIterator : public InternalIteratorBase<Slice> {
|
|
|
88
89
|
assert(!is_at_first_key_from_index_);
|
|
89
90
|
assert(Valid());
|
|
90
91
|
|
|
92
|
+
if (seek_stat_state_ & kReportOnUseful) {
|
|
93
|
+
bool filter_used = (seek_stat_state_ & kFilterUsed) != 0;
|
|
94
|
+
RecordTick(
|
|
95
|
+
table_->GetStatistics(),
|
|
96
|
+
filter_used
|
|
97
|
+
? (is_last_level_ ? LAST_LEVEL_SEEK_DATA_USEFUL_FILTER_MATCH
|
|
98
|
+
: NON_LAST_LEVEL_SEEK_DATA_USEFUL_FILTER_MATCH)
|
|
99
|
+
: (is_last_level_ ? LAST_LEVEL_SEEK_DATA_USEFUL_NO_FILTER
|
|
100
|
+
: NON_LAST_LEVEL_SEEK_DATA_USEFUL_NO_FILTER));
|
|
101
|
+
seek_stat_state_ = kDataBlockReadSinceLastSeek;
|
|
102
|
+
}
|
|
103
|
+
|
|
91
104
|
return block_iter_.value();
|
|
92
105
|
}
|
|
93
106
|
Status status() const override {
|
|
@@ -204,12 +217,24 @@ class BlockBasedTableIterator : public InternalIteratorBase<Slice> {
|
|
|
204
217
|
// bound.
|
|
205
218
|
// If the boundary key hasn't been checked against the upper bound,
|
|
206
219
|
// kUnknown can be used.
|
|
207
|
-
enum class BlockUpperBound {
|
|
220
|
+
enum class BlockUpperBound : uint8_t {
|
|
208
221
|
kUpperBoundInCurBlock,
|
|
209
222
|
kUpperBoundBeyondCurBlock,
|
|
210
223
|
kUnknown,
|
|
211
224
|
};
|
|
212
225
|
|
|
226
|
+
// State bits for collecting stats on seeks and whether they returned useful
|
|
227
|
+
// results.
|
|
228
|
+
enum SeekStatState : uint8_t {
|
|
229
|
+
kNone = 0,
|
|
230
|
+
// Most recent seek checked prefix filter (or similar future feature)
|
|
231
|
+
kFilterUsed = 1 << 0,
|
|
232
|
+
// Already recorded that a data block was accessed since the last seek.
|
|
233
|
+
kDataBlockReadSinceLastSeek = 1 << 1,
|
|
234
|
+
// Have not yet recorded that a value() was accessed.
|
|
235
|
+
kReportOnUseful = 1 << 2,
|
|
236
|
+
};
|
|
237
|
+
|
|
213
238
|
const BlockBasedTable* table_;
|
|
214
239
|
const ReadOptions& read_options_;
|
|
215
240
|
const InternalKeyComparator& icomp_;
|
|
@@ -240,6 +265,9 @@ class BlockBasedTableIterator : public InternalIteratorBase<Slice> {
|
|
|
240
265
|
|
|
241
266
|
bool async_read_in_progress_;
|
|
242
267
|
|
|
268
|
+
mutable SeekStatState seek_stat_state_ = SeekStatState::kNone;
|
|
269
|
+
bool is_last_level_;
|
|
270
|
+
|
|
243
271
|
// If `target` is null, seek to first.
|
|
244
272
|
void SeekImpl(const Slice* target, bool async_prefetch);
|
|
245
273
|
|
|
@@ -257,16 +285,18 @@ class BlockBasedTableIterator : public InternalIteratorBase<Slice> {
|
|
|
257
285
|
// we need to check and update data_block_within_upper_bound_ accordingly.
|
|
258
286
|
void CheckDataBlockWithinUpperBound();
|
|
259
287
|
|
|
260
|
-
bool CheckPrefixMayMatch(const Slice& ikey, IterDirection direction
|
|
288
|
+
bool CheckPrefixMayMatch(const Slice& ikey, IterDirection direction,
|
|
289
|
+
bool* filter_checked) {
|
|
261
290
|
if (need_upper_bound_check_ && direction == IterDirection::kBackward) {
|
|
262
291
|
// Upper bound check isn't sufficient for backward direction to
|
|
263
292
|
// guarantee the same result as total order, so disable prefix
|
|
264
293
|
// check.
|
|
265
294
|
return true;
|
|
266
295
|
}
|
|
267
|
-
if (check_filter_ &&
|
|
268
|
-
|
|
269
|
-
|
|
296
|
+
if (check_filter_ &&
|
|
297
|
+
!table_->PrefixRangeMayMatch(ikey, read_options_, prefix_extractor_,
|
|
298
|
+
need_upper_bound_check_, &lookup_context_,
|
|
299
|
+
filter_checked)) {
|
|
270
300
|
// TODO remember the iterator is invalidated because of prefix
|
|
271
301
|
// match. This can avoid the upper level file iterator to falsely
|
|
272
302
|
// believe the position is the end of the SST file and move to
|