rocksdb/table
Andrew Kryczka 3b35134e4b Avoid cache lookups for range deletion meta-block
Summary:
I added the Cache::Ref() function a couple weeks ago (#1761) to make this feature possible. Like other meta-blocks, rep_->range_del_entry holds a cache handle to pin the range deletion block in uncompressed block cache for the duration of the table reader's lifetime. We can reuse this cache handle to create an iterator over this meta-block without any cache lookup. Ref() is used to increment the cache handle's refcount in case the returned iterator outlives the table reader.
Closes https://github.com/facebook/rocksdb/pull/1801

Differential Revision: D4458782

Pulled By: ajkr

fbshipit-source-id: 2883f10
2017-01-26 11:24:13 -08:00
..
adaptive_table_factory.cc solve the problem of table_factory_to_write_=nullptr (#1342) 2016-09-20 10:11:51 -07:00
adaptive_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
block.cc Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
block.h Fix wrong comment (Maximum supported block size) 2016-11-04 11:24:14 -07:00
block_based_filter_block.cc BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
block_based_filter_block.h BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
block_based_filter_block_test.cc Add statistics field to show total size of index and filter blocks in block cache 2016-06-03 10:47:47 -07:00
block_based_table_builder.cc table/block_based_table_builder.cc: intentional fallthrough - comment to match gcc pattern 2016-12-13 13:54:15 -08:00
block_based_table_builder.h Compaction Support for Range Deletion 2016-10-18 12:04:56 -07:00
block_based_table_factory.cc Print cache options to info log 2016-12-22 14:54:19 -08:00
block_based_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
block_based_table_reader.cc Avoid cache lookups for range deletion meta-block 2017-01-26 11:24:13 -08:00
block_based_table_reader.h sst_dump support for range deletion 2016-11-12 09:39:23 -08:00
block_builder.cc Miscellaneous performance improvements 2016-07-12 14:15:32 -07:00
block_builder.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
block_prefix_index.cc Fix clang analyzer errors 2016-07-08 17:50:51 -07:00
block_prefix_index.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
block_test.cc Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
bloom_block.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
bloom_block.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
cleanable_test.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
cuckoo_table_builder.cc Embed column family name in SST file 2016-04-06 23:10:32 -07:00
cuckoo_table_builder.h Embed column family name in SST file 2016-04-06 23:10:32 -07:00
cuckoo_table_builder_test.cc New Statistics to track Compression/Decompression (#1197) 2016-07-19 09:44:03 -07:00
cuckoo_table_factory.cc Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
cuckoo_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
cuckoo_table_reader.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
cuckoo_table_reader.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
cuckoo_table_reader_test.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
filter_block.h BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
flush_block_policy.cc Miscellaneous performance improvements 2016-07-12 14:15:32 -07:00
format.cc Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
format.h Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
full_filter_block.cc BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
full_filter_block.h BlockBasedTable::FullFilterKeyMayMatch() Should skip prefix bloom if full key bloom exists 2016-06-10 16:27:56 -07:00
full_filter_block_test.cc Add statistics field to show total size of index and filter blocks in block cache 2016-06-03 10:47:47 -07:00
get_context.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
get_context.h Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
internal_iterator.h fix assertion failure in Prev() 2016-10-13 17:36:48 -07:00
iter_heap.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
iterator.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
iterator_wrapper.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
merger.cc revert Prev() in MergingIterator to use previous code in non-prefix-seek mode 2016-10-24 13:13:01 -07:00
merger.h revert Prev() in MergingIterator to use previous code in non-prefix-seek mode 2016-10-24 13:13:01 -07:00
merger_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
meta_blocks.cc Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
meta_blocks.h New Statistics to track Compression/Decompression (#1197) 2016-07-19 09:44:03 -07:00
mock_table.cc DeleteRange flush support 2016-10-31 20:54:18 -07:00
mock_table.h Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
persistent_cache_helper.cc Added PersistentCache abstraction 2016-05-15 22:17:18 -07:00
persistent_cache_helper.h Added PersistentCache abstraction 2016-05-15 22:17:18 -07:00
plain_table_builder.cc Allow plain table to store index on file with bloom filter disabled 2016-11-17 11:09:13 -08:00
plain_table_builder.h Embed column family name in SST file 2016-04-06 23:10:32 -07:00
plain_table_factory.cc store prefix_extractor_name in table 2016-08-26 11:46:32 -07:00
plain_table_factory.h Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
plain_table_index.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_index.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
plain_table_key_coding.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_key_coding.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
plain_table_reader.cc Allow plain table to store index on file with bloom filter disabled 2016-11-17 11:09:13 -08:00
plain_table_reader.h Skip bottom-level filter block caching when hit-optimized 2015-12-23 10:15:07 -08:00
scoped_arena_iterator.h Compaction Support for Range Deletion 2016-10-18 12:04:56 -07:00
sst_file_writer.cc Allow SstFileWriter to Fadvise the file away from page cache 2016-12-29 15:09:19 -08:00
sst_file_writer_collectors.h Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
table_builder.h Add TableBuilderOptions::level and relevant changes (#1335) 2016-09-17 22:30:43 -07:00
table_properties.cc Insert range deletion meta-block into block cache 2016-11-05 09:24:26 -07:00
table_properties_internal.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
table_reader.h Range deletion microoptimizations 2016-11-21 12:24:13 -08:00
table_reader_bench.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
table_test.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
two_level_iterator.cc Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
two_level_iterator.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00