rocksdb/cache
Guido Tagliavini Ponce 6a160e1fec Lock-free ClockCache (#10390)
Summary:
ClockCache completely free of locks. As part of this PR we have also pushed clock algorithm functionality out of ClockCacheShard into ClockHandleTable, so that ClockCacheShard acts more as an interface and less as an actual data structure.

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

Test Plan:
- ``make -j24 check``
- ``make -j24 CRASH_TEST_EXT_ARGS="--duration=960 --cache_type=clock_cache --cache_size=1073741824 --block_size=16384" blackbox_crash_test_with_atomic_flush``

Reviewed By: pdillinger

Differential Revision: D38106945

Pulled By: guidotag

fbshipit-source-id: 6cbf6bd2397dc9f582809ccff5118a8a33ea6cb1
2022-07-25 10:02:19 -07:00
..
cache.cc Enable SecondaryCache::CreateFromString to create sec cache based on the uri for CompressedSecondaryCache (#10132) 2022-06-10 12:23:10 -07:00
cache_bench.cc Add (& fix) some simple source code checks (#8821) 2021-09-07 21:19:27 -07:00
cache_bench_tool.cc Add lean option to cache_bench (#10363) 2022-07-15 09:33:32 -07:00
cache_entry_roles.cc Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00
cache_entry_roles.h Expose `CacheEntryRole` and map keys for block cache stat collections (#9838) 2022-04-14 09:38:55 -07:00
cache_entry_stats.h New stable, fixed-length cache keys (#9126) 2021-12-16 17:15:13 -08:00
cache_helpers.h Eliminate the copying of blobs when serving reads from the cache (#10297) 2022-07-06 18:57:29 -07:00
cache_key.cc Enhance new cache key testing & comments (#9329) 2022-02-04 14:15:58 -08:00
cache_key.h Fix key size in cache_bench (#10234) 2022-06-23 11:26:50 -07:00
cache_reservation_manager.cc Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00
cache_reservation_manager.h Account memory of FileMetaData in global memory limit (#9924) 2022-06-14 13:06:40 -07:00
cache_reservation_manager_test.cc Have Cache use Status::MemoryLimit (#10262) 2022-07-06 14:41:46 -07:00
cache_test.cc Temporarily return a LRUCache from NewClockCache (#10351) 2022-07-13 08:45:44 -07:00
charged_cache.cc Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00
charged_cache.h Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00
clock_cache.cc Lock-free ClockCache (#10390) 2022-07-25 10:02:19 -07:00
clock_cache.h Lock-free ClockCache (#10390) 2022-07-25 10:02:19 -07:00
compressed_secondary_cache.cc Add the secondary cache information into LRUCache:: GetPrintableOptions (#10346) 2022-07-13 12:30:44 -07:00
compressed_secondary_cache.h Prevent double caching in the compressed secondary cache (#9747) 2022-04-11 13:28:33 -07:00
compressed_secondary_cache_test.cc Enable SecondaryCache::CreateFromString to create sec cache based on the uri for CompressedSecondaryCache (#10132) 2022-06-10 12:23:10 -07:00
fast_lru_cache.cc Lock-free Lookup and Release in ClockCache (#10347) 2022-07-15 22:36:58 -07:00
fast_lru_cache.h Clock cache (#10273) 2022-06-29 21:50:39 -07:00
lru_cache.cc Support using secondary cache with the blob cache (#10349) 2022-07-16 03:54:37 -07:00
lru_cache.h Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00
lru_cache_test.cc Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00
sharded_cache.cc Update Cache::Release param from force_erase to erase_if_last_ref (#9728) 2022-03-22 10:22:18 -07:00
sharded_cache.h Charge blob cache usage against the global memory limit (#10321) 2022-07-18 23:26:57 -07:00