Class DfsBlockCacheConfig
java.lang.Object
org.eclipse.jgit.internal.storage.dfs.DfsBlockCacheConfig
Configuration parameters for
DfsBlockCache
.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Consumer of DfsBlockCache loading and eviction events for indexes. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate long
private int
private int
static final int
Default number of max cache hits.static final int
1024 (number of bytes in one kibibyte/kilobyte)static final int
1024KB
(number of bytes in one mebibyte/megabyte)private double
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfromConfig
(Config rc) Update properties by setting fields from the configuration.long
Get maximum number bytes of heap memory to dedicate to caching pack file data.int
Get size in bytes of a single window mapped or read in from the pack file.Get the map of hot count per pack extension forDfsBlockCache
.int
Get the estimated number of threads concurrently accessing the cache.Get the consumer of cache index events.Get the consumer of the object reference lock wait time in milliseconds.double
Get highest percentage ofgetBlockLimit()
a single pack can occupy while being copied by the pack reuse strategy.setBlockLimit
(long newLimit) Set maximum number bytes of heap memory to dedicate to caching pack file data.setBlockSize
(int newSize) Set size in bytes of a single window read in from the pack file.setCacheHotMap
(Map<PackExt, Integer> cacheHotMap) Set the map of hot count per pack extension forDfsBlockCache
.setConcurrencyLevel
(int newConcurrencyLevel) Set the estimated number of threads concurrently accessing the cache.setIndexEventConsumer
(DfsBlockCacheConfig.IndexEventConsumer indexEventConsumer) Set the consumer of cache index events.Set the consumer for lock wait time.setStreamRatio
(double ratio) Set percentage of cache to occupy with a copied pack.
-
Field Details
-
KB
public static final int KB1024 (number of bytes in one kibibyte/kilobyte)- See Also:
-
MB
public static final int MB1024KB
(number of bytes in one mebibyte/megabyte)- See Also:
-
DEFAULT_CACHE_HOT_MAX
public static final int DEFAULT_CACHE_HOT_MAXDefault number of max cache hits.- See Also:
-
blockLimit
private long blockLimit -
blockSize
private int blockSize -
streamRatio
private double streamRatio -
concurrencyLevel
private int concurrencyLevel -
refLock
-
cacheHotMap
-
indexEventConsumer
-
-
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
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 byfromConfig(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
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
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 ofgetBlockLimit()
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
Set percentage of cache to occupy with a copied pack.- Parameters:
ratio
- percentage of cache to occupy with a copied pack.- Returns:
this
-
getRefLockWaitTimeConsumer
Get the consumer of the object reference lock wait time in milliseconds.- Returns:
- consumer of wait time in milliseconds.
-
setRefLockWaitTimeConsumer
Set the consumer for lock wait time.- Parameters:
c
- consumer of wait time in milliseconds.- Returns:
this
-
getCacheHotMap
Get the map of hot count per pack extension forDfsBlockCache
.- Returns:
- map of hot count per pack extension for
DfsBlockCache
.
-
setCacheHotMap
Set the map of hot count per pack extension forDfsBlockCache
.- Parameters:
cacheHotMap
- map of hot count per pack extension forDfsBlockCache
.- Returns:
this
-
getIndexEventConsumer
Get the consumer of cache index events.- Returns:
- consumer of cache index events.
-
setIndexEventConsumer
public DfsBlockCacheConfig setIndexEventConsumer(DfsBlockCacheConfig.IndexEventConsumer indexEventConsumer) Set the consumer of cache index events.- Parameters:
indexEventConsumer
- consumer of cache index events.- Returns:
this
-
fromConfig
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
-