Author: mreutegg
Date: Tue Mar 25 08:28:29 2014
New Revision: 1581272

URL: http://svn.apache.org/r1581272
Log:
OAK-1465: performance degradation with growing index size on Oak-Mongo

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java?rev=1581272&r1=1581271&r2=1581272&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
 Tue Mar 25 08:28:29 2014
@@ -425,10 +425,17 @@ public final class NodeDocument extends 
             return null;
         }
 
-        // newest revision is likely in the local deleted map
-        String value = getLocalDeleted().get(newestRev);
+        // the local deleted map contains the most recent revisions
+        SortedMap<Revision, String> deleted = getLocalDeleted();
+        String value = deleted.get(newestRev);
+        if (value == null && deleted.headMap(newestRev).isEmpty()) {
+            // newestRev is newer than most recent entry in local deleted
+            // no need to check previous docs
+            return newestRev;
+        }
+
         if (value == null) {
-            // otherwise get from complete map
+            // get from complete map
             value = getDeleted().get(newestRev);
         }
         if ("true".equals(value)) {


Reply via email to