aboutsummaryrefslogtreecommitdiffstats
path: root/storageserver/src/vespa/storageserver/app/process.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storageserver/src/vespa/storageserver/app/process.cpp')
-rw-r--r--storageserver/src/vespa/storageserver/app/process.cpp47
1 files changed, 37 insertions, 10 deletions
diff --git a/storageserver/src/vespa/storageserver/app/process.cpp b/storageserver/src/vespa/storageserver/app/process.cpp
index ad4d9ffa7f6..87b20f9ec2e 100644
--- a/storageserver/src/vespa/storageserver/app/process.cpp
+++ b/storageserver/src/vespa/storageserver/app/process.cpp
@@ -1,11 +1,12 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "process.h"
+
+#include <vespa/config/subscription/configsubscriber.hpp>
#include <vespa/document/repo/document_type_repo_factory.h>
#include <vespa/storage/storageserver/storagenode.h>
#include <vespa/storage/storageserver/storagenodecontext.h>
#include <vespa/vespalib/util/exceptions.h>
-#include <vespa/config/subscription/configsubscriber.hpp>
#include <vespa/log/log.h>
LOG_SETUP(".process");
@@ -24,11 +25,17 @@ Process::~Process() = default;
void
Process::setupConfig(vespalib::duration subscribeTimeout)
{
- _documentHandler = _configSubscriber.subscribe<document::config::DocumenttypesConfig>(_configUri.getConfigId(), subscribeTimeout);
+ _document_cfg_handle = _configSubscriber.subscribe<DocumentTypesConfig>(_configUri.getConfigId(), subscribeTimeout);
+ _bucket_spaces_cfg_handle = _configSubscriber.subscribe<BucketspacesConfig>(_configUri.getConfigId(), subscribeTimeout);
+ _comm_mgr_cfg_handle = _configSubscriber.subscribe<CommunicationManagerConfig>(_configUri.getConfigId(), subscribeTimeout);
+ _bouncer_cfg_handle = _configSubscriber.subscribe<StorBouncerConfig>(_configUri.getConfigId(), subscribeTimeout);
+ _distribution_cfg_handle = _configSubscriber.subscribe<StorDistributionConfig>(_configUri.getConfigId(), subscribeTimeout);
+ _server_cfg_handle = _configSubscriber.subscribe<StorServerConfig>(_configUri.getConfigId(), subscribeTimeout);
+
if (!_configSubscriber.nextConfig()) {
- throw vespalib::TimeoutException("Could not subscribe to document config within timeout");
+ throw vespalib::TimeoutException("Could not subscribe to configs within timeout");
}
- _repos.push_back(DocumentTypeRepoFactory::make(*_documentHandler->getConfig()));
+ _repos.push_back(DocumentTypeRepoFactory::make(*_document_cfg_handle->getConfig()));
getContext().getComponentRegister().setDocumentTypeRepo(_repos.back());
}
@@ -36,26 +43,46 @@ bool
Process::configUpdated()
{
_configSubscriber.nextGenerationNow();
- if (_documentHandler->isChanged()) {
+ if (_document_cfg_handle->isChanged()) {
LOG(info, "Document config detected changed");
return true;
}
- return false;
+ bool changed = (_bucket_spaces_cfg_handle->isChanged()
+ || _comm_mgr_cfg_handle->isChanged()
+ || _bouncer_cfg_handle->isChanged()
+ || _distribution_cfg_handle->isChanged()
+ || _server_cfg_handle->isChanged());
+ return changed;
}
void
Process::updateConfig()
{
- if (_documentHandler->isChanged()) {
- _repos.push_back(DocumentTypeRepoFactory::make(*_documentHandler->getConfig()));
+ if (_document_cfg_handle->isChanged()) {
+ _repos.push_back(DocumentTypeRepoFactory::make(*_document_cfg_handle->getConfig()));
getNode().setNewDocumentRepo(_repos.back());
}
+ if (_bucket_spaces_cfg_handle->isChanged()) {
+ getNode().configure(_bucket_spaces_cfg_handle->getConfig());
+ }
+ if (_comm_mgr_cfg_handle->isChanged()) {
+ getNode().configure(_comm_mgr_cfg_handle->getConfig());
+ }
+ if (_bouncer_cfg_handle->isChanged()) {
+ getNode().configure(_bouncer_cfg_handle->getConfig());
+ }
+ if (_distribution_cfg_handle->isChanged()) {
+ getNode().configure(_distribution_cfg_handle->getConfig());
+ }
+ if (_server_cfg_handle->isChanged()) {
+ getNode().configure(_server_cfg_handle->getConfig());
+ }
}
void
Process::shutdown()
{
- removeConfigSubscriptions();
+ removeConfigSubscriptions(); // TODO remove? unused
}
int64_t