Class SizeBasedCacheLimitPolicy

java.lang.Object
org.apache.flink.state.forst.fs.cache.SizeBasedCacheLimitPolicy
All Implemented Interfaces:
CacheLimitPolicy

public class SizeBasedCacheLimitPolicy extends Object implements CacheLimitPolicy
A fixed capacity cache limit policy, which is not thread-safe, and the thread safe should be ensured by the invoker.
  • Constructor Details

    • SizeBasedCacheLimitPolicy

      public SizeBasedCacheLimitPolicy(long capacity, long sstFileSize)
  • Method Details

    • directWriteInCache

      public boolean directWriteInCache()
      Description copied from interface: CacheLimitPolicy
      Whether to support directly write in cache.
      Specified by:
      directWriteInCache in interface CacheLimitPolicy
    • isSafeToAdd

      public boolean isSafeToAdd(long toAddSize)
      Description copied from interface: CacheLimitPolicy
      Whether the cache usage is safe to add.
      Specified by:
      isSafeToAdd in interface CacheLimitPolicy
      Returns:
      false if the toAddSize is larger than max available capacity, true otherwise.
    • isOverflow

      public boolean isOverflow(long toAddSize, boolean hasFile)
      Description copied from interface: CacheLimitPolicy
      Whether the cache usage is exceeded the upperbound.
      Specified by:
      isOverflow in interface CacheLimitPolicy
      Parameters:
      toAddSize - the size about to add.
      hasFile - whether the file is already in cache.
      Returns:
      true if the cache usage is overflow, false otherwise.
    • acquire

      public void acquire(long toAddSize)
      Description copied from interface: CacheLimitPolicy
      Acquire cache.
      Specified by:
      acquire in interface CacheLimitPolicy
    • release

      public void release(long toReleaseSize)
      Description copied from interface: CacheLimitPolicy
      Release cache.
      Specified by:
      release in interface CacheLimitPolicy
    • usedBytes

      public long usedBytes()
      Description copied from interface: CacheLimitPolicy
      Get current used bytes.
      Specified by:
      usedBytes in interface CacheLimitPolicy
      Returns:
      cache bytes.
    • registerCustomizedMetrics

      public void registerCustomizedMetrics(String prefix, org.apache.flink.metrics.MetricGroup metricGroup)
      Description copied from interface: CacheLimitPolicy
      Register customized metrics.
      Specified by:
      registerCustomizedMetrics in interface CacheLimitPolicy
    • toString

      public String toString()
      Overrides:
      toString in class Object