@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
|
@@ -529,7 +529,7 @@ class MemTable {
|
|
|
529
529
|
|
|
530
530
|
// Returns Corruption status if verification fails.
|
|
531
531
|
static Status VerifyEntryChecksum(const char* entry,
|
|
532
|
-
|
|
532
|
+
uint32_t protection_bytes_per_key,
|
|
533
533
|
bool allow_data_in_errors = false);
|
|
534
534
|
|
|
535
535
|
private:
|
|
@@ -467,6 +467,8 @@ Status MemTableList::TryInstallMemtableFlushResults(
|
|
|
467
467
|
ThreadStatus::STAGE_MEMTABLE_INSTALL_FLUSH_RESULTS);
|
|
468
468
|
mu->AssertHeld();
|
|
469
469
|
|
|
470
|
+
const ReadOptions read_options(Env::IOActivity::kFlush);
|
|
471
|
+
|
|
470
472
|
// Flush was successful
|
|
471
473
|
// Record the status on the memtable object. Either this call or a call by a
|
|
472
474
|
// concurrent flush thread will read the status and write it to manifest.
|
|
@@ -578,8 +580,8 @@ Status MemTableList::TryInstallMemtableFlushResults(
|
|
|
578
580
|
};
|
|
579
581
|
if (write_edits) {
|
|
580
582
|
// this can release and reacquire the mutex.
|
|
581
|
-
s = vset->LogAndApply(cfd, mutable_cf_options,
|
|
582
|
-
db_directory, /*new_descriptor_log=*/false,
|
|
583
|
+
s = vset->LogAndApply(cfd, mutable_cf_options, read_options, edit_list,
|
|
584
|
+
mu, db_directory, /*new_descriptor_log=*/false,
|
|
583
585
|
/*column_family_options=*/nullptr,
|
|
584
586
|
manifest_write_cb);
|
|
585
587
|
} else {
|
|
@@ -798,6 +800,8 @@ Status InstallMemtableAtomicFlushResults(
|
|
|
798
800
|
ThreadStatus::STAGE_MEMTABLE_INSTALL_FLUSH_RESULTS);
|
|
799
801
|
mu->AssertHeld();
|
|
800
802
|
|
|
803
|
+
const ReadOptions read_options(Env::IOActivity::kFlush);
|
|
804
|
+
|
|
801
805
|
size_t num = mems_list.size();
|
|
802
806
|
assert(cfds.size() == num);
|
|
803
807
|
if (imm_lists != nullptr) {
|
|
@@ -875,8 +879,8 @@ Status InstallMemtableAtomicFlushResults(
|
|
|
875
879
|
}
|
|
876
880
|
|
|
877
881
|
// this can release and reacquire the mutex.
|
|
878
|
-
s = vset->LogAndApply(cfds, mutable_cf_options_list,
|
|
879
|
-
db_directory);
|
|
882
|
+
s = vset->LogAndApply(cfds, mutable_cf_options_list, read_options, edit_lists,
|
|
883
|
+
mu, db_directory);
|
|
880
884
|
|
|
881
885
|
for (size_t k = 0; k != cfds.size(); ++k) {
|
|
882
886
|
auto* imm = (imm_lists == nullptr) ? cfds[k]->imm() : imm_lists->at(k);
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
#include "db/wide/wide_column_serialization.h"
|
|
16
16
|
#include "logging/logging.h"
|
|
17
17
|
#include "monitoring/perf_context_imp.h"
|
|
18
|
-
#include "monitoring/
|
|
18
|
+
#include "monitoring/statistics_impl.h"
|
|
19
19
|
#include "port/likely.h"
|
|
20
20
|
#include "rocksdb/comparator.h"
|
|
21
21
|
#include "rocksdb/db.h"
|
|
@@ -187,7 +187,8 @@ TEST_F(PerfContextTest, StopWatchOverhead) {
|
|
|
187
187
|
uint64_t elapsed = 0;
|
|
188
188
|
std::vector<uint64_t> timings(kTotalIterations);
|
|
189
189
|
|
|
190
|
-
StopWatch timer(SystemClock::Default().get(), nullptr, 0,
|
|
190
|
+
StopWatch timer(SystemClock::Default().get(), nullptr, 0,
|
|
191
|
+
Histograms::HISTOGRAM_ENUM_MAX, &elapsed);
|
|
191
192
|
for (auto& timing : timings) {
|
|
192
193
|
timing = elapsed;
|
|
193
194
|
}
|
|
@@ -329,21 +329,23 @@ class TestPlainTableFactory : public PlainTableFactory {
|
|
|
329
329
|
std::unique_ptr<TableReader>* table,
|
|
330
330
|
bool /*prefetch_index_and_filter_in_cache*/) const override {
|
|
331
331
|
std::unique_ptr<TableProperties> props;
|
|
332
|
+
const ReadOptions read_options;
|
|
332
333
|
auto s = ReadTableProperties(file.get(), file_size, kPlainTableMagicNumber,
|
|
333
|
-
table_reader_options.ioptions,
|
|
334
|
+
table_reader_options.ioptions, read_options,
|
|
335
|
+
&props);
|
|
334
336
|
EXPECT_TRUE(s.ok());
|
|
335
337
|
|
|
336
338
|
if (store_index_in_file_) {
|
|
337
339
|
BlockHandle bloom_block_handle;
|
|
338
340
|
s = FindMetaBlockInFile(file.get(), file_size, kPlainTableMagicNumber,
|
|
339
|
-
table_reader_options.ioptions,
|
|
341
|
+
table_reader_options.ioptions, read_options,
|
|
340
342
|
BloomBlockBuilder::kBloomBlock,
|
|
341
343
|
&bloom_block_handle);
|
|
342
344
|
EXPECT_TRUE(s.ok());
|
|
343
345
|
|
|
344
346
|
BlockHandle index_block_handle;
|
|
345
347
|
s = FindMetaBlockInFile(file.get(), file_size, kPlainTableMagicNumber,
|
|
346
|
-
table_reader_options.ioptions,
|
|
348
|
+
table_reader_options.ioptions, read_options,
|
|
347
349
|
PlainTableIndexBuilder::kPlainTableIndexBlock,
|
|
348
350
|
&index_block_handle);
|
|
349
351
|
EXPECT_TRUE(s.ok());
|
|
@@ -1344,4 +1346,3 @@ int main(int argc, char** argv) {
|
|
|
1344
1346
|
::testing::InitGoogleTest(&argc, argv);
|
|
1345
1347
|
return RUN_ALL_TESTS();
|
|
1346
1348
|
}
|
|
1347
|
-
|
|
@@ -145,6 +145,8 @@ class Repairer {
|
|
|
145
145
|
// Adds a column family to the VersionSet with cf_options_ and updates
|
|
146
146
|
// manifest.
|
|
147
147
|
Status AddColumnFamily(const std::string& cf_name, uint32_t cf_id) {
|
|
148
|
+
// TODO: plumb Env::IOActivity;
|
|
149
|
+
const ReadOptions read_options;
|
|
148
150
|
const auto* cf_opts = GetColumnFamilyOptions(cf_name);
|
|
149
151
|
if (cf_opts == nullptr) {
|
|
150
152
|
return Status::Corruption("Encountered unknown column family with name=" +
|
|
@@ -166,8 +168,9 @@ class Repairer {
|
|
|
166
168
|
Status status = env_->GetFileSystem()->NewDirectory(dbname_, IOOptions(),
|
|
167
169
|
&db_dir, nullptr);
|
|
168
170
|
if (status.ok()) {
|
|
169
|
-
status = vset_.LogAndApply(cfd, mut_cf_opts, &edit, &mutex_,
|
|
170
|
-
false /* new_descriptor_log */,
|
|
171
|
+
status = vset_.LogAndApply(cfd, mut_cf_opts, read_options, &edit, &mutex_,
|
|
172
|
+
db_dir.get(), false /* new_descriptor_log */,
|
|
173
|
+
cf_opts);
|
|
171
174
|
}
|
|
172
175
|
mutex_.Unlock();
|
|
173
176
|
return status;
|
|
@@ -357,6 +360,9 @@ class Repairer {
|
|
|
357
360
|
}
|
|
358
361
|
};
|
|
359
362
|
|
|
363
|
+
// TODO: plumb Env::IOActivity
|
|
364
|
+
const ReadOptions read_options;
|
|
365
|
+
|
|
360
366
|
// Open the log file
|
|
361
367
|
std::string logname = LogFileName(wal_dir, log);
|
|
362
368
|
const auto& fs = env_->GetFileSystem();
|
|
@@ -422,6 +428,7 @@ class Repairer {
|
|
|
422
428
|
|
|
423
429
|
FileMetaData meta;
|
|
424
430
|
meta.fd = FileDescriptor(next_file_number_++, 0, 0);
|
|
431
|
+
// TODO: plumb Env::IOActivity
|
|
425
432
|
ReadOptions ro;
|
|
426
433
|
ro.total_order_seek = true;
|
|
427
434
|
Arena arena;
|
|
@@ -456,7 +463,7 @@ class Repairer {
|
|
|
456
463
|
SeqnoToTimeMapping empty_seqno_time_mapping;
|
|
457
464
|
status = BuildTable(
|
|
458
465
|
dbname_, /* versions */ nullptr, immutable_db_options_, tboptions,
|
|
459
|
-
file_options_, table_cache_.get(), iter.get(),
|
|
466
|
+
file_options_, read_options, table_cache_.get(), iter.get(),
|
|
460
467
|
std::move(range_del_iters), &meta, nullptr /* blob_file_additions */,
|
|
461
468
|
{}, kMaxSequenceNumber, kMaxSequenceNumber, snapshot_checker,
|
|
462
469
|
false /* paranoid_file_checks*/, nullptr /* internal_stats */, &io_s,
|
|
@@ -509,8 +516,11 @@ class Repairer {
|
|
|
509
516
|
file_size);
|
|
510
517
|
std::shared_ptr<const TableProperties> props;
|
|
511
518
|
if (status.ok()) {
|
|
512
|
-
|
|
513
|
-
|
|
519
|
+
// TODO: plumb Env::IOActivity
|
|
520
|
+
const ReadOptions read_options;
|
|
521
|
+
status = table_cache_->GetTableProperties(
|
|
522
|
+
file_options_, read_options, icmp_, t->meta, &props,
|
|
523
|
+
0 /* block_protection_bytes_per_key */);
|
|
514
524
|
}
|
|
515
525
|
if (status.ok()) {
|
|
516
526
|
auto s =
|
|
@@ -541,6 +551,17 @@ class Repairer {
|
|
|
541
551
|
}
|
|
542
552
|
t->meta.oldest_ancester_time = props->creation_time;
|
|
543
553
|
}
|
|
554
|
+
if (status.ok()) {
|
|
555
|
+
uint64_t tail_size = 0;
|
|
556
|
+
bool contain_no_data_blocks =
|
|
557
|
+
props->num_entries > 0 &&
|
|
558
|
+
(props->num_entries == props->num_range_deletions);
|
|
559
|
+
if (props->tail_start_offset > 0 || contain_no_data_blocks) {
|
|
560
|
+
assert(props->tail_start_offset <= file_size);
|
|
561
|
+
tail_size = file_size - props->tail_start_offset;
|
|
562
|
+
}
|
|
563
|
+
t->meta.tail_size = tail_size;
|
|
564
|
+
}
|
|
544
565
|
ColumnFamilyData* cfd = nullptr;
|
|
545
566
|
if (status.ok()) {
|
|
546
567
|
cfd = vset_.GetColumnFamilySet()->GetColumnFamily(t->column_family_id);
|
|
@@ -556,6 +577,7 @@ class Repairer {
|
|
|
556
577
|
}
|
|
557
578
|
}
|
|
558
579
|
if (status.ok()) {
|
|
580
|
+
// TODO: plumb Env::IOActivity
|
|
559
581
|
ReadOptions ropts;
|
|
560
582
|
ropts.total_order_seek = true;
|
|
561
583
|
InternalIterator* iter = table_cache_->NewIterator(
|
|
@@ -567,7 +589,8 @@ class Repairer {
|
|
|
567
589
|
/*level=*/-1, /*max_file_size_for_l0_meta_pin=*/0,
|
|
568
590
|
/*smallest_compaction_key=*/nullptr,
|
|
569
591
|
/*largest_compaction_key=*/nullptr,
|
|
570
|
-
/*allow_unprepared_value=*/false
|
|
592
|
+
/*allow_unprepared_value=*/false,
|
|
593
|
+
cfd->GetLatestMutableCFOptions()->block_protection_bytes_per_key);
|
|
571
594
|
ParsedInternalKey parsed;
|
|
572
595
|
for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
|
|
573
596
|
Slice key = iter->key();
|
|
@@ -603,10 +626,13 @@ class Repairer {
|
|
|
603
626
|
// an SST file is a full sorted run. This probably needs the extra logic
|
|
604
627
|
// from compaction_job.cc around call to UpdateBoundariesForRange (to
|
|
605
628
|
// handle range tombstones extendingg beyond range of other entries).
|
|
629
|
+
// TODO: plumb Env::IOActivity
|
|
606
630
|
ReadOptions ropts;
|
|
607
631
|
std::unique_ptr<FragmentedRangeTombstoneIterator> r_iter;
|
|
608
632
|
status = table_cache_->GetRangeTombstoneIterator(
|
|
609
|
-
ropts, cfd->internal_comparator(), t->meta,
|
|
633
|
+
ropts, cfd->internal_comparator(), t->meta,
|
|
634
|
+
cfd->GetLatestMutableCFOptions()->block_protection_bytes_per_key,
|
|
635
|
+
&r_iter);
|
|
610
636
|
|
|
611
637
|
if (r_iter) {
|
|
612
638
|
r_iter->SeekToFirst();
|
|
@@ -625,6 +651,8 @@ class Repairer {
|
|
|
625
651
|
}
|
|
626
652
|
|
|
627
653
|
Status AddTables() {
|
|
654
|
+
// TODO: plumb Env::IOActivity;
|
|
655
|
+
const ReadOptions read_options;
|
|
628
656
|
std::unordered_map<uint32_t, std::vector<const TableInfo*>> cf_id_to_tables;
|
|
629
657
|
SequenceNumber max_sequence = 0;
|
|
630
658
|
for (size_t i = 0; i < tables_.size(); i++) {
|
|
@@ -665,7 +693,7 @@ class Repairer {
|
|
|
665
693
|
table->meta.oldest_ancester_time, table->meta.file_creation_time,
|
|
666
694
|
table->meta.epoch_number, table->meta.file_checksum,
|
|
667
695
|
table->meta.file_checksum_func_name, table->meta.unique_id,
|
|
668
|
-
table->meta.compensated_range_deletion_size);
|
|
696
|
+
table->meta.compensated_range_deletion_size, table->meta.tail_size);
|
|
669
697
|
}
|
|
670
698
|
s = dummy_version_builder.Apply(&dummy_edit);
|
|
671
699
|
if (s.ok()) {
|
|
@@ -706,8 +734,8 @@ class Repairer {
|
|
|
706
734
|
s = env_->GetFileSystem()->NewDirectory(dbname_, IOOptions(), &db_dir,
|
|
707
735
|
nullptr);
|
|
708
736
|
if (s.ok()) {
|
|
709
|
-
s = vset_.LogAndApply(cfd, *cfd->GetLatestMutableCFOptions(),
|
|
710
|
-
&mutex_, db_dir.get(),
|
|
737
|
+
s = vset_.LogAndApply(cfd, *cfd->GetLatestMutableCFOptions(),
|
|
738
|
+
read_options, &edit, &mutex_, db_dir.get(),
|
|
711
739
|
false /* new_descriptor_log */);
|
|
712
740
|
}
|
|
713
741
|
mutex_.Unlock();
|
|
@@ -809,4 +837,3 @@ Status RepairDB(const std::string& dbname, const Options& options) {
|
|
|
809
837
|
}
|
|
810
838
|
|
|
811
839
|
} // namespace ROCKSDB_NAMESPACE
|
|
812
|
-
|
|
@@ -93,7 +93,7 @@ TEST_F(SeqnoTimeTest, TemperatureBasicUniversal) {
|
|
|
93
93
|
}
|
|
94
94
|
ASSERT_OK(Flush());
|
|
95
95
|
}
|
|
96
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
96
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
97
97
|
|
|
98
98
|
// All data is hot, only output to penultimate level
|
|
99
99
|
ASSERT_EQ("0,0,0,0,0,1", FilesPerLevel());
|
|
@@ -114,7 +114,7 @@ TEST_F(SeqnoTimeTest, TemperatureBasicUniversal) {
|
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
ASSERT_OK(Flush());
|
|
117
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
117
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
118
118
|
ASSERT_GT(GetSstSizeHelper(Temperature::kUnknown), 0);
|
|
119
119
|
ASSERT_EQ(GetSstSizeHelper(Temperature::kCold), 0);
|
|
120
120
|
}
|
|
@@ -128,7 +128,7 @@ TEST_F(SeqnoTimeTest, TemperatureBasicUniversal) {
|
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
ASSERT_OK(Flush());
|
|
131
|
-
ASSERT_OK(dbfull()->WaitForCompact(
|
|
131
|
+
ASSERT_OK(dbfull()->WaitForCompact());
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
CompactRangeOptions cro;
|
|
@@ -91,7 +91,8 @@ Status TableCache::GetTableReader(
|
|
|
91
91
|
const ReadOptions& ro, const FileOptions& file_options,
|
|
92
92
|
const InternalKeyComparator& internal_comparator,
|
|
93
93
|
const FileMetaData& file_meta, bool sequential_mode, bool record_read_stats,
|
|
94
|
-
HistogramImpl* file_read_hist,
|
|
94
|
+
uint8_t block_protection_bytes_per_key, HistogramImpl* file_read_hist,
|
|
95
|
+
std::unique_ptr<TableReader>* table_reader,
|
|
95
96
|
const std::shared_ptr<const SliceTransform>& prefix_extractor,
|
|
96
97
|
bool skip_filters, int level, bool prefetch_index_and_filter_in_cache,
|
|
97
98
|
size_t max_file_size_for_l0_meta_pin, Temperature file_temperature) {
|
|
@@ -139,12 +140,13 @@ Status TableCache::GetTableReader(
|
|
|
139
140
|
}
|
|
140
141
|
s = ioptions_.table_factory->NewTableReader(
|
|
141
142
|
ro,
|
|
142
|
-
TableReaderOptions(
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
143
|
+
TableReaderOptions(
|
|
144
|
+
ioptions_, prefix_extractor, file_options, internal_comparator,
|
|
145
|
+
block_protection_bytes_per_key, skip_filters, immortal_tables_,
|
|
146
|
+
false /* force_direct_prefetch */, level, block_cache_tracer_,
|
|
147
|
+
max_file_size_for_l0_meta_pin, db_session_id_,
|
|
148
|
+
file_meta.fd.GetNumber(), expected_unique_id,
|
|
149
|
+
file_meta.fd.largest_seqno, file_meta.tail_size),
|
|
148
150
|
std::move(file_reader), file_meta.fd.GetFileSize(), table_reader,
|
|
149
151
|
prefetch_index_and_filter_in_cache);
|
|
150
152
|
TEST_SYNC_POINT("TableCache::GetTableReader:0");
|
|
@@ -156,6 +158,7 @@ Status TableCache::FindTable(
|
|
|
156
158
|
const ReadOptions& ro, const FileOptions& file_options,
|
|
157
159
|
const InternalKeyComparator& internal_comparator,
|
|
158
160
|
const FileMetaData& file_meta, TypedHandle** handle,
|
|
161
|
+
uint8_t block_protection_bytes_per_key,
|
|
159
162
|
const std::shared_ptr<const SliceTransform>& prefix_extractor,
|
|
160
163
|
const bool no_io, bool record_read_stats, HistogramImpl* file_read_hist,
|
|
161
164
|
bool skip_filters, int level, bool prefetch_index_and_filter_in_cache,
|
|
@@ -179,12 +182,12 @@ Status TableCache::FindTable(
|
|
|
179
182
|
}
|
|
180
183
|
|
|
181
184
|
std::unique_ptr<TableReader> table_reader;
|
|
182
|
-
Status s =
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
185
|
+
Status s = GetTableReader(ro, file_options, internal_comparator, file_meta,
|
|
186
|
+
false /* sequential mode */, record_read_stats,
|
|
187
|
+
block_protection_bytes_per_key, file_read_hist,
|
|
188
|
+
&table_reader, prefix_extractor, skip_filters,
|
|
189
|
+
level, prefetch_index_and_filter_in_cache,
|
|
190
|
+
max_file_size_for_l0_meta_pin, file_temperature);
|
|
188
191
|
if (!s.ok()) {
|
|
189
192
|
assert(table_reader == nullptr);
|
|
190
193
|
RecordTick(ioptions_.stats, NO_FILE_ERRORS);
|
|
@@ -212,6 +215,7 @@ InternalIterator* TableCache::NewIterator(
|
|
|
212
215
|
size_t max_file_size_for_l0_meta_pin,
|
|
213
216
|
const InternalKey* smallest_compaction_key,
|
|
214
217
|
const InternalKey* largest_compaction_key, bool allow_unprepared_value,
|
|
218
|
+
uint8_t block_protection_bytes_per_key,
|
|
215
219
|
TruncatedRangeDelIterator** range_del_iter) {
|
|
216
220
|
PERF_TIMER_GUARD(new_table_iterator_nanos);
|
|
217
221
|
|
|
@@ -225,12 +229,13 @@ InternalIterator* TableCache::NewIterator(
|
|
|
225
229
|
auto& fd = file_meta.fd;
|
|
226
230
|
table_reader = fd.table_reader;
|
|
227
231
|
if (table_reader == nullptr) {
|
|
228
|
-
s = FindTable(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
232
|
+
s = FindTable(options, file_options, icomparator, file_meta, &handle,
|
|
233
|
+
block_protection_bytes_per_key, prefix_extractor,
|
|
234
|
+
options.read_tier == kBlockCacheTier /* no_io */,
|
|
235
|
+
!for_compaction /* record_read_stats */, file_read_hist,
|
|
236
|
+
skip_filters, level,
|
|
237
|
+
true /* prefetch_index_and_filter_in_cache */,
|
|
238
|
+
max_file_size_for_l0_meta_pin, file_meta.temperature);
|
|
234
239
|
if (s.ok()) {
|
|
235
240
|
table_reader = cache_.Value(handle);
|
|
236
241
|
}
|
|
@@ -308,7 +313,7 @@ InternalIterator* TableCache::NewIterator(
|
|
|
308
313
|
Status TableCache::GetRangeTombstoneIterator(
|
|
309
314
|
const ReadOptions& options,
|
|
310
315
|
const InternalKeyComparator& internal_comparator,
|
|
311
|
-
const FileMetaData& file_meta,
|
|
316
|
+
const FileMetaData& file_meta, uint8_t block_protection_bytes_per_key,
|
|
312
317
|
std::unique_ptr<FragmentedRangeTombstoneIterator>* out_iter) {
|
|
313
318
|
assert(out_iter);
|
|
314
319
|
const FileDescriptor& fd = file_meta.fd;
|
|
@@ -317,7 +322,7 @@ Status TableCache::GetRangeTombstoneIterator(
|
|
|
317
322
|
TypedHandle* handle = nullptr;
|
|
318
323
|
if (t == nullptr) {
|
|
319
324
|
s = FindTable(options, file_options_, internal_comparator, file_meta,
|
|
320
|
-
&handle);
|
|
325
|
+
&handle, block_protection_bytes_per_key);
|
|
321
326
|
if (s.ok()) {
|
|
322
327
|
t = cache_.Value(handle);
|
|
323
328
|
}
|
|
@@ -403,6 +408,7 @@ Status TableCache::Get(
|
|
|
403
408
|
const ReadOptions& options,
|
|
404
409
|
const InternalKeyComparator& internal_comparator,
|
|
405
410
|
const FileMetaData& file_meta, const Slice& k, GetContext* get_context,
|
|
411
|
+
uint8_t block_protection_bytes_per_key,
|
|
406
412
|
const std::shared_ptr<const SliceTransform>& prefix_extractor,
|
|
407
413
|
HistogramImpl* file_read_hist, bool skip_filters, int level,
|
|
408
414
|
size_t max_file_size_for_l0_meta_pin) {
|
|
@@ -430,7 +436,7 @@ Status TableCache::Get(
|
|
|
430
436
|
assert(s.ok());
|
|
431
437
|
if (t == nullptr) {
|
|
432
438
|
s = FindTable(options, file_options_, internal_comparator, file_meta,
|
|
433
|
-
&handle, prefix_extractor,
|
|
439
|
+
&handle, block_protection_bytes_per_key, prefix_extractor,
|
|
434
440
|
options.read_tier == kBlockCacheTier /* no_io */,
|
|
435
441
|
true /* record_read_stats */, file_read_hist, skip_filters,
|
|
436
442
|
level, true /* prefetch_index_and_filter_in_cache */,
|
|
@@ -513,7 +519,8 @@ Status TableCache::MultiGetFilter(
|
|
|
513
519
|
const FileMetaData& file_meta,
|
|
514
520
|
const std::shared_ptr<const SliceTransform>& prefix_extractor,
|
|
515
521
|
HistogramImpl* file_read_hist, int level,
|
|
516
|
-
MultiGetContext::Range* mget_range, TypedHandle** table_handle
|
|
522
|
+
MultiGetContext::Range* mget_range, TypedHandle** table_handle,
|
|
523
|
+
uint8_t block_protection_bytes_per_key) {
|
|
517
524
|
auto& fd = file_meta.fd;
|
|
518
525
|
IterKey row_cache_key;
|
|
519
526
|
std::string row_cache_entry_buffer;
|
|
@@ -531,12 +538,13 @@ Status TableCache::MultiGetFilter(
|
|
|
531
538
|
MultiGetContext::Range tombstone_range(*mget_range, mget_range->begin(),
|
|
532
539
|
mget_range->end());
|
|
533
540
|
if (t == nullptr) {
|
|
534
|
-
s = FindTable(
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
541
|
+
s = FindTable(options, file_options_, internal_comparator, file_meta,
|
|
542
|
+
&handle, block_protection_bytes_per_key, prefix_extractor,
|
|
543
|
+
options.read_tier == kBlockCacheTier /* no_io */,
|
|
544
|
+
true /* record_read_stats */, file_read_hist,
|
|
545
|
+
/*skip_filters=*/false, level,
|
|
546
|
+
true /* prefetch_index_and_filter_in_cache */,
|
|
547
|
+
/*max_file_size_for_l0_meta_pin=*/0, file_meta.temperature);
|
|
540
548
|
if (s.ok()) {
|
|
541
549
|
t = cache_.Value(handle);
|
|
542
550
|
}
|
|
@@ -560,10 +568,11 @@ Status TableCache::MultiGetFilter(
|
|
|
560
568
|
}
|
|
561
569
|
|
|
562
570
|
Status TableCache::GetTableProperties(
|
|
563
|
-
const FileOptions& file_options,
|
|
571
|
+
const FileOptions& file_options, const ReadOptions& read_options,
|
|
564
572
|
const InternalKeyComparator& internal_comparator,
|
|
565
573
|
const FileMetaData& file_meta,
|
|
566
574
|
std::shared_ptr<const TableProperties>* properties,
|
|
575
|
+
uint8_t block_protection_bytes_per_key,
|
|
567
576
|
const std::shared_ptr<const SliceTransform>& prefix_extractor, bool no_io) {
|
|
568
577
|
auto table_reader = file_meta.fd.table_reader;
|
|
569
578
|
// table already been pre-loaded?
|
|
@@ -574,8 +583,9 @@ Status TableCache::GetTableProperties(
|
|
|
574
583
|
}
|
|
575
584
|
|
|
576
585
|
TypedHandle* table_handle = nullptr;
|
|
577
|
-
Status s = FindTable(
|
|
578
|
-
file_meta, &table_handle,
|
|
586
|
+
Status s = FindTable(read_options, file_options, internal_comparator,
|
|
587
|
+
file_meta, &table_handle, block_protection_bytes_per_key,
|
|
588
|
+
prefix_extractor, no_io);
|
|
579
589
|
if (!s.ok()) {
|
|
580
590
|
return s;
|
|
581
591
|
}
|
|
@@ -588,12 +598,14 @@ Status TableCache::GetTableProperties(
|
|
|
588
598
|
|
|
589
599
|
Status TableCache::ApproximateKeyAnchors(
|
|
590
600
|
const ReadOptions& ro, const InternalKeyComparator& internal_comparator,
|
|
591
|
-
const FileMetaData& file_meta,
|
|
601
|
+
const FileMetaData& file_meta, uint8_t block_protection_bytes_per_key,
|
|
602
|
+
std::vector<TableReader::Anchor>& anchors) {
|
|
592
603
|
Status s;
|
|
593
604
|
TableReader* t = file_meta.fd.table_reader;
|
|
594
605
|
TypedHandle* handle = nullptr;
|
|
595
606
|
if (t == nullptr) {
|
|
596
|
-
s = FindTable(ro, file_options_, internal_comparator, file_meta, &handle
|
|
607
|
+
s = FindTable(ro, file_options_, internal_comparator, file_meta, &handle,
|
|
608
|
+
block_protection_bytes_per_key);
|
|
597
609
|
if (s.ok()) {
|
|
598
610
|
t = cache_.Value(handle);
|
|
599
611
|
}
|
|
@@ -608,9 +620,9 @@ Status TableCache::ApproximateKeyAnchors(
|
|
|
608
620
|
}
|
|
609
621
|
|
|
610
622
|
size_t TableCache::GetMemoryUsageByTableReader(
|
|
611
|
-
const FileOptions& file_options,
|
|
623
|
+
const FileOptions& file_options, const ReadOptions& read_options,
|
|
612
624
|
const InternalKeyComparator& internal_comparator,
|
|
613
|
-
const FileMetaData& file_meta,
|
|
625
|
+
const FileMetaData& file_meta, uint8_t block_protection_bytes_per_key,
|
|
614
626
|
const std::shared_ptr<const SliceTransform>& prefix_extractor) {
|
|
615
627
|
auto table_reader = file_meta.fd.table_reader;
|
|
616
628
|
// table already been pre-loaded?
|
|
@@ -619,8 +631,9 @@ size_t TableCache::GetMemoryUsageByTableReader(
|
|
|
619
631
|
}
|
|
620
632
|
|
|
621
633
|
TypedHandle* table_handle = nullptr;
|
|
622
|
-
Status s = FindTable(
|
|
623
|
-
file_meta, &table_handle,
|
|
634
|
+
Status s = FindTable(read_options, file_options, internal_comparator,
|
|
635
|
+
file_meta, &table_handle, block_protection_bytes_per_key,
|
|
636
|
+
prefix_extractor, true /* no_io */);
|
|
624
637
|
if (!s.ok()) {
|
|
625
638
|
return 0;
|
|
626
639
|
}
|
|
@@ -636,25 +649,27 @@ void TableCache::Evict(Cache* cache, uint64_t file_number) {
|
|
|
636
649
|
}
|
|
637
650
|
|
|
638
651
|
uint64_t TableCache::ApproximateOffsetOf(
|
|
639
|
-
const
|
|
652
|
+
const ReadOptions& read_options, const Slice& key,
|
|
653
|
+
const FileMetaData& file_meta, TableReaderCaller caller,
|
|
640
654
|
const InternalKeyComparator& internal_comparator,
|
|
655
|
+
uint8_t block_protection_bytes_per_key,
|
|
641
656
|
const std::shared_ptr<const SliceTransform>& prefix_extractor) {
|
|
642
657
|
uint64_t result = 0;
|
|
643
658
|
TableReader* table_reader = file_meta.fd.table_reader;
|
|
644
659
|
TypedHandle* table_handle = nullptr;
|
|
645
660
|
if (table_reader == nullptr) {
|
|
646
661
|
const bool for_compaction = (caller == TableReaderCaller::kCompaction);
|
|
647
|
-
Status s =
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
662
|
+
Status s = FindTable(
|
|
663
|
+
read_options, file_options_, internal_comparator, file_meta,
|
|
664
|
+
&table_handle, block_protection_bytes_per_key, prefix_extractor,
|
|
665
|
+
false /* no_io */, !for_compaction /* record_read_stats */);
|
|
651
666
|
if (s.ok()) {
|
|
652
667
|
table_reader = cache_.Value(table_handle);
|
|
653
668
|
}
|
|
654
669
|
}
|
|
655
670
|
|
|
656
671
|
if (table_reader != nullptr) {
|
|
657
|
-
result = table_reader->ApproximateOffsetOf(key, caller);
|
|
672
|
+
result = table_reader->ApproximateOffsetOf(read_options, key, caller);
|
|
658
673
|
}
|
|
659
674
|
if (table_handle != nullptr) {
|
|
660
675
|
cache_.Release(table_handle);
|
|
@@ -664,25 +679,27 @@ uint64_t TableCache::ApproximateOffsetOf(
|
|
|
664
679
|
}
|
|
665
680
|
|
|
666
681
|
uint64_t TableCache::ApproximateSize(
|
|
667
|
-
const
|
|
668
|
-
|
|
682
|
+
const ReadOptions& read_options, const Slice& start, const Slice& end,
|
|
683
|
+
const FileMetaData& file_meta, TableReaderCaller caller,
|
|
684
|
+
const InternalKeyComparator& internal_comparator,
|
|
685
|
+
uint8_t block_protection_bytes_per_key,
|
|
669
686
|
const std::shared_ptr<const SliceTransform>& prefix_extractor) {
|
|
670
687
|
uint64_t result = 0;
|
|
671
688
|
TableReader* table_reader = file_meta.fd.table_reader;
|
|
672
689
|
TypedHandle* table_handle = nullptr;
|
|
673
690
|
if (table_reader == nullptr) {
|
|
674
691
|
const bool for_compaction = (caller == TableReaderCaller::kCompaction);
|
|
675
|
-
Status s =
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
692
|
+
Status s = FindTable(
|
|
693
|
+
read_options, file_options_, internal_comparator, file_meta,
|
|
694
|
+
&table_handle, block_protection_bytes_per_key, prefix_extractor,
|
|
695
|
+
false /* no_io */, !for_compaction /* record_read_stats */);
|
|
679
696
|
if (s.ok()) {
|
|
680
697
|
table_reader = cache_.Value(table_handle);
|
|
681
698
|
}
|
|
682
699
|
}
|
|
683
700
|
|
|
684
701
|
if (table_reader != nullptr) {
|
|
685
|
-
result = table_reader->ApproximateSize(start, end, caller);
|
|
702
|
+
result = table_reader->ApproximateSize(read_options, start, end, caller);
|
|
686
703
|
}
|
|
687
704
|
if (table_handle != nullptr) {
|
|
688
705
|
cache_.Release(table_handle);
|