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 ch...@apache.org on 2015/09/09 08:19:38 UTC

svn commit: r1701907 - in /jackrabbit/oak/trunk/oak-core: ./ src/main/java/org/apache/jackrabbit/oak/plugins/document/ src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/ src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/ src/t...

Author: chetanm
Date: Wed Sep  9 06:19:38 2015
New Revision: 1701907

URL: http://svn.apache.org/r1701907
Log:
OAK-2937 - Remove code related to directmemory for off heap caching

Removed:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/KryoFactory.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/KryoSerializer.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocOffHeapCache.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/OffHeapCache.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/Serializers.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/
Modified:
    jackrabbit/oak/trunk/oak-core/pom.xml
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java

Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1701907&r1=1701906&r2=1701907&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Wed Sep  9 06:19:38 2015
@@ -246,20 +246,6 @@
       <optional>true</optional>
     </dependency>
 
-    <!-- Required for OffHeap storage and serialization-->
-    <dependency>
-      <groupId>com.esotericsoftware.kryo</groupId>
-      <artifactId>kryo</artifactId>
-      <version>2.22</version>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.directmemory</groupId>
-      <artifactId>directmemory-cache</artifactId>
-      <version>0.2</version>
-      <optional>true</optional>
-    </dependency>
-    
     <!-- Required for the persistent cache -->
     <dependency>
       <groupId>com.h2database</groupId>

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java?rev=1701907&r1=1701906&r2=1701907&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentMK.java Wed Sep  9 06:19:38 2015
@@ -484,7 +484,6 @@ public class DocumentMK {
         private int cacheSegmentCount = DEFAULT_CACHE_SEGMENT_COUNT;
         private int cacheStackMoveDistance = DEFAULT_CACHE_STACK_MOVE_DISTANCE;
         private boolean useSimpleRevision;
-        private long offHeapCacheSize = -1;
         private long maxReplicationLagMillis = TimeUnit.HOURS.toMillis(6);
         private boolean disableBranches;
         private Clock clock = Clock.SIMPLE;
@@ -778,19 +777,6 @@ public class DocumentMK {
             return useSimpleRevision;
         }
 
-        public boolean useOffHeapCache() {
-            return this.offHeapCacheSize > 0;
-        }
-
-        public long getOffHeapCacheSize() {
-            return offHeapCacheSize;
-        }
-
-        public Builder offHeapCacheSize(long offHeapCacheSize) {
-            this.offHeapCacheSize = offHeapCacheSize;
-            return this;
-        }
-
         public Executor getExecutor() {
             if(executor == null){
                 return MoreExecutors.sameThreadExecutor();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java?rev=1701907&r1=1701906&r2=1701907&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java Wed Sep  9 06:19:38 2015
@@ -99,7 +99,6 @@ import org.slf4j.LoggerFactory;
 public class DocumentNodeStoreService {
     private static final String DEFAULT_URI = "mongodb://localhost:27017/oak";
     private static final int DEFAULT_CACHE = 256;
-    private static final int DEFAULT_OFF_HEAP_CACHE = 0;
     private static final int DEFAULT_BLOB_CACHE_SIZE = 16;
     private static final String DEFAULT_DB = "oak";
     private static final String DEFAULT_PERSISTENT_CACHE = "";
@@ -181,8 +180,6 @@ public class DocumentNodeStoreService {
     )
     private static final String PROP_CACHE_STACK_MOVE_DISTANCE = "cacheStackMoveDistance";
 
-    private static final String PROP_OFF_HEAP_CACHE = "offHeapCache";
-
     @Property(intValue =  DEFAULT_BLOB_CACHE_SIZE,
             label = "Blob Cache Size (in MB)",
             description = "Cache size to store blobs in memory. Used only with default BlobStore " +
@@ -343,7 +340,6 @@ public class DocumentNodeStoreService {
         String uri = PropertiesUtil.toString(prop(PROP_URI, FWK_PROP_URI), DEFAULT_URI);
         String db = PropertiesUtil.toString(prop(PROP_DB, FWK_PROP_DB), DEFAULT_DB);
 
-        int offHeapCache = toInteger(prop(PROP_OFF_HEAP_CACHE), DEFAULT_OFF_HEAP_CACHE);
         int cacheSize = toInteger(prop(PROP_CACHE), DEFAULT_CACHE);
         int nodeCachePercentage = toInteger(prop(PROP_NODE_CACHE_PERCENTAGE), DEFAULT_NODE_CACHE_PERCENTAGE);
         int childrenCachePercentage = toInteger(prop(PROP_CHILDREN_CACHE_PERCENTAGE), DEFAULT_CHILDREN_CACHE_PERCENTAGE);
@@ -364,7 +360,6 @@ public class DocumentNodeStoreService {
                         diffCachePercentage).
                 setCacheSegmentCount(cacheSegmentCount).
                 setCacheStackMoveDistance(cacheStackMoveDistance).
-                offHeapCacheSize(offHeapCache * MB).
                 setLeaseCheck(true /* OAK-2739: enabled by default */);
 
         if (persistentCache != null && persistentCache.length() > 0) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1701907&r1=1701906&r2=1701907&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java Wed Sep  9 06:19:38 2015
@@ -67,9 +67,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation;
 import org.apache.jackrabbit.oak.plugins.document.UpdateUtils;
 import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats;
-import org.apache.jackrabbit.oak.plugins.document.cache.ForwardingListener;
-import org.apache.jackrabbit.oak.plugins.document.cache.NodeDocOffHeapCache;
-import org.apache.jackrabbit.oak.plugins.document.cache.OffHeapCache;
 import org.apache.jackrabbit.oak.plugins.document.mongo.CacheInvalidator.InvalidationResult;
 import org.apache.jackrabbit.oak.plugins.document.util.StringValue;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
@@ -248,13 +245,8 @@ public class MongoDocumentStore implemen
         options.put("unique", Boolean.FALSE);
         this.journal.ensureIndex(index, options);
 
-        // TODO expire entries if the parent was changed
-        if (builder.useOffHeapCache()) {
-            nodesCache = createOffHeapCache(builder);
-        } else {
-            nodesCache = builder.buildDocumentCache(this);
-        }
 
+        nodesCache = builder.buildDocumentCache(this);
         cacheStats = new CacheStats(nodesCache, "Document-Documents", builder.getWeigher(),
                 builder.getDocumentCacheSize());
         LOG.info("Configuration maxReplicationLagMillis {}, " +
@@ -282,20 +274,6 @@ public class MongoDocumentStore implemen
         return version;
     }
 
-    private Cache<CacheValue, NodeDocument> createOffHeapCache(
-            DocumentMK.Builder builder) {
-        ForwardingListener<CacheValue, NodeDocument> listener = ForwardingListener.newInstance();
-
-        Cache<CacheValue, NodeDocument> primaryCache = CacheBuilder.newBuilder()
-                .weigher(builder.getWeigher())
-                .maximumWeight(builder.getDocumentCacheSize())
-                .removalListener(listener)
-                .recordStats()
-                .build();
-
-        return new NodeDocOffHeapCache(primaryCache, listener, builder, this);
-    }
-
     @Override
     public void finalize() throws Throwable {
         super.finalize();
@@ -1134,17 +1112,10 @@ public class MongoDocumentStore implemen
     }
 
     Iterable<? extends Map.Entry<CacheValue, ? extends CachedNodeDocument>> getCacheEntries() {
-        if (nodesCache instanceof OffHeapCache) {
-            return Iterables.concat(nodesCache.asMap().entrySet(), ((OffHeapCache) nodesCache).offHeapEntriesMap().entrySet());
-        }
         return nodesCache.asMap().entrySet();
     }
 
     CachedNodeDocument getCachedNodeDoc(String id) {
-        if (nodesCache instanceof OffHeapCache) {
-            return ((OffHeapCache) nodesCache).getCachedDocument(id);
-        }
-
         return nodesCache.getIfPresent(new StringValue(id));
     }