Author: chetanm
Date: Wed Nov 20 08:02:39 2013
New Revision: 1543730

URL: http://svn.apache.org/r1543730
Log:
OAK-1156 - Improve the document cache invalidation logic to selectively 
invalidate doc

Adding an extra check that sameLevelNodes is not empty. Otherwise unnecessary 
query would be performed with empty node list

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidator.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidator.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidator.java?rev=1543730&r1=1543729&r2=1543730&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidator.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/mongomk/CacheInvalidator.java
 Wed Nov 20 08:02:39 2013
@@ -187,15 +187,15 @@ abstract class CacheInvalidator {
                 final boolean hasMore = pitr.hasNext();
 
                 //Change in level or last element
-                if ((hasMore && tn.level() != pitr.peek().level())
-                        ||
-                        (!hasMore && !sameLevelNodes.isEmpty())) {
+                if (!sameLevelNodes.isEmpty() &&
+                        ((hasMore && tn.level() != pitr.peek().level()) || 
!hasMore )) {
 
                     QueryBuilder query = QueryBuilder.start(Document.ID)
                             .in(sameLevelNodes.keySet());
 
                     //Fetch lastRev and modCount for each such nodes
                     DBCursor cursor = nodes.find(query.get(), keys);
+                    LOG.debug("Checking for changed nodes at level {} with {} 
paths",tn.level(),sameLevelNodes.size());
                     result.queryCount++;
                     for (DBObject obj : cursor) {
 


Reply via email to