rocksdb/table/block_based
Levi Tamasi 092f417037 Move the uncompression dictionary object out of the block cache (#5584)
Summary:
RocksDB has historically stored uncompression dictionary objects in the block
cache as opposed to storing just the block contents. This neccesitated
evicting the object upon table close. With the new code, only the raw blocks
are stored in the cache, eliminating the need for eviction.

In addition, the patch makes the following improvements:

1) Compression dictionary blocks are now prefetched/pinned similarly to
index/filter blocks.
2) A copy operation got eliminated when the uncompression dictionary is
retrieved.
3) Errors related to retrieving the uncompression dictionary are propagated as
opposed to silently ignored.

Note: the patch temporarily breaks the compression dictionary evicition stats.
They will be fixed in a separate phase.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5584

Test Plan: make asan_check

Differential Revision: D16344151

Pulled By: ltamasi

fbshipit-source-id: 2962b295f5b19628f9da88a3fcebbce5a5017a7b
2019-07-23 16:01:44 -07:00
..
block.cc Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
block.h Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
block_based_filter_block.cc Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
block_based_filter_block.h Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
block_based_filter_block_test.cc Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -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 LRU Cache to enable mid-point insertion by default (#5508) 2019-06-27 10:20:57 -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 Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -07:00
block_based_table_reader.h Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -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 Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
block_type.h Make the 'block read count' performance counters consistent (#5484) 2019-06-18 19:03:24 -07:00
cachable_entry.h Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -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.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
data_block_hash_index_test.cc Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
filter_block.h Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
filter_block_reader_common.cc Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
filter_block_reader_common.h Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -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.cc Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
full_filter_block.h Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
full_filter_block_test.cc Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -07:00
index_builder.cc Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
index_builder.h Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
partitioned_filter_block.cc Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -07:00
partitioned_filter_block.h Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
partitioned_filter_block_test.cc Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -07:00
uncompression_dict_reader.cc Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -07:00
uncompression_dict_reader.h Move the uncompression dictionary object out of the block cache (#5584) 2019-07-23 16:01:44 -07:00