diff --git a/table/block_based_table_builder.cc b/table/block_based_table_builder.cc index 9185c607cd78c4684a14ed69d041219c404b57ea..81cc2d07d4827f883d42b4e8d4c855cbc9f5e108 100644 --- a/table/block_based_table_builder.cc +++ b/table/block_based_table_builder.cc @@ -78,8 +78,8 @@ FilterBlockBuilder* CreateFilterBlockBuilder( // as partition size. assert(table_opt.block_size_deviation <= 100); auto partition_size = static_cast( - table_opt.metadata_block_size * - (100 - table_opt.block_size_deviation)); + ((table_opt.metadata_block_size * + (100 - table_opt.block_size_deviation)) + 99) / 100); partition_size = std::max(partition_size, static_cast(1)); return new PartitionedFilterBlockBuilder( opt.prefix_extractor, table_opt.whole_key_filtering, diff --git a/table/partitioned_filter_block_test.cc b/table/partitioned_filter_block_test.cc index 1bc529ed974cf1f0a7cee9c21fb7824cae75e791..0a8943feb511cc51095dc8abacb8e0cc8830adfa 100644 --- a/table/partitioned_filter_block_test.cc +++ b/table/partitioned_filter_block_test.cc @@ -75,7 +75,8 @@ class PartitionedFilterBlockTest : public testing::Test { auto partition_size = filter_bits_reader->CalculateSpace(num_keys, &dont_care1, &dont_care2); delete filter_bits_reader; - return partition_size + table_options_.block_size_deviation; + return partition_size + + partition_size * table_options_.block_size_deviation / 100; } int last_offset = 10; @@ -94,8 +95,10 @@ class PartitionedFilterBlockTest : public testing::Test { PartitionedIndexBuilder* const p_index_builder) { assert(table_options_.block_size_deviation <= 100); auto partition_size = static_cast( - table_options_.metadata_block_size * - ( 100 - table_options_.block_size_deviation)); + ((table_options_.metadata_block_size * + (100 - table_options_.block_size_deviation)) + + 99) / + 100); partition_size = std::max(partition_size, static_cast(1)); return new PartitionedFilterBlockBuilder( nullptr, table_options_.whole_key_filtering,