@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
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
#include "block_fetcher.h"
|
|
16
16
|
#include "file/random_access_file_reader.h"
|
|
17
|
-
#include "memory/
|
|
17
|
+
#include "memory/memory_allocator_impl.h"
|
|
18
18
|
#include "monitoring/perf_context_imp.h"
|
|
19
|
-
#include "monitoring/
|
|
19
|
+
#include "monitoring/statistics_impl.h"
|
|
20
20
|
#include "options/options_helper.h"
|
|
21
21
|
#include "rocksdb/env.h"
|
|
22
22
|
#include "rocksdb/options.h"
|
|
@@ -530,8 +530,8 @@ Status UncompressBlockData(const UncompressionInfo& uncompression_info,
|
|
|
530
530
|
RecordTimeToHistogram(ioptions.stats, DECOMPRESSION_TIMES_NANOS,
|
|
531
531
|
timer.ElapsedNanos());
|
|
532
532
|
}
|
|
533
|
-
|
|
534
|
-
|
|
533
|
+
RecordTick(ioptions.stats, BYTES_DECOMPRESSED_FROM, size);
|
|
534
|
+
RecordTick(ioptions.stats, BYTES_DECOMPRESSED_TO, out_contents->data.size());
|
|
535
535
|
RecordTick(ioptions.stats, NUMBER_BLOCK_DECOMPRESSED);
|
|
536
536
|
|
|
537
537
|
TEST_SYNC_POINT_CALLBACK("UncompressBlockData:TamperWithReturnValue",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
#include "file/file_prefetch_buffer.h"
|
|
17
17
|
#include "file/random_access_file_reader.h"
|
|
18
|
-
#include "memory/
|
|
18
|
+
#include "memory/memory_allocator_impl.h"
|
|
19
19
|
#include "options/cf_options.h"
|
|
20
20
|
#include "port/malloc.h"
|
|
21
21
|
#include "port/port.h" // noexcept
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
#include "db/wide/wide_column_serialization.h"
|
|
13
13
|
#include "monitoring/file_read_sample.h"
|
|
14
14
|
#include "monitoring/perf_context_imp.h"
|
|
15
|
-
#include "monitoring/
|
|
15
|
+
#include "monitoring/statistics_impl.h"
|
|
16
16
|
#include "rocksdb/merge_operator.h"
|
|
17
17
|
#include "rocksdb/statistics.h"
|
|
18
18
|
#include "rocksdb/system_clock.h"
|
|
@@ -115,6 +115,7 @@ void PropertyBlockBuilder::AddTableProperty(const TableProperties& props) {
|
|
|
115
115
|
Add(TablePropertiesNames::kFastCompressionEstimatedDataSize,
|
|
116
116
|
props.fast_compression_estimated_data_size);
|
|
117
117
|
}
|
|
118
|
+
Add(TablePropertiesNames::kTailStartOffset, props.tail_start_offset);
|
|
118
119
|
if (!props.db_id.empty()) {
|
|
119
120
|
Add(TablePropertiesNames::kDbId, props.db_id);
|
|
120
121
|
}
|
|
@@ -307,6 +308,8 @@ Status ReadTablePropertiesHelper(
|
|
|
307
308
|
&new_table_properties->slow_compression_estimated_data_size},
|
|
308
309
|
{TablePropertiesNames::kFastCompressionEstimatedDataSize,
|
|
309
310
|
&new_table_properties->fast_compression_estimated_data_size},
|
|
311
|
+
{TablePropertiesNames::kTailStartOffset,
|
|
312
|
+
&new_table_properties->tail_start_offset},
|
|
310
313
|
};
|
|
311
314
|
|
|
312
315
|
std::string last_key;
|
|
@@ -412,20 +415,22 @@ Status ReadTablePropertiesHelper(
|
|
|
412
415
|
Status ReadTableProperties(RandomAccessFileReader* file, uint64_t file_size,
|
|
413
416
|
uint64_t table_magic_number,
|
|
414
417
|
const ImmutableOptions& ioptions,
|
|
418
|
+
const ReadOptions& read_options,
|
|
415
419
|
std::unique_ptr<TableProperties>* properties,
|
|
416
420
|
MemoryAllocator* memory_allocator,
|
|
417
421
|
FilePrefetchBuffer* prefetch_buffer) {
|
|
418
422
|
BlockHandle block_handle;
|
|
419
423
|
Footer footer;
|
|
420
|
-
Status s =
|
|
421
|
-
|
|
422
|
-
|
|
424
|
+
Status s =
|
|
425
|
+
FindMetaBlockInFile(file, file_size, table_magic_number, ioptions,
|
|
426
|
+
read_options, kPropertiesBlockName, &block_handle,
|
|
427
|
+
memory_allocator, prefetch_buffer, &footer);
|
|
423
428
|
if (!s.ok()) {
|
|
424
429
|
return s;
|
|
425
430
|
}
|
|
426
431
|
|
|
427
432
|
if (!block_handle.IsNull()) {
|
|
428
|
-
s = ReadTablePropertiesHelper(
|
|
433
|
+
s = ReadTablePropertiesHelper(read_options, block_handle, file,
|
|
429
434
|
prefetch_buffer, footer, ioptions, properties,
|
|
430
435
|
memory_allocator);
|
|
431
436
|
} else {
|
|
@@ -473,14 +478,20 @@ Status FindMetaBlock(InternalIterator* meta_index_iter,
|
|
|
473
478
|
Status ReadMetaIndexBlockInFile(RandomAccessFileReader* file,
|
|
474
479
|
uint64_t file_size, uint64_t table_magic_number,
|
|
475
480
|
const ImmutableOptions& ioptions,
|
|
481
|
+
const ReadOptions& read_options,
|
|
476
482
|
BlockContents* metaindex_contents,
|
|
477
483
|
MemoryAllocator* memory_allocator,
|
|
478
484
|
FilePrefetchBuffer* prefetch_buffer,
|
|
479
485
|
Footer* footer_out) {
|
|
480
486
|
Footer footer;
|
|
481
487
|
IOOptions opts;
|
|
482
|
-
|
|
483
|
-
|
|
488
|
+
Status s;
|
|
489
|
+
s = file->PrepareIOOptions(read_options, opts);
|
|
490
|
+
if (!s.ok()) {
|
|
491
|
+
return s;
|
|
492
|
+
}
|
|
493
|
+
s = ReadFooterFromFile(opts, file, *ioptions.fs, prefetch_buffer, file_size,
|
|
494
|
+
&footer, table_magic_number);
|
|
484
495
|
if (!s.ok()) {
|
|
485
496
|
return s;
|
|
486
497
|
}
|
|
@@ -489,7 +500,7 @@ Status ReadMetaIndexBlockInFile(RandomAccessFileReader* file,
|
|
|
489
500
|
}
|
|
490
501
|
|
|
491
502
|
auto metaindex_handle = footer.metaindex_handle();
|
|
492
|
-
return BlockFetcher(file, prefetch_buffer, footer,
|
|
503
|
+
return BlockFetcher(file, prefetch_buffer, footer, read_options,
|
|
493
504
|
metaindex_handle, metaindex_contents, ioptions,
|
|
494
505
|
false /* do decompression */, false /*maybe_compressed*/,
|
|
495
506
|
BlockType::kMetaIndex, UncompressionDict::GetEmptyDict(),
|
|
@@ -497,18 +508,16 @@ Status ReadMetaIndexBlockInFile(RandomAccessFileReader* file,
|
|
|
497
508
|
.ReadBlockContents();
|
|
498
509
|
}
|
|
499
510
|
|
|
500
|
-
Status FindMetaBlockInFile(
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
FilePrefetchBuffer* prefetch_buffer,
|
|
507
|
-
Footer* footer_out) {
|
|
511
|
+
Status FindMetaBlockInFile(
|
|
512
|
+
RandomAccessFileReader* file, uint64_t file_size,
|
|
513
|
+
uint64_t table_magic_number, const ImmutableOptions& ioptions,
|
|
514
|
+
const ReadOptions& read_options, const std::string& meta_block_name,
|
|
515
|
+
BlockHandle* block_handle, MemoryAllocator* memory_allocator,
|
|
516
|
+
FilePrefetchBuffer* prefetch_buffer, Footer* footer_out) {
|
|
508
517
|
BlockContents metaindex_contents;
|
|
509
518
|
auto s = ReadMetaIndexBlockInFile(
|
|
510
|
-
file, file_size, table_magic_number, ioptions,
|
|
511
|
-
memory_allocator, prefetch_buffer, footer_out);
|
|
519
|
+
file, file_size, table_magic_number, ioptions, read_options,
|
|
520
|
+
&metaindex_contents, memory_allocator, prefetch_buffer, footer_out);
|
|
512
521
|
if (!s.ok()) {
|
|
513
522
|
return s;
|
|
514
523
|
}
|
|
@@ -526,6 +535,7 @@ Status ReadMetaBlock(RandomAccessFileReader* file,
|
|
|
526
535
|
FilePrefetchBuffer* prefetch_buffer, uint64_t file_size,
|
|
527
536
|
uint64_t table_magic_number,
|
|
528
537
|
const ImmutableOptions& ioptions,
|
|
538
|
+
const ReadOptions& read_options,
|
|
529
539
|
const std::string& meta_block_name, BlockType block_type,
|
|
530
540
|
BlockContents* contents,
|
|
531
541
|
MemoryAllocator* memory_allocator) {
|
|
@@ -535,15 +545,16 @@ Status ReadMetaBlock(RandomAccessFileReader* file,
|
|
|
535
545
|
|
|
536
546
|
BlockHandle block_handle;
|
|
537
547
|
Footer footer;
|
|
538
|
-
Status status =
|
|
539
|
-
file, file_size, table_magic_number, ioptions,
|
|
540
|
-
|
|
548
|
+
Status status =
|
|
549
|
+
FindMetaBlockInFile(file, file_size, table_magic_number, ioptions,
|
|
550
|
+
read_options, meta_block_name, &block_handle,
|
|
551
|
+
memory_allocator, prefetch_buffer, &footer);
|
|
541
552
|
if (!status.ok()) {
|
|
542
553
|
return status;
|
|
543
554
|
}
|
|
544
555
|
|
|
545
|
-
return BlockFetcher(file, prefetch_buffer, footer,
|
|
546
|
-
|
|
556
|
+
return BlockFetcher(file, prefetch_buffer, footer, read_options, block_handle,
|
|
557
|
+
contents, ioptions, false /* decompress */,
|
|
547
558
|
false /*maybe_compressed*/, block_type,
|
|
548
559
|
UncompressionDict::GetEmptyDict(),
|
|
549
560
|
PersistentCacheOptions::kEmpty, memory_allocator)
|
|
@@ -119,6 +119,7 @@ Status ReadTablePropertiesHelper(
|
|
|
119
119
|
Status ReadTableProperties(RandomAccessFileReader* file, uint64_t file_size,
|
|
120
120
|
uint64_t table_magic_number,
|
|
121
121
|
const ImmutableOptions& ioptions,
|
|
122
|
+
const ReadOptions& read_options,
|
|
122
123
|
std::unique_ptr<TableProperties>* properties,
|
|
123
124
|
MemoryAllocator* memory_allocator = nullptr,
|
|
124
125
|
FilePrefetchBuffer* prefetch_buffer = nullptr);
|
|
@@ -139,6 +140,7 @@ Status FindMetaBlock(InternalIterator* meta_index_iter,
|
|
|
139
140
|
Status FindMetaBlockInFile(RandomAccessFileReader* file, uint64_t file_size,
|
|
140
141
|
uint64_t table_magic_number,
|
|
141
142
|
const ImmutableOptions& ioptions,
|
|
143
|
+
const ReadOptions& read_options,
|
|
142
144
|
const std::string& meta_block_name,
|
|
143
145
|
BlockHandle* block_handle,
|
|
144
146
|
MemoryAllocator* memory_allocator = nullptr,
|
|
@@ -149,6 +151,7 @@ Status FindMetaBlockInFile(RandomAccessFileReader* file, uint64_t file_size,
|
|
|
149
151
|
Status ReadMetaIndexBlockInFile(RandomAccessFileReader* file,
|
|
150
152
|
uint64_t file_size, uint64_t table_magic_number,
|
|
151
153
|
const ImmutableOptions& ioptions,
|
|
154
|
+
const ReadOptions& read_options,
|
|
152
155
|
BlockContents* block_contents,
|
|
153
156
|
MemoryAllocator* memory_allocator = nullptr,
|
|
154
157
|
FilePrefetchBuffer* prefetch_buffer = nullptr,
|
|
@@ -161,6 +164,7 @@ Status ReadMetaBlock(RandomAccessFileReader* file,
|
|
|
161
164
|
FilePrefetchBuffer* prefetch_buffer, uint64_t file_size,
|
|
162
165
|
uint64_t table_magic_number,
|
|
163
166
|
const ImmutableOptions& ioptions,
|
|
167
|
+
const ReadOptions& read_options,
|
|
164
168
|
const std::string& meta_block_name, BlockType block_type,
|
|
165
169
|
BlockContents* contents,
|
|
166
170
|
MemoryAllocator* memory_allocator = nullptr);
|
|
@@ -41,12 +41,14 @@ class MockTableReader : public TableReader {
|
|
|
41
41
|
GetContext* get_context, const SliceTransform* prefix_extractor,
|
|
42
42
|
bool skip_filters = false) override;
|
|
43
43
|
|
|
44
|
-
uint64_t ApproximateOffsetOf(const
|
|
44
|
+
uint64_t ApproximateOffsetOf(const ReadOptions& /*read_options*/,
|
|
45
|
+
const Slice& /*key*/,
|
|
45
46
|
TableReaderCaller /*caller*/) override {
|
|
46
47
|
return 0;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
uint64_t ApproximateSize(const
|
|
50
|
+
uint64_t ApproximateSize(const ReadOptions& /*read_options*/,
|
|
51
|
+
const Slice& /*start*/, const Slice& /*end*/,
|
|
50
52
|
TableReaderCaller /*caller*/) override {
|
|
51
53
|
return 0;
|
|
52
54
|
}
|
|
@@ -126,8 +126,10 @@ Status PlainTableReader::Open(
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
std::unique_ptr<TableProperties> props;
|
|
129
|
+
// TODO: plumb Env::IOActivity
|
|
130
|
+
const ReadOptions read_options;
|
|
129
131
|
auto s = ReadTableProperties(file.get(), file_size, kPlainTableMagicNumber,
|
|
130
|
-
ioptions, &props);
|
|
132
|
+
ioptions, read_options, &props);
|
|
131
133
|
if (!s.ok()) {
|
|
132
134
|
return s;
|
|
133
135
|
}
|
|
@@ -297,10 +299,14 @@ Status PlainTableReader::PopulateIndex(TableProperties* props,
|
|
|
297
299
|
assert(props != nullptr);
|
|
298
300
|
|
|
299
301
|
BlockContents index_block_contents;
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
302
|
+
|
|
303
|
+
// TODO: plumb Env::IOActivity
|
|
304
|
+
const ReadOptions read_options;
|
|
305
|
+
Status s =
|
|
306
|
+
ReadMetaBlock(file_info_.file.get(), nullptr /* prefetch_buffer */,
|
|
307
|
+
file_size_, kPlainTableMagicNumber, ioptions_, read_options,
|
|
308
|
+
PlainTableIndexBuilder::kPlainTableIndexBlock,
|
|
309
|
+
BlockType::kIndex, &index_block_contents);
|
|
304
310
|
|
|
305
311
|
bool index_in_file = s.ok();
|
|
306
312
|
|
|
@@ -310,8 +316,8 @@ Status PlainTableReader::PopulateIndex(TableProperties* props,
|
|
|
310
316
|
if (index_in_file) {
|
|
311
317
|
s = ReadMetaBlock(file_info_.file.get(), nullptr /* prefetch_buffer */,
|
|
312
318
|
file_size_, kPlainTableMagicNumber, ioptions_,
|
|
313
|
-
BloomBlockBuilder::kBloomBlock,
|
|
314
|
-
&bloom_block_contents);
|
|
319
|
+
read_options, BloomBlockBuilder::kBloomBlock,
|
|
320
|
+
BlockType::kFilter, &bloom_block_contents);
|
|
315
321
|
bloom_in_file = s.ok() && bloom_block_contents.data.size() > 0;
|
|
316
322
|
}
|
|
317
323
|
|
|
@@ -614,12 +620,14 @@ Status PlainTableReader::Get(const ReadOptions& /*ro*/, const Slice& target,
|
|
|
614
620
|
return Status::OK();
|
|
615
621
|
}
|
|
616
622
|
|
|
617
|
-
uint64_t PlainTableReader::ApproximateOffsetOf(
|
|
618
|
-
|
|
623
|
+
uint64_t PlainTableReader::ApproximateOffsetOf(
|
|
624
|
+
const ReadOptions& /*read_options*/, const Slice& /*key*/,
|
|
625
|
+
TableReaderCaller /*caller*/) {
|
|
619
626
|
return 0;
|
|
620
627
|
}
|
|
621
628
|
|
|
622
|
-
uint64_t PlainTableReader::ApproximateSize(const
|
|
629
|
+
uint64_t PlainTableReader::ApproximateSize(const ReadOptions& /* read_options*/,
|
|
630
|
+
const Slice& /*start*/,
|
|
623
631
|
const Slice& /*end*/,
|
|
624
632
|
TableReaderCaller /*caller*/) {
|
|
625
633
|
return 0;
|
|
@@ -92,11 +92,12 @@ class PlainTableReader : public TableReader {
|
|
|
92
92
|
GetContext* get_context, const SliceTransform* prefix_extractor,
|
|
93
93
|
bool skip_filters = false) override;
|
|
94
94
|
|
|
95
|
-
uint64_t ApproximateOffsetOf(const
|
|
95
|
+
uint64_t ApproximateOffsetOf(const ReadOptions& read_options,
|
|
96
|
+
const Slice& key,
|
|
96
97
|
TableReaderCaller caller) override;
|
|
97
98
|
|
|
98
|
-
uint64_t ApproximateSize(const
|
|
99
|
-
TableReaderCaller caller) override;
|
|
99
|
+
uint64_t ApproximateSize(const ReadOptions& read_options, const Slice& start,
|
|
100
|
+
const Slice& end, TableReaderCaller caller) override;
|
|
100
101
|
|
|
101
102
|
uint32_t GetIndexSize() const { return index_.GetIndexSize(); }
|
|
102
103
|
void SetupForCompaction() override;
|
|
@@ -165,10 +165,10 @@ Status SstFileDumper::NewTableReader(
|
|
|
165
165
|
const ImmutableOptions& /*ioptions*/, const EnvOptions& /*soptions*/,
|
|
166
166
|
const InternalKeyComparator& /*internal_comparator*/, uint64_t file_size,
|
|
167
167
|
std::unique_ptr<TableReader>* /*table_reader*/) {
|
|
168
|
-
auto t_opt =
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
168
|
+
auto t_opt = TableReaderOptions(
|
|
169
|
+
ioptions_, moptions_.prefix_extractor, soptions_, internal_comparator_,
|
|
170
|
+
0 /* block_protection_bytes_per_key */, false /* skip_filters */,
|
|
171
|
+
false /* immortal */, true /* force_direct_prefetch */);
|
|
172
172
|
// Allow open file with global sequence number for backward compatibility.
|
|
173
173
|
t_opt.largest_seqno = kMaxSequenceNumber;
|
|
174
174
|
|
|
@@ -315,7 +315,8 @@ Status SstFileDumper::ShowCompressionSize(
|
|
|
315
315
|
const uint64_t compressed_blocks =
|
|
316
316
|
opts.statistics->getAndResetTickerCount(NUMBER_BLOCK_COMPRESSED);
|
|
317
317
|
const uint64_t not_compressed_blocks =
|
|
318
|
-
opts.statistics->getAndResetTickerCount(
|
|
318
|
+
opts.statistics->getAndResetTickerCount(
|
|
319
|
+
NUMBER_BLOCK_COMPRESSION_REJECTED);
|
|
319
320
|
// When the option enable_index_compression is true,
|
|
320
321
|
// NUMBER_BLOCK_COMPRESSED is incremented for index block(s).
|
|
321
322
|
if ((compressed_blocks + not_compressed_blocks) > num_data_blocks) {
|
|
@@ -355,8 +356,11 @@ Status SstFileDumper::ReadTableProperties(uint64_t table_magic_number,
|
|
|
355
356
|
RandomAccessFileReader* file,
|
|
356
357
|
uint64_t file_size,
|
|
357
358
|
FilePrefetchBuffer* prefetch_buffer) {
|
|
359
|
+
// TODO: plumb Env::IOActivity
|
|
360
|
+
const ReadOptions read_options;
|
|
358
361
|
Status s = ROCKSDB_NAMESPACE::ReadTableProperties(
|
|
359
|
-
file, file_size, table_magic_number, ioptions_,
|
|
362
|
+
file, file_size, table_magic_number, ioptions_, read_options,
|
|
363
|
+
&table_properties_,
|
|
360
364
|
/* memory_allocator= */ nullptr, prefetch_buffer);
|
|
361
365
|
if (!s.ok()) {
|
|
362
366
|
if (!silent_) {
|
|
@@ -514,4 +518,3 @@ Status SstFileDumper::ReadTableProperties(
|
|
|
514
518
|
return init_result_;
|
|
515
519
|
}
|
|
516
520
|
} // namespace ROCKSDB_NAMESPACE
|
|
517
|
-
|
|
@@ -56,7 +56,8 @@ Status SstFileReader::Open(const std::string& file_path) {
|
|
|
56
56
|
}
|
|
57
57
|
if (s.ok()) {
|
|
58
58
|
TableReaderOptions t_opt(r->ioptions, r->moptions.prefix_extractor,
|
|
59
|
-
r->soptions, r->ioptions.internal_comparator
|
|
59
|
+
r->soptions, r->ioptions.internal_comparator,
|
|
60
|
+
r->moptions.block_protection_bytes_per_key);
|
|
60
61
|
// Allow open file with global sequence number for backward compatibility.
|
|
61
62
|
t_opt.largest_seqno = kMaxSequenceNumber;
|
|
62
63
|
s = r->options.table_factory->NewTableReader(t_opt, std::move(file_reader),
|
|
@@ -66,6 +67,7 @@ Status SstFileReader::Open(const std::string& file_path) {
|
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
Iterator* SstFileReader::NewIterator(const ReadOptions& roptions) {
|
|
70
|
+
assert(roptions.io_activity == Env::IOActivity::kUnknown);
|
|
69
71
|
auto r = rep_.get();
|
|
70
72
|
auto sequence = roptions.snapshot != nullptr
|
|
71
73
|
? roptions.snapshot->GetSequenceNumber()
|
|
@@ -91,9 +93,9 @@ std::shared_ptr<const TableProperties> SstFileReader::GetTableProperties()
|
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
Status SstFileReader::VerifyChecksum(const ReadOptions& read_options) {
|
|
96
|
+
assert(read_options.io_activity == Env::IOActivity::kUnknown);
|
|
94
97
|
return rep_->table_reader->VerifyChecksum(read_options,
|
|
95
98
|
TableReaderCaller::kSSTFileReader);
|
|
96
99
|
}
|
|
97
100
|
|
|
98
101
|
} // namespace ROCKSDB_NAMESPACE
|
|
99
|
-
|
|
@@ -134,6 +134,17 @@ struct SstFileWriter::Rep {
|
|
|
134
134
|
if (!builder) {
|
|
135
135
|
return Status::InvalidArgument("File is not opened");
|
|
136
136
|
}
|
|
137
|
+
int cmp = internal_comparator.user_comparator()->CompareWithoutTimestamp(
|
|
138
|
+
begin_key, end_key);
|
|
139
|
+
if (cmp > 0) {
|
|
140
|
+
// It's an empty range where endpoints appear mistaken. Don't bother
|
|
141
|
+
// applying it to the DB, and return an error to the user.
|
|
142
|
+
return Status::InvalidArgument("end key comes before start key");
|
|
143
|
+
} else if (cmp == 0) {
|
|
144
|
+
// It's an empty range. Don't bother applying it to the DB.
|
|
145
|
+
return Status::OK();
|
|
146
|
+
}
|
|
147
|
+
|
|
137
148
|
RangeTombstone tombstone(begin_key, end_key, 0 /* Sequence Number */);
|
|
138
149
|
if (file_info.num_range_del_entries == 0) {
|
|
139
150
|
file_info.smallest_range_del_key.assign(tombstone.start_key_.data(),
|
|
@@ -37,12 +37,13 @@ struct TableReaderOptions {
|
|
|
37
37
|
const std::shared_ptr<const SliceTransform>& _prefix_extractor,
|
|
38
38
|
const EnvOptions& _env_options,
|
|
39
39
|
const InternalKeyComparator& _internal_comparator,
|
|
40
|
-
|
|
41
|
-
bool
|
|
42
|
-
BlockCacheTracer* const _block_cache_tracer = nullptr,
|
|
40
|
+
uint8_t _block_protection_bytes_per_key, bool _skip_filters = false,
|
|
41
|
+
bool _immortal = false, bool _force_direct_prefetch = false,
|
|
42
|
+
int _level = -1, BlockCacheTracer* const _block_cache_tracer = nullptr,
|
|
43
43
|
size_t _max_file_size_for_l0_meta_pin = 0,
|
|
44
44
|
const std::string& _cur_db_session_id = "", uint64_t _cur_file_num = 0,
|
|
45
|
-
UniqueId64x2 _unique_id = {}, SequenceNumber _largest_seqno = 0
|
|
45
|
+
UniqueId64x2 _unique_id = {}, SequenceNumber _largest_seqno = 0,
|
|
46
|
+
uint64_t _tail_size = 0)
|
|
46
47
|
: ioptions(_ioptions),
|
|
47
48
|
prefix_extractor(_prefix_extractor),
|
|
48
49
|
env_options(_env_options),
|
|
@@ -56,7 +57,9 @@ struct TableReaderOptions {
|
|
|
56
57
|
max_file_size_for_l0_meta_pin(_max_file_size_for_l0_meta_pin),
|
|
57
58
|
cur_db_session_id(_cur_db_session_id),
|
|
58
59
|
cur_file_num(_cur_file_num),
|
|
59
|
-
unique_id(_unique_id)
|
|
60
|
+
unique_id(_unique_id),
|
|
61
|
+
block_protection_bytes_per_key(_block_protection_bytes_per_key),
|
|
62
|
+
tail_size(_tail_size) {}
|
|
60
63
|
|
|
61
64
|
const ImmutableOptions& ioptions;
|
|
62
65
|
const std::shared_ptr<const SliceTransform>& prefix_extractor;
|
|
@@ -86,6 +89,10 @@ struct TableReaderOptions {
|
|
|
86
89
|
|
|
87
90
|
// Known unique_id or {}, kNullUniqueId64x2 means unknown
|
|
88
91
|
UniqueId64x2 unique_id;
|
|
92
|
+
|
|
93
|
+
uint8_t block_protection_bytes_per_key;
|
|
94
|
+
|
|
95
|
+
uint64_t tail_size;
|
|
89
96
|
};
|
|
90
97
|
|
|
91
98
|
struct TableBuilderOptions {
|
|
@@ -197,6 +204,8 @@ class TableBuilder {
|
|
|
197
204
|
// is enabled.
|
|
198
205
|
virtual uint64_t EstimatedFileSize() const { return FileSize(); }
|
|
199
206
|
|
|
207
|
+
virtual uint64_t GetTailSize() const { return 0; }
|
|
208
|
+
|
|
200
209
|
// If the user defined table properties collector suggest the file to
|
|
201
210
|
// be further compacted.
|
|
202
211
|
virtual bool NeedCompact() const { return false; }
|
|
@@ -303,6 +303,8 @@ const std::string TablePropertiesNames::kFastCompressionEstimatedDataSize =
|
|
|
303
303
|
"rocksdb.sample_for_compression.fast.data.size";
|
|
304
304
|
const std::string TablePropertiesNames::kSequenceNumberTimeMapping =
|
|
305
305
|
"rocksdb.seqno.time.map";
|
|
306
|
+
const std::string TablePropertiesNames::kTailStartOffset =
|
|
307
|
+
"rocksdb.tail.start.offset";
|
|
306
308
|
|
|
307
309
|
#ifndef NDEBUG
|
|
308
310
|
// WARNING: TEST_SetRandomTableProperties assumes the following layout of
|
|
@@ -76,7 +76,8 @@ class TableReader {
|
|
|
76
76
|
// function and letting ApproximateSize take optional start and end, so
|
|
77
77
|
// that absolute start and end can be specified and optimized without
|
|
78
78
|
// key / index work.
|
|
79
|
-
virtual uint64_t ApproximateOffsetOf(const
|
|
79
|
+
virtual uint64_t ApproximateOffsetOf(const ReadOptions& read_options,
|
|
80
|
+
const Slice& key,
|
|
80
81
|
TableReaderCaller caller) = 0;
|
|
81
82
|
|
|
82
83
|
// Given start and end keys, return the approximate data size in the file
|
|
@@ -84,7 +85,8 @@ class TableReader {
|
|
|
84
85
|
// includes effects like compression of the underlying data and applicable
|
|
85
86
|
// portions of metadata including filters and indexes. Nullptr for start or
|
|
86
87
|
// end (or both) indicates absolute start or end of the table.
|
|
87
|
-
virtual uint64_t ApproximateSize(const
|
|
88
|
+
virtual uint64_t ApproximateSize(const ReadOptions& read_options,
|
|
89
|
+
const Slice& start, const Slice& end,
|
|
88
90
|
TableReaderCaller caller) = 0;
|
|
89
91
|
|
|
90
92
|
struct Anchor {
|
|
@@ -160,7 +162,8 @@ class TableReader {
|
|
|
160
162
|
// Prefetch data corresponding to a give range of keys
|
|
161
163
|
// Typically this functionality is required for table implementations that
|
|
162
164
|
// persists the data on a non volatile storage medium like disk/SSD
|
|
163
|
-
virtual Status Prefetch(const
|
|
165
|
+
virtual Status Prefetch(const ReadOptions& /* read_options */,
|
|
166
|
+
const Slice* begin = nullptr,
|
|
164
167
|
const Slice* end = nullptr) {
|
|
165
168
|
(void)begin;
|
|
166
169
|
(void)end;
|
|
@@ -144,7 +144,7 @@ void TableReaderBenchmark(Options& opts, EnvOptions& env_options,
|
|
|
144
144
|
new RandomAccessFileReader(std::move(raf), file_name));
|
|
145
145
|
s = opts.table_factory->NewTableReader(
|
|
146
146
|
TableReaderOptions(ioptions, moptions.prefix_extractor, env_options,
|
|
147
|
-
ikc),
|
|
147
|
+
ikc, 0 /* block_protection_bytes_per_key */),
|
|
148
148
|
std::move(file_reader), file_size, &table_reader);
|
|
149
149
|
if (!s.ok()) {
|
|
150
150
|
fprintf(stderr, "Open Table Error: %s\n", s.ToString().c_str());
|