diff options
author | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-09-24 11:03:07 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@verizonmedia.com> | 2019-09-24 11:05:12 +0000 |
commit | e3106b45327d54f5a24564618f9541b0da5210db (patch) | |
tree | c5c4cadcab976befc63dd47f53ef816e0a058072 /storageserver | |
parent | 11ab4237312e3f52fac8f5f82553ee2598ac5eed (diff) |
Add config option for using B-tree bucket DB in distributor
Still disabled by default; this will be swapped later.
Expose read guard generation for easier debugging.
Add some explicit tests for read guard snapshot semantics.
Diffstat (limited to 'storageserver')
-rw-r--r-- | storageserver/src/vespa/storageserver/app/distributorprocess.cpp | 26 | ||||
-rw-r--r-- | storageserver/src/vespa/storageserver/app/distributorprocess.h | 3 |
2 files changed, 17 insertions, 12 deletions
diff --git a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp index 57fdcdeb248..ff4b2e98cca 100644 --- a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp +++ b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp @@ -11,7 +11,8 @@ namespace storage { DistributorProcess::DistributorProcess(const config::ConfigUri & configUri) : Process(configUri), - _activeFlag(DistributorNode::NO_NEED_FOR_ACTIVE_STATES) + _activeFlag(DistributorNode::NO_NEED_FOR_ACTIVE_STATES), + _use_btree_database(false) { } @@ -29,19 +30,22 @@ DistributorProcess::shutdown() void DistributorProcess::setupConfig(uint64_t subscribeTimeout) { - std::unique_ptr<vespa::config::content::core::StorServerConfig> config = - config::ConfigGetter<vespa::config::content::core::StorServerConfig>::getConfig(_configUri.getConfigId(), _configUri.getContext(), subscribeTimeout); - if (config->persistenceProvider.type - != vespa::config::content::core::StorServerConfig::PersistenceProvider::Type::STORAGE) - { + using vespa::config::content::core::StorServerConfig; + using vespa::config::content::core::StorDistributormanagerConfig; + using vespa::config::content::core::StorVisitordispatcherConfig; + + auto stor_config = config::ConfigGetter<StorServerConfig>::getConfig( + _configUri.getConfigId(), _configUri.getContext(), subscribeTimeout); + if (stor_config->persistenceProvider.type != StorServerConfig::PersistenceProvider::Type::STORAGE) { _activeFlag = DistributorNode::NEED_ACTIVE_BUCKET_STATES_SET; } + auto dist_config = config::ConfigGetter<StorDistributormanagerConfig>::getConfig( + _configUri.getConfigId(), _configUri.getContext(), subscribeTimeout); + _use_btree_database = dist_config->useBtreeDatabase; _distributorConfigHandler - = _configSubscriber.subscribe<vespa::config::content::core::StorDistributormanagerConfig>( - _configUri.getConfigId(), subscribeTimeout); + = _configSubscriber.subscribe<StorDistributormanagerConfig>(_configUri.getConfigId(), subscribeTimeout); _visitDispatcherConfigHandler - = _configSubscriber.subscribe<vespa::config::content::core::StorVisitordispatcherConfig>( - _configUri.getConfigId(), subscribeTimeout); + = _configSubscriber.subscribe<StorVisitordispatcherConfig>(_configUri.getConfigId(), subscribeTimeout); Process::setupConfig(subscribeTimeout); } @@ -75,7 +79,7 @@ DistributorProcess::configUpdated() void DistributorProcess::createNode() { - _node.reset(new DistributorNode(_configUri, _context, *this, _activeFlag, StorageLink::UP())); + _node.reset(new DistributorNode(_configUri, _context, *this, _activeFlag, _use_btree_database, StorageLink::UP())); _node->handleConfigChange(*_distributorConfigHandler->getConfig()); _node->handleConfigChange(*_visitDispatcherConfigHandler->getConfig()); } diff --git a/storageserver/src/vespa/storageserver/app/distributorprocess.h b/storageserver/src/vespa/storageserver/app/distributorprocess.h index 0e8d0e2d599..57193f77e42 100644 --- a/storageserver/src/vespa/storageserver/app/distributorprocess.h +++ b/storageserver/src/vespa/storageserver/app/distributorprocess.h @@ -15,6 +15,7 @@ namespace storage { class DistributorProcess : public Process { DistributorNodeContext _context; DistributorNode::NeedActiveState _activeFlag; + bool _use_btree_database; DistributorNode::UP _node; config::ConfigHandle<vespa::config::content::core::StorDistributormanagerConfig>::UP _distributorConfigHandler; @@ -23,7 +24,7 @@ class DistributorProcess : public Process { public: DistributorProcess(const config::ConfigUri & configUri); - ~DistributorProcess(); + ~DistributorProcess() override; void shutdown() override; void setupConfig(uint64_t subscribeTimeout) override; |