Cached Filesystem Binary Provider
cache-fs binary provider acts as a local LRU cache layer for remote filestores with configurable size and multiReadEnabled.
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 is the filestore layer closest to Artifactory. If the filestore is mounted, place the cache-fs locally on the Artifactory server (if the filestore is already local, cache-fs provides no benefit). In an HA configuration, the cache-fs is mounted, and each node should 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 do not 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 being uploaded (which are saved under cache/_pre); keep extra space 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>Create the folders specified in the configuration before starting Artifactory.
Updated 3 days ago
