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)) {