@nxtedition/rocksdb 13.1.5 → 13.2.0
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 +37 -12
- package/deps/rocksdb/rocksdb/{TARGETS → BUCK} +27 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +3 -1
- package/deps/rocksdb/rocksdb/Makefile +2 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +3 -1
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +2 -0
- package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.h +34 -9
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +7 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +22 -14
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +149 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +13 -24
- package/deps/rocksdb/rocksdb/db/coalescing_iterator.h +35 -10
- package/deps/rocksdb/rocksdb/db/column_family.cc +21 -10
- package/deps/rocksdb/rocksdb/db/column_family.h +15 -8
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +98 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +126 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +51 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +2 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +24 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +52 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +9 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +36 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +6 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +30 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +26 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +43 -33
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +6 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +19 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +6 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +632 -411
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +171 -51
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +7 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +37 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +51 -11
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +10 -3
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +350 -154
- package/deps/rocksdb/rocksdb/db/convenience.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +62 -27
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +68 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +91 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +134 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +71 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +43 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +47 -33
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +27 -19
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +38 -25
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +3 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +7 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +258 -42
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +161 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +118 -86
- package/deps/rocksdb/rocksdb/db/db_iter.h +44 -17
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +27 -6
- package/deps/rocksdb/rocksdb/db/db_test.cc +48 -16
- package/deps/rocksdb/rocksdb/db/db_test2.cc +60 -15
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +97 -44
- package/deps/rocksdb/rocksdb/db/db_test_util.h +7 -1
- package/deps/rocksdb/rocksdb/db/dbformat.cc +15 -5
- package/deps/rocksdb/rocksdb/db/dbformat.h +137 -55
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +54 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +663 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +152 -91
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +134 -11
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +55 -9
- package/deps/rocksdb/rocksdb/db/flush_job.cc +52 -29
- package/deps/rocksdb/rocksdb/db/flush_job.h +5 -3
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +18 -12
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +23 -29
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +9 -6
- package/deps/rocksdb/rocksdb/db/internal_stats.h +54 -0
- package/deps/rocksdb/rocksdb/db/job_context.h +1 -1
- package/deps/rocksdb/rocksdb/db/log_reader.cc +6 -7
- package/deps/rocksdb/rocksdb/db/manifest_ops.cc +47 -0
- package/deps/rocksdb/rocksdb/db/manifest_ops.h +20 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +165 -64
- package/deps/rocksdb/rocksdb/db/memtable.h +422 -243
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +99 -68
- package/deps/rocksdb/rocksdb/db/memtable_list.h +63 -38
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +118 -60
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_test.cc +344 -89
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +2 -3
- package/deps/rocksdb/rocksdb/db/repair.cc +15 -14
- package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -13
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +7 -0
- package/deps/rocksdb/rocksdb/db/table_cache.cc +62 -65
- package/deps/rocksdb/rocksdb/db/table_cache.h +70 -76
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +5 -6
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +8 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +17 -19
- package/deps/rocksdb/rocksdb/db/version_builder.h +13 -12
- package/deps/rocksdb/rocksdb/db/version_edit.h +30 -0
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +3 -5
- package/deps/rocksdb/rocksdb/db/version_set.cc +89 -129
- package/deps/rocksdb/rocksdb/db/version_set.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -2
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +12 -8
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +0 -15
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -2
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +9 -7
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +0 -8
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +28 -2
- package/deps/rocksdb/rocksdb/db/write_batch.cc +32 -10
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +9 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/write_thread.cc +3 -1
- package/deps/rocksdb/rocksdb/db/write_thread.h +6 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +15 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +7 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +18 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +100 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +34 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +223 -78
- package/deps/rocksdb/rocksdb/env/file_system.cc +6 -1
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +53 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +63 -17
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +132 -48
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +92 -24
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +727 -109
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +3 -4
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/attribute_groups.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +9 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +10 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +34 -37
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +21 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +56 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +36 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +84 -60
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +102 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +89 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +32 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +30 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +23 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +2 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +79 -21
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +41 -18
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -5
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +169 -0
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +400 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +137 -82
- package/deps/rocksdb/rocksdb/options/cf_options.h +18 -6
- package/deps/rocksdb/rocksdb/options/configurable.cc +31 -17
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +7 -6
- package/deps/rocksdb/rocksdb/options/options_helper.cc +10 -8
- package/deps/rocksdb/rocksdb/options/options_parser.cc +74 -54
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +89 -0
- package/deps/rocksdb/rocksdb/options/options_test.cc +112 -26
- package/deps/rocksdb/rocksdb/port/port.h +5 -9
- package/deps/rocksdb/rocksdb/src.mk +8 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_based/block.h +1 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +62 -80
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +13 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +16 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +38 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +12 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +204 -1
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +4 -0
- package/deps/rocksdb/rocksdb/table/format.cc +3 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +4 -1
- package/deps/rocksdb/rocksdb/table/mock_table.cc +0 -50
- package/deps/rocksdb/rocksdb/table/mock_table.h +53 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +4 -0
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +10 -5
- package/deps/rocksdb/rocksdb/table/table_builder.h +3 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +181 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/table/table_test.cc +71 -64
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +45 -45
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +35 -35
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +43 -43
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +41 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +1 -1
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +13 -0
- package/deps/rocksdb/rocksdb/util/aligned_buffer.h +24 -5
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +7 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +0 -52
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +1 -10
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +92 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +1 -0
- package/deps/rocksdb/rocksdb/util/udt_util.cc +50 -4
- package/deps/rocksdb/rocksdb/util/udt_util.h +24 -11
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +26 -13
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -16
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +214 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.h +60 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +124 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +441 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +34 -3
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +7 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +437 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +34 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +14 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +7 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +20 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1290 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +324 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +18 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +8 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +57 -12
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +32 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +33 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +721 -9
- package/deps/rocksdb/rocksdb.gyp +2 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
|
@@ -92,13 +92,12 @@ class TableCache {
|
|
|
92
92
|
const ReadOptions& options, const FileOptions& toptions,
|
|
93
93
|
const InternalKeyComparator& internal_comparator,
|
|
94
94
|
const FileMetaData& file_meta, RangeDelAggregator* range_del_agg,
|
|
95
|
-
const
|
|
95
|
+
const MutableCFOptions& mutable_cf_options,
|
|
96
96
|
TableReader** table_reader_ptr, HistogramImpl* file_read_hist,
|
|
97
97
|
TableReaderCaller caller, Arena* arena, bool skip_filters, int level,
|
|
98
98
|
size_t max_file_size_for_l0_meta_pin,
|
|
99
99
|
const InternalKey* smallest_compaction_key,
|
|
100
100
|
const InternalKey* largest_compaction_key, bool allow_unprepared_value,
|
|
101
|
-
uint8_t protection_bytes_per_key,
|
|
102
101
|
const SequenceNumber* range_del_read_seqno = nullptr,
|
|
103
102
|
std::unique_ptr<TruncatedRangeDelIterator>* range_del_iter = nullptr);
|
|
104
103
|
|
|
@@ -112,21 +111,20 @@ class TableCache {
|
|
|
112
111
|
// recorded
|
|
113
112
|
// @param skip_filters Disables loading/accessing the filter block
|
|
114
113
|
// @param level The level this table is at, -1 for "not set / don't know"
|
|
115
|
-
Status Get(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
int level = -1, size_t max_file_size_for_l0_meta_pin = 0);
|
|
114
|
+
Status Get(const ReadOptions& options,
|
|
115
|
+
const InternalKeyComparator& internal_comparator,
|
|
116
|
+
const FileMetaData& file_meta, const Slice& k,
|
|
117
|
+
GetContext* get_context,
|
|
118
|
+
const MutableCFOptions& mutable_cf_options,
|
|
119
|
+
HistogramImpl* file_read_hist = nullptr, bool skip_filters = false,
|
|
120
|
+
int level = -1, size_t max_file_size_for_l0_meta_pin = 0);
|
|
123
121
|
|
|
124
122
|
// Return the range delete tombstone iterator of the file specified by
|
|
125
123
|
// `file_meta`.
|
|
126
124
|
Status GetRangeTombstoneIterator(
|
|
127
125
|
const ReadOptions& options,
|
|
128
126
|
const InternalKeyComparator& internal_comparator,
|
|
129
|
-
const FileMetaData& file_meta,
|
|
127
|
+
const FileMetaData& file_meta, const MutableCFOptions& mutable_cf_options,
|
|
130
128
|
std::unique_ptr<FragmentedRangeTombstoneIterator>* out_iter);
|
|
131
129
|
|
|
132
130
|
// Call table reader's MultiGetFilter to use the bloom filter to filter out
|
|
@@ -134,14 +132,13 @@ class TableCache {
|
|
|
134
132
|
// If the table cache is looked up to get the table reader, the cache handle
|
|
135
133
|
// is returned in table_handle. This handle should be passed back to
|
|
136
134
|
// MultiGet() so it can be released.
|
|
137
|
-
Status MultiGetFilter(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
uint8_t block_protection_bytes_per_key);
|
|
135
|
+
Status MultiGetFilter(const ReadOptions& options,
|
|
136
|
+
const InternalKeyComparator& internal_comparator,
|
|
137
|
+
const FileMetaData& file_meta,
|
|
138
|
+
const MutableCFOptions& mutable_cf_options,
|
|
139
|
+
HistogramImpl* file_read_hist, int level,
|
|
140
|
+
MultiGetContext::Range* mget_range,
|
|
141
|
+
TypedHandle** table_handle);
|
|
145
142
|
|
|
146
143
|
// If a seek to internal key "k" in specified file finds an entry,
|
|
147
144
|
// call get_context->SaveValue() repeatedly until
|
|
@@ -152,22 +149,24 @@ class TableCache {
|
|
|
152
149
|
// in the embedded GetContext
|
|
153
150
|
// @param skip_filters Disables loading/accessing the filter block
|
|
154
151
|
// @param level The level this table is at, -1 for "not set / don't know"
|
|
155
|
-
DECLARE_SYNC_AND_ASYNC(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
152
|
+
DECLARE_SYNC_AND_ASYNC(Status, MultiGet, const ReadOptions& options,
|
|
153
|
+
const InternalKeyComparator& internal_comparator,
|
|
154
|
+
const FileMetaData& file_meta,
|
|
155
|
+
const MultiGetContext::Range* mget_range,
|
|
156
|
+
const MutableCFOptions& mutable_cf_options,
|
|
157
|
+
HistogramImpl* file_read_hist = nullptr,
|
|
158
|
+
bool skip_filters = false,
|
|
159
|
+
bool skip_range_deletions = false, int level = -1,
|
|
160
|
+
TypedHandle* table_handle = nullptr);
|
|
164
161
|
|
|
165
|
-
// Evict any entry for the specified file number
|
|
162
|
+
// Evict any entry for the specified file number. ReleaseObsolete() is
|
|
163
|
+
// preferred for cleaning up from obsolete files.
|
|
166
164
|
static void Evict(Cache* cache, uint64_t file_number);
|
|
167
165
|
|
|
168
166
|
// Handles releasing, erasing, etc. of what should be the last reference
|
|
169
|
-
// to an obsolete file.
|
|
170
|
-
static void ReleaseObsolete(Cache* cache,
|
|
167
|
+
// to an obsolete file. `handle` may be nullptr if no prior handle is known.
|
|
168
|
+
static void ReleaseObsolete(Cache* cache, uint64_t file_number,
|
|
169
|
+
Cache::Handle* handle,
|
|
171
170
|
uint32_t uncache_aggressiveness);
|
|
172
171
|
|
|
173
172
|
// Return handle to an existing cache entry if there is one
|
|
@@ -176,17 +175,16 @@ class TableCache {
|
|
|
176
175
|
// Find table reader
|
|
177
176
|
// @param skip_filters Disables loading/accessing the filter block
|
|
178
177
|
// @param level == -1 means not specified
|
|
179
|
-
Status FindTable(
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
Temperature file_temperature = Temperature::kUnknown);
|
|
178
|
+
Status FindTable(const ReadOptions& ro, const FileOptions& toptions,
|
|
179
|
+
const InternalKeyComparator& internal_comparator,
|
|
180
|
+
const FileMetaData& file_meta, TypedHandle**,
|
|
181
|
+
const MutableCFOptions& mutable_cf_options,
|
|
182
|
+
const bool no_io = false,
|
|
183
|
+
HistogramImpl* file_read_hist = nullptr,
|
|
184
|
+
bool skip_filters = false, int level = -1,
|
|
185
|
+
bool prefetch_index_and_filter_in_cache = true,
|
|
186
|
+
size_t max_file_size_for_l0_meta_pin = 0,
|
|
187
|
+
Temperature file_temperature = Temperature::kUnknown);
|
|
190
188
|
|
|
191
189
|
// Get the table properties of a given table.
|
|
192
190
|
// @no_io: indicates if we should load table to the cache if it is not present
|
|
@@ -194,19 +192,18 @@ class TableCache {
|
|
|
194
192
|
// @returns: `properties` will be reset on success. Please note that we will
|
|
195
193
|
// return Status::Incomplete() if table is not present in cache and
|
|
196
194
|
// we set `no_io` to be true.
|
|
197
|
-
Status GetTableProperties(
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
bool no_io = false);
|
|
195
|
+
Status GetTableProperties(const FileOptions& toptions,
|
|
196
|
+
const ReadOptions& read_options,
|
|
197
|
+
const InternalKeyComparator& internal_comparator,
|
|
198
|
+
const FileMetaData& file_meta,
|
|
199
|
+
std::shared_ptr<const TableProperties>* properties,
|
|
200
|
+
const MutableCFOptions& mutable_cf_options,
|
|
201
|
+
bool no_io = false);
|
|
205
202
|
|
|
206
203
|
Status ApproximateKeyAnchors(const ReadOptions& ro,
|
|
207
204
|
const InternalKeyComparator& internal_comparator,
|
|
208
205
|
const FileMetaData& file_meta,
|
|
209
|
-
|
|
206
|
+
const MutableCFOptions& mutable_cf_options,
|
|
210
207
|
std::vector<TableReader::Anchor>& anchors);
|
|
211
208
|
|
|
212
209
|
// Return total memory usage of the table reader of the file.
|
|
@@ -214,25 +211,23 @@ class TableCache {
|
|
|
214
211
|
size_t GetMemoryUsageByTableReader(
|
|
215
212
|
const FileOptions& toptions, const ReadOptions& read_options,
|
|
216
213
|
const InternalKeyComparator& internal_comparator,
|
|
217
|
-
const FileMetaData& file_meta,
|
|
218
|
-
const
|
|
214
|
+
const FileMetaData& file_meta,
|
|
215
|
+
const MutableCFOptions& mutable_cf_options);
|
|
219
216
|
|
|
220
217
|
// Returns approximated offset of a key in a file represented by fd.
|
|
221
|
-
uint64_t ApproximateOffsetOf(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const std::shared_ptr<const SliceTransform>& prefix_extractor = nullptr);
|
|
218
|
+
uint64_t ApproximateOffsetOf(const ReadOptions& read_options,
|
|
219
|
+
const Slice& key, const FileMetaData& file_meta,
|
|
220
|
+
TableReaderCaller caller,
|
|
221
|
+
const InternalKeyComparator& internal_comparator,
|
|
222
|
+
const MutableCFOptions& mutable_cf_options);
|
|
227
223
|
|
|
228
224
|
// Returns approximated data size between start and end keys in a file
|
|
229
225
|
// represented by fd (the start key must not be greater than the end key).
|
|
230
|
-
uint64_t ApproximateSize(
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
const std::shared_ptr<const SliceTransform>& prefix_extractor = nullptr);
|
|
226
|
+
uint64_t ApproximateSize(const ReadOptions& read_options, const Slice& start,
|
|
227
|
+
const Slice& end, const FileMetaData& file_meta,
|
|
228
|
+
TableReaderCaller caller,
|
|
229
|
+
const InternalKeyComparator& internal_comparator,
|
|
230
|
+
const MutableCFOptions& mutable_cf_options);
|
|
236
231
|
|
|
237
232
|
CacheInterface& get_cache() { return cache_; }
|
|
238
233
|
|
|
@@ -250,17 +245,16 @@ class TableCache {
|
|
|
250
245
|
|
|
251
246
|
private:
|
|
252
247
|
// Build a table reader
|
|
253
|
-
Status GetTableReader(
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
Temperature file_temperature = Temperature::kUnknown);
|
|
248
|
+
Status GetTableReader(const ReadOptions& ro, const FileOptions& file_options,
|
|
249
|
+
const InternalKeyComparator& internal_comparator,
|
|
250
|
+
const FileMetaData& file_meta, bool sequential_mode,
|
|
251
|
+
HistogramImpl* file_read_hist,
|
|
252
|
+
std::unique_ptr<TableReader>* table_reader,
|
|
253
|
+
const MutableCFOptions& mutable_cf_options,
|
|
254
|
+
bool skip_filters = false, int level = -1,
|
|
255
|
+
bool prefetch_index_and_filter_in_cache = true,
|
|
256
|
+
size_t max_file_size_for_l0_meta_pin = 0,
|
|
257
|
+
Temperature file_temperature = Temperature::kUnknown);
|
|
264
258
|
|
|
265
259
|
// Update the max_covering_tombstone_seq in the GetContext for each key based
|
|
266
260
|
// on the range deletions in the table
|
|
@@ -17,10 +17,8 @@ namespace ROCKSDB_NAMESPACE {
|
|
|
17
17
|
DEFINE_SYNC_AND_ASYNC(Status, TableCache::MultiGet)
|
|
18
18
|
(const ReadOptions& options, const InternalKeyComparator& internal_comparator,
|
|
19
19
|
const FileMetaData& file_meta, const MultiGetContext::Range* mget_range,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
HistogramImpl* file_read_hist, bool skip_filters, bool skip_range_deletions,
|
|
23
|
-
int level, TypedHandle* handle) {
|
|
20
|
+
const MutableCFOptions& mutable_cf_options, HistogramImpl* file_read_hist,
|
|
21
|
+
bool skip_filters, bool skip_range_deletions, int level, TypedHandle* handle) {
|
|
24
22
|
auto& fd = file_meta.fd;
|
|
25
23
|
Status s;
|
|
26
24
|
TableReader* t = fd.table_reader;
|
|
@@ -72,7 +70,7 @@ DEFINE_SYNC_AND_ASYNC(Status, TableCache::MultiGet)
|
|
|
72
70
|
if (t == nullptr) {
|
|
73
71
|
assert(handle == nullptr);
|
|
74
72
|
s = FindTable(options, file_options_, internal_comparator, file_meta,
|
|
75
|
-
&handle,
|
|
73
|
+
&handle, mutable_cf_options,
|
|
76
74
|
options.read_tier == kBlockCacheTier /* no_io */,
|
|
77
75
|
file_read_hist, skip_filters, level,
|
|
78
76
|
true /* prefetch_index_and_filter_in_cache */,
|
|
@@ -88,7 +86,8 @@ DEFINE_SYNC_AND_ASYNC(Status, TableCache::MultiGet)
|
|
|
88
86
|
}
|
|
89
87
|
if (s.ok()) {
|
|
90
88
|
CO_AWAIT(t->MultiGet)
|
|
91
|
-
(options, &table_range, prefix_extractor.get(),
|
|
89
|
+
(options, &table_range, mutable_cf_options.prefix_extractor.get(),
|
|
90
|
+
skip_filters);
|
|
92
91
|
} else if (options.read_tier == kBlockCacheTier && s.IsIncomplete()) {
|
|
93
92
|
for (auto iter = table_range.begin(); iter != table_range.end(); ++iter) {
|
|
94
93
|
Status* status = iter->s;
|
|
@@ -58,7 +58,7 @@ void MakeBuilder(
|
|
|
58
58
|
ioptions, moptions, read_options, write_options, internal_comparator,
|
|
59
59
|
internal_tbl_prop_coll_factories, options.compression,
|
|
60
60
|
options.compression_opts, kTestColumnFamilyId, kTestColumnFamilyName,
|
|
61
|
-
kTestLevel);
|
|
61
|
+
kTestLevel, kUnknownNewestKeyTime);
|
|
62
62
|
builder->reset(NewTableBuilder(tboptions, writable->get()));
|
|
63
63
|
}
|
|
64
64
|
} // namespace
|
|
@@ -231,13 +231,14 @@ bool TransactionLogIteratorImpl::IsBatchExpected(
|
|
|
231
231
|
assert(batch);
|
|
232
232
|
SequenceNumber batchSeq = WriteBatchInternal::Sequence(batch);
|
|
233
233
|
if (batchSeq != expected_seq) {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
234
|
+
std::ostringstream oss;
|
|
235
|
+
oss << "Discontinuity in log records. "
|
|
236
|
+
<< "Got seq=" << batchSeq << ", "
|
|
237
|
+
<< "Expected seq=" << expected_seq << ", "
|
|
238
|
+
<< "Last flushed seq=" << versions_->LastSequence() << ". "
|
|
239
|
+
<< "Log iterator will reseek the correct batch.";
|
|
240
|
+
|
|
241
|
+
reporter_.Info(oss.str().c_str());
|
|
241
242
|
return false;
|
|
242
243
|
}
|
|
243
244
|
return true;
|
|
@@ -1637,12 +1637,12 @@ class VersionBuilder::Rep {
|
|
|
1637
1637
|
return s;
|
|
1638
1638
|
}
|
|
1639
1639
|
|
|
1640
|
-
Status LoadTableHandlers(
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1640
|
+
Status LoadTableHandlers(InternalStats* internal_stats, int max_threads,
|
|
1641
|
+
bool prefetch_index_and_filter_in_cache,
|
|
1642
|
+
bool is_initial_load,
|
|
1643
|
+
const MutableCFOptions& mutable_cf_options,
|
|
1644
|
+
size_t max_file_size_for_l0_meta_pin,
|
|
1645
|
+
const ReadOptions& read_options) {
|
|
1646
1646
|
assert(table_cache_ != nullptr);
|
|
1647
1647
|
assert(!track_found_and_missing_files_ || valid_version_available_);
|
|
1648
1648
|
|
|
@@ -1717,7 +1717,7 @@ class VersionBuilder::Rep {
|
|
|
1717
1717
|
statuses[file_idx] = table_cache_->FindTable(
|
|
1718
1718
|
read_options, file_options_,
|
|
1719
1719
|
*(base_vstorage_->InternalComparator()), *file_meta, &handle,
|
|
1720
|
-
|
|
1720
|
+
mutable_cf_options, false /*no_io */,
|
|
1721
1721
|
internal_stats->GetFileReadHist(level), false, level,
|
|
1722
1722
|
prefetch_index_and_filter_in_cache, max_file_size_for_l0_meta_pin,
|
|
1723
1723
|
file_meta->temperature);
|
|
@@ -1778,13 +1778,12 @@ Status VersionBuilder::SaveTo(VersionStorageInfo* vstorage) const {
|
|
|
1778
1778
|
Status VersionBuilder::LoadTableHandlers(
|
|
1779
1779
|
InternalStats* internal_stats, int max_threads,
|
|
1780
1780
|
bool prefetch_index_and_filter_in_cache, bool is_initial_load,
|
|
1781
|
-
const
|
|
1782
|
-
size_t max_file_size_for_l0_meta_pin, const ReadOptions& read_options
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
read_options, block_protection_bytes_per_key);
|
|
1781
|
+
const MutableCFOptions& mutable_cf_options,
|
|
1782
|
+
size_t max_file_size_for_l0_meta_pin, const ReadOptions& read_options) {
|
|
1783
|
+
return rep_->LoadTableHandlers(internal_stats, max_threads,
|
|
1784
|
+
prefetch_index_and_filter_in_cache,
|
|
1785
|
+
is_initial_load, mutable_cf_options,
|
|
1786
|
+
max_file_size_for_l0_meta_pin, read_options);
|
|
1788
1787
|
}
|
|
1789
1788
|
|
|
1790
1789
|
void VersionBuilder::CreateOrReplaceSavePoint() {
|
|
@@ -1815,16 +1814,15 @@ Status VersionBuilder::SaveSavePointTo(VersionStorageInfo* vstorage) const {
|
|
|
1815
1814
|
Status VersionBuilder::LoadSavePointTableHandlers(
|
|
1816
1815
|
InternalStats* internal_stats, int max_threads,
|
|
1817
1816
|
bool prefetch_index_and_filter_in_cache, bool is_initial_load,
|
|
1818
|
-
const
|
|
1819
|
-
size_t max_file_size_for_l0_meta_pin, const ReadOptions& read_options
|
|
1820
|
-
uint8_t block_protection_bytes_per_key) {
|
|
1817
|
+
const MutableCFOptions& mutable_cf_options,
|
|
1818
|
+
size_t max_file_size_for_l0_meta_pin, const ReadOptions& read_options) {
|
|
1821
1819
|
if (!savepoint_ || !savepoint_->ValidVersionAvailable()) {
|
|
1822
1820
|
return Status::InvalidArgument();
|
|
1823
1821
|
}
|
|
1824
1822
|
return savepoint_->LoadTableHandlers(
|
|
1825
1823
|
internal_stats, max_threads, prefetch_index_and_filter_in_cache,
|
|
1826
|
-
is_initial_load,
|
|
1827
|
-
read_options
|
|
1824
|
+
is_initial_load, mutable_cf_options, max_file_size_for_l0_meta_pin,
|
|
1825
|
+
read_options);
|
|
1828
1826
|
}
|
|
1829
1827
|
|
|
1830
1828
|
void VersionBuilder::ClearSavePoint() { savepoint_.reset(nullptr); }
|
|
@@ -54,12 +54,12 @@ class VersionBuilder {
|
|
|
54
54
|
Status SaveTo(VersionStorageInfo* vstorage) const;
|
|
55
55
|
|
|
56
56
|
// Load all the table handlers for the current Version in the builder.
|
|
57
|
-
Status LoadTableHandlers(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
Status LoadTableHandlers(InternalStats* internal_stats, int max_threads,
|
|
58
|
+
bool prefetch_index_and_filter_in_cache,
|
|
59
|
+
bool is_initial_load,
|
|
60
|
+
const MutableCFOptions& mutable_cf_options,
|
|
61
|
+
size_t max_file_size_for_l0_meta_pin,
|
|
62
|
+
const ReadOptions& read_options);
|
|
63
63
|
|
|
64
64
|
//============APIs only used by VersionEditHandlerPointInTime ============//
|
|
65
65
|
|
|
@@ -99,12 +99,13 @@ class VersionBuilder {
|
|
|
99
99
|
|
|
100
100
|
// Load all the table handlers for the Version in the save point.
|
|
101
101
|
// Non-OK status will be returned if there is not a valid save point.
|
|
102
|
-
Status LoadSavePointTableHandlers(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
Status LoadSavePointTableHandlers(InternalStats* internal_stats,
|
|
103
|
+
int max_threads,
|
|
104
|
+
bool prefetch_index_and_filter_in_cache,
|
|
105
|
+
bool is_initial_load,
|
|
106
|
+
const MutableCFOptions& mutable_cf_options,
|
|
107
|
+
size_t max_file_size_for_l0_meta_pin,
|
|
108
|
+
const ReadOptions& read_options);
|
|
108
109
|
|
|
109
110
|
void ClearSavePoint();
|
|
110
111
|
|
|
@@ -107,6 +107,7 @@ class VersionSet;
|
|
|
107
107
|
|
|
108
108
|
constexpr uint64_t kFileNumberMask = 0x3FFFFFFFFFFFFFFF;
|
|
109
109
|
constexpr uint64_t kUnknownOldestAncesterTime = 0;
|
|
110
|
+
constexpr uint64_t kUnknownNewestKeyTime = 0;
|
|
110
111
|
constexpr uint64_t kUnknownFileCreationTime = 0;
|
|
111
112
|
constexpr uint64_t kUnknownEpochNumber = 0;
|
|
112
113
|
// If `Options::allow_ingest_behind` is true, this epoch number
|
|
@@ -333,6 +334,27 @@ struct FileMetaData {
|
|
|
333
334
|
return kUnknownFileCreationTime;
|
|
334
335
|
}
|
|
335
336
|
|
|
337
|
+
// Tries to get the newest key time from the current file
|
|
338
|
+
// Falls back on oldest ancestor time of previous (newer) file
|
|
339
|
+
uint64_t TryGetNewestKeyTime(FileMetaData* prev_file = nullptr) {
|
|
340
|
+
if (fd.table_reader != nullptr &&
|
|
341
|
+
fd.table_reader->GetTableProperties() != nullptr) {
|
|
342
|
+
uint64_t newest_key_time =
|
|
343
|
+
fd.table_reader->GetTableProperties()->newest_key_time;
|
|
344
|
+
if (newest_key_time != kUnknownNewestKeyTime) {
|
|
345
|
+
return newest_key_time;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (prev_file != nullptr) {
|
|
349
|
+
uint64_t prev_oldest_ancestor_time =
|
|
350
|
+
prev_file->TryGetOldestAncesterTime();
|
|
351
|
+
if (prev_oldest_ancestor_time != kUnknownOldestAncesterTime) {
|
|
352
|
+
return prev_oldest_ancestor_time;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return kUnknownNewestKeyTime;
|
|
356
|
+
}
|
|
357
|
+
|
|
336
358
|
// WARNING: manual update to this function is needed
|
|
337
359
|
// whenever a new string property is added to FileMetaData
|
|
338
360
|
// to reduce approximation error.
|
|
@@ -350,6 +372,14 @@ struct FileMetaData {
|
|
|
350
372
|
file_checksum_func_name.size();
|
|
351
373
|
return usage;
|
|
352
374
|
}
|
|
375
|
+
|
|
376
|
+
// Returns whether this file is one with just one range tombstone. These type
|
|
377
|
+
// of file should always be marked for compaction.
|
|
378
|
+
bool FileIsStandAloneRangeTombstone() const {
|
|
379
|
+
bool res = num_range_deletions == 1 && num_entries == num_range_deletions;
|
|
380
|
+
assert(!res || fd.smallest_seqno == fd.largest_seqno);
|
|
381
|
+
return res;
|
|
382
|
+
}
|
|
353
383
|
};
|
|
354
384
|
|
|
355
385
|
// A compressed copy of file meta data that just contain minimum data needed
|
|
@@ -545,9 +545,8 @@ Status VersionEditHandler::LoadTables(ColumnFamilyData* cfd,
|
|
|
545
545
|
Status s = builder->LoadTableHandlers(
|
|
546
546
|
cfd->internal_stats(),
|
|
547
547
|
version_set_->db_options_->max_file_opening_threads,
|
|
548
|
-
prefetch_index_and_filter_in_cache, is_initial_load,
|
|
549
|
-
|
|
550
|
-
read_options_, moptions->block_protection_bytes_per_key);
|
|
548
|
+
prefetch_index_and_filter_in_cache, is_initial_load, *moptions,
|
|
549
|
+
MaxFileSizeForL0MetaPin(*moptions), read_options_);
|
|
551
550
|
if ((s.IsPathNotFound() || s.IsCorruption()) && no_error_if_files_missing_) {
|
|
552
551
|
s = Status::OK();
|
|
553
552
|
}
|
|
@@ -870,8 +869,7 @@ Status VersionEditHandlerPointInTime::MaybeCreateVersionBeforeApplyEdit(
|
|
|
870
869
|
s = builder->LoadSavePointTableHandlers(
|
|
871
870
|
cfd->internal_stats(),
|
|
872
871
|
version_set_->db_options_->max_file_opening_threads, false, true,
|
|
873
|
-
cf_opts_ptr
|
|
874
|
-
read_options_, cf_opts_ptr->block_protection_bytes_per_key);
|
|
872
|
+
*cf_opts_ptr, MaxFileSizeForL0MetaPin(*cf_opts_ptr), read_options_);
|
|
875
873
|
if (!s.ok()) {
|
|
876
874
|
delete version;
|
|
877
875
|
if (s.IsCorruption()) {
|