1. 08 6月, 2016 1 次提交
    • K
      Persistent Read Cache (5) Volatile cache tier implementation · d755c62f
      krad 提交于
      Summary:
      This provides provides an implementation of PersistentCacheTier that is
      specialized for RAM. This tier does not persist data though.
      
      Why do we need this tier ?
      
      This is ideal as tier 0. This tier can host data that is too hot.
      
      Why can't we use Cache variants ?
      
      Yes you can use them instead. This tier can potentially outperform BlockCache
      in RAW mode by virtue of compression and compressed cache in block cache doesn't
      seem very popular. Potentially this tier can be modified to under stand the
      disadvantage of the tier below and retain data that the tier below is bad at
      handling (for example index and bloom data that is huge in size)
      
      Test Plan: Run unit tests added
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D57069
      d755c62f
  2. 03 6月, 2016 1 次提交
  3. 23 5月, 2016 1 次提交
  4. 18 5月, 2016 1 次提交
    • K
      Persistent Read Cache (Part 2) Data structure for building persistent read cache index · 1f0142ce
      krad 提交于
      Summary:
      We expect the persistent read cache to perform at speeds upto 8 GB/s. In order
      to accomplish that, we need build a index mechanism which operate in the order
      of multiple millions per sec rate.
      
      This patch provide the basic data structure to accomplish that:
      
      (1) Hash table implementation with lock contention spread
          It is based on the StripedHashSet<T> implementation in
          The Art of multiprocessor programming by Maurice Henry & Nir Shavit
      (2) LRU implementation
          Place holder algorithm for further optimizing
      (3) Evictable Hash Table implementation
          Building block for building index data structure that evicts data like files
          etc
      
      TODO:
      (1) Figure if the sharded hash table and LRU can be used instead
      (2) Figure if we need to support configurable eviction algorithm for
      EvictableHashTable
      
      Test Plan: Run unit tests
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D55785
      1f0142ce