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