rocksdb/table
Siying Dong edcbb36944 Three code-level optimization to Iterator::Next()
Summary:
Three small optimizations:
(1) iter_->IsKeyPinned() shouldn't be called if read_options.pin_data is not true. This may trigger function call all the way down the iterator tree.
(2) reuse the iterator key object in DBIter::FindNextUserEntryInternal(). The constructor of the class has some overheads.
(3) Move the switching direction logic in MergingIterator::Next() to a separate function.

These three in total improves readseq performance by about 3% in my benchmark setting.
Closes https://github.com/facebook/rocksdb/pull/2880

Differential Revision: D5829252

Pulled By: siying

fbshipit-source-id: 991aea10c6d6c3b43769cb4db168db62954ad1e3
2017-09-14 17:57:31 -07:00
..
adaptive_table_factory.cc Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
adaptive_table_factory.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
block_based_filter_block_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
block_based_filter_block.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
block_based_filter_block.h Change RocksDB License 2017-07-15 16:11:23 -07:00
block_based_table_builder.cc support disabling checksum in block-based table 2017-08-23 19:40:47 -07:00
block_based_table_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
block_based_table_factory.cc Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
block_based_table_factory.h Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
block_based_table_reader.cc fix clang bug in block-based table reader 2017-08-23 15:12:05 -07:00
block_based_table_reader.h Extend pin_l0 to filter partitions 2017-08-23 07:56:08 -07:00
block_builder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
block_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
block_prefix_index.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
block_prefix_index.h Change RocksDB License 2017-07-15 16:11:23 -07:00
block_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
block.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
block.h table/block.h: change memset 2017-07-17 10:41:56 -07:00
bloom_block.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
bloom_block.h Change RocksDB License 2017-07-15 16:11:23 -07:00
cleanable_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
cuckoo_table_builder_test.cc allow nullptr Slice only as sentinel 2017-08-23 10:56:06 -07:00
cuckoo_table_builder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
cuckoo_table_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
cuckoo_table_factory.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
cuckoo_table_factory.h Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
cuckoo_table_reader_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
cuckoo_table_reader.cc remove unnecessary internal_comparator param in newIterator 2017-07-27 14:30:42 -07:00
cuckoo_table_reader.h remove unnecessary internal_comparator param in newIterator 2017-07-27 14:30:42 -07:00
filter_block.h Extend pin_l0 to filter partitions 2017-08-23 07:56:08 -07:00
flush_block_policy.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
format.cc support disabling checksum in block-based table 2017-08-23 19:40:47 -07:00
format.h Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
full_filter_bits_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
full_filter_block_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
full_filter_block.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
full_filter_block.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
get_context.cc write-prepared txn: call IsInSnapshot 2017-09-11 09:14:48 -07:00
get_context.h write-prepared txn: call IsInSnapshot 2017-09-11 09:14:48 -07:00
index_builder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
index_builder.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
internal_iterator.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
iter_heap.h Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
iterator_wrapper.h Change RocksDB License 2017-07-15 16:11:23 -07:00
iterator.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
merger_test.cc Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
merging_iterator.cc Three code-level optimization to Iterator::Next() 2017-09-14 17:57:31 -07:00
merging_iterator.h Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
meta_blocks.cc Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
meta_blocks.h Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
mock_table.cc remove unnecessary internal_comparator param in newIterator 2017-07-27 14:30:42 -07:00
mock_table.h remove unnecessary internal_comparator param in newIterator 2017-07-27 14:30:42 -07:00
partitioned_filter_block_test.cc Extend pin_l0 to filter partitions 2017-08-23 07:56:08 -07:00
partitioned_filter_block.cc Extend pin_l0 to filter partitions 2017-08-23 07:56:08 -07:00
partitioned_filter_block.h Extend pin_l0 to filter partitions 2017-08-23 07:56:08 -07:00
persistent_cache_helper.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
persistent_cache_helper.h Change RocksDB License 2017-07-15 16:11:23 -07:00
persistent_cache_options.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_builder.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_factory.cc Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
plain_table_factory.h Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
plain_table_index.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_index.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_key_coding.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
plain_table_key_coding.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_reader.cc Support prefetch last 512KB with direct I/O in block based file reader 2017-08-11 12:16:45 -07:00
plain_table_reader.h remove unnecessary internal_comparator param in newIterator 2017-07-27 14:30:42 -07:00
scoped_arena_iterator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_writer_collectors.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
sst_file_writer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
table_builder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
table_properties_internal.h Change RocksDB License 2017-07-15 16:11:23 -07:00
table_properties.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
table_reader_bench.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
table_reader.h add VerifyChecksum() to db.h 2017-08-09 15:58:13 -07:00
table_test.cc Preload l0 index partitions 2017-08-18 10:56:20 -07:00
two_level_iterator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
two_level_iterator.h Change RocksDB License 2017-07-15 16:11:23 -07:00