diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-05-19 09:58:09 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-05-19 09:58:09 +0000 |
commit | 07e0e8f321693dac2e27f77dc6068810576096f9 (patch) | |
tree | 9a3825977de343db71f6f61de9d675550f0ca81f /docproc | |
parent | 89e26b2fe42a1fd88957ec76c5e1d1532d03b380 (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.java | 2 | ||||
-rw-r--r-- | docproc/src/main/java/com/yahoo/docproc/jdisc/DocumentProcessingHandler.java | 35 |
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) |