mirror of
https://github.com/facebook/rocksdb.git
synced 2024-11-27 02:44:18 +00:00
Make DBCompactionTestWithParam::CompactionTrigger more deterministic
Summary: Make DBCompactionTestWithParam::CompactionTrigger more deterministic Test Plan: ./db_compaction_test Reviewers: anthony, IslamAbdelRahman, rven, kradhakrishnan, sdong Reviewed By: sdong Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D51507
This commit is contained in:
parent
bcd7bd1229
commit
bd7a49d448
|
@ -461,16 +461,17 @@ TEST_F(DBCompactionTest, DisableStatsUpdateReopen) {
|
||||||
|
|
||||||
|
|
||||||
TEST_P(DBCompactionTestWithParam, CompactionTrigger) {
|
TEST_P(DBCompactionTestWithParam, CompactionTrigger) {
|
||||||
int kNumKeysPerFile = 100;
|
const int kNumKeysPerFile = 100;
|
||||||
|
|
||||||
Options options;
|
Options options;
|
||||||
options.write_buffer_size = 200 << 10;
|
options.write_buffer_size = 110 << 10; // 110KB
|
||||||
options.arena_block_size = 4 << 10;
|
options.arena_block_size = 4 << 10;
|
||||||
options.num_levels = 3;
|
options.num_levels = 3;
|
||||||
options.level0_file_num_compaction_trigger = 3;
|
options.level0_file_num_compaction_trigger = 3;
|
||||||
options.max_subcompactions = max_subcompactions_;
|
options.max_subcompactions = max_subcompactions_;
|
||||||
options.memtable_factory.reset(new SpecialSkipListFactory(kNumKeysPerFile));
|
options.memtable_factory.reset(new SpecialSkipListFactory(kNumKeysPerFile));
|
||||||
options = CurrentOptions(options);
|
options = CurrentOptions(options);
|
||||||
|
options.memtable_factory.reset(new SpecialSkipListFactory(kNumKeysPerFile));
|
||||||
CreateAndReopenWithCF({"pikachu"}, options);
|
CreateAndReopenWithCF({"pikachu"}, options);
|
||||||
|
|
||||||
Random rnd(301);
|
Random rnd(301);
|
||||||
|
@ -483,6 +484,7 @@ TEST_P(DBCompactionTestWithParam, CompactionTrigger) {
|
||||||
values.push_back(RandomString(&rnd, 990));
|
values.push_back(RandomString(&rnd, 990));
|
||||||
ASSERT_OK(Put(1, Key(i), values[i]));
|
ASSERT_OK(Put(1, Key(i), values[i]));
|
||||||
}
|
}
|
||||||
|
// put extra key to trigger flush
|
||||||
ASSERT_OK(Put(1, "", ""));
|
ASSERT_OK(Put(1, "", ""));
|
||||||
dbfull()->TEST_WaitForFlushMemTable(handles_[1]);
|
dbfull()->TEST_WaitForFlushMemTable(handles_[1]);
|
||||||
ASSERT_EQ(NumTableFilesAtLevel(0, 1), num + 1);
|
ASSERT_EQ(NumTableFilesAtLevel(0, 1), num + 1);
|
||||||
|
@ -490,10 +492,12 @@ TEST_P(DBCompactionTestWithParam, CompactionTrigger) {
|
||||||
|
|
||||||
// generate one more file in level-0, and should trigger level-0 compaction
|
// generate one more file in level-0, and should trigger level-0 compaction
|
||||||
std::vector<std::string> values;
|
std::vector<std::string> values;
|
||||||
for (int i = 0; i < 100; i++) {
|
for (int i = 0; i < kNumKeysPerFile; i++) {
|
||||||
values.push_back(RandomString(&rnd, 990));
|
values.push_back(RandomString(&rnd, 990));
|
||||||
ASSERT_OK(Put(1, Key(i), values[i]));
|
ASSERT_OK(Put(1, Key(i), values[i]));
|
||||||
}
|
}
|
||||||
|
// put extra key to trigger flush
|
||||||
|
ASSERT_OK(Put(1, "", ""));
|
||||||
dbfull()->TEST_WaitForCompact();
|
dbfull()->TEST_WaitForCompact();
|
||||||
|
|
||||||
ASSERT_EQ(NumTableFilesAtLevel(0, 1), 0);
|
ASSERT_EQ(NumTableFilesAtLevel(0, 1), 0);
|
||||||
|
|
Loading…
Reference in a new issue