This is an automated email from the ASF dual-hosted git repository.
nfsantos pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push:
new 32135dd8bd OAK-11797 - Document store indexing: start Lucene writer
pool only before indexing, not before download
32135dd8bd is described below
commit 32135dd8bdb835c1e8d9ece8636f5028d21d80fe
Author: Nuno Santos <[email protected]>
AuthorDate: Tue Jul 8 14:08:59 2025 +0200
OAK-11797 - Document store indexing: start Lucene writer pool only before
indexing, not before download
---
.../indexer/document/DocumentStoreIndexerBase.java | 21 ++++++++-------------
.../oak/index/ElasticDocumentStoreIndexer.java | 4 +---
.../indexer/document/DocumentStoreIndexer.java | 3 +--
.../oak/index/DocumentStoreIndexerIT.java | 5 +++--
4 files changed, 13 insertions(+), 20 deletions(-)
diff --git
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java
index b17c84640d..a79f20960d 100644
---
a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java
+++
b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java
@@ -97,16 +97,16 @@ public abstract class DocumentStoreIndexerBase implements
Closeable {
public static final String INDEXER_METRICS_PREFIX = "oak_indexer_";
public static final String METRIC_INDEXING_DURATION_SECONDS =
INDEXER_METRICS_PREFIX + "indexing_duration_seconds";
public static final String METRIC_FULL_INDEX_CREATION_DURATION_SECONDS =
INDEXER_METRICS_PREFIX + "full_index_creation_duration_seconds";
+ private static final int MAX_DOWNLOAD_ATTEMPTS =
Integer.parseInt(System.getProperty("oak.indexer.maxDownloadRetries", "5")) + 1;
- private final Logger log = LoggerFactory.getLogger(getClass());
- private final Logger traversalLog =
LoggerFactory.getLogger(DocumentStoreIndexerBase.class.getName() +
".traversal");
protected final Closer closer = Closer.create();
protected final IndexHelper indexHelper;
+ protected final IndexerSupport indexerSupport;
+
+ private final Logger log = LoggerFactory.getLogger(getClass());
+ private final Logger traversalLog =
LoggerFactory.getLogger(DocumentStoreIndexerBase.class.getName() +
".traversal");
private final IndexingReporter indexingReporter;
private final StatisticsProvider statisticsProvider;
- protected NodeStateIndexerProvider indexerProvider;
- protected final IndexerSupport indexerSupport;
- private static final int MAX_DOWNLOAD_ATTEMPTS =
Integer.parseInt(System.getProperty("oak.indexer.maxDownloadRetries", "5")) + 1;
private static final int TOP_SLOWEST_PATHS_TO_LOG =
ConfigHelper.getSystemPropertyAsInt(
"oak.indexer.topSlowestPathsToLog", 20);
@@ -118,10 +118,6 @@ public abstract class DocumentStoreIndexerBase implements
Closeable {
this.statisticsProvider = indexHelper.getStatisticsProvider();
}
- protected void setProvider() throws IOException {
- this.indexerProvider = createProvider();
- }
-
private static class MongoNodeStateEntryTraverserFactory implements
NodeStateEntryTraverserFactory {
/**
@@ -381,8 +377,8 @@ public abstract class DocumentStoreIndexerBase implements
Closeable {
NodeBuilder builder = copyOnWriteStore.getRoot().builder();
INDEXING_PHASE_LOGGER.info("[TASK:INDEXING:START] Starting
indexing");
Stopwatch indexerWatch = Stopwatch.createStarted();
- try {
- try (CompositeIndexer compositeIndexer =
prepareIndexers(copyOnWriteStore, builder, progressReporter)) {
+ try (NodeStateIndexerProvider indexerProvider = createProvider()) {
+ try (CompositeIndexer compositeIndexer =
prepareIndexers(indexerProvider, copyOnWriteStore, builder, progressReporter)) {
preIndexOperations(compositeIndexer.getIndexers());
if (indexStores.size() > 1) {
indexParallel(indexStores, compositeIndexer,
progressReporter);
@@ -413,7 +409,6 @@ public abstract class DocumentStoreIndexerBase implements
Closeable {
ExtractedTextCache extractedTextCache =
indexerProvider.getTextCache();
CacheStats cacheStats = extractedTextCache == null ? null :
extractedTextCache.getCacheStats();
log.info("Text extraction cache statistics: {}", cacheStats ==
null ? "N/A" : cacheStats.cacheInfoAsString());
- indexerProvider.close();
progressReporter.reindexingTraversalEnd();
progressReporter.logReport();
@@ -519,7 +514,7 @@ public abstract class DocumentStoreIndexerBase implements
Closeable {
traversalLog.trace(id);
}
- protected CompositeIndexer prepareIndexers(NodeStore copyOnWriteStore,
NodeBuilder builder,
+ protected CompositeIndexer prepareIndexers(NodeStateIndexerProvider
indexerProvider, NodeStore copyOnWriteStore, NodeBuilder builder,
IndexingProgressReporter
progressReporter) {
NodeState root = copyOnWriteStore.getRoot();
List<NodeStateIndexer> indexers = new ArrayList<>();
diff --git
a/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticDocumentStoreIndexer.java
b/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticDocumentStoreIndexer.java
index e180acfe5b..dd21b98188 100644
---
a/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticDocumentStoreIndexer.java
+++
b/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticDocumentStoreIndexer.java
@@ -26,7 +26,6 @@ import
org.apache.jackrabbit.oak.index.indexer.document.NodeStateIndexerProvider
import org.apache.jackrabbit.oak.plugins.index.elastic.ElasticConnection;
import
org.apache.jackrabbit.oak.plugins.index.elastic.index.ElasticRetryPolicy;
-import java.io.IOException;
import java.util.List;
/*
@@ -45,7 +44,7 @@ public class ElasticDocumentStoreIndexer extends
DocumentStoreIndexerBase {
public ElasticDocumentStoreIndexer(IndexHelper indexHelper, IndexerSupport
indexerSupport,
String indexPrefix, String scheme,
String host, int port,
- String apiKeyId, String apiSecretId)
throws IOException {
+ String apiKeyId, String apiSecretId) {
super(indexHelper, indexerSupport);
this.indexHelper = indexHelper;
this.indexPrefix = indexPrefix;
@@ -55,7 +54,6 @@ public class ElasticDocumentStoreIndexer extends
DocumentStoreIndexerBase {
this.apiKeyId = apiKeyId;
this.apiSecretId = apiSecretId;
this.retryPolicy =
ElasticRetryPolicy.createRetryPolicyFromSystemProperties();
- setProvider();
}
protected NodeStateIndexerProvider createProvider() {
diff --git
a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
index 607bbca49d..e362fef445 100644
---
a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
+++
b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexer.java
@@ -29,10 +29,9 @@ public class DocumentStoreIndexer extends
DocumentStoreIndexerBase implements Cl
private final ExtendedIndexHelper extendedIndexHelper;
- public DocumentStoreIndexer(ExtendedIndexHelper extendedIndexHelper,
IndexerSupport indexerSupport) throws IOException {
+ public DocumentStoreIndexer(ExtendedIndexHelper extendedIndexHelper,
IndexerSupport indexerSupport) {
super(extendedIndexHelper, indexerSupport);
this.extendedIndexHelper = extendedIndexHelper;
- setProvider();
}
private NodeStateIndexerProvider createLuceneIndexProvider() throws
IOException {
diff --git
a/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java
b/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java
index 9c3ff5d0ac..463ce783e5 100644
---
a/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java
+++
b/oak-run/src/test/java/org/apache/jackrabbit/oak/index/DocumentStoreIndexerIT.java
@@ -31,6 +31,7 @@ import
org.apache.jackrabbit.oak.index.indexer.document.DocumentStoreIndexerBase
import org.apache.jackrabbit.oak.index.indexer.document.IndexerConfiguration;
import org.apache.jackrabbit.oak.index.indexer.document.NodeStateEntry;
import org.apache.jackrabbit.oak.index.indexer.document.NodeStateIndexer;
+import
org.apache.jackrabbit.oak.index.indexer.document.NodeStateIndexerProvider;
import
org.apache.jackrabbit.oak.index.indexer.document.indexstore.IndexStoreUtils;
import org.apache.jackrabbit.oak.plugins.document.Collection;
import org.apache.jackrabbit.oak.plugins.document.DocumentMKBuilderProvider;
@@ -367,7 +368,7 @@ public class DocumentStoreIndexerIT extends
LuceneAbstractIndexCommandTest {
CollectingIndexer testIndexer = new CollectingIndexer(p ->
p.startsWith("/test"));
DocumentStoreIndexer index = new DocumentStoreIndexer(helper, support)
{
@Override
- protected CompositeIndexer prepareIndexers(NodeStore nodeStore,
NodeBuilder builder,
+ protected CompositeIndexer
prepareIndexers(NodeStateIndexerProvider indexerProvider, NodeStore nodeStore,
NodeBuilder builder,
IndexingProgressReporter progressReporter) {
return new CompositeIndexer(List.of(testIndexer));
}
@@ -448,7 +449,7 @@ public class DocumentStoreIndexerIT extends
LuceneAbstractIndexCommandTest {
CollectingIndexer testIndexer = new CollectingIndexer(p ->
p.startsWith("/test"));
DocumentStoreIndexer index = new DocumentStoreIndexer(helper,
support) {
@Override
- protected CompositeIndexer prepareIndexers(NodeStore
nodeStore, NodeBuilder builder,
+ protected CompositeIndexer
prepareIndexers(NodeStateIndexerProvider indexerProvider, NodeStore nodeStore,
NodeBuilder builder,
IndexingProgressReporter progressReporter) {
return new CompositeIndexer(List.of(testIndexer));
}