diff --git a/db/db_options_test.cc b/db/db_options_test.cc index 2b54bc7e0..d2b2b2981 100644 --- a/db/db_options_test.cc +++ b/db/db_options_test.cc @@ -118,13 +118,14 @@ TEST_F(DBOptionsTest, GetLatestCFOptions) { } TEST_F(DBOptionsTest, SetBytesPerSync) { - const size_t kValueSize = 1024 * 1024 * 8; + const size_t kValueSize = 1024 * 1024; // 1MB Options options; options.create_if_missing = true; options.bytes_per_sync = 1024 * 1024; options.use_direct_reads = false; options.write_buffer_size = 400 * kValueSize; options.disable_auto_compactions = true; + options.compression = kNoCompression; options.env = env_; Reopen(options); int counter = 0; @@ -138,25 +139,33 @@ TEST_F(DBOptionsTest, SetBytesPerSync) { }); WriteOptions write_opts; - for (; i < 40; i++) { + // should sync approximately 40MB/1MB ~= 40 times. + for (i = 0; i < 40; i++) { Put(Key(i), kValue, write_opts); } - i = 0; rocksdb::SyncPoint::GetInstance()->EnableProcessing(); ASSERT_OK(dbfull()->CompactRange(CompactRangeOptions(), nullptr, nullptr)); rocksdb::SyncPoint::GetInstance()->DisableProcessing(); low_bytes_per_sync = counter; + ASSERT_GT(low_bytes_per_sync, 35); + ASSERT_LT(low_bytes_per_sync, 45); + counter = 0; // 8388608 = 8 * 1024 * 1024 ASSERT_OK(dbfull()->SetDBOptions({{"bytes_per_sync", "8388608"}})); ASSERT_EQ(8388608, dbfull()->GetDBOptions().bytes_per_sync); - for (; i < 40; i++) { + // should sync approximately 40MB*2/8MB ~= 10 times. + // data will be 40*2MB because of previous Puts too. + for (i = 0; i < 40; i++) { Put(Key(i), kValue, write_opts); } rocksdb::SyncPoint::GetInstance()->EnableProcessing(); ASSERT_OK(dbfull()->CompactRange(CompactRangeOptions(), nullptr, nullptr)); - ASSERT_GT(counter, 0); - ASSERT_GT(low_bytes_per_sync, 0); + ASSERT_GT(counter, 5); + ASSERT_LT(counter, 15); + + // Redundant assert. But leaving it here just to get the point across that + // low_bytes_per_sync > counter. ASSERT_GT(low_bytes_per_sync, counter); } @@ -167,6 +176,7 @@ TEST_F(DBOptionsTest, SetWalBytesPerSync) { options.wal_bytes_per_sync = 512; options.write_buffer_size = 100 * kValueSize; options.disable_auto_compactions = true; + options.compression = kNoCompression; options.env = env_; Reopen(options); ASSERT_EQ(512, dbfull()->GetDBOptions().wal_bytes_per_sync);