@nxtedition/rocksdb 8.1.4 → 8.1.6
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/deps/rocksdb/rocksdb/CMakeLists.txt +21 -0
- package/deps/rocksdb/rocksdb/Makefile +15 -3
- package/deps/rocksdb/rocksdb/TARGETS +6 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +32 -35
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +0 -30
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +0 -83
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +13 -14
- package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +40 -0
- package/deps/rocksdb/rocksdb/cache/cache_helpers.h +14 -20
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +8 -9
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +5 -4
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +124 -156
- package/deps/rocksdb/rocksdb/cache/charged_cache.cc +10 -26
- package/deps/rocksdb/rocksdb/cache/charged_cache.h +11 -16
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +35 -32
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +19 -21
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +42 -30
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +9 -8
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +91 -143
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +54 -60
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +37 -63
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +120 -106
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +14 -5
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +16 -31
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +339 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.cc +0 -48
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +18 -15
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +5 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +7 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +6 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +2 -7
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +19 -47
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +13 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +15 -22
- package/deps/rocksdb/rocksdb/db/builder.cc +24 -10
- package/deps/rocksdb/rocksdb/db/builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/c.cc +15 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +3 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +11 -6
- package/deps/rocksdb/rocksdb/db/column_family.h +20 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +31 -34
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +21 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +4 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +9 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +275 -82
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +7 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -18
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +17 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +19 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +5 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +22 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +5 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +81 -52
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +5 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +5 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +8 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +266 -138
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +86 -1
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +98 -9
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +28 -28
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1022 -123
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +65 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +32 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +32 -24
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +199 -77
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +8 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +43 -23
- package/deps/rocksdb/rocksdb/db/db_iter.cc +8 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +42 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +155 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +12 -12
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +230 -2
- package/deps/rocksdb/rocksdb/db/db_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_test2.cc +233 -8
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +11 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +39 -24
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +129 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +28 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +21 -0
- package/deps/rocksdb/rocksdb/db/dbformat.cc +25 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +2 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +3 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +92 -13
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +38 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +14 -110
- package/deps/rocksdb/rocksdb/db/flush_job.cc +12 -10
- package/deps/rocksdb/rocksdb/db/flush_job.h +3 -2
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +29 -29
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +56 -53
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +11 -11
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -2
- package/deps/rocksdb/rocksdb/db/log_reader.cc +8 -6
- package/deps/rocksdb/rocksdb/db/log_test.cc +35 -2
- package/deps/rocksdb/rocksdb/db/memtable.cc +31 -6
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +47 -29
- package/deps/rocksdb/rocksdb/db/merge_helper.h +14 -6
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +65 -22
- package/deps/rocksdb/rocksdb/db/repair_test.cc +54 -0
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +26 -26
- package/deps/rocksdb/rocksdb/db/table_cache.cc +41 -91
- package/deps/rocksdb/rocksdb/db/table_cache.h +17 -19
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -9
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +3 -1
- package/deps/rocksdb/rocksdb/db/version_builder.cc +102 -52
- package/deps/rocksdb/rocksdb/db/version_builder.h +20 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +218 -93
- package/deps/rocksdb/rocksdb/db/version_edit.cc +27 -1
- package/deps/rocksdb/rocksdb/db/version_edit.h +34 -9
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +13 -6
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +17 -6
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +19 -17
- package/deps/rocksdb/rocksdb/db/version_set.cc +160 -28
- package/deps/rocksdb/rocksdb/db/version_set.h +34 -4
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -1
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +65 -31
- package/deps/rocksdb/rocksdb/db/write_batch.cc +4 -1
- package/deps/rocksdb/rocksdb/db/write_thread.cc +5 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +31 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +2 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +8 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +11 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +16 -15
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +13 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +286 -217
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +137 -135
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +21 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +9 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +8 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +69 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +1 -1
- package/deps/rocksdb/rocksdb/memory/arena.cc +23 -87
- package/deps/rocksdb/rocksdb/memory/arena.h +25 -31
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +90 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator.h +9 -0
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +26 -26
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +4 -3
- package/deps/rocksdb/rocksdb/port/mmap.cc +98 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +70 -0
- package/deps/rocksdb/rocksdb/port/port_posix.h +2 -0
- package/{prebuilds → deps/rocksdb/rocksdb/prebuilds}/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/src.mk +3 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/block.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +25 -67
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +18 -13
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +159 -225
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +31 -50
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +52 -20
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +96 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +132 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +28 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -5
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +1 -4
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +6 -7
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +6 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +19 -18
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +9 -5
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +2 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/format.cc +24 -20
- package/deps/rocksdb/rocksdb/table/format.h +6 -3
- package/deps/rocksdb/rocksdb/table/get_context.cc +12 -3
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +0 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +69 -35
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +7 -6
- package/deps/rocksdb/rocksdb/test_util/testutil.h +10 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +66 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +9 -2
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +5 -0
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +2 -2
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +1 -1
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +20 -12
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/compression.cc +2 -2
- package/deps/rocksdb/rocksdb/util/compression.h +11 -2
- package/deps/rocksdb/rocksdb/util/status.cc +7 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +1901 -887
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +250 -74
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +199 -4
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +35 -57
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +4 -5
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +39 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +9 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +11 -6
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +6 -5
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +10 -11
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +31 -31
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +111 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +12 -3
- package/package.json +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +0 -182
|
@@ -32,6 +32,9 @@
|
|
|
32
32
|
|
|
33
33
|
namespace ROCKSDB_NAMESPACE {
|
|
34
34
|
|
|
35
|
+
static bool enable_io_uring = true;
|
|
36
|
+
extern "C" bool RocksDbIOUringEnable() { return enable_io_uring; }
|
|
37
|
+
|
|
35
38
|
class DBBasicTest : public DBTestBase {
|
|
36
39
|
public:
|
|
37
40
|
DBBasicTest() : DBTestBase("db_basic_test", /*env_do_fsync=*/false) {}
|
|
@@ -2162,6 +2165,7 @@ class DBMultiGetAsyncIOTest : public DBBasicTest,
|
|
|
2162
2165
|
options_.disable_auto_compactions = true;
|
|
2163
2166
|
options_.statistics = statistics_;
|
|
2164
2167
|
options_.table_factory.reset(NewBlockBasedTableFactory(bbto));
|
|
2168
|
+
options_.env = Env::Default();
|
|
2165
2169
|
Reopen(options_);
|
|
2166
2170
|
int num_keys = 0;
|
|
2167
2171
|
|
|
@@ -2228,6 +2232,20 @@ class DBMultiGetAsyncIOTest : public DBBasicTest,
|
|
|
2228
2232
|
const std::shared_ptr<Statistics>& statistics() { return statistics_; }
|
|
2229
2233
|
|
|
2230
2234
|
protected:
|
|
2235
|
+
void PrepareDBForTest() {
|
|
2236
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2237
|
+
Reopen(options_);
|
|
2238
|
+
#else // ROCKSDB_IOURING_PRESENT
|
|
2239
|
+
// Warm up the block cache so we don't need to use the IO uring
|
|
2240
|
+
Iterator* iter = dbfull()->NewIterator(ReadOptions());
|
|
2241
|
+
for (iter->SeekToFirst(); iter->Valid() && iter->status().ok();
|
|
2242
|
+
iter->Next())
|
|
2243
|
+
;
|
|
2244
|
+
EXPECT_OK(iter->status());
|
|
2245
|
+
delete iter;
|
|
2246
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2231
2249
|
void ReopenDB() { Reopen(options_); }
|
|
2232
2250
|
|
|
2233
2251
|
private:
|
|
@@ -2242,6 +2260,8 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL0) {
|
|
|
2242
2260
|
std::vector<PinnableSlice> values(key_strs.size());
|
|
2243
2261
|
std::vector<Status> statuses(key_strs.size());
|
|
2244
2262
|
|
|
2263
|
+
PrepareDBForTest();
|
|
2264
|
+
|
|
2245
2265
|
ReadOptions ro;
|
|
2246
2266
|
ro.async_io = true;
|
|
2247
2267
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2260,6 +2280,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL0) {
|
|
|
2260
2280
|
statistics()->histogramData(MULTIGET_IO_BATCH_SIZE, &multiget_io_batch_size);
|
|
2261
2281
|
|
|
2262
2282
|
// With async IO, lookups will happen in parallel for each key
|
|
2283
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2263
2284
|
if (GetParam()) {
|
|
2264
2285
|
ASSERT_EQ(multiget_io_batch_size.count, 1);
|
|
2265
2286
|
ASSERT_EQ(multiget_io_batch_size.max, 3);
|
|
@@ -2269,6 +2290,11 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL0) {
|
|
|
2269
2290
|
// L0 file
|
|
2270
2291
|
ASSERT_EQ(multiget_io_batch_size.count, 3);
|
|
2271
2292
|
}
|
|
2293
|
+
#else // ROCKSDB_IOURING_PRESENT
|
|
2294
|
+
if (GetParam()) {
|
|
2295
|
+
ASSERT_EQ(statistics()->getTickerCount(MULTIGET_COROUTINE_COUNT), 3);
|
|
2296
|
+
}
|
|
2297
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2272
2298
|
}
|
|
2273
2299
|
|
|
2274
2300
|
TEST_P(DBMultiGetAsyncIOTest, GetFromL1) {
|
|
@@ -2286,6 +2312,8 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1) {
|
|
|
2286
2312
|
values.resize(keys.size());
|
|
2287
2313
|
statuses.resize(keys.size());
|
|
2288
2314
|
|
|
2315
|
+
PrepareDBForTest();
|
|
2316
|
+
|
|
2289
2317
|
ReadOptions ro;
|
|
2290
2318
|
ro.async_io = true;
|
|
2291
2319
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2299,6 +2327,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1) {
|
|
|
2299
2327
|
ASSERT_EQ(values[1], "val_l1_" + std::to_string(54));
|
|
2300
2328
|
ASSERT_EQ(values[2], "val_l1_" + std::to_string(102));
|
|
2301
2329
|
|
|
2330
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2302
2331
|
HistogramData multiget_io_batch_size;
|
|
2303
2332
|
|
|
2304
2333
|
statistics()->histogramData(MULTIGET_IO_BATCH_SIZE, &multiget_io_batch_size);
|
|
@@ -2306,9 +2335,11 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1) {
|
|
|
2306
2335
|
// A batch of 3 async IOs is expected, one for each overlapping file in L1
|
|
2307
2336
|
ASSERT_EQ(multiget_io_batch_size.count, 1);
|
|
2308
2337
|
ASSERT_EQ(multiget_io_batch_size.max, 3);
|
|
2338
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2309
2339
|
ASSERT_EQ(statistics()->getTickerCount(MULTIGET_COROUTINE_COUNT), 3);
|
|
2310
2340
|
}
|
|
2311
2341
|
|
|
2342
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2312
2343
|
TEST_P(DBMultiGetAsyncIOTest, GetFromL1Error) {
|
|
2313
2344
|
std::vector<std::string> key_strs;
|
|
2314
2345
|
std::vector<Slice> keys;
|
|
@@ -2324,9 +2355,9 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1Error) {
|
|
|
2324
2355
|
values.resize(keys.size());
|
|
2325
2356
|
statuses.resize(keys.size());
|
|
2326
2357
|
|
|
2358
|
+
int count = 0;
|
|
2327
2359
|
SyncPoint::GetInstance()->SetCallBack(
|
|
2328
2360
|
"TableCache::GetTableReader:BeforeOpenFile", [&](void* status) {
|
|
2329
|
-
static int count = 0;
|
|
2330
2361
|
count++;
|
|
2331
2362
|
// Fail the last table reader open, which is the 6th SST file
|
|
2332
2363
|
// since 3 overlapping L0 files + 3 L1 files containing the keys
|
|
@@ -2349,7 +2380,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1Error) {
|
|
|
2349
2380
|
});
|
|
2350
2381
|
SyncPoint::GetInstance()->EnableProcessing();
|
|
2351
2382
|
|
|
2352
|
-
|
|
2383
|
+
PrepareDBForTest();
|
|
2353
2384
|
|
|
2354
2385
|
ReadOptions ro;
|
|
2355
2386
|
ro.async_io = true;
|
|
@@ -2371,6 +2402,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1Error) {
|
|
|
2371
2402
|
ASSERT_EQ(multiget_io_batch_size.max, 2);
|
|
2372
2403
|
ASSERT_EQ(statistics()->getTickerCount(MULTIGET_COROUTINE_COUNT), 2);
|
|
2373
2404
|
}
|
|
2405
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2374
2406
|
|
|
2375
2407
|
TEST_P(DBMultiGetAsyncIOTest, LastKeyInFile) {
|
|
2376
2408
|
std::vector<std::string> key_strs;
|
|
@@ -2388,6 +2420,8 @@ TEST_P(DBMultiGetAsyncIOTest, LastKeyInFile) {
|
|
|
2388
2420
|
values.resize(keys.size());
|
|
2389
2421
|
statuses.resize(keys.size());
|
|
2390
2422
|
|
|
2423
|
+
PrepareDBForTest();
|
|
2424
|
+
|
|
2391
2425
|
ReadOptions ro;
|
|
2392
2426
|
ro.async_io = true;
|
|
2393
2427
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2401,6 +2435,7 @@ TEST_P(DBMultiGetAsyncIOTest, LastKeyInFile) {
|
|
|
2401
2435
|
ASSERT_EQ(values[1], "val_l1_" + std::to_string(54));
|
|
2402
2436
|
ASSERT_EQ(values[2], "val_l1_" + std::to_string(102));
|
|
2403
2437
|
|
|
2438
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2404
2439
|
HistogramData multiget_io_batch_size;
|
|
2405
2440
|
|
|
2406
2441
|
statistics()->histogramData(MULTIGET_IO_BATCH_SIZE, &multiget_io_batch_size);
|
|
@@ -2411,6 +2446,7 @@ TEST_P(DBMultiGetAsyncIOTest, LastKeyInFile) {
|
|
|
2411
2446
|
// will lookup 2 files in parallel and issue 2 async reads
|
|
2412
2447
|
ASSERT_EQ(multiget_io_batch_size.count, 2);
|
|
2413
2448
|
ASSERT_EQ(multiget_io_batch_size.max, 2);
|
|
2449
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2414
2450
|
}
|
|
2415
2451
|
|
|
2416
2452
|
TEST_P(DBMultiGetAsyncIOTest, GetFromL1AndL2) {
|
|
@@ -2429,6 +2465,8 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1AndL2) {
|
|
|
2429
2465
|
values.resize(keys.size());
|
|
2430
2466
|
statuses.resize(keys.size());
|
|
2431
2467
|
|
|
2468
|
+
PrepareDBForTest();
|
|
2469
|
+
|
|
2432
2470
|
ReadOptions ro;
|
|
2433
2471
|
ro.async_io = true;
|
|
2434
2472
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2442,6 +2480,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1AndL2) {
|
|
|
2442
2480
|
ASSERT_EQ(values[1], "val_l2_" + std::to_string(56));
|
|
2443
2481
|
ASSERT_EQ(values[2], "val_l1_" + std::to_string(102));
|
|
2444
2482
|
|
|
2483
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2445
2484
|
HistogramData multiget_io_batch_size;
|
|
2446
2485
|
|
|
2447
2486
|
statistics()->histogramData(MULTIGET_IO_BATCH_SIZE, &multiget_io_batch_size);
|
|
@@ -2451,6 +2490,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1AndL2) {
|
|
|
2451
2490
|
// Otherwise, the L2 lookup will happen after L1.
|
|
2452
2491
|
ASSERT_EQ(multiget_io_batch_size.count, GetParam() ? 1 : 2);
|
|
2453
2492
|
ASSERT_EQ(multiget_io_batch_size.max, GetParam() ? 3 : 2);
|
|
2493
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2454
2494
|
}
|
|
2455
2495
|
|
|
2456
2496
|
TEST_P(DBMultiGetAsyncIOTest, GetFromL2WithRangeOverlapL0L1) {
|
|
@@ -2467,6 +2507,8 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL2WithRangeOverlapL0L1) {
|
|
|
2467
2507
|
values.resize(keys.size());
|
|
2468
2508
|
statuses.resize(keys.size());
|
|
2469
2509
|
|
|
2510
|
+
PrepareDBForTest();
|
|
2511
|
+
|
|
2470
2512
|
ReadOptions ro;
|
|
2471
2513
|
ro.async_io = true;
|
|
2472
2514
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2482,6 +2524,7 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL2WithRangeOverlapL0L1) {
|
|
|
2482
2524
|
ASSERT_EQ(statistics()->getTickerCount(MULTIGET_COROUTINE_COUNT), 2);
|
|
2483
2525
|
}
|
|
2484
2526
|
|
|
2527
|
+
#ifdef ROCKSDB_IOURING_PRESENT
|
|
2485
2528
|
TEST_P(DBMultiGetAsyncIOTest, GetFromL2WithRangeDelInL1) {
|
|
2486
2529
|
std::vector<std::string> key_strs;
|
|
2487
2530
|
std::vector<Slice> keys;
|
|
@@ -2496,6 +2539,8 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL2WithRangeDelInL1) {
|
|
|
2496
2539
|
values.resize(keys.size());
|
|
2497
2540
|
statuses.resize(keys.size());
|
|
2498
2541
|
|
|
2542
|
+
PrepareDBForTest();
|
|
2543
|
+
|
|
2499
2544
|
ReadOptions ro;
|
|
2500
2545
|
ro.async_io = true;
|
|
2501
2546
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2525,6 +2570,8 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1AndL2WithRangeDelInL1) {
|
|
|
2525
2570
|
values.resize(keys.size());
|
|
2526
2571
|
statuses.resize(keys.size());
|
|
2527
2572
|
|
|
2573
|
+
PrepareDBForTest();
|
|
2574
|
+
|
|
2528
2575
|
ReadOptions ro;
|
|
2529
2576
|
ro.async_io = true;
|
|
2530
2577
|
ro.optimize_multiget_for_io = GetParam();
|
|
@@ -2539,6 +2586,45 @@ TEST_P(DBMultiGetAsyncIOTest, GetFromL1AndL2WithRangeDelInL1) {
|
|
|
2539
2586
|
// Bloom filters in L0/L1 will avoid the coroutine calls in those levels
|
|
2540
2587
|
ASSERT_EQ(statistics()->getTickerCount(MULTIGET_COROUTINE_COUNT), 3);
|
|
2541
2588
|
}
|
|
2589
|
+
#endif // ROCKSDB_IOURING_PRESENT
|
|
2590
|
+
|
|
2591
|
+
TEST_P(DBMultiGetAsyncIOTest, GetNoIOUring) {
|
|
2592
|
+
std::vector<std::string> key_strs;
|
|
2593
|
+
std::vector<Slice> keys;
|
|
2594
|
+
std::vector<PinnableSlice> values;
|
|
2595
|
+
std::vector<Status> statuses;
|
|
2596
|
+
|
|
2597
|
+
key_strs.push_back(Key(33));
|
|
2598
|
+
key_strs.push_back(Key(54));
|
|
2599
|
+
key_strs.push_back(Key(102));
|
|
2600
|
+
keys.push_back(key_strs[0]);
|
|
2601
|
+
keys.push_back(key_strs[1]);
|
|
2602
|
+
keys.push_back(key_strs[2]);
|
|
2603
|
+
values.resize(keys.size());
|
|
2604
|
+
statuses.resize(keys.size());
|
|
2605
|
+
|
|
2606
|
+
enable_io_uring = false;
|
|
2607
|
+
ReopenDB();
|
|
2608
|
+
|
|
2609
|
+
ReadOptions ro;
|
|
2610
|
+
ro.async_io = true;
|
|
2611
|
+
ro.optimize_multiget_for_io = GetParam();
|
|
2612
|
+
dbfull()->MultiGet(ro, dbfull()->DefaultColumnFamily(), keys.size(),
|
|
2613
|
+
keys.data(), values.data(), statuses.data());
|
|
2614
|
+
ASSERT_EQ(values.size(), 3);
|
|
2615
|
+
ASSERT_EQ(statuses[0], Status::NotSupported());
|
|
2616
|
+
ASSERT_EQ(statuses[1], Status::NotSupported());
|
|
2617
|
+
ASSERT_EQ(statuses[2], Status::NotSupported());
|
|
2618
|
+
|
|
2619
|
+
HistogramData multiget_io_batch_size;
|
|
2620
|
+
|
|
2621
|
+
statistics()->histogramData(MULTIGET_IO_BATCH_SIZE, &multiget_io_batch_size);
|
|
2622
|
+
|
|
2623
|
+
// A batch of 3 async IOs is expected, one for each overlapping file in L1
|
|
2624
|
+
ASSERT_EQ(multiget_io_batch_size.count, 1);
|
|
2625
|
+
ASSERT_EQ(multiget_io_batch_size.max, 3);
|
|
2626
|
+
ASSERT_EQ(statistics()->getTickerCount(MULTIGET_COROUTINE_COUNT), 3);
|
|
2627
|
+
}
|
|
2542
2628
|
|
|
2543
2629
|
INSTANTIATE_TEST_CASE_P(DBMultiGetAsyncIOTest, DBMultiGetAsyncIOTest,
|
|
2544
2630
|
testing::Bool());
|
|
@@ -3537,24 +3623,27 @@ class DBBasicTestMultiGet : public DBTestBase {
|
|
|
3537
3623
|
|
|
3538
3624
|
const char* Name() const override { return "MyBlockCache"; }
|
|
3539
3625
|
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
void (*deleter)(const Slice& key, void* value),
|
|
3626
|
+
Status Insert(const Slice& key, Cache::ObjectPtr value,
|
|
3627
|
+
const CacheItemHelper* helper, size_t charge,
|
|
3543
3628
|
Handle** handle = nullptr,
|
|
3544
3629
|
Priority priority = Priority::LOW) override {
|
|
3545
3630
|
num_inserts_++;
|
|
3546
|
-
return target_->Insert(key, value,
|
|
3631
|
+
return target_->Insert(key, value, helper, charge, handle, priority);
|
|
3547
3632
|
}
|
|
3548
3633
|
|
|
3549
|
-
|
|
3550
|
-
|
|
3634
|
+
Handle* Lookup(const Slice& key, const CacheItemHelper* helper,
|
|
3635
|
+
CreateContext* create_context,
|
|
3636
|
+
Priority priority = Priority::LOW, bool wait = true,
|
|
3637
|
+
Statistics* stats = nullptr) override {
|
|
3551
3638
|
num_lookups_++;
|
|
3552
|
-
Handle* handle =
|
|
3639
|
+
Handle* handle =
|
|
3640
|
+
target_->Lookup(key, helper, create_context, priority, wait, stats);
|
|
3553
3641
|
if (handle != nullptr) {
|
|
3554
3642
|
num_found_++;
|
|
3555
3643
|
}
|
|
3556
3644
|
return handle;
|
|
3557
3645
|
}
|
|
3646
|
+
|
|
3558
3647
|
int num_lookups() { return num_lookups_; }
|
|
3559
3648
|
|
|
3560
3649
|
int num_found() { return num_found_; }
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include "cache/cache_entry_roles.h"
|
|
15
15
|
#include "cache/cache_key.h"
|
|
16
16
|
#include "cache/lru_cache.h"
|
|
17
|
+
#include "cache/typed_cache.h"
|
|
17
18
|
#include "db/column_family.h"
|
|
18
19
|
#include "db/db_impl/db_impl.h"
|
|
19
20
|
#include "db/db_test_util.h"
|
|
@@ -365,9 +366,7 @@ class PersistentCacheFromCache : public PersistentCache {
|
|
|
365
366
|
}
|
|
366
367
|
std::unique_ptr<char[]> copy{new char[size]};
|
|
367
368
|
std::copy_n(data, size, copy.get());
|
|
368
|
-
Status s = cache_
|
|
369
|
-
key, copy.get(), size,
|
|
370
|
-
GetCacheEntryDeleterForRole<char[], CacheEntryRole::kMisc>());
|
|
369
|
+
Status s = cache_.Insert(key, copy.get(), size);
|
|
371
370
|
if (s.ok()) {
|
|
372
371
|
copy.release();
|
|
373
372
|
}
|
|
@@ -376,13 +375,13 @@ class PersistentCacheFromCache : public PersistentCache {
|
|
|
376
375
|
|
|
377
376
|
Status Lookup(const Slice& key, std::unique_ptr<char[]>* data,
|
|
378
377
|
size_t* size) override {
|
|
379
|
-
auto handle = cache_
|
|
378
|
+
auto handle = cache_.Lookup(key);
|
|
380
379
|
if (handle) {
|
|
381
|
-
char* ptr =
|
|
382
|
-
*size = cache_->GetCharge(handle);
|
|
380
|
+
char* ptr = cache_.Value(handle);
|
|
381
|
+
*size = cache_.get()->GetCharge(handle);
|
|
383
382
|
data->reset(new char[*size]);
|
|
384
383
|
std::copy_n(ptr, *size, data->get());
|
|
385
|
-
cache_
|
|
384
|
+
cache_.Release(handle);
|
|
386
385
|
return Status::OK();
|
|
387
386
|
} else {
|
|
388
387
|
return Status::NotFound();
|
|
@@ -395,10 +394,10 @@ class PersistentCacheFromCache : public PersistentCache {
|
|
|
395
394
|
|
|
396
395
|
std::string GetPrintableOptions() const override { return ""; }
|
|
397
396
|
|
|
398
|
-
uint64_t NewId() override { return cache_->NewId(); }
|
|
397
|
+
uint64_t NewId() override { return cache_.get()->NewId(); }
|
|
399
398
|
|
|
400
399
|
private:
|
|
401
|
-
|
|
400
|
+
BasicTypedSharedCacheInterface<char[], CacheEntryRole::kMisc> cache_;
|
|
402
401
|
bool read_only_;
|
|
403
402
|
};
|
|
404
403
|
|
|
@@ -406,8 +405,8 @@ class ReadOnlyCacheWrapper : public CacheWrapper {
|
|
|
406
405
|
using CacheWrapper::CacheWrapper;
|
|
407
406
|
|
|
408
407
|
using Cache::Insert;
|
|
409
|
-
Status Insert(const Slice& /*key*/,
|
|
410
|
-
|
|
408
|
+
Status Insert(const Slice& /*key*/, Cache::ObjectPtr /*value*/,
|
|
409
|
+
const CacheItemHelper* /*helper*/, size_t /*charge*/,
|
|
411
410
|
Handle** /*handle*/, Priority /*priority*/) override {
|
|
412
411
|
return Status::NotSupported();
|
|
413
412
|
}
|
|
@@ -827,16 +826,15 @@ class MockCache : public LRUCache {
|
|
|
827
826
|
|
|
828
827
|
using ShardedCache::Insert;
|
|
829
828
|
|
|
830
|
-
Status Insert(const Slice& key,
|
|
831
|
-
const Cache::CacheItemHelper*
|
|
829
|
+
Status Insert(const Slice& key, Cache::ObjectPtr value,
|
|
830
|
+
const Cache::CacheItemHelper* helper, size_t charge,
|
|
832
831
|
Handle** handle, Priority priority) override {
|
|
833
|
-
DeleterFn delete_cb = helper_cb->del_cb;
|
|
834
832
|
if (priority == Priority::LOW) {
|
|
835
833
|
low_pri_insert_count++;
|
|
836
834
|
} else {
|
|
837
835
|
high_pri_insert_count++;
|
|
838
836
|
}
|
|
839
|
-
return LRUCache::Insert(key, value,
|
|
837
|
+
return LRUCache::Insert(key, value, helper, charge, handle, priority);
|
|
840
838
|
}
|
|
841
839
|
};
|
|
842
840
|
|
|
@@ -916,7 +914,10 @@ class LookupLiarCache : public CacheWrapper {
|
|
|
916
914
|
: CacheWrapper(std::move(target)) {}
|
|
917
915
|
|
|
918
916
|
using Cache::Lookup;
|
|
919
|
-
Handle* Lookup(const Slice& key,
|
|
917
|
+
Handle* Lookup(const Slice& key, const CacheItemHelper* helper = nullptr,
|
|
918
|
+
CreateContext* create_context = nullptr,
|
|
919
|
+
Priority priority = Priority::LOW, bool wait = true,
|
|
920
|
+
Statistics* stats = nullptr) override {
|
|
920
921
|
if (nth_lookup_not_found_ == 1) {
|
|
921
922
|
nth_lookup_not_found_ = 0;
|
|
922
923
|
return nullptr;
|
|
@@ -924,7 +925,8 @@ class LookupLiarCache : public CacheWrapper {
|
|
|
924
925
|
if (nth_lookup_not_found_ > 1) {
|
|
925
926
|
--nth_lookup_not_found_;
|
|
926
927
|
}
|
|
927
|
-
return CacheWrapper::Lookup(key,
|
|
928
|
+
return CacheWrapper::Lookup(key, helper, create_context, priority, wait,
|
|
929
|
+
stats);
|
|
928
930
|
}
|
|
929
931
|
|
|
930
932
|
// 1 == next lookup, 2 == after next, etc.
|
|
@@ -1275,12 +1277,11 @@ TEST_F(DBBlockCacheTest, CacheCompressionDict) {
|
|
|
1275
1277
|
}
|
|
1276
1278
|
|
|
1277
1279
|
static void ClearCache(Cache* cache) {
|
|
1278
|
-
auto roles = CopyCacheDeleterRoleMap();
|
|
1279
1280
|
std::deque<std::string> keys;
|
|
1280
1281
|
Cache::ApplyToAllEntriesOptions opts;
|
|
1281
|
-
auto callback = [&](const Slice& key,
|
|
1282
|
-
Cache::
|
|
1283
|
-
if (
|
|
1282
|
+
auto callback = [&](const Slice& key, Cache::ObjectPtr, size_t /*charge*/,
|
|
1283
|
+
const Cache::CacheItemHelper* helper) {
|
|
1284
|
+
if (helper && helper->role == CacheEntryRole::kMisc) {
|
|
1284
1285
|
// Keep the stats collector
|
|
1285
1286
|
return;
|
|
1286
1287
|
}
|
|
@@ -1450,14 +1451,13 @@ TEST_F(DBBlockCacheTest, CacheEntryRoleStats) {
|
|
|
1450
1451
|
ClearCache(cache.get());
|
|
1451
1452
|
Cache::Handle* h = nullptr;
|
|
1452
1453
|
if (strcmp(cache->Name(), "LRUCache") == 0) {
|
|
1453
|
-
ASSERT_OK(cache->Insert("Fill-it-up", nullptr,
|
|
1454
|
-
|
|
1455
|
-
&h, Cache::Priority::HIGH));
|
|
1454
|
+
ASSERT_OK(cache->Insert("Fill-it-up", nullptr, &kNoopCacheItemHelper,
|
|
1455
|
+
capacity + 1, &h, Cache::Priority::HIGH));
|
|
1456
1456
|
} else {
|
|
1457
1457
|
// For ClockCache we use a 16-byte key.
|
|
1458
|
-
ASSERT_OK(cache->Insert("Fill-it-up-xxxxx", nullptr,
|
|
1459
|
-
|
|
1460
|
-
|
|
1458
|
+
ASSERT_OK(cache->Insert("Fill-it-up-xxxxx", nullptr,
|
|
1459
|
+
&kNoopCacheItemHelper, capacity + 1, &h,
|
|
1460
|
+
Cache::Priority::HIGH));
|
|
1461
1461
|
}
|
|
1462
1462
|
ASSERT_GT(cache->GetUsage(), cache->GetCapacity());
|
|
1463
1463
|
expected = {};
|
|
@@ -1548,7 +1548,7 @@ void DummyFillCache(Cache& cache, size_t entry_size,
|
|
|
1548
1548
|
size_t charge = std::min(entry_size, capacity - my_usage);
|
|
1549
1549
|
Cache::Handle* handle;
|
|
1550
1550
|
Status st = cache.Insert(ck.WithOffset(my_usage).AsSlice(), fake_value,
|
|
1551
|
-
|
|
1551
|
+
&kNoopCacheItemHelper, charge, &handle);
|
|
1552
1552
|
ASSERT_OK(st);
|
|
1553
1553
|
handles.emplace_back(&cache, handle);
|
|
1554
1554
|
my_usage += charge;
|
|
@@ -1229,7 +1229,7 @@ TEST_P(ChargeFilterConstructionTestWithParam, Basic) {
|
|
|
1229
1229
|
*
|
|
1230
1230
|
* The test is designed in a way such that the reservation for (p1 - b')
|
|
1231
1231
|
* will trigger at least another dummy entry insertion
|
|
1232
|
-
* (or
|
|
1232
|
+
* (or equivalently to saying, creating another peak).
|
|
1233
1233
|
*
|
|
1234
1234
|
* kStandard128Ribbon + FullFilter +
|
|
1235
1235
|
* detect_filter_construct_corruption
|
|
@@ -2618,8 +2618,7 @@ TEST_F(DBBloomFilterTest, OptimizeFiltersForHits) {
|
|
|
2618
2618
|
BottommostLevelCompaction::kSkip;
|
|
2619
2619
|
compact_options.change_level = true;
|
|
2620
2620
|
compact_options.target_level = 7;
|
|
2621
|
-
|
|
2622
|
-
.IsNotSupported());
|
|
2621
|
+
ASSERT_OK(db_->CompactRange(compact_options, handles_[1], nullptr, nullptr));
|
|
2623
2622
|
|
|
2624
2623
|
ASSERT_EQ(trivial_move, 1);
|
|
2625
2624
|
ASSERT_EQ(non_trivial_move, 0);
|