diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-27 00:21:44 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-27 11:56:09 +0000 |
commit | 39d00826c3e7e30d59e6ca6d88eb3f36fb8358fd (patch) | |
tree | a7c3158fd574ec67ab32e66d7cd3ab58ebbdb2cc /storage | |
parent | 989b8b5afa58dcbfa03e3999d75802ac6c70aa94 (diff) |
GC LoadTypeSet
Diffstat (limited to 'storage')
23 files changed, 30 insertions, 119 deletions
diff --git a/storage/src/tests/common/metricstest.cpp b/storage/src/tests/common/metricstest.cpp index 2c09b2974e5..f816816a051 100644 --- a/storage/src/tests/common/metricstest.cpp +++ b/storage/src/tests/common/metricstest.cpp @@ -80,8 +80,7 @@ void MetricsTest::SetUp() { } catch (config::InvalidConfigException& e) { fprintf(stderr, "%s\n", e.what()); } - _metricManager = std::make_unique<metrics::MetricManager>( - std::make_unique<MetricClock>(*_clock)); + _metricManager = std::make_unique<metrics::MetricManager>(std::make_unique<MetricClock>(*_clock)); _topSet.reset(new metrics::MetricSet("vds", {}, "")); { metrics::MetricLockGuard guard(_metricManager->getMetricLock()); @@ -93,8 +92,6 @@ void MetricsTest::SetUp() { *_metricManager, "status"); - documentapi::LoadTypeSet::SP loadTypes(_node->getLoadTypes()); - _filestorMetrics = std::make_shared<FileStorMetrics>(); _filestorMetrics->initDiskMetrics(1, 1); _topSet->registerMetric(*_filestorMetrics); diff --git a/storage/src/tests/common/teststorageapp.cpp b/storage/src/tests/common/teststorageapp.cpp index e904f690bde..b6acff804a8 100644 --- a/storage/src/tests/common/teststorageapp.cpp +++ b/storage/src/tests/common/teststorageapp.cpp @@ -47,7 +47,6 @@ TestStorageApp::TestStorageApp(StorageComponentRegisterImpl::UP compReg, vespalib::string clusterName = "mycluster"; uint32_t redundancy = 2; uint32_t nodeCount = 10; - documentapi::LoadTypeSet::SP loadTypes; if (!configId.empty()) { config::ConfigUri uri(configId); std::unique_ptr<vespa::config::content::core::StorServerConfig> serverConfig = config::ConfigGetter<vespa::config::content::core::StorServerConfig>::getConfig(uri.getConfigId(), uri.getContext()); @@ -58,12 +57,8 @@ TestStorageApp::TestStorageApp(StorageComponentRegisterImpl::UP compReg, _compReg.setPriorityConfig( *config::ConfigGetter<StorageComponent::PriorityConfig> ::getConfig(uri.getConfigId(), uri.getContext())); - loadTypes = std::make_shared<documentapi::LoadTypeSet>( - *config::ConfigGetter<vespa::config::content::LoadTypeConfig> - ::getConfig(uri.getConfigId(), uri.getContext())); } else { if (index == 0xffff) index = 0; - loadTypes.reset(new documentapi::LoadTypeSet); } if (index >= nodeCount) nodeCount = index + 1; if (redundancy > nodeCount) redundancy = nodeCount; @@ -71,7 +66,6 @@ TestStorageApp::TestStorageApp(StorageComponentRegisterImpl::UP compReg, _compReg.setNodeInfo(clusterName, type, index); _compReg.setNodeStateUpdater(_nodeStateUpdater); _compReg.setDocumentTypeRepo(_docMan.getTypeRepoSP()); - _compReg.setLoadTypes(loadTypes); _compReg.setBucketIdFactory(document::BucketIdFactory()); auto distr = std::make_shared<lib::Distribution>( lib::Distribution::getDefaultDistributionConfig(redundancy, nodeCount)); diff --git a/storage/src/tests/common/teststorageapp.h b/storage/src/tests/common/teststorageapp.h index dffe1da7a9a..376b1afd9c6 100644 --- a/storage/src/tests/common/teststorageapp.h +++ b/storage/src/tests/common/teststorageapp.h @@ -81,8 +81,6 @@ public: const document::BucketIdFactory& getBucketIdFactory() { return _compReg.getBucketIdFactory(); } TestNodeStateUpdater& getStateUpdater() { return _nodeStateUpdater; } - documentapi::LoadTypeSet::SP getLoadTypes() - { return _compReg.getLoadTypes(); } lib::Distribution::SP getDistribution() { return _compReg.getDistribution(); } TestNodeStateUpdater& getNodeStateUpdater() { return _nodeStateUpdater; } diff --git a/storage/src/tests/persistence/filestorage/filestormanagertest.cpp b/storage/src/tests/persistence/filestorage/filestormanagertest.cpp index 6a888e6c02d..3bd92d31ca7 100644 --- a/storage/src/tests/persistence/filestorage/filestormanagertest.cpp +++ b/storage/src/tests/persistence/filestorage/filestormanagertest.cpp @@ -56,7 +56,6 @@ namespace storage { namespace { -metrics::LoadType defaultLoadType(0, "default"); vespalib::string _Cluster("cluster"); vespalib::string _Storage("storage"); api::StorageMessageAddress _Storage2(&_Storage, lib::NodeType::STORAGE, 2); @@ -255,7 +254,6 @@ struct FileStorHandlerComponents { DummyStorageLink top; DummyStorageLink* dummyManager; ForwardingMessageSender messageSender; - documentapi::LoadTypeSet loadTypes; FileStorMetrics metrics; std::unique_ptr<FileStorHandler> filestorHandler; @@ -263,7 +261,6 @@ struct FileStorHandlerComponents { : top(), dummyManager(new DummyStorageLink), messageSender(*dummyManager), - loadTypes("raw:"), metrics(), filestorHandler() { diff --git a/storage/src/tests/persistence/filestorage/operationabortingtest.cpp b/storage/src/tests/persistence/filestorage/operationabortingtest.cpp index 95e2d8e2c43..e0ccc175c11 100644 --- a/storage/src/tests/persistence/filestorage/operationabortingtest.cpp +++ b/storage/src/tests/persistence/filestorage/operationabortingtest.cpp @@ -72,8 +72,6 @@ public: } }; -metrics::LoadType defaultLoadType(0, "default"); - } struct OperationAbortingTest : FileStorTestFixture { diff --git a/storage/src/tests/persistence/persistencequeuetest.cpp b/storage/src/tests/persistence/persistencequeuetest.cpp index 62ba8bd876d..61719b569d6 100644 --- a/storage/src/tests/persistence/persistencequeuetest.cpp +++ b/storage/src/tests/persistence/persistencequeuetest.cpp @@ -27,7 +27,6 @@ public: DummyStorageLink top; std::unique_ptr<DummyStorageLink> dummyManager; ForwardingMessageSender messageSender; - documentapi::LoadTypeSet loadTypes; FileStorMetrics metrics; std::unique_ptr<FileStorHandler> filestorHandler; uint32_t stripeId; @@ -42,7 +41,6 @@ PersistenceQueueTest::Fixture::Fixture(FileStorTestFixture& parent_) top(), dummyManager(std::make_unique<DummyStorageLink>()), messageSender(*dummyManager), - loadTypes("raw:"), metrics(), stripeId(0) { diff --git a/storage/src/tests/persistence/processalltest.cpp b/storage/src/tests/persistence/processalltest.cpp index a19abbfb1c6..7ac9c01dabd 100644 --- a/storage/src/tests/persistence/processalltest.cpp +++ b/storage/src/tests/persistence/processalltest.cpp @@ -16,7 +16,7 @@ class ProcessAllHandlerTest : public SingleDiskPersistenceTestUtils { }; TEST_F(ProcessAllHandlerTest, change_of_repos_is_reflected) { - EXPECT_EQ(3u, getComponent().getGeneration()); + EXPECT_EQ(2u, getComponent().getGeneration()); auto old = getComponent().getTypeRepo()->documentTypeRepo; auto old2 = &getEnv().getDocumentTypeRepo(); EXPECT_EQ(old.get(), old2); @@ -24,7 +24,7 @@ TEST_F(ProcessAllHandlerTest, change_of_repos_is_reflected) { auto newDocRepo = std::make_shared<document::DocumentTypeRepo>(*old->getDocumentType("testdoctype1")); getComponent().setDocumentTypeRepo(newDocRepo); - EXPECT_EQ(4u, getComponent().getGeneration()); + EXPECT_EQ(3u, getComponent().getGeneration()); EXPECT_EQ(newDocRepo.get(), getComponent().getTypeRepo()->documentTypeRepo.get()); EXPECT_EQ(newDocRepo.get(), &getEnv().getDocumentTypeRepo()); } diff --git a/storage/src/tests/storageserver/rpc/message_codec_provider_test.cpp b/storage/src/tests/storageserver/rpc/message_codec_provider_test.cpp index 0d4e3b8df93..67474f86df0 100644 --- a/storage/src/tests/storageserver/rpc/message_codec_provider_test.cpp +++ b/storage/src/tests/storageserver/rpc/message_codec_provider_test.cpp @@ -2,7 +2,6 @@ #include <vespa/storage/storageserver/rpc/message_codec_provider.h> #include <vespa/storageapi/mbusprot/protocolserialization7.h> #include <vespa/document/base/testdocman.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/vespalib/gtest/gtest.h> using namespace ::testing; @@ -12,17 +11,13 @@ namespace storage::rpc { struct MessageCodecProviderTest : Test { std::shared_ptr<const document::DocumentTypeRepo> _repo1; std::shared_ptr<const document::DocumentTypeRepo> _repo2; - std::shared_ptr<const documentapi::LoadTypeSet> _load_types1; - std::shared_ptr<const documentapi::LoadTypeSet> _load_types2; MessageCodecProvider _provider; // We don't care about repo/set contents, just their pointer identities MessageCodecProviderTest() : _repo1(document::TestDocRepo().getTypeRepoSp()), _repo2(document::TestDocRepo().getTypeRepoSp()), - _load_types1(std::make_shared<documentapi::LoadTypeSet>()), - _load_types2(std::make_shared<documentapi::LoadTypeSet>()), - _provider(_repo1, _load_types1) + _provider(_repo1) {} ~MessageCodecProviderTest() override; }; @@ -32,15 +27,13 @@ MessageCodecProviderTest::~MessageCodecProviderTest() = default; TEST_F(MessageCodecProviderTest, initially_provides_constructed_repos) { auto wrapped = _provider.wrapped_codec(); EXPECT_EQ(&wrapped->codec().type_repo(), _repo1.get()); - EXPECT_EQ(&wrapped->codec().load_type_set(), _load_types1.get()); } TEST_F(MessageCodecProviderTest, updated_repos_reflected_in_new_wrapped_codec) { - _provider.update_atomically(_repo2, _load_types2); + _provider.update_atomically(_repo2); auto wrapped = _provider.wrapped_codec(); EXPECT_EQ(&wrapped->codec().type_repo(), _repo2.get()); - EXPECT_EQ(&wrapped->codec().load_type_set(), _load_types2.get()); } } diff --git a/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp b/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp index 7f2279e1f4e..630ad7685e4 100644 --- a/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp +++ b/storage/src/tests/storageserver/rpc/storage_api_rpc_service_test.cpp @@ -3,7 +3,6 @@ #include <vespa/document/base/testdocman.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/test/make_document_bucket.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/fnet/frt/supervisor.h> #include <vespa/fnet/frt/target.h> #include <vespa/messagebus/testlib/slobrok.h> @@ -103,7 +102,6 @@ class RpcNode { protected: vdstestlib::DirConfig _config; std::shared_ptr<const document::DocumentTypeRepo> _doc_type_repo; - std::shared_ptr<const documentapi::LoadTypeSet> _load_type_set; LockingMockOperationDispatcher _messages; std::unique_ptr<MessageCodecProvider> _codec_provider; std::unique_ptr<SharedRpcResources> _shared_rpc_resources; @@ -113,7 +111,6 @@ public: RpcNode(uint16_t node_index, bool is_distributor, const mbus::Slobrok& slobrok) : _config(getStandardConfig(true)), _doc_type_repo(document::TestDocRepo().getTypeRepoSp()), - _load_type_set(std::make_shared<documentapi::LoadTypeSet>()), _node_address(make_address(node_index, is_distributor)), _slobrok_id(to_slobrok_id(_node_address)) { @@ -124,7 +121,7 @@ public: _shared_rpc_resources = std::make_unique<SharedRpcResources>(_config.getConfigId(), 0, 1); // TODO make codec provider into interface so we can test decode-failures more easily? - _codec_provider = std::make_unique<MessageCodecProvider>(_doc_type_repo, _load_type_set); + _codec_provider = std::make_unique<MessageCodecProvider>(_doc_type_repo); } ~RpcNode(); diff --git a/storage/src/tests/storageserver/statereportertest.cpp b/storage/src/tests/storageserver/statereportertest.cpp index 9a22a02941b..b28f092904e 100644 --- a/storage/src/tests/storageserver/statereportertest.cpp +++ b/storage/src/tests/storageserver/statereportertest.cpp @@ -90,8 +90,6 @@ void StateReporterTest::SetUp() { _generationFetcher, "status"); - documentapi::LoadTypeSet::SP loadTypes(_node->getLoadTypes()); - _filestorMetrics = std::make_shared<FileStorMetrics>(); _filestorMetrics->initDiskMetrics(1, 1); _topSet->registerMetric(*_filestorMetrics); diff --git a/storage/src/vespa/storage/common/storagecomponent.cpp b/storage/src/vespa/storage/common/storagecomponent.cpp index c5194f909c0..8ad4e457b58 100644 --- a/storage/src/vespa/storage/common/storagecomponent.cpp +++ b/storage/src/vespa/storage/common/storagecomponent.cpp @@ -40,15 +40,6 @@ StorageComponent::setDocumentTypeRepo(std::shared_ptr<const document::DocumentTy } void -StorageComponent::setLoadTypes(LoadTypeSetSP loadTypes) -{ - std::lock_guard guard(_lock); - _loadTypes = loadTypes; - _generation++; -} - - -void StorageComponent::setPriorityConfig(const PriorityConfig& c) { // Priority mapper is already thread safe. @@ -88,7 +79,6 @@ StorageComponent::StorageComponent(StorageComponentRegister& compReg, _nodeType(nullptr), _index(0), _repos(), - _loadTypes(), _priorityMapper(new PriorityMapper), _bucketIdFactory(), _distribution(), @@ -133,13 +123,6 @@ StorageComponent::getTypeRepo() const return _repos; } -StorageComponent::LoadTypeSetSP -StorageComponent::getLoadTypes() const -{ - std::lock_guard guard(_lock); - return _loadTypes; -} - StorageComponent::DistributionSP StorageComponent::getDistribution() const { diff --git a/storage/src/vespa/storage/common/storagecomponent.h b/storage/src/vespa/storage/common/storagecomponent.h index b33501e9dd1..9b08bb7b242 100644 --- a/storage/src/vespa/storage/common/storagecomponent.h +++ b/storage/src/vespa/storage/common/storagecomponent.h @@ -46,7 +46,6 @@ namespace document { } namespace documentapi { class LoadType; - class LoadTypeSet; } namespace storage { @@ -67,7 +66,6 @@ public: }; using UP = std::unique_ptr<StorageComponent>; using PriorityConfig = vespa::config::content::core::internal::InternalStorPrioritymappingType; - using LoadTypeSetSP = std::shared_ptr<documentapi::LoadTypeSet>; using DistributionSP = std::shared_ptr<lib::Distribution>; /** @@ -83,7 +81,6 @@ public: */ void setNodeStateUpdater(NodeStateUpdater& updater); void setDocumentTypeRepo(std::shared_ptr<const document::DocumentTypeRepo>); - void setLoadTypes(LoadTypeSetSP); void setPriorityConfig(const PriorityConfig&); void setBucketIdFactory(const document::BucketIdFactory&); void setDistribution(DistributionSP); @@ -99,7 +96,6 @@ public: vespalib::string getIdentity() const; std::shared_ptr<Repos> getTypeRepo() const; - LoadTypeSetSP getLoadTypes() const; const document::BucketIdFactory& getBucketIdFactory() const { return _bucketIdFactory; } uint8_t getPriority(const documentapi::LoadType&) const; DistributionSP getDistribution() const; @@ -110,8 +106,7 @@ private: const lib::NodeType* _nodeType; uint16_t _index; std::shared_ptr<Repos> _repos; - // TODO: move loadTypes and _distribution in to _repos so lock will only taken once and only copying one shared_ptr. - LoadTypeSetSP _loadTypes; + // TODO: move _distribution in to _repos so lock will only taken once and only copying one shared_ptr. std::unique_ptr<PriorityMapper> _priorityMapper; document::BucketIdFactory _bucketIdFactory; DistributionSP _distribution; diff --git a/storage/src/vespa/storage/distributor/idealstatemanager.h b/storage/src/vespa/storage/distributor/idealstatemanager.h index 10f18a35952..b30d7b35a6d 100644 --- a/storage/src/vespa/storage/distributor/idealstatemanager.h +++ b/storage/src/vespa/storage/distributor/idealstatemanager.h @@ -78,10 +78,7 @@ public: getBucketStatus(out); } - DistributorComponent& getDistributorComponent() { - return _distributorComponent; } - StorageComponent::LoadTypeSetSP getLoadTypes() { - return _distributorComponent.getLoadTypes(); } + DistributorComponent& getDistributorComponent() { return _distributorComponent; } DistributorBucketSpaceRepo &getBucketSpaceRepo() { return _bucketSpaceRepo; } const DistributorBucketSpaceRepo &getBucketSpaceRepo() const { return _bucketSpaceRepo; } diff --git a/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp b/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp index bc77f4cf88f..1a2eb8c6215 100644 --- a/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp +++ b/storage/src/vespa/storage/distributor/operations/idealstate/idealstateoperation.cpp @@ -4,7 +4,6 @@ #include <vespa/storage/distributor/pendingmessagetracker.h> #include <vespa/storage/distributor/idealstatemetricsset.h> #include <vespa/storage/distributor/distributor_bucket_space_repo.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/log/log.h> LOG_SETUP(".distributor.operation"); diff --git a/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.cpp b/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.cpp index 9c421eb7f8f..73b78ce8626 100644 --- a/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.cpp +++ b/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.cpp @@ -16,7 +16,6 @@ StorageComponentRegisterImpl::StorageComponentRegisterImpl() _nodeType(nullptr), _index(0xffff), _docTypeRepo(), - _loadTypes(new documentapi::LoadTypeSet), _priorityConfig(), _bucketIdFactory(), _distribution(), @@ -38,7 +37,6 @@ StorageComponentRegisterImpl::registerStorageComponent(StorageComponent& smc) smc.setNodeStateUpdater(*_nodeStateUpdater); } smc.setDocumentTypeRepo(_docTypeRepo); - smc.setLoadTypes(_loadTypes); smc.setPriorityConfig(_priorityConfig); smc.setBucketIdFactory(_bucketIdFactory); smc.setDistribution(_distribution); @@ -85,16 +83,6 @@ StorageComponentRegisterImpl::setDocumentTypeRepo(std::shared_ptr<const document } void -StorageComponentRegisterImpl::setLoadTypes(documentapi::LoadTypeSet::SP loadTypes) -{ - std::lock_guard lock(_componentLock); - _loadTypes = loadTypes; - for (auto& component : _components) { - component->setLoadTypes(loadTypes); - } -} - -void StorageComponentRegisterImpl::setPriorityConfig(const PriorityConfig& config) { std::lock_guard lock(_componentLock); diff --git a/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h b/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h index b22ea93223b..ce9a739689b 100644 --- a/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h +++ b/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h @@ -8,7 +8,6 @@ #pragma once #include <vespa/document/bucket/bucketidfactory.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/storage/common/storagecomponent.h> #include <vespa/config-bucketspaces.h> #include <vespa/storage/config/config-stor-prioritymapping.h> @@ -30,7 +29,6 @@ class StorageComponentRegisterImpl const lib::NodeType* _nodeType; uint16_t _index; std::shared_ptr<const document::DocumentTypeRepo> _docTypeRepo; - documentapi::LoadTypeSet::SP _loadTypes; PriorityConfig _priorityConfig; document::BucketIdFactory _bucketIdFactory; lib::Distribution::SP _distribution; @@ -47,7 +45,6 @@ public: const lib::NodeType& getNodeType() const { return *_nodeType; } uint16_t getIndex() const { return _index; } std::shared_ptr<const document::DocumentTypeRepo> getTypeRepo() { return _docTypeRepo; } - documentapi::LoadTypeSet::SP getLoadTypes() { return _loadTypes; } const document::BucketIdFactory& getBucketIdFactory() { return _bucketIdFactory; } lib::Distribution::SP getDistribution() { return _distribution; } NodeStateUpdater& getNodeStateUpdater() { return *_nodeStateUpdater; } @@ -57,7 +54,6 @@ public: void setNodeInfo(vespalib::stringref clusterName, const lib::NodeType& nodeType, uint16_t index); virtual void setNodeStateUpdater(NodeStateUpdater& updater); virtual void setDocumentTypeRepo(std::shared_ptr<const document::DocumentTypeRepo>); - virtual void setLoadTypes(documentapi::LoadTypeSet::SP); virtual void setPriorityConfig(const PriorityConfig&); virtual void setBucketIdFactory(const document::BucketIdFactory&); virtual void setDistribution(lib::Distribution::SP); diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.cpp b/storage/src/vespa/storage/storageserver/communicationmanager.cpp index a229b6c1c58..e05b502f856 100644 --- a/storage/src/vespa/storage/storageserver/communicationmanager.cpp +++ b/storage/src/vespa/storage/storageserver/communicationmanager.cpp @@ -417,11 +417,10 @@ void CommunicationManager::configure(std::unique_ptr<CommunicationManagerConfig> // Configure messagebus here as we for legacy reasons have // config here. auto documentTypeRepo = _component.getTypeRepo()->documentTypeRepo; - auto loadTypes = _component.getLoadTypes(); _mbus = std::make_unique<mbus::RPCMessageBus>( mbus::ProtocolSet() - .add(std::make_shared<documentapi::DocumentProtocol>(*loadTypes, documentTypeRepo)) - .add(std::make_shared<mbusprot::StorageProtocol>(documentTypeRepo, *loadTypes)), + .add(std::make_shared<documentapi::DocumentProtocol>(documentTypeRepo)) + .add(std::make_shared<mbusprot::StorageProtocol>(documentTypeRepo)), params, _configUri); @@ -429,8 +428,7 @@ void CommunicationManager::configure(std::unique_ptr<CommunicationManagerConfig> } _use_direct_storageapi_rpc = config->useDirectStorageapiRpc; - _message_codec_provider = std::make_unique<rpc::MessageCodecProvider>(_component.getTypeRepo()->documentTypeRepo, - _component.getLoadTypes()); + _message_codec_provider = std::make_unique<rpc::MessageCodecProvider>(_component.getTypeRepo()->documentTypeRepo); _shared_rpc_resources = std::make_unique<rpc::SharedRpcResources>(_configUri, config->rpcport, config->rpc.numNetworkThreads); _cc_rpc_service = std::make_unique<rpc::ClusterControllerApiRpcService>(*this, *_shared_rpc_resources); rpc::StorageApiRpcService::Params rpc_params; @@ -788,18 +786,17 @@ CommunicationManager::print(std::ostream& out, bool verbose, const std::string& out << "CommunicationManager"; } -void CommunicationManager::updateMessagebusProtocol( - const std::shared_ptr<const document::DocumentTypeRepo>& repo) { +void CommunicationManager::updateMessagebusProtocol(const std::shared_ptr<const document::DocumentTypeRepo>& repo) { if (_mbus) { framework::SecondTime now(_component.getClock().getTimeInSeconds()); - auto newDocumentProtocol = std::make_shared<documentapi::DocumentProtocol>(*_component.getLoadTypes(), repo); + auto newDocumentProtocol = std::make_shared<documentapi::DocumentProtocol>(repo); std::lock_guard<std::mutex> guard(_earlierGenerationsLock); _earlierGenerations.push_back(std::make_pair(now, _mbus->getMessageBus().putProtocol(newDocumentProtocol))); - auto newStorageProtocol = std::make_shared<mbusprot::StorageProtocol>(repo, *_component.getLoadTypes()); + auto newStorageProtocol = std::make_shared<mbusprot::StorageProtocol>(repo); _earlierGenerations.push_back(std::make_pair(now, _mbus->getMessageBus().putProtocol(newStorageProtocol))); } if (_message_codec_provider) { - _message_codec_provider->update_atomically(repo, _component.getLoadTypes()); + _message_codec_provider->update_atomically(repo); } } diff --git a/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.cpp b/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.cpp index 90ea4291a30..59c456daff4 100644 --- a/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.cpp +++ b/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.cpp @@ -4,20 +4,17 @@ namespace storage::rpc { -WrappedCodec::WrappedCodec(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo, - std::shared_ptr<const documentapi::LoadTypeSet> load_type_set) +WrappedCodec::WrappedCodec(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo) : _doc_type_repo(std::move(doc_type_repo)), - _load_type_set(std::move(load_type_set)), - _codec(std::make_unique<mbusprot::ProtocolSerialization7>(_doc_type_repo, *_load_type_set)) + _codec(std::make_unique<mbusprot::ProtocolSerialization7>(_doc_type_repo)) { } WrappedCodec::~WrappedCodec() = default; -MessageCodecProvider::MessageCodecProvider(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo, - std::shared_ptr<const documentapi::LoadTypeSet> load_type_set) +MessageCodecProvider::MessageCodecProvider(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo) : _rw_mutex(), - _active_codec(std::make_shared<WrappedCodec>(std::move(doc_type_repo), std::move(load_type_set))) + _active_codec(std::make_shared<WrappedCodec>(std::move(doc_type_repo))) { } @@ -28,11 +25,10 @@ std::shared_ptr<const WrappedCodec> MessageCodecProvider::wrapped_codec() const return _active_codec; } -void MessageCodecProvider::update_atomically(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo, - std::shared_ptr<const documentapi::LoadTypeSet> load_type_set) +void MessageCodecProvider::update_atomically(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo) { std::unique_lock w_lock(_rw_mutex); - _active_codec = std::make_shared<WrappedCodec>(std::move(doc_type_repo), std::move(load_type_set)); + _active_codec = std::make_shared<WrappedCodec>(std::move(doc_type_repo)); } } diff --git a/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.h b/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.h index fdadfd6f910..7643297760b 100644 --- a/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.h +++ b/storage/src/vespa/storage/storageserver/rpc/message_codec_provider.h @@ -5,18 +5,15 @@ #include <shared_mutex> namespace document { class DocumentTypeRepo; } -namespace documentapi { class LoadTypeSet; } namespace storage::mbusprot { class ProtocolSerialization7; } namespace storage::rpc { class WrappedCodec { const std::shared_ptr<const document::DocumentTypeRepo> _doc_type_repo; - const std::shared_ptr<const documentapi::LoadTypeSet> _load_type_set; std::unique_ptr<mbusprot::ProtocolSerialization7> _codec; public: - WrappedCodec(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo, - std::shared_ptr<const documentapi::LoadTypeSet> load_type_set); + WrappedCodec(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo); ~WrappedCodec(); [[nodiscard]] const mbusprot::ProtocolSerialization7& codec() const noexcept { return *_codec; } @@ -34,14 +31,12 @@ class MessageCodecProvider { mutable std::shared_mutex _rw_mutex; std::shared_ptr<WrappedCodec> _active_codec; public: - MessageCodecProvider(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo, - std::shared_ptr<const documentapi::LoadTypeSet> load_type_set); + MessageCodecProvider(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo); ~MessageCodecProvider(); [[nodiscard]] std::shared_ptr<const WrappedCodec> wrapped_codec() const noexcept; - void update_atomically(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo, - std::shared_ptr<const documentapi::LoadTypeSet> load_type_set); + void update_atomically(std::shared_ptr<const document::DocumentTypeRepo> doc_type_repo); }; } diff --git a/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.h b/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.h index 3ccd235fc43..7fc382fda07 100644 --- a/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.h +++ b/storage/src/vespa/storage/storageserver/rpc/storage_api_rpc_service.h @@ -14,7 +14,6 @@ class FRT_RPCRequest; class FRT_Target; namespace document { class DocumentTypeRepo; } -namespace documentapi { class LoadTypeSet; } namespace storage { diff --git a/storage/src/vespa/storage/storageserver/storagenode.cpp b/storage/src/vespa/storage/storageserver/storagenode.cpp index 2a6f45731f8..c6368ef0ee7 100644 --- a/storage/src/vespa/storage/storageserver/storagenode.cpp +++ b/storage/src/vespa/storage/storageserver/storagenode.cpp @@ -7,7 +7,6 @@ #include "statereporter.h" #include "storagemetricsset.h" #include "storagenodecontext.h" -#include "tls_statistics_metrics_wrapper.h" #include <vespa/storage/frameworkimpl/status/statuswebserver.h> #include <vespa/storage/frameworkimpl/thread/deadlockdetector.h> @@ -145,7 +144,6 @@ StorageNode::initialize() _rootFolder = _serverConfig->rootFolder; _context.getComponentRegister().setNodeInfo(_serverConfig->clusterName, getNodeType(), _serverConfig->nodeIndex); - _context.getComponentRegister().setLoadTypes(make_shared<documentapi::LoadTypeSet>(_configUri)); _context.getComponentRegister().setBucketIdFactory(document::BucketIdFactory()); _context.getComponentRegister().setDistribution(make_shared<lib::Distribution>(*_distributionConfig)); _context.getComponentRegister().setPriorityConfig(*_priorityConfig); @@ -164,11 +162,11 @@ StorageNode::initialize() // update node state according min used bits etc. // Needs node type to be set right away. Needs thread pool, index and // dead lock detector too, but not before open() - _stateManager.reset(new StateManager( + _stateManager = std::make_unique<StateManager>( _context.getComponentRegister(), _context.getComponentRegister().getMetricManager(), std::move(_hostInfo), - _singleThreadedDebugMode)); + _singleThreadedDebugMode); _context.getComponentRegister().setNodeStateUpdater(*_stateManager); // Create VDS root folder, in case it doesn't already exist. diff --git a/storage/src/vespa/storage/visiting/visitormanager.cpp b/storage/src/vespa/storage/visiting/visitormanager.cpp index 53846075ead..7c138afeb0f 100644 --- a/storage/src/vespa/storage/visiting/visitormanager.cpp +++ b/storage/src/vespa/storage/visiting/visitormanager.cpp @@ -8,7 +8,6 @@ #include "recoveryvisitor.h" #include <vespa/storage/common/statusmessages.h> #include <vespa/config/common/exceptions.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/vespalib/util/stringfmt.h> #include <cassert> diff --git a/storage/src/vespa/storage/visiting/visitormessagesessionfactory.h b/storage/src/vespa/storage/visiting/visitormessagesessionfactory.h index 5515595a1c5..308bf1959a8 100644 --- a/storage/src/vespa/storage/visiting/visitormessagesessionfactory.h +++ b/storage/src/vespa/storage/visiting/visitormessagesessionfactory.h @@ -3,6 +3,7 @@ #pragma once #include "visitormessagesession.h" +#include <vespa/documentapi/messagebus/priority.h> namespace storage { @@ -12,13 +13,11 @@ class VisitorThread; struct VisitorMessageSessionFactory { typedef std::unique_ptr<VisitorMessageSessionFactory> UP; - virtual ~VisitorMessageSessionFactory() {} + virtual ~VisitorMessageSessionFactory() = default; - virtual VisitorMessageSession::UP createSession(Visitor&, - VisitorThread&) = 0; + virtual VisitorMessageSession::UP createSession(Visitor&, VisitorThread&) = 0; - virtual documentapi::Priority::Value toDocumentPriority( - uint8_t storagePriority) const = 0; + virtual documentapi::Priority::Value toDocumentPriority(uint8_t storagePriority) const = 0; }; } // storage |