Overview

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 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.

This page provides you with the information about a specific binary provider. For more information on filestores and the various filestores that you can use, see Configuring the Filestore.


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-fstemplate looks like under the hood. 

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:

type
cache-fs
maxCacheSize

Default: 5000000000 (5GB)

The maximum storage allocated for the cache in bytes. Please note that 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 _pre folder.
cacheProviderDir

Default: cache

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.

Example: Configure 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.