No need for Restart Interval for meta blocks
Summary: In SST files, restart interval helps us search in data blocks. However, some meta blocks will be read sequentially, so there's no need for restart points. Restart interval will introduce extra space in the block (https://github.com/facebook/rocksdb/blob/master/table/block_builder.cc#L80). We will see if we can remove this redundant space. (Maybe set restart interval to infinite.) Closes https://github.com/facebook/rocksdb/pull/2940 Differential Revision: D5930139 Pulled By: miasantreble fbshipit-source-id: 92b1b23c15cffa90378343ac846b713623b19c21
This commit is contained in:
parent
2b22baf304
commit
593d3de371
@ -295,7 +295,7 @@ struct BlockBasedTableBuilder::Rep {
|
|||||||
file(f),
|
file(f),
|
||||||
data_block(table_options.block_restart_interval,
|
data_block(table_options.block_restart_interval,
|
||||||
table_options.use_delta_encoding),
|
table_options.use_delta_encoding),
|
||||||
range_del_block(1), // TODO(andrewkr): restart_interval unnecessary
|
range_del_block(port::kMaxInt32),
|
||||||
internal_prefix_transform(_ioptions.prefix_extractor),
|
internal_prefix_transform(_ioptions.prefix_extractor),
|
||||||
compression_type(_compression_type),
|
compression_type(_compression_type),
|
||||||
compression_opts(_compression_opts),
|
compression_opts(_compression_opts),
|
||||||
|
@ -21,7 +21,8 @@
|
|||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
MetaIndexBuilder::MetaIndexBuilder()
|
MetaIndexBuilder::MetaIndexBuilder()
|
||||||
: meta_index_block_(new BlockBuilder(1 /* restart interval */)) {}
|
: meta_index_block_(
|
||||||
|
new BlockBuilder(port::kMaxInt32 /* restart interval */)) {}
|
||||||
|
|
||||||
void MetaIndexBuilder::Add(const std::string& key,
|
void MetaIndexBuilder::Add(const std::string& key,
|
||||||
const BlockHandle& handle) {
|
const BlockHandle& handle) {
|
||||||
@ -38,7 +39,8 @@ Slice MetaIndexBuilder::Finish() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PropertyBlockBuilder::PropertyBlockBuilder()
|
PropertyBlockBuilder::PropertyBlockBuilder()
|
||||||
: properties_block_(new BlockBuilder(1 /* restart interval */)) {}
|
: properties_block_(
|
||||||
|
new BlockBuilder(port::kMaxInt32 /* restart interval */)) {}
|
||||||
|
|
||||||
void PropertyBlockBuilder::Add(const std::string& name,
|
void PropertyBlockBuilder::Add(const std::string& name,
|
||||||
const std::string& val) {
|
const std::string& val) {
|
||||||
|
Loading…
Reference in New Issue
Block a user