rocksdb/table
anand76 54aebb2cc5 Fix cache metrics update when secondary cache is used (#10440)
Summary:
If a secondary cache is configured, its possible that a cache lookup will get a hit in the secondary cache. In that case, the ```LRUCacheShard::Lookup``` doesn't immediately update the ```total_charge``` for the item handle if the ```wait``` parameter is false (i.e caller will call later to check the completeness). However, ```BlockBasedTable::GetEntryFromCache``` assumes the handle is complete and calls ```UpdateCacheHitMetrics```, which checks the usage of the cache item and fails the assert in https://github.com/facebook/rocksdb/blob/main/cache/lru_cache.h#L237 (```assert(total_charge >= meta_charge)```).

To fix this, we call ```UpdateCacheHitMetrics``` later in ```MultiGet```, after waiting for all cache lookup completions.

Test plan -
Run crash test with changes from https://github.com/facebook/rocksdb/issues/10160

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10440

Reviewed By: gitbw95

Differential Revision: D38283968

Pulled By: anand1976

fbshipit-source-id: 31c54ef43517726c6e5fdda81899b364241dd7e1
2022-07-29 14:24:44 -07:00
..
adaptive More refactoring ahead of footer & meta changes (#9240) 2021-12-10 08:13:26 -08:00
block_based Fix cache metrics update when secondary cache is used (#10440) 2022-07-29 14:24:44 -07:00
cuckoo Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
plain Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
block_fetcher.cc Provide support for direct_reads with async_io (#10197) 2022-07-06 11:42:59 -07:00
block_fetcher.h Seek parallelization (#9994) 2022-05-20 16:09:33 -07:00
block_fetcher_test.cc Make MemoryAllocator into a Customizable class (#8980) 2021-12-17 04:20:47 -08:00
cleanable_test.cc Eliminate unnecessary (slow) block cache Ref()ing in MultiGet (#9899) 2022-04-26 21:59:24 -07:00
format.cc Set Read rate limiter priority dynamically and pass it to FS (#9996) 2022-05-18 19:41:44 -07:00
format.h Remove code that only compiles for Visual Studio versions older than 2015 (#10065) 2022-05-26 16:55:08 -07:00
get_context.cc Have Cache use Status::MemoryLimit (#10262) 2022-07-06 14:41:46 -07:00
get_context.h Add API for writing wide-column entities (#10242) 2022-06-25 15:30:47 -07:00
internal_iterator.h Make InternalKeyComparator not configurable (#10342) 2022-07-14 10:09:31 -07:00
iter_heap.h
iterator.cc Eliminate unnecessary (slow) block cache Ref()ing in MultiGet (#9899) 2022-04-26 21:59:24 -07:00
iterator_wrapper.h
merger_test.cc
merging_iterator.cc Seek parallelization (#9994) 2022-05-20 16:09:33 -07:00
merging_iterator.h
meta_blocks.cc Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
meta_blocks.h Tests for filter compatibility (#9773) 2022-04-06 15:54:40 -07:00
mock_table.cc Add rate limiter priority to ReadOptions (#9424) 2022-02-16 23:18:14 -08:00
mock_table.h
multiget_context.h Point-lookup returns timestamps of Delete and SingleDelete (#10056) 2022-06-03 20:00:42 -07:00
persistent_cache_helper.cc New stable, fixed-length cache keys (#9126) 2021-12-16 17:15:13 -08:00
persistent_cache_helper.h
persistent_cache_options.h Use STATIC_AVOID_DESTRUCTION for static objects with non-trivial destructors (#9958) 2022-05-17 09:39:22 -07:00
scoped_arena_iterator.h Remove code that only compiles for Visual Studio versions older than 2015 (#10065) 2022-05-26 16:55:08 -07:00
sst_file_dumper.cc Remove customized naming from InternalKeyComparator (#10343) 2022-07-12 13:30:35 -07:00
sst_file_dumper.h Support using ZDICT_finalizeDictionary to generate zstd dictionary (#9857) 2022-05-20 12:09:09 -07:00
sst_file_reader.cc Fast path for detecting unchanged prefix_extractor (#9407) 2022-01-21 11:37:46 -08:00
sst_file_reader_test.cc Use the comparator from the sst file table properties in sst_dump_tool (#9491) 2022-02-08 12:15:35 -08:00
sst_file_writer.cc Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
sst_file_writer_collectors.h Remove own ToString() (#9955) 2022-05-06 13:03:58 -07:00
table_builder.h Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
table_factory.cc Restore Regex support for ObjectLibrary::Register, rename new APIs to allow old one to be deprecated in the future (#9362) 2022-01-11 06:33:48 -08:00
table_properties.cc Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
table_properties_internal.h Improve / clean up meta block code & integrity (#9163) 2021-11-18 11:43:44 -08:00
table_reader.h Improve SubCompaction Partitioning (#10393) 2022-07-23 17:38:49 -07:00
table_reader_bench.cc Fast path for detecting unchanged prefix_extractor (#9407) 2022-01-21 11:37:46 -08:00
table_reader_caller.h
table_test.cc Improve SubCompaction Partitioning (#10393) 2022-07-23 17:38:49 -07:00
two_level_iterator.cc
two_level_iterator.h
unique_id.cc Track SST unique id in MANIFEST and verify (#9990) 2022-05-19 11:04:21 -07:00
unique_id_impl.h Track SST unique id in MANIFEST and verify (#9990) 2022-05-19 11:04:21 -07:00