Cached Filesystem Binary Provider
The cache-fs serves as a binary cache that uses LRU (Least Recently Used) as its cleanup protocol.
The cache-fs serves as a binary cache that uses LRU (Least Recently Used) as its cleanup protocol. This can improve Artifactory's performance since frequent requests will be served from the cache-fs (as in the case of the S3 binary provider).
The cache-fs binary provider will be the closest filestore layer of Artifactory. This means that if the filestore is mounted, we would like the cache-fs to be local on the artifactory server itself (if the filestore is local, then cache-fs is meaningless). In the case of an HA configuration, the cache-fs will be mounted and the recommendation is for each node to have its own cache-fs layer.
cache-fs template configuration
If you choose to use the cache-fs template, your binarystore.xml configuration file should look like this:
<config version="v1">
<chain template="cache-fs"/>
</config>What's in the template?
While you don't need to configure anything else in your binarystore.xml, this is what the cache-fs template looks like under the hood.
<chain> <!-- template="cache-fs" -->
<provider id="cache-fs" type="cache-fs">
<provider id="file-system" type="file-system"/>
</provider>
</chain>This example sets the cache-fs size to be 10GB and its location (absolute path since it starts with a "/") to be /cache/filestore.
<config version="v1">
<chain template="cache-fs"/>
<provider id="cache-fs" type="cache-fs">
<cacheProviderDir>/cache/filestore</cacheProviderDir>
<maxCacheSize>10000000000</maxCacheSize>
</provider>
</config>Where:
Parameter | Description |
|---|---|
| cache-fs |
| The maximum storage allocated for the cache in bytes. maxCacheSize does not include files that are in progress of being uploaded (which is saved under cache/_pre); thus it is recommended to keep extra spaces for the _pre folder. Default: 5000000000 (5GB) |
| The root folder of binaries for the filestore cache. If the value specified starts with a forward slash (“/”) it is considered the fully qualified path to the filestore folder. Otherwise, it is considered relative to the baseDataDir. Default: cache |
| The maximum limit in bytes for a binary to be saved in the cache-fs layer. For example, if Default: None (no limit). Available from Artifactory version 7.71.1. |
| If this flag is set to true, binaries will not be saved in the cache-fs during upload requests but rather only when downloading a binary. Default: false (binaries can be added during both download and upload requests) Available from Artifactory version 7.71.1. |
| Default: true When true, optimizes the download of binaries by allowing multiple simultaneous requests for the same binary to be fulfilled from a single fetch operation, which reduces the load on the underlying storage. |
| Default: true When true, validates the checksum of the binary before moving the binary to the cache-fs folder. |
| A temporary folder into which files are written for internal use by Artifactory. If the value specified starts with a forward slash ("/") the value is considered the full path to the temporary folder. Otherwise, it is considered relative to the cacheProviderDir under the baseDataDir.
|
| Default: false This flag determines whether the cleanup of old |
| Default: 86400 seconds (1 day) Determines the interval (in seconds) of how often the cleanup of old |
| Default: 86400 seconds (1 day) The age threshold (in seconds) for when a file become valid for deletion during the cleanup process of |
Example: NFS filestore with caching
The following example shows how you can configure an NFS filestore with caching.
<config version="v1">
<chain>
<provider id="cache-fs" type="cache-fs">
<provider id="file-system" type="file-system"/>
</provider>
</chain>
<provider id="cache-fs" type="cache-fs">
<cacheProviderDir>/path/to/cache/dir</cacheProviderDir>
<maxCacheSize>100000000000</maxCacheSize>
</provider>
<provider id="file-system" type="file-system">
<fileStoreDir>/path/to/filestore/dir</fileStoreDir>
</provider>
</config>Ensure that you create the folders in the configuration before you start Artifactory.
Updated 2 days ago
