summaryrefslogtreecommitdiffstats
path: root/docproc
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-05-19 09:58:09 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-05-19 09:58:09 +0000
commit07e0e8f321693dac2e27f77dc6068810576096f9 (patch)
tree9a3825977de343db71f6f61de9d675550f0ca81f /docproc
parent89e26b2fe42a1fd88957ec76c5e1d1532d03b380 (diff)
Freeze the docproc service registry to signal and ensure thread safe read only access.
Diffstat (limited to 'docproc')
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/Processing.java2
-rw-r--r--docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java35
2 files changed, 18 insertions, 19 deletions
diff --git a/docproc/src/main/java/com/yahoo/docproc/Processing.java b/docproc/src/main/java/com/yahoo/docproc/Processing.java
index e157ad0b09b..eb918e3ea0c 100644
--- a/docproc/src/main/java/com/yahoo/docproc/Processing.java
+++ b/docproc/src/main/java/com/yahoo/docproc/Processing.java
@@ -26,7 +26,7 @@ public class Processing {
private CallStack callStack = null;
/** The collection of documents or document updates processed by this. This is never null */
- private List<DocumentOperation> documentOperations;
+ private final List<DocumentOperation> documentOperations;
/**
* Documents or document updates which should be added to <code>documents</code> before
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
index d20836c4b59..c0e072a58b9 100644
--- a/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
+++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java
@@ -10,7 +10,6 @@ import com.yahoo.config.docproc.DocprocConfig;
import com.yahoo.config.docproc.SchemamappingConfig;
import com.yahoo.container.core.ChainsConfig;
import com.yahoo.container.core.document.ContainerDocumentConfig;
-import com.yahoo.container.jdisc.ContainerMbusConfig;
import com.yahoo.docproc.AbstractConcreteDocumentFactory;
import com.yahoo.docproc.CallStack;
import com.yahoo.docproc.DocprocService;
@@ -50,17 +49,17 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
private final ChainRegistry<DocumentProcessor> chainRegistry = new ChainRegistry<>();
private final ScheduledThreadPoolExecutor laterExecutor =
new ScheduledThreadPoolExecutor(2, new DaemonThreadFactory("docproc-later-"));
- private ContainerDocumentConfig containerDocConfig;
+ private final ContainerDocumentConfig containerDocConfig;
private final DocumentTypeManager documentTypeManager;
- public DocumentProcessingHandler(ComponentRegistry<DocprocService> docprocServiceRegistry,
- ComponentRegistry<DocumentProcessor> documentProcessorComponentRegistry,
- ComponentRegistry<AbstractConcreteDocumentFactory> docFactoryRegistry,
- int numThreads,
- DocumentTypeManager documentTypeManager,
- ChainsModel chainsModel, SchemaMap schemaMap, Statistics statistics,
- Metric metric,
- ContainerDocumentConfig containerDocConfig) {
+ private DocumentProcessingHandler(ComponentRegistry<DocprocService> docprocServiceRegistry,
+ ComponentRegistry<DocumentProcessor> documentProcessorComponentRegistry,
+ ComponentRegistry<AbstractConcreteDocumentFactory> docFactoryRegistry,
+ int numThreads,
+ DocumentTypeManager documentTypeManager,
+ ChainsModel chainsModel, SchemaMap schemaMap, Statistics statistics,
+ Metric metric,
+ ContainerDocumentConfig containerDocConfig) {
this.docprocServiceRegistry = docprocServiceRegistry;
this.docFactoryRegistry = docFactoryRegistry;
this.containerDocConfig = containerDocConfig;
@@ -79,17 +78,17 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
docprocServiceRegistry.register(service.getId(), service);
}
}
-
+ docprocServiceRegistry.freeze();
}
private static int computeNumThreads(int maxThreads) {
return (maxThreads > 0) ? maxThreads : Runtime.getRuntime().availableProcessors();
}
- public DocumentProcessingHandler(ComponentRegistry<DocprocService> docprocServiceRegistry,
- ComponentRegistry<DocumentProcessor> documentProcessorComponentRegistry,
- ComponentRegistry<AbstractConcreteDocumentFactory> docFactoryRegistry,
- DocumentProcessingHandlerParameters params) {
+ DocumentProcessingHandler(ComponentRegistry<DocprocService> docprocServiceRegistry,
+ ComponentRegistry<DocumentProcessor> documentProcessorComponentRegistry,
+ ComponentRegistry<AbstractConcreteDocumentFactory> docFactoryRegistry,
+ DocumentProcessingHandlerParameters params) {
this(docprocServiceRegistry, documentProcessorComponentRegistry, docFactoryRegistry,
params.getMaxNumThreads(),
params.getDocumentTypeManager(), params.getChainsModel(), params.getSchemaMap(),
@@ -105,13 +104,13 @@ public class DocumentProcessingHandler extends AbstractRequestHandler {
SchemamappingConfig mappingConfig,
DocumentmanagerConfig docManConfig,
DocprocConfig docprocConfig,
- ContainerMbusConfig containerMbusConfig,
ContainerDocumentConfig containerDocConfig,
Statistics manager,
Metric metric) {
this(new ComponentRegistry<>(),
- documentProcessorComponentRegistry, docFactoryRegistry, new DocumentProcessingHandlerParameters().setMaxNumThreads
- (docprocConfig.numthreads())
+ documentProcessorComponentRegistry, docFactoryRegistry,
+ new DocumentProcessingHandlerParameters()
+ .setMaxNumThreads(docprocConfig.numthreads())
.setDocumentTypeManager(new DocumentTypeManager(docManConfig))
.setChainsModel(buildFromConfig(chainsConfig)).setSchemaMap(configureMapping(mappingConfig))
.setStatisticsManager(manager)