Class DfsBlockCacheConfig

java.lang.Object
org.eclipse.jgit.internal.storage.dfs.DfsBlockCacheConfig

public class DfsBlockCacheConfig extends Object
Configuration parameters for DfsBlockCache.
  • Field Details

    • KB

      public static final int KB
      1024 (number of bytes in one kibibyte/kilobyte)
      See Also:
    • MB

      public static final int MB
      1024 KB (number of bytes in one mebibyte/megabyte)
      See Also:
    • blockLimit

      private long blockLimit
    • blockSize

      private int blockSize
    • streamRatio

      private double streamRatio
    • concurrencyLevel

      private int concurrencyLevel
    • refLock

      private Consumer<Long> refLock
  • Constructor Details

    • DfsBlockCacheConfig

      public DfsBlockCacheConfig()
      Create a default configuration.
  • Method Details

    • getBlockLimit

      public long getBlockLimit()
      Get maximum number bytes of heap memory to dedicate to caching pack file data.
      Returns:
      maximum number bytes of heap memory to dedicate to caching pack file data. Default is 32 MB.
    • setBlockLimit

      public DfsBlockCacheConfig setBlockLimit(long newLimit)
      Set maximum number bytes of heap memory to dedicate to caching pack file data.

      It is strongly recommended to set the block limit to be an integer multiple of the block size. This constraint is not enforced by this method (since it may be called before setBlockSize(int)), but it is enforced by fromConfig(Config).

      Parameters:
      newLimit - maximum number bytes of heap memory to dedicate to caching pack file data; must be positive.
      Returns:
      this
    • getBlockSize

      public int getBlockSize()
      Get size in bytes of a single window mapped or read in from the pack file.
      Returns:
      size in bytes of a single window mapped or read in from the pack file. Default is 64 KB.
    • setBlockSize

      public DfsBlockCacheConfig setBlockSize(int newSize)
      Set size in bytes of a single window read in from the pack file.
      Parameters:
      newSize - size in bytes of a single window read in from the pack file. The value must be a power of 2.
      Returns:
      this
    • getConcurrencyLevel

      public int getConcurrencyLevel()
      Get the estimated number of threads concurrently accessing the cache.
      Returns:
      the estimated number of threads concurrently accessing the cache. Default is 32.
    • setConcurrencyLevel

      public DfsBlockCacheConfig setConcurrencyLevel(int newConcurrencyLevel)
      Set the estimated number of threads concurrently accessing the cache.
      Parameters:
      newConcurrencyLevel - the estimated number of threads concurrently accessing the cache.
      Returns:
      this
    • getStreamRatio

      public double getStreamRatio()
      Get highest percentage of getBlockLimit() a single pack can occupy while being copied by the pack reuse strategy.
      Returns:
      highest percentage of getBlockLimit() a single pack can occupy while being copied by the pack reuse strategy. Default is 0.30, or 30%.
    • setStreamRatio

      public DfsBlockCacheConfig setStreamRatio(double ratio)
      Set percentage of cache to occupy with a copied pack.
      Parameters:
      ratio - percentage of cache to occupy with a copied pack.
      Returns:
      this
    • getRefLockWaitTimeConsumer

      public Consumer<Long> getRefLockWaitTimeConsumer()
      Get the consumer of the object reference lock wait time in milliseconds.
      Returns:
      consumer of wait time in milliseconds.
    • setRefLockWaitTimeConsumer

      public DfsBlockCacheConfig setRefLockWaitTimeConsumer(Consumer<Long> c)
      Set the consumer for lock wait time.
      Parameters:
      c - consumer of wait time in milliseconds.
      Returns:
      this
    • fromConfig

      public DfsBlockCacheConfig fromConfig(Config rc)
      Update properties by setting fields from the configuration.

      If a property is not defined in the configuration, then it is left unmodified.

      Enforces certain constraints on the combination of settings in the config, for example that the block limit is a multiple of the block size.

      Parameters:
      rc - configuration to read properties from.
      Returns:
      this