@nxtedition/rocksdb 8.0.1 → 8.0.3
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 +2 -1
- package/deps/rocksdb/rocksdb/Makefile +2 -2
- package/deps/rocksdb/rocksdb/TARGETS +4 -2
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +8 -29
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +146 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +13 -1
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +20 -146
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +32 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +11 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +11 -9
- package/deps/rocksdb/rocksdb/db/column_family.h +20 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +13 -33
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +27 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +65 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +10 -32
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +28 -47
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +28 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -14
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +8 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +5 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +170 -140
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +5 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +5 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +8 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +8 -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 +72 -5
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +119 -10
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +585 -264
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +46 -18
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +5 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +6 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +1 -1
- 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 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +10 -0
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +250 -2
- package/deps/rocksdb/rocksdb/db/db_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/db_test2.cc +307 -8
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +129 -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 +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +5 -2
- package/deps/rocksdb/rocksdb/db/flush_job.cc +5 -2
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +4 -0
- 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/merge_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/repair.cc +64 -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 +2 -0
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +3 -1
- package/deps/rocksdb/rocksdb/db/version_builder.cc +90 -43
- package/deps/rocksdb/rocksdb/db/version_builder.h +20 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +190 -67
- package/deps/rocksdb/rocksdb/db/version_edit.cc +15 -1
- package/deps/rocksdb/rocksdb/db/version_edit.h +16 -4
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +41 -11
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +27 -12
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +18 -16
- package/deps/rocksdb/rocksdb/db/version_set.cc +212 -35
- package/deps/rocksdb/rocksdb/db/version_set.h +34 -4
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +45 -25
- package/deps/rocksdb/rocksdb/db/write_thread.cc +5 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +0 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +0 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +12 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +6 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +1 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +0 -48
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +196 -171
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +9 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +25 -18
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +27 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +1 -1
- package/deps/rocksdb/rocksdb/logging/logging.h +13 -19
- package/deps/rocksdb/rocksdb/memory/arena.cc +4 -3
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +30 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +3 -1
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +26 -26
- package/deps/rocksdb/rocksdb/src.mk +2 -1
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +142 -0
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +241 -0
- package/deps/rocksdb/rocksdb/table/format.cc +24 -20
- package/deps/rocksdb/rocksdb/table/format.h +5 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +97 -115
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +82 -1
- 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/db_bench_tool.cc +0 -6
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +2 -2
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/status.cc +7 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +5 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +7 -67
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -3
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +59 -0
- package/deps/rocksdb/rocksdb.gyp +2 -1
- 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/cache/fast_lru_cache.cc +0 -580
- package/deps/rocksdb/rocksdb/cache/fast_lru_cache.h +0 -476
|
@@ -77,8 +77,9 @@ class CompactionPickerTestBase : public testing::Test {
|
|
|
77
77
|
void NewVersionStorage(int num_levels, CompactionStyle style) {
|
|
78
78
|
DeleteVersionStorage();
|
|
79
79
|
options_.num_levels = num_levels;
|
|
80
|
-
vstorage_.reset(new VersionStorageInfo(
|
|
81
|
-
|
|
80
|
+
vstorage_.reset(new VersionStorageInfo(
|
|
81
|
+
&icmp_, ucmp_, options_.num_levels, style, nullptr, false,
|
|
82
|
+
EpochNumberRequirement::kMustPresent));
|
|
82
83
|
vstorage_->PrepareForVersionAppend(ioptions_, mutable_cf_options_);
|
|
83
84
|
}
|
|
84
85
|
|
|
@@ -87,7 +88,7 @@ class CompactionPickerTestBase : public testing::Test {
|
|
|
87
88
|
void AddVersionStorage() {
|
|
88
89
|
temp_vstorage_.reset(new VersionStorageInfo(
|
|
89
90
|
&icmp_, ucmp_, options_.num_levels, ioptions_.compaction_style,
|
|
90
|
-
vstorage_.get(), false));
|
|
91
|
+
vstorage_.get(), false, EpochNumberRequirement::kMustPresent));
|
|
91
92
|
}
|
|
92
93
|
|
|
93
94
|
void DeleteVersionStorage() {
|
|
@@ -105,7 +106,8 @@ class CompactionPickerTestBase : public testing::Test {
|
|
|
105
106
|
size_t compensated_file_size = 0, bool marked_for_compact = false,
|
|
106
107
|
Temperature temperature = Temperature::kUnknown,
|
|
107
108
|
uint64_t oldest_ancestor_time = kUnknownOldestAncesterTime,
|
|
108
|
-
Slice ts_of_smallest = Slice(), Slice ts_of_largest = Slice()
|
|
109
|
+
Slice ts_of_smallest = Slice(), Slice ts_of_largest = Slice(),
|
|
110
|
+
uint64_t epoch_number = kUnknownEpochNumber) {
|
|
109
111
|
assert(ts_of_smallest.size() == ucmp_->timestamp_size());
|
|
110
112
|
assert(ts_of_largest.size() == ucmp_->timestamp_size());
|
|
111
113
|
|
|
@@ -145,7 +147,7 @@ class CompactionPickerTestBase : public testing::Test {
|
|
|
145
147
|
file_number, path_id, file_size, smallest_ikey, largest_ikey,
|
|
146
148
|
smallest_seq, largest_seq, marked_for_compact, temperature,
|
|
147
149
|
kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
|
|
148
|
-
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
150
|
+
kUnknownFileCreationTime, epoch_number, kUnknownFileChecksum,
|
|
149
151
|
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
150
152
|
f->compensated_file_size =
|
|
151
153
|
(compensated_file_size != 0) ? compensated_file_size : file_size;
|
|
@@ -218,7 +220,7 @@ TEST_F(CompactionPickerTest, Empty) {
|
|
|
218
220
|
UpdateVersionStorageInfo();
|
|
219
221
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
220
222
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
221
|
-
&log_buffer_
|
|
223
|
+
&log_buffer_));
|
|
222
224
|
ASSERT_TRUE(compaction.get() == nullptr);
|
|
223
225
|
}
|
|
224
226
|
|
|
@@ -230,7 +232,7 @@ TEST_F(CompactionPickerTest, Single) {
|
|
|
230
232
|
|
|
231
233
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
232
234
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
233
|
-
&log_buffer_
|
|
235
|
+
&log_buffer_));
|
|
234
236
|
ASSERT_TRUE(compaction.get() == nullptr);
|
|
235
237
|
}
|
|
236
238
|
|
|
@@ -244,7 +246,7 @@ TEST_F(CompactionPickerTest, Level0Trigger) {
|
|
|
244
246
|
|
|
245
247
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
246
248
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
247
|
-
&log_buffer_
|
|
249
|
+
&log_buffer_));
|
|
248
250
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
249
251
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
250
252
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -258,7 +260,7 @@ TEST_F(CompactionPickerTest, Level1Trigger) {
|
|
|
258
260
|
|
|
259
261
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
260
262
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
261
|
-
&log_buffer_
|
|
263
|
+
&log_buffer_));
|
|
262
264
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
263
265
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
264
266
|
ASSERT_EQ(66U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -277,7 +279,7 @@ TEST_F(CompactionPickerTest, Level1Trigger2) {
|
|
|
277
279
|
|
|
278
280
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
279
281
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
280
|
-
&log_buffer_
|
|
282
|
+
&log_buffer_));
|
|
281
283
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
282
284
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
283
285
|
ASSERT_EQ(2U, compaction->num_input_files(1));
|
|
@@ -309,7 +311,7 @@ TEST_F(CompactionPickerTest, LevelMaxScore) {
|
|
|
309
311
|
|
|
310
312
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
311
313
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
312
|
-
&log_buffer_
|
|
314
|
+
&log_buffer_));
|
|
313
315
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
314
316
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
315
317
|
ASSERT_EQ(7U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -357,7 +359,7 @@ TEST_F(CompactionPickerTest, Level0TriggerDynamic) {
|
|
|
357
359
|
|
|
358
360
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
359
361
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
360
|
-
&log_buffer_
|
|
362
|
+
&log_buffer_));
|
|
361
363
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
362
364
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
363
365
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -382,7 +384,7 @@ TEST_F(CompactionPickerTest, Level0TriggerDynamic2) {
|
|
|
382
384
|
|
|
383
385
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
384
386
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
385
|
-
&log_buffer_
|
|
387
|
+
&log_buffer_));
|
|
386
388
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
387
389
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
388
390
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -408,7 +410,7 @@ TEST_F(CompactionPickerTest, Level0TriggerDynamic3) {
|
|
|
408
410
|
|
|
409
411
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
410
412
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
411
|
-
&log_buffer_
|
|
413
|
+
&log_buffer_));
|
|
412
414
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
413
415
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
414
416
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -438,7 +440,7 @@ TEST_F(CompactionPickerTest, Level0TriggerDynamic4) {
|
|
|
438
440
|
|
|
439
441
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
440
442
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
441
|
-
&log_buffer_
|
|
443
|
+
&log_buffer_));
|
|
442
444
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
443
445
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
444
446
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -471,7 +473,7 @@ TEST_F(CompactionPickerTest, LevelTriggerDynamic4) {
|
|
|
471
473
|
|
|
472
474
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
473
475
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
474
|
-
&log_buffer_
|
|
476
|
+
&log_buffer_));
|
|
475
477
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
476
478
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
477
479
|
ASSERT_EQ(5U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -528,7 +530,7 @@ TEST_F(CompactionPickerTest, CompactionUniversalIngestBehindReservedLevel) {
|
|
|
528
530
|
std::unique_ptr<Compaction> compaction(
|
|
529
531
|
universal_compaction_picker.PickCompaction(
|
|
530
532
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
531
|
-
&log_buffer_
|
|
533
|
+
&log_buffer_));
|
|
532
534
|
|
|
533
535
|
// output level should be the one above the bottom-most
|
|
534
536
|
ASSERT_EQ(1, compaction->output_level());
|
|
@@ -563,7 +565,7 @@ TEST_F(CompactionPickerTest, CannotTrivialMoveUniversal) {
|
|
|
563
565
|
std::unique_ptr<Compaction> compaction(
|
|
564
566
|
universal_compaction_picker.PickCompaction(
|
|
565
567
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
566
|
-
&log_buffer_
|
|
568
|
+
&log_buffer_));
|
|
567
569
|
|
|
568
570
|
ASSERT_TRUE(!compaction->is_trivial_move());
|
|
569
571
|
}
|
|
@@ -590,7 +592,7 @@ TEST_F(CompactionPickerTest, AllowsTrivialMoveUniversal) {
|
|
|
590
592
|
std::unique_ptr<Compaction> compaction(
|
|
591
593
|
universal_compaction_picker.PickCompaction(
|
|
592
594
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
593
|
-
&log_buffer_
|
|
595
|
+
&log_buffer_));
|
|
594
596
|
|
|
595
597
|
ASSERT_TRUE(compaction->is_trivial_move());
|
|
596
598
|
}
|
|
@@ -619,7 +621,7 @@ TEST_F(CompactionPickerTest, UniversalPeriodicCompaction1) {
|
|
|
619
621
|
std::unique_ptr<Compaction> compaction(
|
|
620
622
|
universal_compaction_picker.PickCompaction(
|
|
621
623
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
622
|
-
&log_buffer_
|
|
624
|
+
&log_buffer_));
|
|
623
625
|
|
|
624
626
|
ASSERT_TRUE(compaction);
|
|
625
627
|
ASSERT_EQ(4, compaction->output_level());
|
|
@@ -650,7 +652,7 @@ TEST_F(CompactionPickerTest, UniversalPeriodicCompaction2) {
|
|
|
650
652
|
std::unique_ptr<Compaction> compaction(
|
|
651
653
|
universal_compaction_picker.PickCompaction(
|
|
652
654
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
653
|
-
&log_buffer_
|
|
655
|
+
&log_buffer_));
|
|
654
656
|
|
|
655
657
|
ASSERT_FALSE(compaction);
|
|
656
658
|
}
|
|
@@ -677,7 +679,7 @@ TEST_F(CompactionPickerTest, UniversalPeriodicCompaction3) {
|
|
|
677
679
|
std::unique_ptr<Compaction> compaction(
|
|
678
680
|
universal_compaction_picker.PickCompaction(
|
|
679
681
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
680
|
-
&log_buffer_
|
|
682
|
+
&log_buffer_));
|
|
681
683
|
|
|
682
684
|
ASSERT_FALSE(compaction);
|
|
683
685
|
}
|
|
@@ -708,7 +710,7 @@ TEST_F(CompactionPickerTest, UniversalPeriodicCompaction4) {
|
|
|
708
710
|
std::unique_ptr<Compaction> compaction(
|
|
709
711
|
universal_compaction_picker.PickCompaction(
|
|
710
712
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
711
|
-
&log_buffer_
|
|
713
|
+
&log_buffer_));
|
|
712
714
|
ASSERT_TRUE(!compaction ||
|
|
713
715
|
compaction->start_level() != compaction->output_level());
|
|
714
716
|
}
|
|
@@ -729,7 +731,7 @@ TEST_F(CompactionPickerTest, UniversalPeriodicCompaction5) {
|
|
|
729
731
|
std::unique_ptr<Compaction> compaction(
|
|
730
732
|
universal_compaction_picker.PickCompaction(
|
|
731
733
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
732
|
-
&log_buffer_
|
|
734
|
+
&log_buffer_));
|
|
733
735
|
ASSERT_TRUE(compaction);
|
|
734
736
|
ASSERT_EQ(0, compaction->start_level());
|
|
735
737
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -754,7 +756,7 @@ TEST_F(CompactionPickerTest, UniversalPeriodicCompaction6) {
|
|
|
754
756
|
std::unique_ptr<Compaction> compaction(
|
|
755
757
|
universal_compaction_picker.PickCompaction(
|
|
756
758
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
757
|
-
&log_buffer_
|
|
759
|
+
&log_buffer_));
|
|
758
760
|
ASSERT_TRUE(compaction);
|
|
759
761
|
ASSERT_EQ(4, compaction->start_level());
|
|
760
762
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
@@ -792,7 +794,7 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace1) {
|
|
|
792
794
|
std::unique_ptr<Compaction> compaction(
|
|
793
795
|
universal_compaction_picker.PickCompaction(
|
|
794
796
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
795
|
-
&log_buffer_
|
|
797
|
+
&log_buffer_));
|
|
796
798
|
ASSERT_TRUE(compaction);
|
|
797
799
|
ASSERT_EQ(4, compaction->output_level());
|
|
798
800
|
ASSERT_EQ(3, compaction->start_level());
|
|
@@ -834,7 +836,7 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace2) {
|
|
|
834
836
|
std::unique_ptr<Compaction> compaction(
|
|
835
837
|
universal_compaction_picker.PickCompaction(
|
|
836
838
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
837
|
-
&log_buffer_
|
|
839
|
+
&log_buffer_));
|
|
838
840
|
ASSERT_TRUE(compaction);
|
|
839
841
|
ASSERT_EQ(4, compaction->output_level());
|
|
840
842
|
ASSERT_EQ(2, compaction->start_level());
|
|
@@ -876,7 +878,7 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace3) {
|
|
|
876
878
|
std::unique_ptr<Compaction> compaction(
|
|
877
879
|
universal_compaction_picker.PickCompaction(
|
|
878
880
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
879
|
-
&log_buffer_
|
|
881
|
+
&log_buffer_));
|
|
880
882
|
ASSERT_TRUE(compaction);
|
|
881
883
|
ASSERT_EQ(4, compaction->output_level());
|
|
882
884
|
ASSERT_EQ(2, compaction->start_level());
|
|
@@ -924,7 +926,7 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace4) {
|
|
|
924
926
|
std::unique_ptr<Compaction> compaction(
|
|
925
927
|
universal_compaction_picker.PickCompaction(
|
|
926
928
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
927
|
-
&log_buffer_
|
|
929
|
+
&log_buffer_));
|
|
928
930
|
ASSERT_TRUE(compaction);
|
|
929
931
|
ASSERT_EQ(4, compaction->output_level());
|
|
930
932
|
ASSERT_EQ(3, compaction->start_level());
|
|
@@ -968,7 +970,7 @@ TEST_F(CompactionPickerTest, UniversalIncrementalSpace5) {
|
|
|
968
970
|
std::unique_ptr<Compaction> compaction(
|
|
969
971
|
universal_compaction_picker.PickCompaction(
|
|
970
972
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
971
|
-
&log_buffer_
|
|
973
|
+
&log_buffer_));
|
|
972
974
|
ASSERT_TRUE(compaction);
|
|
973
975
|
ASSERT_EQ(4, compaction->output_level());
|
|
974
976
|
ASSERT_EQ(3, compaction->start_level());
|
|
@@ -1035,7 +1037,7 @@ TEST_F(CompactionPickerTest, FIFOToWarm1) {
|
|
|
1035
1037
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1036
1038
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1037
1039
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1038
|
-
&log_buffer_
|
|
1040
|
+
&log_buffer_));
|
|
1039
1041
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1040
1042
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1041
1043
|
ASSERT_EQ(3U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -1073,7 +1075,7 @@ TEST_F(CompactionPickerTest, FIFOToWarm2) {
|
|
|
1073
1075
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1074
1076
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1075
1077
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1076
|
-
&log_buffer_
|
|
1078
|
+
&log_buffer_));
|
|
1077
1079
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1078
1080
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1079
1081
|
ASSERT_EQ(2U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -1114,7 +1116,7 @@ TEST_F(CompactionPickerTest, FIFOToWarmMaxSize) {
|
|
|
1114
1116
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1115
1117
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1116
1118
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1117
|
-
&log_buffer_
|
|
1119
|
+
&log_buffer_));
|
|
1118
1120
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1119
1121
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1120
1122
|
ASSERT_EQ(1U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -1155,7 +1157,7 @@ TEST_F(CompactionPickerTest, FIFOToWarmWithExistingWarm) {
|
|
|
1155
1157
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1156
1158
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1157
1159
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1158
|
-
&log_buffer_
|
|
1160
|
+
&log_buffer_));
|
|
1159
1161
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1160
1162
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
1161
1163
|
ASSERT_EQ(2U, compaction->input(0, 0)->fd.GetNumber());
|
|
@@ -1197,7 +1199,7 @@ TEST_F(CompactionPickerTest, FIFOToWarmWithOngoing) {
|
|
|
1197
1199
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1198
1200
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1199
1201
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1200
|
-
&log_buffer_
|
|
1202
|
+
&log_buffer_));
|
|
1201
1203
|
// Stop if a file is being compacted
|
|
1202
1204
|
ASSERT_TRUE(compaction.get() == nullptr);
|
|
1203
1205
|
}
|
|
@@ -1236,7 +1238,7 @@ TEST_F(CompactionPickerTest, FIFOToWarmWithHotBetweenWarms) {
|
|
|
1236
1238
|
ASSERT_EQ(fifo_compaction_picker.NeedsCompaction(vstorage_.get()), true);
|
|
1237
1239
|
std::unique_ptr<Compaction> compaction(fifo_compaction_picker.PickCompaction(
|
|
1238
1240
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1239
|
-
&log_buffer_
|
|
1241
|
+
&log_buffer_));
|
|
1240
1242
|
// Stop if a file is being compacted
|
|
1241
1243
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1242
1244
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -1267,7 +1269,7 @@ TEST_F(CompactionPickerTest, CompactionPriMinOverlapping1) {
|
|
|
1267
1269
|
|
|
1268
1270
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1269
1271
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1270
|
-
&log_buffer_
|
|
1272
|
+
&log_buffer_));
|
|
1271
1273
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1272
1274
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1273
1275
|
// Pick file 8 because it overlaps with 0 files on level 3.
|
|
@@ -1300,7 +1302,7 @@ TEST_F(CompactionPickerTest, CompactionPriMinOverlapping2) {
|
|
|
1300
1302
|
|
|
1301
1303
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1302
1304
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1303
|
-
&log_buffer_
|
|
1305
|
+
&log_buffer_));
|
|
1304
1306
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1305
1307
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1306
1308
|
// Picking file 7 because overlapping ratio is the biggest.
|
|
@@ -1328,7 +1330,7 @@ TEST_F(CompactionPickerTest, CompactionPriMinOverlapping3) {
|
|
|
1328
1330
|
|
|
1329
1331
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1330
1332
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1331
|
-
&log_buffer_
|
|
1333
|
+
&log_buffer_));
|
|
1332
1334
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1333
1335
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1334
1336
|
// Picking file 8 because overlapping ratio is the biggest.
|
|
@@ -1359,7 +1361,7 @@ TEST_F(CompactionPickerTest, CompactionPriMinOverlapping4) {
|
|
|
1359
1361
|
|
|
1360
1362
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1361
1363
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1362
|
-
&log_buffer_
|
|
1364
|
+
&log_buffer_));
|
|
1363
1365
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1364
1366
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1365
1367
|
// Picking file 8 because overlapping ratio is the biggest.
|
|
@@ -1395,7 +1397,7 @@ TEST_F(CompactionPickerTest, CompactionPriRoundRobin) {
|
|
|
1395
1397
|
std::unique_ptr<Compaction> compaction(
|
|
1396
1398
|
local_level_compaction_picker.PickCompaction(
|
|
1397
1399
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1398
|
-
&log_buffer_
|
|
1400
|
+
&log_buffer_));
|
|
1399
1401
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1400
1402
|
// Since the max bytes for level 2 is 120M, picking one file to compact
|
|
1401
1403
|
// makes the post-compaction level size less than 120M, there is exactly one
|
|
@@ -1435,7 +1437,7 @@ TEST_F(CompactionPickerTest, CompactionPriMultipleFilesRoundRobin1) {
|
|
|
1435
1437
|
std::unique_ptr<Compaction> compaction(
|
|
1436
1438
|
local_level_compaction_picker.PickCompaction(
|
|
1437
1439
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1438
|
-
&log_buffer_
|
|
1440
|
+
&log_buffer_));
|
|
1439
1441
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1440
1442
|
|
|
1441
1443
|
// The maximum compaction bytes is very large in this case so we can igore its
|
|
@@ -1478,7 +1480,7 @@ TEST_F(CompactionPickerTest, CompactionPriMultipleFilesRoundRobin2) {
|
|
|
1478
1480
|
std::unique_ptr<Compaction> compaction(
|
|
1479
1481
|
local_level_compaction_picker.PickCompaction(
|
|
1480
1482
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1481
|
-
&log_buffer_
|
|
1483
|
+
&log_buffer_));
|
|
1482
1484
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1483
1485
|
|
|
1484
1486
|
// The maximum compaction bytes is only 2500 bytes now. Even though we are
|
|
@@ -1522,7 +1524,7 @@ TEST_F(CompactionPickerTest, CompactionPriMultipleFilesRoundRobin3) {
|
|
|
1522
1524
|
std::unique_ptr<Compaction> compaction(
|
|
1523
1525
|
local_level_compaction_picker.PickCompaction(
|
|
1524
1526
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1525
|
-
&log_buffer_
|
|
1527
|
+
&log_buffer_));
|
|
1526
1528
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1527
1529
|
|
|
1528
1530
|
// Cannot pick more files since we reach the last file in level 2
|
|
@@ -1581,7 +1583,7 @@ TEST_F(CompactionPickerTest, CompactionPriMinOverlappingManyFiles) {
|
|
|
1581
1583
|
|
|
1582
1584
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1583
1585
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1584
|
-
&log_buffer_
|
|
1586
|
+
&log_buffer_));
|
|
1585
1587
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1586
1588
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
1587
1589
|
// Picking file 8 because overlapping ratio is the biggest.
|
|
@@ -1609,7 +1611,7 @@ TEST_F(CompactionPickerTest, ParentIndexResetBug) {
|
|
|
1609
1611
|
|
|
1610
1612
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1611
1613
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1612
|
-
&log_buffer_
|
|
1614
|
+
&log_buffer_));
|
|
1613
1615
|
}
|
|
1614
1616
|
|
|
1615
1617
|
// This test checks ExpandWhileOverlapping() by having overlapping user keys
|
|
@@ -1627,7 +1629,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys) {
|
|
|
1627
1629
|
|
|
1628
1630
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1629
1631
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1630
|
-
&log_buffer_
|
|
1632
|
+
&log_buffer_));
|
|
1631
1633
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1632
1634
|
ASSERT_EQ(1U, compaction->num_input_levels());
|
|
1633
1635
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
@@ -1647,7 +1649,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys2) {
|
|
|
1647
1649
|
|
|
1648
1650
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1649
1651
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1650
|
-
&log_buffer_
|
|
1652
|
+
&log_buffer_));
|
|
1651
1653
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1652
1654
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1653
1655
|
ASSERT_EQ(2U, compaction->num_input_files(0));
|
|
@@ -1675,7 +1677,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys3) {
|
|
|
1675
1677
|
|
|
1676
1678
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1677
1679
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1678
|
-
&log_buffer_
|
|
1680
|
+
&log_buffer_));
|
|
1679
1681
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1680
1682
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1681
1683
|
ASSERT_EQ(5U, compaction->num_input_files(0));
|
|
@@ -1706,7 +1708,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys4) {
|
|
|
1706
1708
|
|
|
1707
1709
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1708
1710
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1709
|
-
&log_buffer_
|
|
1711
|
+
&log_buffer_));
|
|
1710
1712
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1711
1713
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1712
1714
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -1730,7 +1732,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys5) {
|
|
|
1730
1732
|
|
|
1731
1733
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1732
1734
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1733
|
-
&log_buffer_
|
|
1735
|
+
&log_buffer_));
|
|
1734
1736
|
ASSERT_TRUE(compaction.get() == nullptr);
|
|
1735
1737
|
}
|
|
1736
1738
|
|
|
@@ -1752,7 +1754,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys6) {
|
|
|
1752
1754
|
|
|
1753
1755
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1754
1756
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1755
|
-
&log_buffer_
|
|
1757
|
+
&log_buffer_));
|
|
1756
1758
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1757
1759
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1758
1760
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -1773,7 +1775,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys7) {
|
|
|
1773
1775
|
|
|
1774
1776
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1775
1777
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1776
|
-
&log_buffer_
|
|
1778
|
+
&log_buffer_));
|
|
1777
1779
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1778
1780
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1779
1781
|
ASSERT_GE(1U, compaction->num_input_files(0));
|
|
@@ -1802,7 +1804,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys8) {
|
|
|
1802
1804
|
|
|
1803
1805
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1804
1806
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1805
|
-
&log_buffer_
|
|
1807
|
+
&log_buffer_));
|
|
1806
1808
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1807
1809
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1808
1810
|
ASSERT_EQ(3U, compaction->num_input_files(0));
|
|
@@ -1835,7 +1837,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys9) {
|
|
|
1835
1837
|
|
|
1836
1838
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1837
1839
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1838
|
-
&log_buffer_
|
|
1840
|
+
&log_buffer_));
|
|
1839
1841
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1840
1842
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1841
1843
|
ASSERT_EQ(5U, compaction->num_input_files(0));
|
|
@@ -1876,7 +1878,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys10) {
|
|
|
1876
1878
|
|
|
1877
1879
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1878
1880
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1879
|
-
&log_buffer_
|
|
1881
|
+
&log_buffer_));
|
|
1880
1882
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1881
1883
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1882
1884
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -1915,7 +1917,7 @@ TEST_F(CompactionPickerTest, OverlappingUserKeys11) {
|
|
|
1915
1917
|
|
|
1916
1918
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
1917
1919
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
1918
|
-
&log_buffer_
|
|
1920
|
+
&log_buffer_));
|
|
1919
1921
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
1920
1922
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
1921
1923
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -2013,7 +2015,7 @@ TEST_F(CompactionPickerTest, NotScheduleL1IfL0WithHigherPri1) {
|
|
|
2013
2015
|
ASSERT_EQ(1, vstorage_->CompactionScoreLevel(1));
|
|
2014
2016
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2015
2017
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2016
|
-
&log_buffer_
|
|
2018
|
+
&log_buffer_));
|
|
2017
2019
|
ASSERT_TRUE(compaction.get() == nullptr);
|
|
2018
2020
|
}
|
|
2019
2021
|
|
|
@@ -2044,7 +2046,7 @@ TEST_F(CompactionPickerTest, NotScheduleL1IfL0WithHigherPri2) {
|
|
|
2044
2046
|
ASSERT_EQ(1, vstorage_->CompactionScoreLevel(1));
|
|
2045
2047
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2046
2048
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2047
|
-
&log_buffer_
|
|
2049
|
+
&log_buffer_));
|
|
2048
2050
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2049
2051
|
}
|
|
2050
2052
|
|
|
@@ -2078,7 +2080,7 @@ TEST_F(CompactionPickerTest, NotScheduleL1IfL0WithHigherPri3) {
|
|
|
2078
2080
|
ASSERT_EQ(0, vstorage_->CompactionScoreLevel(1));
|
|
2079
2081
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2080
2082
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2081
|
-
&log_buffer_
|
|
2083
|
+
&log_buffer_));
|
|
2082
2084
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2083
2085
|
}
|
|
2084
2086
|
|
|
@@ -2374,7 +2376,7 @@ TEST_F(CompactionPickerTest, MaxCompactionBytesHit) {
|
|
|
2374
2376
|
|
|
2375
2377
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2376
2378
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2377
|
-
&log_buffer_
|
|
2379
|
+
&log_buffer_));
|
|
2378
2380
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2379
2381
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
2380
2382
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -2400,7 +2402,7 @@ TEST_F(CompactionPickerTest, MaxCompactionBytesNotHit) {
|
|
|
2400
2402
|
|
|
2401
2403
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2402
2404
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2403
|
-
&log_buffer_
|
|
2405
|
+
&log_buffer_));
|
|
2404
2406
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2405
2407
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
2406
2408
|
ASSERT_EQ(3U, compaction->num_input_files(0));
|
|
@@ -2430,7 +2432,7 @@ TEST_F(CompactionPickerTest, IsTrivialMoveOn) {
|
|
|
2430
2432
|
|
|
2431
2433
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2432
2434
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2433
|
-
&log_buffer_
|
|
2435
|
+
&log_buffer_));
|
|
2434
2436
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2435
2437
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2436
2438
|
}
|
|
@@ -2455,7 +2457,7 @@ TEST_F(CompactionPickerTest, L0TrivialMove1) {
|
|
|
2455
2457
|
|
|
2456
2458
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2457
2459
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2458
|
-
&log_buffer_
|
|
2460
|
+
&log_buffer_));
|
|
2459
2461
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2460
2462
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
2461
2463
|
ASSERT_EQ(2, compaction->num_input_files(0));
|
|
@@ -2484,7 +2486,7 @@ TEST_F(CompactionPickerTest, L0TrivialMoveOneFile) {
|
|
|
2484
2486
|
|
|
2485
2487
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2486
2488
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2487
|
-
&log_buffer_
|
|
2489
|
+
&log_buffer_));
|
|
2488
2490
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2489
2491
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
2490
2492
|
ASSERT_EQ(1, compaction->num_input_files(0));
|
|
@@ -2510,7 +2512,7 @@ TEST_F(CompactionPickerTest, L0TrivialMoveWholeL0) {
|
|
|
2510
2512
|
|
|
2511
2513
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2512
2514
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2513
|
-
&log_buffer_
|
|
2515
|
+
&log_buffer_));
|
|
2514
2516
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2515
2517
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
2516
2518
|
ASSERT_EQ(4, compaction->num_input_files(0));
|
|
@@ -2541,7 +2543,7 @@ TEST_F(CompactionPickerTest, IsTrivialMoveOffSstPartitioned) {
|
|
|
2541
2543
|
|
|
2542
2544
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2543
2545
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2544
|
-
&log_buffer_
|
|
2546
|
+
&log_buffer_));
|
|
2545
2547
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2546
2548
|
// No trivial move, because partitioning is applied
|
|
2547
2549
|
ASSERT_TRUE(!compaction->IsTrivialMove());
|
|
@@ -2564,7 +2566,7 @@ TEST_F(CompactionPickerTest, IsTrivialMoveOff) {
|
|
|
2564
2566
|
|
|
2565
2567
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2566
2568
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2567
|
-
&log_buffer_
|
|
2569
|
+
&log_buffer_));
|
|
2568
2570
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2569
2571
|
ASSERT_FALSE(compaction->IsTrivialMove());
|
|
2570
2572
|
}
|
|
@@ -2593,7 +2595,7 @@ TEST_F(CompactionPickerTest, TrivialMoveMultipleFiles1) {
|
|
|
2593
2595
|
|
|
2594
2596
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2595
2597
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2596
|
-
&log_buffer_
|
|
2598
|
+
&log_buffer_));
|
|
2597
2599
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2598
2600
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2599
2601
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
@@ -2627,7 +2629,7 @@ TEST_F(CompactionPickerTest, TrivialMoveMultipleFiles2) {
|
|
|
2627
2629
|
|
|
2628
2630
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2629
2631
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2630
|
-
&log_buffer_
|
|
2632
|
+
&log_buffer_));
|
|
2631
2633
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2632
2634
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2633
2635
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
@@ -2660,7 +2662,7 @@ TEST_F(CompactionPickerTest, TrivialMoveMultipleFiles3) {
|
|
|
2660
2662
|
|
|
2661
2663
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2662
2664
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2663
|
-
&log_buffer_
|
|
2665
|
+
&log_buffer_));
|
|
2664
2666
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2665
2667
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2666
2668
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
@@ -2686,7 +2688,7 @@ TEST_F(CompactionPickerTest, TrivialMoveMultipleFiles4) {
|
|
|
2686
2688
|
|
|
2687
2689
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2688
2690
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2689
|
-
&log_buffer_
|
|
2691
|
+
&log_buffer_));
|
|
2690
2692
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2691
2693
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2692
2694
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
@@ -2716,7 +2718,7 @@ TEST_F(CompactionPickerTest, TrivialMoveMultipleFiles5) {
|
|
|
2716
2718
|
|
|
2717
2719
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2718
2720
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2719
|
-
&log_buffer_
|
|
2721
|
+
&log_buffer_));
|
|
2720
2722
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2721
2723
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2722
2724
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
@@ -2750,7 +2752,7 @@ TEST_F(CompactionPickerTest, TrivialMoveMultipleFiles6) {
|
|
|
2750
2752
|
|
|
2751
2753
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2752
2754
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2753
|
-
&log_buffer_
|
|
2755
|
+
&log_buffer_));
|
|
2754
2756
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2755
2757
|
ASSERT_TRUE(compaction->IsTrivialMove());
|
|
2756
2758
|
ASSERT_EQ(1, compaction->num_input_levels());
|
|
@@ -2785,7 +2787,7 @@ TEST_F(CompactionPickerTest, CacheNextCompactionIndex) {
|
|
|
2785
2787
|
|
|
2786
2788
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2787
2789
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2788
|
-
&log_buffer_
|
|
2790
|
+
&log_buffer_));
|
|
2789
2791
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2790
2792
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
2791
2793
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -2795,7 +2797,7 @@ TEST_F(CompactionPickerTest, CacheNextCompactionIndex) {
|
|
|
2795
2797
|
|
|
2796
2798
|
compaction.reset(level_compaction_picker.PickCompaction(
|
|
2797
2799
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2798
|
-
&log_buffer_
|
|
2800
|
+
&log_buffer_));
|
|
2799
2801
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2800
2802
|
ASSERT_EQ(2U, compaction->num_input_levels());
|
|
2801
2803
|
ASSERT_EQ(1U, compaction->num_input_files(0));
|
|
@@ -2805,7 +2807,7 @@ TEST_F(CompactionPickerTest, CacheNextCompactionIndex) {
|
|
|
2805
2807
|
|
|
2806
2808
|
compaction.reset(level_compaction_picker.PickCompaction(
|
|
2807
2809
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2808
|
-
&log_buffer_
|
|
2810
|
+
&log_buffer_));
|
|
2809
2811
|
ASSERT_TRUE(compaction.get() == nullptr);
|
|
2810
2812
|
ASSERT_EQ(4, vstorage_->NextCompactionIndex(1 /* level */));
|
|
2811
2813
|
}
|
|
@@ -2831,7 +2833,7 @@ TEST_F(CompactionPickerTest, IntraL0MaxCompactionBytesNotHit) {
|
|
|
2831
2833
|
|
|
2832
2834
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2833
2835
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2834
|
-
&log_buffer_
|
|
2836
|
+
&log_buffer_));
|
|
2835
2837
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2836
2838
|
ASSERT_EQ(1U, compaction->num_input_levels());
|
|
2837
2839
|
ASSERT_EQ(5U, compaction->num_input_files(0));
|
|
@@ -2862,7 +2864,7 @@ TEST_F(CompactionPickerTest, IntraL0MaxCompactionBytesHit) {
|
|
|
2862
2864
|
|
|
2863
2865
|
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2864
2866
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2865
|
-
&log_buffer_
|
|
2867
|
+
&log_buffer_));
|
|
2866
2868
|
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2867
2869
|
ASSERT_EQ(1U, compaction->num_input_levels());
|
|
2868
2870
|
ASSERT_EQ(4U, compaction->num_input_files(0));
|
|
@@ -2871,38 +2873,6 @@ TEST_F(CompactionPickerTest, IntraL0MaxCompactionBytesHit) {
|
|
|
2871
2873
|
ASSERT_EQ(0, compaction->output_level());
|
|
2872
2874
|
}
|
|
2873
2875
|
|
|
2874
|
-
TEST_F(CompactionPickerTest, IntraL0ForEarliestSeqno) {
|
|
2875
|
-
// Intra L0 compaction triggers only if there are at least
|
|
2876
|
-
// level0_file_num_compaction_trigger + 2 L0 files.
|
|
2877
|
-
mutable_cf_options_.level0_file_num_compaction_trigger = 3;
|
|
2878
|
-
mutable_cf_options_.max_compaction_bytes = 999999u;
|
|
2879
|
-
NewVersionStorage(6, kCompactionStyleLevel);
|
|
2880
|
-
|
|
2881
|
-
// 4 out of 6 L0 files will be picked for intra L0 compaction due to
|
|
2882
|
-
// being_compact limit. And the latest one L0 will be skipped due to earliest
|
|
2883
|
-
// seqno. The one L1 file spans entire L0 key range and is marked as being
|
|
2884
|
-
// compacted to avoid L0->L1 compaction.
|
|
2885
|
-
Add(1, 1U, "100", "350", 200000U, 0, 110, 111);
|
|
2886
|
-
Add(0, 2U, "301", "350", 1U, 0, 108, 109);
|
|
2887
|
-
Add(0, 3U, "251", "300", 1U, 0, 106, 107);
|
|
2888
|
-
Add(0, 4U, "201", "250", 1U, 0, 104, 105);
|
|
2889
|
-
Add(0, 5U, "151", "200", 1U, 0, 102, 103);
|
|
2890
|
-
Add(0, 6U, "100", "150", 1U, 0, 100, 101);
|
|
2891
|
-
Add(0, 7U, "100", "100", 1U, 0, 99, 100);
|
|
2892
|
-
vstorage_->LevelFiles(0)[5]->being_compacted = true;
|
|
2893
|
-
vstorage_->LevelFiles(1)[0]->being_compacted = true;
|
|
2894
|
-
UpdateVersionStorageInfo();
|
|
2895
|
-
|
|
2896
|
-
std::unique_ptr<Compaction> compaction(level_compaction_picker.PickCompaction(
|
|
2897
|
-
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2898
|
-
&log_buffer_, 107));
|
|
2899
|
-
ASSERT_TRUE(compaction.get() != nullptr);
|
|
2900
|
-
ASSERT_EQ(1U, compaction->num_input_levels());
|
|
2901
|
-
ASSERT_EQ(4U, compaction->num_input_files(0));
|
|
2902
|
-
ASSERT_EQ(CompactionReason::kLevelL0FilesNum,
|
|
2903
|
-
compaction->compaction_reason());
|
|
2904
|
-
ASSERT_EQ(0, compaction->output_level());
|
|
2905
|
-
}
|
|
2906
2876
|
|
|
2907
2877
|
#ifndef ROCKSDB_LITE
|
|
2908
2878
|
TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap) {
|
|
@@ -2916,9 +2886,23 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap) {
|
|
|
2916
2886
|
// should fail
|
|
2917
2887
|
NewVersionStorage(5, kCompactionStyleUniversal);
|
|
2918
2888
|
|
|
2919
|
-
Add(0, 1U, "150", "200", kFileSize, 0, 500, 550
|
|
2920
|
-
|
|
2921
|
-
|
|
2889
|
+
Add(0, 1U, "150", "200", kFileSize, 0, 500, 550, /*compensated_file_size*/ 0,
|
|
2890
|
+
/*marked_for_compact*/ false, /* temperature*/ Temperature::kUnknown,
|
|
2891
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2892
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2893
|
+
/*epoch_number*/ 3);
|
|
2894
|
+
Add(0, 2U, "201", "250", 2 * kFileSize, 0, 401, 450,
|
|
2895
|
+
/*compensated_file_size*/ 0, /*marked_for_compact*/ false,
|
|
2896
|
+
/* temperature*/ Temperature::kUnknown,
|
|
2897
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2898
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2899
|
+
/*epoch_number*/ 2);
|
|
2900
|
+
Add(0, 4U, "260", "300", 4 * kFileSize, 0, 260, 300,
|
|
2901
|
+
/*compensated_file_size*/ 0, /*marked_for_compact*/ false,
|
|
2902
|
+
/* temperature*/ Temperature::kUnknown,
|
|
2903
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2904
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2905
|
+
/*epoch_number*/ 1);
|
|
2922
2906
|
Add(3, 5U, "010", "080", 8 * kFileSize, 0, 200, 251);
|
|
2923
2907
|
Add(4, 3U, "301", "350", 8 * kFileSize, 0, 101, 150);
|
|
2924
2908
|
Add(4, 6U, "501", "750", 8 * kFileSize, 0, 101, 150);
|
|
@@ -2928,7 +2912,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap) {
|
|
|
2928
2912
|
std::unique_ptr<Compaction> compaction(
|
|
2929
2913
|
universal_compaction_picker.PickCompaction(
|
|
2930
2914
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2931
|
-
&log_buffer_
|
|
2915
|
+
&log_buffer_));
|
|
2932
2916
|
|
|
2933
2917
|
ASSERT_TRUE(compaction);
|
|
2934
2918
|
// Validate that its a compaction to reduce sorted runs
|
|
@@ -2940,13 +2924,17 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap) {
|
|
|
2940
2924
|
|
|
2941
2925
|
AddVersionStorage();
|
|
2942
2926
|
// Simulate a flush and mark the file for compaction
|
|
2943
|
-
Add(0, 7U, "150", "200", kFileSize, 0, 551, 600, 0, true
|
|
2927
|
+
Add(0, 7U, "150", "200", kFileSize, 0, 551, 600, 0, true,
|
|
2928
|
+
/* temperature*/ Temperature::kUnknown,
|
|
2929
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2930
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2931
|
+
/*epoch_number*/ 4);
|
|
2944
2932
|
UpdateVersionStorageInfo();
|
|
2945
2933
|
|
|
2946
2934
|
std::unique_ptr<Compaction> compaction2(
|
|
2947
2935
|
universal_compaction_picker.PickCompaction(
|
|
2948
2936
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2949
|
-
&log_buffer_
|
|
2937
|
+
&log_buffer_));
|
|
2950
2938
|
ASSERT_FALSE(compaction2);
|
|
2951
2939
|
}
|
|
2952
2940
|
|
|
@@ -2962,7 +2950,11 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap2) {
|
|
|
2962
2950
|
NewVersionStorage(5, kCompactionStyleUniversal);
|
|
2963
2951
|
|
|
2964
2952
|
// Mark file number 4 for compaction
|
|
2965
|
-
Add(0, 4U, "260", "300", 4 * kFileSize, 0, 260, 300, 0, true
|
|
2953
|
+
Add(0, 4U, "260", "300", 4 * kFileSize, 0, 260, 300, 0, true,
|
|
2954
|
+
/* temperature*/ Temperature::kUnknown,
|
|
2955
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2956
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2957
|
+
/*epoch_number*/ 1);
|
|
2966
2958
|
Add(3, 5U, "240", "290", 8 * kFileSize, 0, 201, 250);
|
|
2967
2959
|
Add(4, 3U, "301", "350", 8 * kFileSize, 0, 101, 150);
|
|
2968
2960
|
Add(4, 6U, "501", "750", 8 * kFileSize, 0, 101, 150);
|
|
@@ -2971,7 +2963,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap2) {
|
|
|
2971
2963
|
std::unique_ptr<Compaction> compaction(
|
|
2972
2964
|
universal_compaction_picker.PickCompaction(
|
|
2973
2965
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2974
|
-
&log_buffer_
|
|
2966
|
+
&log_buffer_));
|
|
2975
2967
|
|
|
2976
2968
|
ASSERT_TRUE(compaction);
|
|
2977
2969
|
// Validate that its a delete triggered compaction
|
|
@@ -2983,14 +2975,23 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionFullOverlap2) {
|
|
|
2983
2975
|
ASSERT_EQ(1U, compaction->num_input_files(1));
|
|
2984
2976
|
|
|
2985
2977
|
AddVersionStorage();
|
|
2986
|
-
Add(0, 1U, "150", "200", kFileSize, 0, 500, 550
|
|
2987
|
-
|
|
2978
|
+
Add(0, 1U, "150", "200", kFileSize, 0, 500, 550, /*compensated_file_size*/ 0,
|
|
2979
|
+
/*marked_for_compact*/ false, /* temperature*/ Temperature::kUnknown,
|
|
2980
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2981
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2982
|
+
/*epoch_number*/ 3);
|
|
2983
|
+
Add(0, 2U, "201", "250", 2 * kFileSize, 0, 401, 450,
|
|
2984
|
+
/*compensated_file_size*/ 0, /*marked_for_compact*/ false,
|
|
2985
|
+
/* temperature*/ Temperature::kUnknown,
|
|
2986
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
2987
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
2988
|
+
/*epoch_number*/ 2);
|
|
2988
2989
|
UpdateVersionStorageInfo();
|
|
2989
2990
|
|
|
2990
2991
|
std::unique_ptr<Compaction> compaction2(
|
|
2991
2992
|
universal_compaction_picker.PickCompaction(
|
|
2992
2993
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
2993
|
-
&log_buffer_
|
|
2994
|
+
&log_buffer_));
|
|
2994
2995
|
ASSERT_FALSE(compaction2);
|
|
2995
2996
|
}
|
|
2996
2997
|
|
|
@@ -3031,7 +3032,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionStartOutputOverlap) {
|
|
|
3031
3032
|
std::unique_ptr<Compaction> compaction(
|
|
3032
3033
|
universal_compaction_picker.PickCompaction(
|
|
3033
3034
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3034
|
-
&log_buffer_
|
|
3035
|
+
&log_buffer_));
|
|
3035
3036
|
|
|
3036
3037
|
ASSERT_TRUE(compaction);
|
|
3037
3038
|
// Validate that its a delete triggered compaction
|
|
@@ -3062,7 +3063,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedCompactionStartOutputOverlap) {
|
|
|
3062
3063
|
std::unique_ptr<Compaction> compaction2(
|
|
3063
3064
|
universal_compaction_picker.PickCompaction(
|
|
3064
3065
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3065
|
-
&log_buffer_
|
|
3066
|
+
&log_buffer_));
|
|
3066
3067
|
ASSERT_FALSE(compaction2);
|
|
3067
3068
|
DeleteVersionStorage();
|
|
3068
3069
|
}
|
|
@@ -3088,7 +3089,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedL0NoOverlap) {
|
|
|
3088
3089
|
std::unique_ptr<Compaction> compaction(
|
|
3089
3090
|
universal_compaction_picker.PickCompaction(
|
|
3090
3091
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3091
|
-
&log_buffer_
|
|
3092
|
+
&log_buffer_));
|
|
3092
3093
|
|
|
3093
3094
|
ASSERT_TRUE(compaction);
|
|
3094
3095
|
// Validate that its a delete triggered compaction
|
|
@@ -3125,7 +3126,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedL0WithOverlap) {
|
|
|
3125
3126
|
std::unique_ptr<Compaction> compaction(
|
|
3126
3127
|
universal_compaction_picker.PickCompaction(
|
|
3127
3128
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3128
|
-
&log_buffer_
|
|
3129
|
+
&log_buffer_));
|
|
3129
3130
|
|
|
3130
3131
|
ASSERT_TRUE(compaction);
|
|
3131
3132
|
// Validate that its a delete triggered compaction
|
|
@@ -3150,16 +3151,35 @@ TEST_F(CompactionPickerTest, UniversalMarkedL0Overlap2) {
|
|
|
3150
3151
|
NewVersionStorage(1, kCompactionStyleUniversal);
|
|
3151
3152
|
|
|
3152
3153
|
// Mark file number 5 for compaction
|
|
3153
|
-
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 260, 300
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3154
|
+
Add(0, 4U, "260", "300", 1 * kFileSize, 0, 260, 300,
|
|
3155
|
+
/*compensated_file_size*/ 0, /*marked_for_compact*/ false,
|
|
3156
|
+
/* temperature*/ Temperature::kUnknown,
|
|
3157
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
3158
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
3159
|
+
/*epoch_number*/ 4);
|
|
3160
|
+
Add(0, 5U, "240", "290", 2 * kFileSize, 0, 201, 250, 0, true,
|
|
3161
|
+
/* temperature*/ Temperature::kUnknown,
|
|
3162
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
3163
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
3164
|
+
/*epoch_number*/ 3);
|
|
3165
|
+
Add(0, 3U, "301", "350", 4 * kFileSize, 0, 101, 150,
|
|
3166
|
+
/*compensated_file_size*/ 0, /*marked_for_compact*/ false,
|
|
3167
|
+
/* temperature*/ Temperature::kUnknown,
|
|
3168
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
3169
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
3170
|
+
/*epoch_number*/ 2);
|
|
3171
|
+
Add(0, 6U, "501", "750", 8 * kFileSize, 0, 50, 100,
|
|
3172
|
+
/*compensated_file_size*/ 0, /*marked_for_compact*/ false,
|
|
3173
|
+
/* temperature*/ Temperature::kUnknown,
|
|
3174
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
3175
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
3176
|
+
/*epoch_number*/ 1);
|
|
3157
3177
|
UpdateVersionStorageInfo();
|
|
3158
3178
|
|
|
3159
3179
|
std::unique_ptr<Compaction> compaction(
|
|
3160
3180
|
universal_compaction_picker.PickCompaction(
|
|
3161
3181
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3162
|
-
&log_buffer_
|
|
3182
|
+
&log_buffer_));
|
|
3163
3183
|
|
|
3164
3184
|
ASSERT_TRUE(compaction);
|
|
3165
3185
|
// Validate that its a delete triggered compaction
|
|
@@ -3173,14 +3193,24 @@ TEST_F(CompactionPickerTest, UniversalMarkedL0Overlap2) {
|
|
|
3173
3193
|
ASSERT_TRUE(file_map_[6].first->being_compacted);
|
|
3174
3194
|
|
|
3175
3195
|
AddVersionStorage();
|
|
3176
|
-
Add(0, 1U, "150", "200", kFileSize, 0, 500, 550
|
|
3177
|
-
|
|
3196
|
+
Add(0, 1U, "150", "200", kFileSize, 0, 500, 550, /*compensated_file_size*/ 0,
|
|
3197
|
+
/*marked_for_compact*/ false,
|
|
3198
|
+
/* temperature*/ Temperature::kUnknown,
|
|
3199
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
3200
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
3201
|
+
/*epoch_number*/ 6);
|
|
3202
|
+
Add(0, 2U, "201", "250", kFileSize, 0, 401, 450, /*compensated_file_size*/ 0,
|
|
3203
|
+
/*marked_for_compact*/ false,
|
|
3204
|
+
/* temperature*/ Temperature::kUnknown,
|
|
3205
|
+
/*oldest_ancestor_time*/ kUnknownOldestAncesterTime,
|
|
3206
|
+
/*ts_of_smallest*/ Slice(), /*ts_of_largest*/ Slice(),
|
|
3207
|
+
/*epoch_number*/ 5);
|
|
3178
3208
|
UpdateVersionStorageInfo();
|
|
3179
3209
|
|
|
3180
3210
|
std::unique_ptr<Compaction> compaction2(
|
|
3181
3211
|
universal_compaction_picker.PickCompaction(
|
|
3182
3212
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3183
|
-
&log_buffer_
|
|
3213
|
+
&log_buffer_));
|
|
3184
3214
|
ASSERT_TRUE(compaction2);
|
|
3185
3215
|
ASSERT_EQ(3U, compaction->num_input_files(0));
|
|
3186
3216
|
ASSERT_TRUE(file_map_[1].first->being_compacted);
|
|
@@ -3215,7 +3245,7 @@ TEST_F(CompactionPickerTest, UniversalMarkedManualCompaction) {
|
|
|
3215
3245
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3216
3246
|
ColumnFamilyData::kCompactAllLevels, 6, CompactRangeOptions(),
|
|
3217
3247
|
nullptr, nullptr, &manual_end, &manual_conflict,
|
|
3218
|
-
std::numeric_limits<uint64_t>::max(), ""
|
|
3248
|
+
std::numeric_limits<uint64_t>::max(), ""));
|
|
3219
3249
|
|
|
3220
3250
|
ASSERT_TRUE(compaction);
|
|
3221
3251
|
|
|
@@ -3256,7 +3286,7 @@ TEST_F(CompactionPickerTest, UniversalSizeAmpTierCompactionNonLastLevel) {
|
|
|
3256
3286
|
std::unique_ptr<Compaction> compaction(
|
|
3257
3287
|
universal_compaction_picker.PickCompaction(
|
|
3258
3288
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3259
|
-
&log_buffer_
|
|
3289
|
+
&log_buffer_));
|
|
3260
3290
|
|
|
3261
3291
|
// Make sure it's a size amp compaction and includes all files
|
|
3262
3292
|
ASSERT_EQ(compaction->compaction_reason(),
|
|
@@ -3292,7 +3322,7 @@ TEST_F(CompactionPickerTest, UniversalSizeRatioTierCompactionLastLevel) {
|
|
|
3292
3322
|
std::unique_ptr<Compaction> compaction(
|
|
3293
3323
|
universal_compaction_picker.PickCompaction(
|
|
3294
3324
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3295
|
-
&log_buffer_
|
|
3325
|
+
&log_buffer_));
|
|
3296
3326
|
|
|
3297
3327
|
// Internally, size amp compaction is evaluated before size ratio compaction.
|
|
3298
3328
|
// Here to make sure it's size ratio compaction instead of size amp
|
|
@@ -3329,7 +3359,7 @@ TEST_F(CompactionPickerTest, UniversalSizeAmpTierCompactionNotSuport) {
|
|
|
3329
3359
|
std::unique_ptr<Compaction> compaction(
|
|
3330
3360
|
universal_compaction_picker.PickCompaction(
|
|
3331
3361
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3332
|
-
&log_buffer_
|
|
3362
|
+
&log_buffer_));
|
|
3333
3363
|
|
|
3334
3364
|
// size amp compaction is still triggered even preclude_last_level is set
|
|
3335
3365
|
ASSERT_EQ(compaction->compaction_reason(),
|
|
@@ -3363,7 +3393,7 @@ TEST_F(CompactionPickerTest, UniversalSizeAmpTierCompactionLastLevel) {
|
|
|
3363
3393
|
std::unique_ptr<Compaction> compaction(
|
|
3364
3394
|
universal_compaction_picker.PickCompaction(
|
|
3365
3395
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3366
|
-
&log_buffer_
|
|
3396
|
+
&log_buffer_));
|
|
3367
3397
|
|
|
3368
3398
|
// It's a Size Amp compaction, but doesn't include the last level file and
|
|
3369
3399
|
// output to the penultimate level.
|
|
@@ -3471,7 +3501,7 @@ TEST_F(CompactionPickerU64TsTest, CannotTrivialMoveUniversal) {
|
|
|
3471
3501
|
std::unique_ptr<Compaction> compaction(
|
|
3472
3502
|
universal_compaction_picker.PickCompaction(
|
|
3473
3503
|
cf_name_, mutable_cf_options_, mutable_db_options_, vstorage_.get(),
|
|
3474
|
-
&log_buffer_
|
|
3504
|
+
&log_buffer_));
|
|
3475
3505
|
assert(compaction);
|
|
3476
3506
|
ASSERT_TRUE(!compaction->is_trivial_move());
|
|
3477
3507
|
}
|