• Y
    LRU cache mid-point insertion · 72f8cc70
    Yi Wu 提交于
    Summary:
    Add mid-point insertion functionality to LRU cache. Caller of `Cache::Insert()` can set an additional parameter to make a cache entry have higher priority. The LRU cache will reserve at most `capacity * high_pri_pool_pct` bytes for high-pri cache entries. If `high_pri_pool_pct` is zero, the cache degenerates to normal LRU cache.
    
    Context: If we are to put index and filter blocks into RocksDB block cache, index/filter block can be swap out too early. We want to add an option to RocksDB to reserve some capacity in block cache just for index/filter blocks, to mitigate the issue.
    
    In later diffs I'll update block based table reader to use the interface to cache index/filter blocks at high priority, and expose the option to `DBOptions` and make it dynamic changeable.
    
    Test Plan: unit test.
    
    Reviewers: IslamAbdelRahman, sdong, lightmark
    
    Reviewed By: lightmark
    
    Subscribers: andrewkr, dhruba, march, leveldb
    
    Differential Revision: https://reviews.facebook.net/D61977
    72f8cc70
Makefile 48.0 KB