rocksdb/table/block_based
anand76 63ace8ef0e Reuse data block iterator in BlockBasedTableReader::MultiGet() (#5314)
Summary:
Instead of creating a new DataBlockIterator for every key in a MultiGet batch, reuse it if the next key is in the same block. This results in a small 1-2% cpu improvement.

TEST_TMPDIR=/dev/shm/multiget numactl -C 10  ./db_bench.tmp -use_existing_db=true -benchmarks="readseq,multireadrandom" -write_buffer_size=4194304 -target_file_size_base=4194304 -max_bytes_for_level_base=16777216 -num=12000000 -reads=12000000 -duration=90 -threads=1 -compression_type=none -cache_size=4194304000 -batch_size=32 -disable_auto_compactions=true -bloom_bits=10 -cache_index_and_filter_blocks=true -pin_l0_filter_and_index_blocks_in_cache=true -multiread_batched=true -multiread_stride=4

Without the change -
multireadrandom :       3.066 micros/op 326122 ops/sec; (29375968 of 29375968 found)

With the change -
multireadrandom :       3.003 micros/op 332945 ops/sec; (29983968 of 29983968 found)
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5314

Differential Revision: D15742108

Pulled By: anand1976

fbshipit-source-id: 220fb0b8eea9a0d602ddeb371528f7af7936d771
2019-06-10 13:31:19 -07:00
..
block_based_filter_block_test.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
block_based_filter_block.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_based_filter_block.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_based_table_builder.cc Add support for timestamp in Get/Put (#5079) 2019-06-05 23:10:47 -07:00
block_based_table_builder.h Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
block_based_table_factory.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
block_based_table_factory.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_based_table_reader.cc Reuse data block iterator in BlockBasedTableReader::MultiGet() (#5314) 2019-06-10 13:31:19 -07:00
block_based_table_reader.h Refactor the handling of cache related counters and statistics (#5408) 2019-06-06 11:36:40 -07:00
block_builder.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_builder.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_prefix_index.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
block_prefix_index.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_test.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
block_type.h Refactor the handling of cache related counters and statistics (#5408) 2019-06-06 11:36:40 -07:00
block.cc Move some logging related files to logging/ (#5387) 2019-05-31 17:23:59 -07:00
block.h Reuse data block iterator in BlockBasedTableReader::MultiGet() (#5314) 2019-06-10 13:31:19 -07:00
cachable_entry.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
data_block_footer.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
data_block_footer.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
data_block_hash_index_test.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
data_block_hash_index.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
data_block_hash_index.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
filter_block.h Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
flush_block_policy.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
flush_block_policy.h Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
full_filter_block_test.cc Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
full_filter_block.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
full_filter_block.h Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00
index_builder.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
index_builder.h simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
partitioned_filter_block_test.cc Move some logging related files to logging/ (#5387) 2019-05-31 17:23:59 -07:00
partitioned_filter_block.cc Refactor the handling of cache related counters and statistics (#5408) 2019-06-06 11:36:40 -07:00
partitioned_filter_block.h Move some memory related files from util/ to memory/ (#5382) 2019-05-30 17:44:09 -07:00