You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2016/10/25 04:02:11 UTC

svn commit: r1766468 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob: FileCache.java UploadStagingCache.java

Author: amitj
Date: Tue Oct 25 04:02:11 2016
New Revision: 1766468

URL: http://svn.apache.org/viewvc?rev=1766468&view=rev
Log:
OAK-4979: Caching sub-system implementation for DataStore

* Empty initialization when 0 configured as cache size

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCache.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java?rev=1766468&r1=1766467&r2=1766468&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java Tue Oct 25 04:02:11 2016
@@ -65,13 +65,13 @@ public class FileCache extends AbstractC
     /**
      * The cacheRoot directory of the cache.
      */
-    private final File cacheRoot;
+    private File cacheRoot;
 
-    private final CacheLIRS<String, File> cache;
+    private CacheLIRS<String, File> cache;
 
-    private final FileCacheStats cacheStats;
+    private FileCacheStats cacheStats;
 
-    private final ExecutorService executor;
+    private ExecutorService executor;
 
     /**
      * Convert the size calculation to KB to support max file size of 2 TB
@@ -148,12 +148,15 @@ public class FileCache extends AbstractC
         this.executor.submit(new CacheBuildJob());
     }
 
+    private FileCache() {
+    }
+
     public static FileCache build(long maxSize /* bytes */, File root,
         final CacheLoader<String, InputStream> loader, @Nullable final ExecutorService executor) {
         if (maxSize > 0) {
             return new FileCache(maxSize, root, loader, executor);
         }
-        return new FileCache(maxSize, root, loader, executor) {
+        return new FileCache() {
             @Override public void put(String key, File file) {
             }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCache.java?rev=1766468&r1=1766467&r2=1766468&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCache.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCache.java Tue Oct 25 04:02:11 2016
@@ -85,12 +85,12 @@ public class UploadStagingCache implemen
     /**
      * Max size of the upload staging cache in bytes
      */
-    private final long size;
+    private long size;
 
     /**
      * Current cache size in bytes
      */
-    private final AtomicLong currentSize;
+    private AtomicLong currentSize;
 
     /**
      * Executor for async uploads
@@ -105,33 +105,33 @@ public class UploadStagingCache implemen
     /**
      * In memory map for staged files
      */
-    private final ConcurrentMap<String, File> map;
+    private ConcurrentMap<String, File> map;
 
     /**
      * In memory map for files to be deleted after uploads
      */
-    private final ConcurrentMap<String, File> attic;
+    private ConcurrentMap<String, File> attic;
 
     /**
      * Local directory where uploads are staged
      */
-    private final File uploadCacheSpace;
+    private File uploadCacheSpace;
 
     /**
      * Wrapper to where the blobs are uploaded/written
      */
-    private final StagingUploader uploader;
+    private StagingUploader uploader;
 
     /**
      * Cache stats
      */
-    private final StagingCacheStats cacheStats;
+    private StagingCacheStats cacheStats;
 
     /**
      * Handle for download cache if any
      */
     @Nullable
-    private final FileCache downloadCache;
+    private FileCache downloadCache;
 
     private UploadStagingCache(File dir, int uploadThreads, long size /* bytes */,
         StagingUploader uploader, @Nullable FileCache cache, StatisticsProvider statisticsProvider,
@@ -164,6 +164,9 @@ public class UploadStagingCache implemen
             TimeUnit.SECONDS);
     }
 
+    private UploadStagingCache() {
+    }
+
     public static UploadStagingCache build(File dir, int uploadThreads, long size
         /* bytes */, StagingUploader uploader, @Nullable FileCache cache,
         StatisticsProvider statisticsProvider, @Nullable ListeningExecutorService executor,
@@ -172,8 +175,7 @@ public class UploadStagingCache implemen
             return new UploadStagingCache(dir, uploadThreads, size, uploader, cache,
                 statisticsProvider, executor, scheduledExecutor, purgeInterval);
         }
-        return new UploadStagingCache(dir, uploadThreads, size, uploader, cache,
-            statisticsProvider, executor, scheduledExecutor, purgeInterval) {
+        return new UploadStagingCache() {
             @Override public Optional<SettableFuture<Integer>> put(String id, File input) {
                 return Optional.absent();
             }