You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2012/06/22 13:33:35 UTC

svn commit: r1352849 - in /jackrabbit/trunk/jackrabbit-core/src: main/java/org/apache/jackrabbit/core/persistence/bundle/ main/java/org/apache/jackrabbit/core/persistence/mem/ main/java/org/apache/jackrabbit/core/persistence/pool/ test/java/org/apache/...

Author: jukka
Date: Fri Jun 22 11:33:34 2012
New Revision: 1352849

URL: http://svn.apache.org/viewvc?rev=1352849&view=rev
Log:
JCR-3263: Consistency checker performance improvements

Add a default implementation of getAllNodeInfos() in AbstractBundlePersistenceManager to avoid having to reimplement the logic in all PMs.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/pool/BundleDbPersistenceManager.java
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ConsistencyCheckerImplTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java?rev=1352849&r1=1352848&r2=1352849&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/AbstractBundlePersistenceManager.java Fri Jun 22 11:33:34 2012
@@ -22,6 +22,8 @@ import static org.apache.jackrabbit.spi.
 
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -46,6 +48,7 @@ import org.apache.jackrabbit.core.persis
 import org.apache.jackrabbit.core.persistence.check.ConsistencyReport;
 import org.apache.jackrabbit.core.persistence.util.BLOBStore;
 import org.apache.jackrabbit.core.persistence.util.FileBasedIndex;
+import org.apache.jackrabbit.core.persistence.util.NodeInfo;
 import org.apache.jackrabbit.core.persistence.util.NodePropBundle;
 import org.apache.jackrabbit.core.persistence.util.NodePropBundle.PropertyEntry;
 import org.apache.jackrabbit.core.state.ChangeLog;
@@ -356,6 +359,18 @@ public abstract class AbstractBundlePers
         }
     }
 
+    //------------------------------------------< IterablePersistenceManager >--
+
+    @Override
+    public Map<NodeId, NodeInfo> getAllNodeInfos(NodeId after, int maxCount)
+            throws ItemStateException, RepositoryException {
+        Map<NodeId, NodeInfo> infos = new LinkedHashMap<NodeId, NodeInfo>();
+        for (NodeId nodeId : getAllNodeIds(after, maxCount)) {
+            infos.put(nodeId, new NodeInfo(loadBundle(nodeId)));
+        }
+        return infos;
+    }
+
     //----------------------------------------------------------------< spi >---
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java?rev=1352849&r1=1352848&r2=1352849&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/BundleFsPersistenceManager.java Fri Jun 22 11:33:34 2012
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.core.persistence.bundle;
 
-import org.apache.jackrabbit.core.persistence.util.NodeInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.commons.io.IOUtils;
@@ -43,11 +42,7 @@ import java.io.OutputStream;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
-
-import javax.jcr.RepositoryException;
 
 /**
  * This is a generic persistence manager that stores the {@link NodePropBundle}s
@@ -504,18 +499,6 @@ public class BundleFsPersistenceManager 
     /**
      * {@inheritDoc}
      */
-    public Map<NodeId, NodeInfo> getAllNodeInfos(NodeId after, int maxCount) throws ItemStateException, RepositoryException {
-        List<NodeId> nodeIds = getAllNodeIds(after, maxCount);
-        Map<NodeId, NodeInfo> result = new LinkedHashMap<NodeId, NodeInfo>(nodeIds.size());
-        for (NodeId nodeId : nodeIds) {
-            result.put(nodeId, new NodeInfo(loadBundle(nodeId)));
-        }
-        return result;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
     protected NodeId getIdFromFileName(String fileName) {
         StringBuffer buff = new StringBuffer(35);
         if (!fileName.endsWith("." + NODEFILENAME)) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java?rev=1352849&r1=1352848&r2=1352849&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/mem/InMemBundlePersistenceManager.java Fri Jun 22 11:33:34 2012
@@ -503,18 +503,6 @@ public class InMemBundlePersistenceManag
     /**
      * {@inheritDoc}
      */
-    public Map<NodeId, NodeInfo> getAllNodeInfos(NodeId after, int maxCount) throws ItemStateException, RepositoryException {
-        List<NodeId> nodeIds = getAllNodeIds(after, maxCount);
-        Map<NodeId, NodeInfo> result = new LinkedHashMap<NodeId, NodeInfo>(nodeIds.size());
-        for (NodeId nodeId : nodeIds) {
-            result.put(nodeId, new NodeInfo(loadBundle(nodeId)));
-        }
-        return result;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     protected NodePropBundle loadBundle(NodeId id) throws ItemStateException {
         if (!bundleStore.containsKey(id)) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/pool/BundleDbPersistenceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/pool/BundleDbPersistenceManager.java?rev=1352849&r1=1352848&r2=1352849&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/pool/BundleDbPersistenceManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/pool/BundleDbPersistenceManager.java Fri Jun 22 11:33:34 2012
@@ -826,6 +826,7 @@ public class BundleDbPersistenceManager
     /**
      * {@inheritDoc}
      */
+    @Override
     public synchronized Map<NodeId, NodeInfo> getAllNodeInfos(NodeId bigger, int maxCount) throws ItemStateException {
         ResultSet rs = null;
         try {

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ConsistencyCheckerImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ConsistencyCheckerImplTest.java?rev=1352849&r1=1352848&r2=1352849&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ConsistencyCheckerImplTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/data/ConsistencyCheckerImplTest.java Fri Jun 22 11:33:34 2012
@@ -222,20 +222,6 @@ public class ConsistencyCheckerImplTest 
             return allNodeIds;
         }
 
-        public Map<NodeId, NodeInfo> getAllNodeInfos(final NodeId after, final int maxCount) throws ItemStateException, RepositoryException {
-            Map<NodeId, NodeInfo> allNodeInfos = new LinkedHashMap<NodeId, NodeInfo>();
-            boolean add = after == null;
-            for (Map.Entry<NodeId, NodePropBundle> entry : bundles.entrySet()) {
-                if (add) {
-                    allNodeInfos.put(entry.getKey(), new NodeInfo(entry.getValue()));
-                }
-                if (!add) {
-                    add = entry.getKey().equals(after);
-                }
-            }
-            return allNodeInfos;
-        }
-
         @Override
         protected NodePropBundle loadBundle(final NodeId id) {
             return bundles.get(id);