rocksdb/table
Maysam Yabandeh 638d239507 Charge block cache for cache internal usage (#5797)
Summary:
For our default block cache, each additional entry has extra memory overhead. It include LRUHandle (72 bytes currently) and the cache key (two varint64, file id and offset). The usage is not negligible. For example for block_size=4k, the overhead accounts for an extra 2% memory usage for the cache. The patch charging the cache for the extra usage, reducing untracked memory usage outside block cache. The feature is enabled by default and can be disabled by passing kDontChargeCacheMetadata to the cache constructor.
This PR builds up on https://github.com/facebook/rocksdb/issues/4258
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5797

Test Plan:
- Existing tests are updated to either disable the feature when the test has too much dependency on the old way of accounting the usage or increasing the cache capacity to account for the additional charge of metadata.
- The Usage tests in cache_test.cc are augmented to test the cache usage under kFullChargeCacheMetadata.

Differential Revision: D17396833

Pulled By: maysamyabandeh

fbshipit-source-id: 7684ccb9f8a40ca595e4f5efcdb03623afea0c6f
2019-09-16 15:26:21 -07:00
..
adaptive Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
block_based Charge block cache for cache internal usage (#5797) 2019-09-16 15:26:21 -07:00
cuckoo Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
plain Revert changes from PR#5784 accidentally in PR#5780 (#5810) 2019-09-16 11:38:53 -07:00
block_fetcher.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
block_fetcher.h Combine the read-ahead logic for user reads and compaction reads (#5431) 2019-06-19 14:10:46 -07:00
cleanable_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
format.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
format.h Charge block cache for cache internal usage (#5797) 2019-09-16 15:26:21 -07:00
full_filter_bits_builder.h Revert changes from PR#5784 accidentally in PR#5780 (#5810) 2019-09-16 11:38:53 -07:00
get_context.cc New API to get all merge operands for a Key (#5604) 2019-08-06 14:26:44 -07:00
get_context.h Fix local includes 2019-08-22 16:21:47 -07:00
internal_iterator.h Use delete to disable automatic generated methods. (#5009) 2019-09-11 18:09:00 -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 Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
iterator.cc Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
merger_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
merging_iterator.cc merging_iterator.cc: Small refactoring (#5793) 2019-09-13 16:01:13 -07:00
merging_iterator.h Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
meta_blocks.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
meta_blocks.h Fix comment of function NotifyCollectTableCollectorsOnFinish (#5738) 2019-08-29 10:57:01 -07:00
mock_table.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
mock_table.h Optimizing ApproximateSize to create index iterator just once (#5693) 2019-08-16 14:18:28 -07:00
multiget_context.h Support row cache with batched MultiGet (#5706) 2019-08-28 16:11:56 -07:00
persistent_cache_helper.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -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
scoped_arena_iterator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sst_file_reader_test.cc simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
sst_file_reader.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
sst_file_writer_collectors.h Fix SstFileReader not able to open ingested file (#5097) 2019-03-26 10:25:18 -07:00
sst_file_writer.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
table_builder.h Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
table_properties_internal.h Index value delta encoding (#3983) 2018-08-09 16:58:40 -07:00
table_properties.cc Organizing rocksdb/table directory by format 2019-05-30 14:51:11 -07:00
table_reader_bench.cc Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
table_reader_caller.h Add more callers for table reader. (#5454) 2019-06-20 14:31:48 -07:00
table_reader.h Do readahead in VerifyChecksum() (#5713) 2019-08-16 16:42:56 -07:00
table_test.cc Charge block cache for cache internal usage (#5797) 2019-09-16 15:26:21 -07:00
two_level_iterator.cc Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00
two_level_iterator.h Add an option to put first key of each sst block in the index (#5289) 2019-06-24 20:54:04 -07:00