Eventual-Cluster Binary Provider Overview

This binary provider is not independent and will always be used as part of a template chain for a remote filestore that may exhibit upload latency (for example, S3 or GCS). To overcome potential latency, files are first written to a folder called “eventual” under the baseDataDir in local storage, and then later uploaded to persistent storage with the cloud provider.

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.

Eventual-Cluster Binary Provider Configuration

The default location of the  eventual folder is under the $JFROG_HOME/artifactory/data/artifactory folder  and is not configurable. You need to make sure that Artifactory has full read/write permissions to this location.

There are two additional folders under the eventual folder:

  • _pre: part of the persistence mechanism that ensures all files are valid before being uploaded to the remote filestore
  • _queue: handles all actions on files that will reach the remote filestore
id
eventual-cluster
addStalePeriod

Default: 300000 ms

The amount of time to wait before anaddaction is deemed stale when trying to handle the addition of a file that is not present in Artifactory.

maxWorkers

Default: 5

The number of worker threads employed by this provider. These threads handle all actions against the remote filestore.

dispatcherInterval

Default: 1000 ms

The time to wait between scans of the eventual directory.

checkPeriod

Default: 15000 ms

The minimum time to wait between trying to re-activate the provider if it had fatal errors at any point.

zone
The name of the sharding zone the provider is a part of (only applicable under a sharding provider)

Eventual-Cluster Binary Provider Example

The configuration below uses the google-storage chain template and configures 10 parallel threads for uploading and a scan time of 1 second.

<config version="v1">
    <chain template="google-storage"/>
    <provider id="google-storage" type="google-storage">
        <endpoint>commondatastorage.googleapis.com</endpoint>
        <bucketName><BUCKET NAME></bucketName> 
        <identity>XXXXXX</identity>
        <credential>XXXXXXX</credential>
        <property name=”httpclient.max-connections” value=150></property>
    </provider>
  
    <provider id="eventual-cluster" type="eventual-cluster">
        <maxWorkers>5</maxWorkers>
        <dispatcherInterval>1000</dispatcherInterval>
        <checkPeriod>15000</checkPeriod>
        <addStalePeriod>300000</addStalePeriod>
        <zone>local</zone>
    </provider>
</config>