You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2017/12/15 10:11:49 UTC
svn commit: r1818256 -
/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
Author: chetanm
Date: Fri Dec 15 10:11:49 2017
New Revision: 1818256
URL: http://svn.apache.org/viewvc?rev=1818256&view=rev
Log:
OAK-6353 - Use Document order traversal for reindexing performed on DocumentNodeStore setups
Track and report the max buffer size
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java?rev=1818256&r1=1818255&r2=1818256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/flatfile/FlatFileStoreIterator.java Fri Dec 15 10:11:49 2017
@@ -26,22 +26,25 @@ import java.util.ListIterator;
import com.google.common.collect.AbstractIterator;
import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static com.google.common.collect.Iterators.concat;
import static com.google.common.collect.Iterators.singletonIterator;
class FlatFileStoreIterator extends AbstractIterator<NodeStateEntry> implements Iterator<NodeStateEntry> {
+ private final Logger log = LoggerFactory.getLogger(getClass());
private final Iterator<NodeStateEntry> baseItr;
private final LinkedList<NodeStateEntry> buffer = new LinkedList<>();
private NodeStateEntry current;
private final int checkChildLimit;
+ private int maxBufferSize;
public FlatFileStoreIterator(Iterator<NodeStateEntry> baseItr, int checkChildLimit) {
this.baseItr = baseItr;
this.checkChildLimit = checkChildLimit;
}
- //TODO Track max buffer size
int getBufferSize(){
return buffer.size();
}
@@ -50,10 +53,16 @@ class FlatFileStoreIterator extends Abst
protected NodeStateEntry computeNext() {
//TODO Add some checks on expected ordering
current = computeNextEntry();
- return current == null ? endOfData() : current;
+ if (current == null) {
+ log.info("Max buffer size in complete traversal is [{}]", maxBufferSize);
+ return endOfData();
+ } else {
+ return current;
+ }
}
private NodeStateEntry computeNextEntry() {
+ maxBufferSize = Math.max(maxBufferSize, buffer.size());
if (!buffer.isEmpty()) {
return buffer.remove();
}
@@ -81,7 +90,7 @@ class FlatFileStoreIterator extends Abst
//If queue is empty try to append by getting entry from base
if (!qitr.hasNext() && baseItr.hasNext()) {
qitr.add(wrap(baseItr.next()));
- qitr.previous(); //Move back the itr again
+ qitr.previous(); //Move back the itr
}
if (qitr.hasNext()) {
return qitr.next();