Class SpaceBasedCacheLimitPolicy

  • All Implemented Interfaces:
    CacheLimitPolicy

    public class SpaceBasedCacheLimitPolicy
    extends Object
    implements CacheLimitPolicy
    A space based cache limit policy that leverages the system to check the free space dynamically, the free space may fluctuate in size due to other components. This class is not thread-safe, and the thread safe should be ensured by the invoker.
    • Constructor Detail

      • SpaceBasedCacheLimitPolicy

        public SpaceBasedCacheLimitPolicy​(File instanceBasePath,
                                          long reservedSize,
                                          long baseTargetFileSize)
    • Method Detail

      • worksOn

        public static boolean worksOn​(File instanceBasePath)
      • 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.