@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
|
@@ -581,8 +581,9 @@ void TestBoundary(InternalKey& ik1, std::string& v1, InternalKey& ik2,
|
|
|
581
581
|
const bool kImmortal = true;
|
|
582
582
|
ASSERT_OK(ioptions.table_factory->NewTableReader(
|
|
583
583
|
TableReaderOptions(ioptions, moptions.prefix_extractor, soptions,
|
|
584
|
-
internal_comparator,
|
|
585
|
-
|
|
584
|
+
internal_comparator,
|
|
585
|
+
0 /* block_protection_bytes_per_key */, !kSkipFilters,
|
|
586
|
+
!kImmortal, level_),
|
|
586
587
|
std::move(file_reader), sink->contents().size(), &table_reader));
|
|
587
588
|
// Search using Get()
|
|
588
589
|
ReadOptions ro;
|
|
@@ -113,17 +113,17 @@ class FilterBlockReader {
|
|
|
113
113
|
const Slice* const const_ikey_ptr,
|
|
114
114
|
GetContext* get_context,
|
|
115
115
|
BlockCacheLookupContext* lookup_context,
|
|
116
|
-
|
|
116
|
+
const ReadOptions& read_options) = 0;
|
|
117
117
|
|
|
118
118
|
virtual void KeysMayMatch(MultiGetRange* range, const bool no_io,
|
|
119
119
|
BlockCacheLookupContext* lookup_context,
|
|
120
|
-
|
|
120
|
+
const ReadOptions& read_options) {
|
|
121
121
|
for (auto iter = range->begin(); iter != range->end(); ++iter) {
|
|
122
122
|
const Slice ukey_without_ts = iter->ukey_without_ts;
|
|
123
123
|
const Slice ikey = iter->ikey;
|
|
124
124
|
GetContext* const get_context = iter->get_context;
|
|
125
125
|
if (!KeyMayMatch(ukey_without_ts, no_io, &ikey, get_context,
|
|
126
|
-
lookup_context,
|
|
126
|
+
lookup_context, read_options)) {
|
|
127
127
|
range->SkipKey(iter);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
@@ -136,21 +136,20 @@ class FilterBlockReader {
|
|
|
136
136
|
const Slice* const const_ikey_ptr,
|
|
137
137
|
GetContext* get_context,
|
|
138
138
|
BlockCacheLookupContext* lookup_context,
|
|
139
|
-
|
|
139
|
+
const ReadOptions& read_options) = 0;
|
|
140
140
|
|
|
141
141
|
virtual void PrefixesMayMatch(MultiGetRange* range,
|
|
142
142
|
const SliceTransform* prefix_extractor,
|
|
143
143
|
const bool no_io,
|
|
144
144
|
BlockCacheLookupContext* lookup_context,
|
|
145
|
-
|
|
145
|
+
const ReadOptions& read_options) {
|
|
146
146
|
for (auto iter = range->begin(); iter != range->end(); ++iter) {
|
|
147
147
|
const Slice ukey_without_ts = iter->ukey_without_ts;
|
|
148
148
|
const Slice ikey = iter->ikey;
|
|
149
149
|
GetContext* const get_context = iter->get_context;
|
|
150
150
|
if (prefix_extractor->InDomain(ukey_without_ts) &&
|
|
151
151
|
!PrefixMayMatch(prefix_extractor->Transform(ukey_without_ts), no_io,
|
|
152
|
-
&ikey, get_context, lookup_context,
|
|
153
|
-
rate_limiter_priority)) {
|
|
152
|
+
&ikey, get_context, lookup_context, read_options)) {
|
|
154
153
|
range->SkipKey(iter);
|
|
155
154
|
}
|
|
156
155
|
}
|
|
@@ -164,7 +163,9 @@ class FilterBlockReader {
|
|
|
164
163
|
return error_msg;
|
|
165
164
|
}
|
|
166
165
|
|
|
167
|
-
virtual Status CacheDependencies(
|
|
166
|
+
virtual Status CacheDependencies(
|
|
167
|
+
const ReadOptions& /*ro*/, bool /*pin*/,
|
|
168
|
+
FilePrefetchBuffer* /* tail_prefetch_buffer */) {
|
|
168
169
|
return Status::OK();
|
|
169
170
|
}
|
|
170
171
|
|
|
@@ -176,7 +177,7 @@ class FilterBlockReader {
|
|
|
176
177
|
bool* filter_checked, bool need_upper_bound_check,
|
|
177
178
|
bool no_io,
|
|
178
179
|
BlockCacheLookupContext* lookup_context,
|
|
179
|
-
|
|
180
|
+
const ReadOptions& read_options) = 0;
|
|
180
181
|
};
|
|
181
182
|
|
|
182
183
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -70,7 +70,7 @@ Status FilterBlockReaderCommon<TBlocklike>::GetOrReadFilterBlock(
|
|
|
70
70
|
bool no_io, GetContext* get_context,
|
|
71
71
|
BlockCacheLookupContext* lookup_context,
|
|
72
72
|
CachableEntry<TBlocklike>* filter_block,
|
|
73
|
-
|
|
73
|
+
const ReadOptions& read_options) const {
|
|
74
74
|
assert(filter_block);
|
|
75
75
|
|
|
76
76
|
if (!filter_block_.IsEmpty()) {
|
|
@@ -78,13 +78,12 @@ Status FilterBlockReaderCommon<TBlocklike>::GetOrReadFilterBlock(
|
|
|
78
78
|
return Status::OK();
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
ReadOptions read_options;
|
|
82
|
-
read_options.rate_limiter_priority = rate_limiter_priority;
|
|
81
|
+
ReadOptions ro = read_options;
|
|
83
82
|
if (no_io) {
|
|
84
|
-
|
|
83
|
+
ro.read_tier = kBlockCacheTier;
|
|
85
84
|
}
|
|
86
85
|
|
|
87
|
-
return ReadFilterBlock(table_, nullptr /* prefetch_buffer */,
|
|
86
|
+
return ReadFilterBlock(table_, nullptr /* prefetch_buffer */, ro,
|
|
88
87
|
cache_filter_blocks(), get_context, lookup_context,
|
|
89
88
|
filter_block);
|
|
90
89
|
}
|
|
@@ -104,8 +103,7 @@ bool FilterBlockReaderCommon<TBlocklike>::RangeMayExist(
|
|
|
104
103
|
const SliceTransform* prefix_extractor, const Comparator* comparator,
|
|
105
104
|
const Slice* const const_ikey_ptr, bool* filter_checked,
|
|
106
105
|
bool need_upper_bound_check, bool no_io,
|
|
107
|
-
BlockCacheLookupContext* lookup_context,
|
|
108
|
-
Env::IOPriority rate_limiter_priority) {
|
|
106
|
+
BlockCacheLookupContext* lookup_context, const ReadOptions& read_options) {
|
|
109
107
|
if (!prefix_extractor || !prefix_extractor->InDomain(user_key_without_ts)) {
|
|
110
108
|
*filter_checked = false;
|
|
111
109
|
return true;
|
|
@@ -119,7 +117,7 @@ bool FilterBlockReaderCommon<TBlocklike>::RangeMayExist(
|
|
|
119
117
|
*filter_checked = true;
|
|
120
118
|
return PrefixMayMatch(prefix, no_io, const_ikey_ptr,
|
|
121
119
|
/* get_context */ nullptr, lookup_context,
|
|
122
|
-
|
|
120
|
+
read_options);
|
|
123
121
|
}
|
|
124
122
|
}
|
|
125
123
|
|
|
@@ -40,7 +40,7 @@ class FilterBlockReaderCommon : public FilterBlockReader {
|
|
|
40
40
|
const Slice* const const_ikey_ptr, bool* filter_checked,
|
|
41
41
|
bool need_upper_bound_check, bool no_io,
|
|
42
42
|
BlockCacheLookupContext* lookup_context,
|
|
43
|
-
|
|
43
|
+
const ReadOptions& read_options) override;
|
|
44
44
|
|
|
45
45
|
protected:
|
|
46
46
|
static Status ReadFilterBlock(const BlockBasedTable* table,
|
|
@@ -58,7 +58,7 @@ class FilterBlockReaderCommon : public FilterBlockReader {
|
|
|
58
58
|
Status GetOrReadFilterBlock(bool no_io, GetContext* get_context,
|
|
59
59
|
BlockCacheLookupContext* lookup_context,
|
|
60
60
|
CachableEntry<TBlocklike>* filter_block,
|
|
61
|
-
|
|
61
|
+
const ReadOptions& read_options) const;
|
|
62
62
|
|
|
63
63
|
size_t ApproximateFilterBlockMemoryUsage() const;
|
|
64
64
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#include "rocksdb/utilities/customizable_util.h"
|
|
14
14
|
#include "table/block_based/block_based_table_reader.h"
|
|
15
15
|
#include "table/block_based/block_builder.h"
|
|
16
|
-
#include "table/block_based/
|
|
16
|
+
#include "table/block_based/flush_block_policy_impl.h"
|
|
17
17
|
#include "table/format.h"
|
|
18
18
|
|
|
19
19
|
namespace ROCKSDB_NAMESPACE {
|
|
@@ -127,12 +127,11 @@ bool FullFilterBlockReader::KeyMayMatch(const Slice& key, const bool no_io,
|
|
|
127
127
|
const Slice* const /*const_ikey_ptr*/,
|
|
128
128
|
GetContext* get_context,
|
|
129
129
|
BlockCacheLookupContext* lookup_context,
|
|
130
|
-
|
|
130
|
+
const ReadOptions& read_options) {
|
|
131
131
|
if (!whole_key_filtering()) {
|
|
132
132
|
return true;
|
|
133
133
|
}
|
|
134
|
-
return MayMatch(key, no_io, get_context, lookup_context,
|
|
135
|
-
rate_limiter_priority);
|
|
134
|
+
return MayMatch(key, no_io, get_context, lookup_context, read_options);
|
|
136
135
|
}
|
|
137
136
|
|
|
138
137
|
std::unique_ptr<FilterBlockReader> FullFilterBlockReader::Create(
|
|
@@ -165,20 +164,18 @@ std::unique_ptr<FilterBlockReader> FullFilterBlockReader::Create(
|
|
|
165
164
|
bool FullFilterBlockReader::PrefixMayMatch(
|
|
166
165
|
const Slice& prefix, const bool no_io,
|
|
167
166
|
const Slice* const /*const_ikey_ptr*/, GetContext* get_context,
|
|
168
|
-
BlockCacheLookupContext* lookup_context,
|
|
169
|
-
|
|
170
|
-
return MayMatch(prefix, no_io, get_context, lookup_context,
|
|
171
|
-
rate_limiter_priority);
|
|
167
|
+
BlockCacheLookupContext* lookup_context, const ReadOptions& read_options) {
|
|
168
|
+
return MayMatch(prefix, no_io, get_context, lookup_context, read_options);
|
|
172
169
|
}
|
|
173
170
|
|
|
174
|
-
bool FullFilterBlockReader::MayMatch(
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
171
|
+
bool FullFilterBlockReader::MayMatch(const Slice& entry, bool no_io,
|
|
172
|
+
GetContext* get_context,
|
|
173
|
+
BlockCacheLookupContext* lookup_context,
|
|
174
|
+
const ReadOptions& read_options) const {
|
|
178
175
|
CachableEntry<ParsedFullFilterBlock> filter_block;
|
|
179
176
|
|
|
180
177
|
const Status s = GetOrReadFilterBlock(no_io, get_context, lookup_context,
|
|
181
|
-
&filter_block,
|
|
178
|
+
&filter_block, read_options);
|
|
182
179
|
if (!s.ok()) {
|
|
183
180
|
IGNORE_STATUS_IF_ERROR(s);
|
|
184
181
|
return true;
|
|
@@ -203,33 +200,31 @@ bool FullFilterBlockReader::MayMatch(
|
|
|
203
200
|
|
|
204
201
|
void FullFilterBlockReader::KeysMayMatch(
|
|
205
202
|
MultiGetRange* range, const bool no_io,
|
|
206
|
-
BlockCacheLookupContext* lookup_context,
|
|
207
|
-
Env::IOPriority rate_limiter_priority) {
|
|
203
|
+
BlockCacheLookupContext* lookup_context, const ReadOptions& read_options) {
|
|
208
204
|
if (!whole_key_filtering()) {
|
|
209
205
|
// Simply return. Don't skip any key - consider all keys as likely to be
|
|
210
206
|
// present
|
|
211
207
|
return;
|
|
212
208
|
}
|
|
213
|
-
MayMatch(range, no_io, nullptr, lookup_context,
|
|
209
|
+
MayMatch(range, no_io, nullptr, lookup_context, read_options);
|
|
214
210
|
}
|
|
215
211
|
|
|
216
212
|
void FullFilterBlockReader::PrefixesMayMatch(
|
|
217
213
|
MultiGetRange* range, const SliceTransform* prefix_extractor,
|
|
218
214
|
const bool no_io, BlockCacheLookupContext* lookup_context,
|
|
219
|
-
|
|
220
|
-
MayMatch(range, no_io, prefix_extractor, lookup_context,
|
|
221
|
-
rate_limiter_priority);
|
|
215
|
+
const ReadOptions& read_options) {
|
|
216
|
+
MayMatch(range, no_io, prefix_extractor, lookup_context, read_options);
|
|
222
217
|
}
|
|
223
218
|
|
|
224
|
-
void FullFilterBlockReader::MayMatch(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
219
|
+
void FullFilterBlockReader::MayMatch(MultiGetRange* range, bool no_io,
|
|
220
|
+
const SliceTransform* prefix_extractor,
|
|
221
|
+
BlockCacheLookupContext* lookup_context,
|
|
222
|
+
const ReadOptions& read_options) const {
|
|
228
223
|
CachableEntry<ParsedFullFilterBlock> filter_block;
|
|
229
224
|
|
|
230
225
|
const Status s =
|
|
231
226
|
GetOrReadFilterBlock(no_io, range->begin()->get_context, lookup_context,
|
|
232
|
-
&filter_block,
|
|
227
|
+
&filter_block, read_options);
|
|
233
228
|
if (!s.ok()) {
|
|
234
229
|
IGNORE_STATUS_IF_ERROR(s);
|
|
235
230
|
return;
|
|
@@ -108,40 +108,40 @@ class FullFilterBlockReader
|
|
|
108
108
|
bool KeyMayMatch(const Slice& key, const bool no_io,
|
|
109
109
|
const Slice* const const_ikey_ptr, GetContext* get_context,
|
|
110
110
|
BlockCacheLookupContext* lookup_context,
|
|
111
|
-
|
|
111
|
+
const ReadOptions& read_options) override;
|
|
112
112
|
|
|
113
113
|
bool PrefixMayMatch(const Slice& prefix, const bool no_io,
|
|
114
114
|
const Slice* const const_ikey_ptr,
|
|
115
115
|
GetContext* get_context,
|
|
116
116
|
BlockCacheLookupContext* lookup_context,
|
|
117
|
-
|
|
117
|
+
const ReadOptions& read_options) override;
|
|
118
118
|
|
|
119
119
|
void KeysMayMatch(MultiGetRange* range, const bool no_io,
|
|
120
120
|
BlockCacheLookupContext* lookup_context,
|
|
121
|
-
|
|
121
|
+
const ReadOptions& read_options) override;
|
|
122
122
|
// Used in partitioned filter code
|
|
123
123
|
void KeysMayMatch2(MultiGetRange* range,
|
|
124
124
|
const SliceTransform* /*prefix_extractor*/,
|
|
125
125
|
const bool no_io, BlockCacheLookupContext* lookup_context,
|
|
126
|
-
|
|
127
|
-
KeysMayMatch(range, no_io, lookup_context,
|
|
126
|
+
const ReadOptions& read_options) {
|
|
127
|
+
KeysMayMatch(range, no_io, lookup_context, read_options);
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
void PrefixesMayMatch(MultiGetRange* range,
|
|
131
131
|
const SliceTransform* prefix_extractor,
|
|
132
132
|
const bool no_io,
|
|
133
133
|
BlockCacheLookupContext* lookup_context,
|
|
134
|
-
|
|
134
|
+
const ReadOptions& read_options) override;
|
|
135
135
|
size_t ApproximateMemoryUsage() const override;
|
|
136
136
|
|
|
137
137
|
private:
|
|
138
138
|
bool MayMatch(const Slice& entry, bool no_io, GetContext* get_context,
|
|
139
139
|
BlockCacheLookupContext* lookup_context,
|
|
140
|
-
|
|
140
|
+
const ReadOptions& read_options) const;
|
|
141
141
|
void MayMatch(MultiGetRange* range, bool no_io,
|
|
142
142
|
const SliceTransform* prefix_extractor,
|
|
143
143
|
BlockCacheLookupContext* lookup_context,
|
|
144
|
-
|
|
144
|
+
const ReadOptions& read_options) const;
|
|
145
145
|
};
|
|
146
146
|
|
|
147
147
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -117,7 +117,7 @@ TEST_F(PluginFullFilterBlockTest, PluginEmptyBuilder) {
|
|
|
117
117
|
ASSERT_TRUE(reader.KeyMayMatch("foo",
|
|
118
118
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
119
119
|
/*get_context=*/nullptr,
|
|
120
|
-
/*lookup_context=*/nullptr,
|
|
120
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
TEST_F(PluginFullFilterBlockTest, PluginSingleChunk) {
|
|
@@ -135,42 +135,34 @@ TEST_F(PluginFullFilterBlockTest, PluginSingleChunk) {
|
|
|
135
135
|
nullptr /* cache */, nullptr /* cache_handle */, true /* own_value */);
|
|
136
136
|
|
|
137
137
|
FullFilterBlockReader reader(table_.get(), std::move(block));
|
|
138
|
-
Env::IOPriority rate_limiter_priority = Env::IO_TOTAL;
|
|
139
138
|
ASSERT_TRUE(reader.KeyMayMatch("foo",
|
|
140
139
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
141
140
|
/*get_context=*/nullptr,
|
|
142
|
-
/*lookup_context=*/nullptr,
|
|
143
|
-
rate_limiter_priority));
|
|
141
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
144
142
|
ASSERT_TRUE(reader.KeyMayMatch("bar",
|
|
145
143
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
146
144
|
/*get_context=*/nullptr,
|
|
147
|
-
/*lookup_context=*/nullptr,
|
|
148
|
-
rate_limiter_priority));
|
|
145
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
149
146
|
ASSERT_TRUE(reader.KeyMayMatch("box",
|
|
150
147
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
151
148
|
/*get_context=*/nullptr,
|
|
152
|
-
/*lookup_context=*/nullptr,
|
|
153
|
-
rate_limiter_priority));
|
|
149
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
154
150
|
ASSERT_TRUE(reader.KeyMayMatch("hello",
|
|
155
151
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
156
152
|
/*get_context=*/nullptr,
|
|
157
|
-
/*lookup_context=*/nullptr,
|
|
158
|
-
rate_limiter_priority));
|
|
153
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
159
154
|
ASSERT_TRUE(reader.KeyMayMatch("foo",
|
|
160
155
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
161
156
|
/*get_context=*/nullptr,
|
|
162
|
-
/*lookup_context=*/nullptr,
|
|
163
|
-
rate_limiter_priority));
|
|
157
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
164
158
|
ASSERT_TRUE(!reader.KeyMayMatch("missing",
|
|
165
159
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
166
160
|
/*get_context=*/nullptr,
|
|
167
|
-
/*lookup_context=*/nullptr,
|
|
168
|
-
rate_limiter_priority));
|
|
161
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
169
162
|
ASSERT_TRUE(!reader.KeyMayMatch("other",
|
|
170
163
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
171
164
|
/*get_context=*/nullptr,
|
|
172
|
-
/*lookup_context=*/nullptr,
|
|
173
|
-
rate_limiter_priority));
|
|
165
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
174
166
|
}
|
|
175
167
|
|
|
176
168
|
class FullFilterBlockTest : public mock::MockBlockBasedTableTester,
|
|
@@ -195,7 +187,7 @@ TEST_F(FullFilterBlockTest, EmptyBuilder) {
|
|
|
195
187
|
ASSERT_TRUE(reader.KeyMayMatch("foo",
|
|
196
188
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
197
189
|
/*get_context=*/nullptr,
|
|
198
|
-
/*lookup_context=*/nullptr,
|
|
190
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
199
191
|
}
|
|
200
192
|
|
|
201
193
|
class CountUniqueFilterBitsBuilderWrapper : public FilterBitsBuilder {
|
|
@@ -292,42 +284,34 @@ TEST_F(FullFilterBlockTest, SingleChunk) {
|
|
|
292
284
|
nullptr /* cache */, nullptr /* cache_handle */, true /* own_value */);
|
|
293
285
|
|
|
294
286
|
FullFilterBlockReader reader(table_.get(), std::move(block));
|
|
295
|
-
Env::IOPriority rate_limiter_priority = Env::IO_TOTAL;
|
|
296
287
|
ASSERT_TRUE(reader.KeyMayMatch("foo",
|
|
297
288
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
298
289
|
/*get_context=*/nullptr,
|
|
299
|
-
/*lookup_context=*/nullptr,
|
|
300
|
-
rate_limiter_priority));
|
|
290
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
301
291
|
ASSERT_TRUE(reader.KeyMayMatch("bar",
|
|
302
292
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
303
293
|
/*get_context=*/nullptr,
|
|
304
|
-
/*lookup_context=*/nullptr,
|
|
305
|
-
rate_limiter_priority));
|
|
294
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
306
295
|
ASSERT_TRUE(reader.KeyMayMatch("box",
|
|
307
296
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
308
297
|
/*get_context=*/nullptr,
|
|
309
|
-
/*lookup_context=*/nullptr,
|
|
310
|
-
rate_limiter_priority));
|
|
298
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
311
299
|
ASSERT_TRUE(reader.KeyMayMatch("hello",
|
|
312
300
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
313
301
|
/*get_context=*/nullptr,
|
|
314
|
-
/*lookup_context=*/nullptr,
|
|
315
|
-
rate_limiter_priority));
|
|
302
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
316
303
|
ASSERT_TRUE(reader.KeyMayMatch("foo",
|
|
317
304
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
318
305
|
/*get_context=*/nullptr,
|
|
319
|
-
/*lookup_context=*/nullptr,
|
|
320
|
-
rate_limiter_priority));
|
|
306
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
321
307
|
ASSERT_TRUE(!reader.KeyMayMatch("missing",
|
|
322
308
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
323
309
|
/*get_context=*/nullptr,
|
|
324
|
-
/*lookup_context=*/nullptr,
|
|
325
|
-
rate_limiter_priority));
|
|
310
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
326
311
|
ASSERT_TRUE(!reader.KeyMayMatch("other",
|
|
327
312
|
/*no_io=*/false, /*const_ikey_ptr=*/nullptr,
|
|
328
313
|
/*get_context=*/nullptr,
|
|
329
|
-
/*lookup_context=*/nullptr,
|
|
330
|
-
rate_limiter_priority));
|
|
314
|
+
/*lookup_context=*/nullptr, ReadOptions()));
|
|
331
315
|
}
|
|
332
316
|
|
|
333
317
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -74,17 +74,17 @@ Status HashIndexReader::Create(const BlockBasedTable* table,
|
|
|
74
74
|
// Read contents for the blocks
|
|
75
75
|
BlockContents prefixes_contents;
|
|
76
76
|
BlockFetcher prefixes_block_fetcher(
|
|
77
|
-
file, prefetch_buffer, footer,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
file, prefetch_buffer, footer, ro, prefixes_handle, &prefixes_contents,
|
|
78
|
+
ioptions, true /*decompress*/, true /*maybe_compressed*/,
|
|
79
|
+
BlockType::kHashIndexPrefixes, UncompressionDict::GetEmptyDict(),
|
|
80
|
+
cache_options, memory_allocator);
|
|
81
81
|
s = prefixes_block_fetcher.ReadBlockContents();
|
|
82
82
|
if (!s.ok()) {
|
|
83
83
|
return s;
|
|
84
84
|
}
|
|
85
85
|
BlockContents prefixes_meta_contents;
|
|
86
86
|
BlockFetcher prefixes_meta_block_fetcher(
|
|
87
|
-
file, prefetch_buffer, footer,
|
|
87
|
+
file, prefetch_buffer, footer, ro, prefixes_meta_handle,
|
|
88
88
|
&prefixes_meta_contents, ioptions, true /*decompress*/,
|
|
89
89
|
true /*maybe_compressed*/, BlockType::kHashIndexMetadata,
|
|
90
90
|
UncompressionDict::GetEmptyDict(), cache_options, memory_allocator);
|
|
@@ -116,9 +116,8 @@ InternalIteratorBase<IndexValue>* HashIndexReader::NewIterator(
|
|
|
116
116
|
const BlockBasedTable::Rep* rep = table()->get_rep();
|
|
117
117
|
const bool no_io = (read_options.read_tier == kBlockCacheTier);
|
|
118
118
|
CachableEntry<Block> index_block;
|
|
119
|
-
const Status s =
|
|
120
|
-
|
|
121
|
-
get_context, lookup_context, &index_block);
|
|
119
|
+
const Status s = GetOrReadIndexBlock(no_io, get_context, lookup_context,
|
|
120
|
+
&index_block, read_options);
|
|
122
121
|
if (!s.ok()) {
|
|
123
122
|
if (iter != nullptr) {
|
|
124
123
|
iter->Invalidate(s);
|
|
@@ -35,9 +35,9 @@ Status BlockBasedTable::IndexReaderCommon::ReadIndexBlock(
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
Status BlockBasedTable::IndexReaderCommon::GetOrReadIndexBlock(
|
|
38
|
-
bool no_io,
|
|
39
|
-
BlockCacheLookupContext* lookup_context,
|
|
40
|
-
|
|
38
|
+
bool no_io, GetContext* get_context,
|
|
39
|
+
BlockCacheLookupContext* lookup_context, CachableEntry<Block>* index_block,
|
|
40
|
+
const ReadOptions& ro) const {
|
|
41
41
|
assert(index_block != nullptr);
|
|
42
42
|
|
|
43
43
|
if (!index_block_.IsEmpty()) {
|
|
@@ -45,8 +45,7 @@ Status BlockBasedTable::IndexReaderCommon::GetOrReadIndexBlock(
|
|
|
45
45
|
return Status::OK();
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
ReadOptions read_options;
|
|
49
|
-
read_options.rate_limiter_priority = rate_limiter_priority;
|
|
48
|
+
ReadOptions read_options = ro;
|
|
50
49
|
if (no_io) {
|
|
51
50
|
read_options.read_tier = kBlockCacheTier;
|
|
52
51
|
}
|
|
@@ -65,10 +65,10 @@ class BlockBasedTable::IndexReaderCommon : public BlockBasedTable::IndexReader {
|
|
|
65
65
|
return table_->get_rep()->table_options.cache_index_and_filter_blocks;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
Status GetOrReadIndexBlock(bool no_io,
|
|
69
|
-
GetContext* get_context,
|
|
68
|
+
Status GetOrReadIndexBlock(bool no_io, GetContext* get_context,
|
|
70
69
|
BlockCacheLookupContext* lookup_context,
|
|
71
|
-
CachableEntry<Block>* index_block
|
|
70
|
+
CachableEntry<Block>* index_block,
|
|
71
|
+
const ReadOptions& read_options) const;
|
|
72
72
|
|
|
73
73
|
size_t ApproximateIndexBlockMemoryUsage() const {
|
|
74
74
|
assert(!index_block_.GetOwnValue() || index_block_.GetValue() != nullptr);
|