A caching data store that consists of {@link LocalCache} and {@link Backend}. {@link Backend} is single source of truth. All methods first try to fetchinformation from {@link LocalCache}. If record is not available in {@link LocalCache}, then it is fetched from {@link Backend} and saved to{@link LocalCache} for further access. This class is designed to work without{@link LocalCache} and then all information is fetched from {@link Backend}. To disable {@link LocalCache} set {@link #setCacheSize(long)} to 0. Configuration:
<DataStore class="org.apache.jackrabbit.aws.ext.ds.CachingDataStore"> <param name=" {@link #setPath(String) path}" value="/data/datastore"/> <param name=" {@link #setConfig(String) config}" value="${rep.home}/backend.properties"/> <param name=" {@link #setCacheSize(long) cacheSize}" value="68719476736"/> <param name=" {@link #setSecret(String) secret}" value="123456"/> <param name=" {@link #setCachePurgeTrigFactor(double)}" value="0.95d"/> <param name=" {@link #setCachePurgeResizeFactor(double) cacheSize}" value="0.85d"/> <param name=" {@link #setMinRecordLength(int) minRecordLength}" value="1024"/> <param name=" {@link #setContinueOnAsyncUploadFailure(boolean) continueOnAsyncUploadFailure}" value="false"/> <param name=" {@link #setConcurrentUploadsThreads(int) concurrentUploadsThreads}" value="10"/> <param name=" {@link #setAsyncUploadLimit(int) asyncUploadLimit}" value="100"/> <param name=" {@link #setUploadRetries(int) uploadRetries}" value="3"/> </DataStore>