Enum RocksDBBlockCacheImplementations

    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      CLOCK
      ClockCache implements the CLOCK algorithm.
      LRU
      Each shard of the cache maintains its own LRU list and its own hash table for lookup.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static RocksDBBlockCacheImplementations valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name.
      static RocksDBBlockCacheImplementations[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      • Methods inherited from class java.lang.Enum

        clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Enum Constant Detail

      • CLOCK

        public static final RocksDBBlockCacheImplementations CLOCK
        ClockCache implements the CLOCK algorithm. Each shard of the clock cache maintains a circular list of cache entries. A clock handle runs over the circular list looking for unpinned entries to evict, but also giving each entry a second chance to stay in cache if it has been used since last scan. The benefit over LRUCache is it has finer-granularity locking. In case of LRU cache, the per-shard mutex has to be locked even on lookup, since it needs to update its LRU-list. Looking up from a clock cache won't require locking per-shard mutex, but only looking up the concurrent hash map, which has fine-granularity locking. Only inserts needs to lock the per-shard mutex.
      • LRU

        public static final RocksDBBlockCacheImplementations LRU
        Each shard of the cache maintains its own LRU list and its own hash table for lookup. Synchronization is done via a per-shard mutex. Both lookup and insert to the cache would require a locking mutex of the shard.
    • Method Detail

      • values

        public static RocksDBBlockCacheImplementations[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (RocksDBBlockCacheImplementations c : RocksDBBlockCacheImplementations.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static RocksDBBlockCacheImplementations valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null