diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-11-27 15:46:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-27 15:46:10 +0100 |
commit | 612e02db659ebb4810e3010b69686646d63f1a1c (patch) | |
tree | cfa6165a641e7d9c56ab249dc200a1f05636a5d4 | |
parent | 3c95d11418e3ebffc1260207932b7e8f3955e1a0 (diff) | |
parent | f1de9102c79fb4c07c2a291c9318aa6605fa4d03 (diff) |
Merge pull request #15503 from vespa-engine/balder/gc-loadtype-set
Balder/gc loadtype set
77 files changed, 112 insertions, 734 deletions
diff --git a/documentapi/CMakeLists.txt b/documentapi/CMakeLists.txt index 86d29732399..855fd7ad0e6 100644 --- a/documentapi/CMakeLists.txt +++ b/documentapi/CMakeLists.txt @@ -15,7 +15,6 @@ vespa_define_module( LIBS src/vespa/documentapi - src/vespa/documentapi/loadtypes src/vespa/documentapi/messagebus src/vespa/documentapi/messagebus/messages src/vespa/documentapi/messagebus/policies @@ -24,7 +23,6 @@ vespa_define_module( messagebus_messagebus-test TESTS - src/tests/loadtypes src/tests/messagebus src/tests/messages src/tests/policies diff --git a/documentapi/src/tests/loadtypes/.gitignore b/documentapi/src/tests/loadtypes/.gitignore deleted file mode 100644 index 497fe4d4b3f..00000000000 --- a/documentapi/src/tests/loadtypes/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.depend -Makefile -documentapi_loadtype_test_app diff --git a/documentapi/src/tests/loadtypes/CMakeLists.txt b/documentapi/src/tests/loadtypes/CMakeLists.txt deleted file mode 100644 index bac42f9a27e..00000000000 --- a/documentapi/src/tests/loadtypes/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -vespa_add_executable(documentapi_loadtype_test_app TEST - SOURCES - loadtypetest.cpp - DEPENDS - documentapi - vdstestlib - GTest::GTest -) -vespa_add_test(NAME documentapi_loadtype_test_app COMMAND documentapi_loadtype_test_app) diff --git a/documentapi/src/tests/loadtypes/loadtypetest.cpp b/documentapi/src/tests/loadtypes/loadtypetest.cpp deleted file mode 100644 index 178b9f9227b..00000000000 --- a/documentapi/src/tests/loadtypes/loadtypetest.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include <vespa/documentapi/loadtypes/loadtypeset.h> -#include <vespa/config/config.h> -#include <vespa/config/common/exceptions.h> -#include <vespa/vespalib/gtest/gtest.h> - -namespace documentapi { - -void -assertConfigFailure(const vespalib::string &configId, const vespalib::string &expError) -{ - try { - LoadTypeSet createdFromConfigId(configId); - FAIL() << "Config was expected to fail with error: " << expError; - } catch (config::InvalidConfigException &e) { - EXPECT_TRUE(e.getMessage().find(expError) != std::string::npos); - } -} - -TEST(LoadTypeTest, testConfig) -{ - // Using id 0 is illegal. Reserved for default type. - assertConfigFailure( - "raw:" - "type[1]\n" - "type[0].id 0\n" - "type[0].name \"foo\"\n" - "type[0].priority \"\"", - "Load type identifiers need to be"); - // Using name "default" is illegal. Reserved for default type. - assertConfigFailure( - "raw:" - "type[1]\n" - "type[0].id 1\n" - "type[0].name \"default\"\n" - "type[0].priority \"\"", "Load type names need to be"); - // Identifiers need to be unique. - assertConfigFailure( - "raw:" - "type[2]\n" - "type[0].id 1\n" - "type[0].name \"test\"\n" - "type[0].priority \"\"\n" - "type[1].id 1\n" - "type[1].name \"testa\"\n" - "type[1].priority \"\"", "Load type identifiers need to be"); - // Names need to be unique. - assertConfigFailure( - "raw:" - "type[2]\n" - "type[0].id 1\n" - "type[0].name \"test\"\n" - "type[0].priority \"\"\n" - "type[1].id 2\n" - "type[1].name \"test\"\n" - "type[1].priority \"\"" , "Load type names need to be"); - LoadTypeSet set("raw:" - "type[3]\n" - "type[0].id 1\n" - "type[0].name \"user\"\n" - "type[0].priority \"\"\n" - "type[1].id 2\n" - "type[1].name \"maintenance\"\n" - "type[1].priority \"\"\n" - "type[2].id 3\n" - "type[2].name \"put\"\n" - "type[2].priority \"\"" - ); -} - -} // documentapi - -GTEST_MAIN_RUN_ALL_TESTS() diff --git a/documentapi/src/tests/messagebus/messagebus_test.cpp b/documentapi/src/tests/messagebus/messagebus_test.cpp index 3406db966f0..8f60bbc78e4 100644 --- a/documentapi/src/tests/messagebus/messagebus_test.cpp +++ b/documentapi/src/tests/messagebus/messagebus_test.cpp @@ -2,12 +2,9 @@ #include <vespa/document/base/testdocrepo.h> #include <vespa/document/datatype/documenttype.h> -#include <vespa/document/fieldvalue/document.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/document/update/documentupdate.h> #include <vespa/documentapi/documentapi.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> -#include <vespa/vdslib/state/clusterstate.h> #include <vespa/vespalib/testkit/testapp.h> using document::DocumentTypeRepo; @@ -66,8 +63,7 @@ void Test::testMessage() { EXPECT_TRUE(upd1.getType() == DocumentProtocol::MESSAGE_UPDATEDOCUMENT); EXPECT_TRUE(upd1.getProtocol() == "document"); - LoadTypeSet set; - DocumentProtocol protocol(set, _repo); + DocumentProtocol protocol(_repo); Blob blob = protocol.encode(vespalib::Version(6,221), upd1); EXPECT_TRUE(blob.size() > 0); @@ -89,8 +85,7 @@ void Test::testMessage() { } void Test::testProtocol() { - LoadTypeSet set; - DocumentProtocol protocol(set, _repo); + DocumentProtocol protocol(_repo); EXPECT_TRUE(protocol.getName() == "document"); IRoutingPolicy::UP policy = protocol.createPolicy(string("DocumentRouteSelector"), string("file:documentrouteselectorpolicy.cfg")); diff --git a/documentapi/src/tests/messages/testbase.cpp b/documentapi/src/tests/messages/testbase.cpp index 18902cb39a7..967c9990800 100644 --- a/documentapi/src/tests/messages/testbase.cpp +++ b/documentapi/src/tests/messages/testbase.cpp @@ -19,11 +19,9 @@ TestBase::TestBase() : _repo(new DocumentTypeRepo(readDocumenttypesConfig( TEST_PATH("../../../test/cfg/testdoctypes.cfg")))), _dataPath(TEST_PATH("../../../test/crosslanguagefiles")), - _loadTypes(), - _protocol(_loadTypes, _repo), + _protocol(_repo), _tests() { - _loadTypes.addLoadType(34, "foo", Priority::PRI_NORMAL_2); } int diff --git a/documentapi/src/tests/messages/testbase.h b/documentapi/src/tests/messages/testbase.h index e87f9104189..89398552f63 100644 --- a/documentapi/src/tests/messages/testbase.h +++ b/documentapi/src/tests/messages/testbase.h @@ -2,10 +2,10 @@ #pragma once #include <vespa/documentapi/messagebus/documentprotocol.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/messagebus/routable.h> #include <vespa/vespalib/component/version.h> #include <vespa/vespalib/testkit/testapp.h> +#include <map> using namespace documentapi; @@ -24,8 +24,7 @@ typedef bool (TestBase::*TEST_METHOD_PT)(); class TestBase : public vespalib::TestApp { std::shared_ptr<const document::DocumentTypeRepo> _repo; protected: - const string _dataPath; - LoadTypeSet _loadTypes; + const string _dataPath; DocumentProtocol _protocol; std::map<uint32_t, TEST_METHOD_PT> _tests; diff --git a/documentapi/src/tests/policies/policies_test.cpp b/documentapi/src/tests/policies/policies_test.cpp index a4eaf54c1dc..0c659f589d6 100644 --- a/documentapi/src/tests/policies/policies_test.cpp +++ b/documentapi/src/tests/policies/policies_test.cpp @@ -45,7 +45,6 @@ using namespace std::chrono_literals; class Test : public vespalib::TestApp { private: - LoadTypeSet _loadTypes; std::shared_ptr<const DocumentTypeRepo> _repo; const DataType *_docType; @@ -140,7 +139,7 @@ Test::Main() { void Test::testProtocol() { - mbus::IProtocol::SP protocol(new DocumentProtocol(_loadTypes, _repo)); + mbus::IProtocol::SP protocol(new DocumentProtocol(_repo)); mbus::IRoutingPolicy::UP policy = protocol->createPolicy("AND", ""); ASSERT_TRUE(dynamic_cast<ANDPolicy*>(policy.get()) != nullptr); @@ -220,7 +219,7 @@ Test::requireThatExternPolicySelectsFromExternSlobrok() for (uint32_t i = 0; i < 10; ++i) { mbus::TestServer *server = new mbus::TestServer( mbus::Identity(make_string("docproc/cluster.default/%d", i)), mbus::RoutingSpec(), slobrok, - mbus::IProtocol::SP(new DocumentProtocol(_loadTypes, _repo))); + mbus::IProtocol::SP(new DocumentProtocol(_repo))); servers.push_back(server); server->net.registerSession("chain.default"); } @@ -247,7 +246,7 @@ Test::requireThatExternPolicyMergesOneReplyAsProtocol() frame.setMessage(newPutDocumentMessage("id:ns:testdoc::")); mbus::Slobrok slobrok; mbus::TestServer server(mbus::Identity("docproc/cluster.default/0"), mbus::RoutingSpec(), slobrok, - mbus::IProtocol::SP(new DocumentProtocol(_loadTypes, _repo))); + mbus::IProtocol::SP(new DocumentProtocol(_repo))); server.net.registerSession("chain.default"); setupExternPolicy(frame, slobrok, "docproc/cluster.default/0/chain.default", 1); EXPECT_TRUE(frame.testMergeOneReply(server.net.getConnectionSpec() + "/chain.default")); @@ -310,7 +309,7 @@ Test::testExternSend() // Setup local source node. mbus::Slobrok local; mbus::TestServer src(mbus::Identity("src"), mbus::RoutingSpec(), local, - std::make_shared<DocumentProtocol>(_loadTypes, _repo)); + std::make_shared<DocumentProtocol>(_repo)); mbus::Receptor sr; mbus::SourceSession::UP ss = src.mb.createSourceSession(sr, mbus::SourceSessionParams().setTimeout(60s)); @@ -319,12 +318,12 @@ Test::testExternSend() .addTable(mbus::RoutingTableSpec(DocumentProtocol::NAME) .addRoute(mbus::RouteSpec("default").addHop("dst")) .addHop(mbus::HopSpec("dst", "dst/session"))), - slobrok, std::make_shared<DocumentProtocol>(_loadTypes, _repo)); + slobrok, std::make_shared<DocumentProtocol>(_repo)); mbus::Receptor ir; mbus::IntermediateSession::UP is = itr.mb.createIntermediateSession("session", true, ir, ir); mbus::TestServer dst(mbus::Identity("dst"), mbus::RoutingSpec(), slobrok, - std::make_shared<DocumentProtocol>(_loadTypes, _repo)); + std::make_shared<DocumentProtocol>(_repo)); mbus::Receptor dr; mbus::DestinationSession::UP ds = dst.mb.createDestinationSession("session", true, dr); @@ -351,7 +350,7 @@ Test::testExternMultipleSlobroks() { mbus::Slobrok local; mbus::TestServer src(mbus::Identity("src"), mbus::RoutingSpec(), local, - std::make_shared<DocumentProtocol>(_loadTypes, _repo)); + std::make_shared<DocumentProtocol>(_repo)); mbus::Receptor sr; mbus::SourceSession::UP ss = src.mb.createSourceSession(sr, mbus::SourceSessionParams().setTimeout(60s)); @@ -362,7 +361,7 @@ Test::testExternMultipleSlobroks() spec.append(vespalib::make_string("tcp/localhost:%d", ext.port())); mbus::TestServer dst(mbus::Identity("dst"), mbus::RoutingSpec(), ext, - std::make_shared<DocumentProtocol>(_loadTypes, _repo)); + std::make_shared<DocumentProtocol>(_repo)); mbus::DestinationSession::UP ds = dst.mb.createDestinationSession("session", true, dr); mbus::Message::UP msg = std::make_unique<GetDocumentMessage>(DocumentId("id:ns:testdoc::")); @@ -378,7 +377,7 @@ Test::testExternMultipleSlobroks() spec.append(vespalib::make_string(",tcp/localhost:%d", ext.port())); mbus::TestServer dst(mbus::Identity("dst"), mbus::RoutingSpec(), ext, - std::make_shared<DocumentProtocol>(_loadTypes, _repo)); + std::make_shared<DocumentProtocol>(_repo)); mbus::DestinationSession::UP ds = dst.mb.createDestinationSession("session", true, dr); mbus::Message::UP msg = std::make_unique<GetDocumentMessage>(DocumentId("id:ns:testdoc::")); @@ -592,12 +591,12 @@ Test::testDocumentRouteSelector() "route[0].selector \"foo bar\"\n" "route[0].feed \"baz\"\n"; { - DocumentProtocol protocol(_loadTypes, _repo, okConfig); + DocumentProtocol protocol(_repo, okConfig); EXPECT_TRUE(dynamic_cast<DocumentRouteSelectorPolicy*>(protocol.createPolicy("DocumentRouteSelector", "").get()) != nullptr); EXPECT_TRUE(dynamic_cast<ErrorPolicy*>(protocol.createPolicy("DocumentRouteSelector", errConfig).get()) != nullptr); } { - DocumentProtocol protocol(_loadTypes, _repo, errConfig); + DocumentProtocol protocol(_repo, errConfig); EXPECT_TRUE(dynamic_cast<ErrorPolicy*>(protocol.createPolicy("DocumentRouteSelector", "").get()) != nullptr); EXPECT_TRUE(dynamic_cast<DocumentRouteSelectorPolicy*>(protocol.createPolicy("DocumentRouteSelector", okConfig).get()) != nullptr); } @@ -802,7 +801,7 @@ Test::requireThatStoragePolicyIsRandomWithoutState() mbus::TestServer *srv = new mbus::TestServer( mbus::Identity(vespalib::make_string("storage/cluster.mycluster/distributor/%d", i)), mbus::RoutingSpec(), slobrok, - mbus::IProtocol::SP(new DocumentProtocol(_loadTypes, _repo))); + mbus::IProtocol::SP(new DocumentProtocol(_repo))); servers.push_back(srv); srv->net.registerSession("default"); } @@ -857,7 +856,7 @@ Test::requireThatStoragePolicyIsTargetedWithState() mbus::TestServer *srv = new mbus::TestServer( mbus::Identity(vespalib::make_string("storage/cluster.mycluster/distributor/%d", i)), mbus::RoutingSpec(), slobrok, - make_shared<DocumentProtocol>(_loadTypes, _repo)); + make_shared<DocumentProtocol>(_repo)); servers.push_back(srv); srv->net.registerSession("default"); } @@ -897,7 +896,7 @@ Test::requireThatStoragePolicyCombinesSystemAndSlobrokState() mbus::Slobrok slobrok; mbus::TestServer server(mbus::Identity("storage/cluster.mycluster/distributor/0"), mbus::RoutingSpec(), slobrok, - make_shared<DocumentProtocol>(_loadTypes, _repo)); + make_shared<DocumentProtocol>(_repo)); server.net.registerSession("default"); string param = vespalib::make_string( @@ -1053,7 +1052,7 @@ Test::trySelect(TestFrame &frame, uint32_t numSelects, const std::vector<string> bool Test::isErrorPolicy(const string &name, const string ¶m) { - DocumentProtocol protocol(_loadTypes, _repo); + DocumentProtocol protocol(_repo); mbus::IRoutingPolicy::UP policy = protocol.createPolicy(name, param); return policy && dynamic_cast<ErrorPolicy*>(policy.get()) != nullptr; diff --git a/documentapi/src/tests/policies/testframe.cpp b/documentapi/src/tests/policies/testframe.cpp index 585885b7c4b..16ee97ce7f4 100644 --- a/documentapi/src/tests/policies/testframe.cpp +++ b/documentapi/src/tests/policies/testframe.cpp @@ -60,9 +60,8 @@ public: TestFrame::TestFrame(const std::shared_ptr<const DocumentTypeRepo> &repo, const string &ident) : _identity(ident), _slobrok(std::make_shared<mbus::Slobrok>()), - _set(), _net(std::make_shared<MyNetwork>(mbus::RPCNetworkParams(_slobrok->config()).setIdentity(mbus::Identity(ident)))), - _mbus(std::make_shared<mbus::MessageBus>(*_net, mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(_set, repo)))), + _mbus(std::make_shared<mbus::MessageBus>(*_net, mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(repo)))), _msg(), _hop(mbus::HopSpec("foo", "bar")), _handler() diff --git a/documentapi/src/tests/policies/testframe.h b/documentapi/src/tests/policies/testframe.h index d85cde129c0..41f953922f9 100644 --- a/documentapi/src/tests/policies/testframe.h +++ b/documentapi/src/tests/policies/testframe.h @@ -7,7 +7,6 @@ #include <vespa/messagebus/network/inetwork.h> #include <vespa/messagebus/testlib/receptor.h> #include <vespa/messagebus/testlib/slobrok.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> using documentapi::string; @@ -15,7 +14,6 @@ class TestFrame : public mbus::IReplyHandler { private: string _identity; std::shared_ptr<mbus::Slobrok> _slobrok; - documentapi::LoadTypeSet _set; std::shared_ptr<mbus::INetwork> _net; std::shared_ptr<mbus::MessageBus> _mbus; mbus::Message::UP _msg; diff --git a/documentapi/src/tests/policyfactory/policyfactory.cpp b/documentapi/src/tests/policyfactory/policyfactory.cpp index 729818c5c4a..8c38e93e659 100644 --- a/documentapi/src/tests/policyfactory/policyfactory.cpp +++ b/documentapi/src/tests/policyfactory/policyfactory.cpp @@ -2,7 +2,6 @@ #include <vespa/documentapi/messagebus/iroutingpolicyfactory.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/documentapi/messagebus/documentprotocol.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/documentapi/messagebus/messages/removedocumentmessage.h> #include <vespa/messagebus/testlib/receptor.h> #include <vespa/messagebus/testlib/slobrok.h> @@ -82,9 +81,8 @@ Test::Main() std::shared_ptr<const DocumentTypeRepo> repo(new DocumentTypeRepo); mbus::Slobrok slobrok; - LoadTypeSet loadTypes; mbus::TestServer - srv(mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(loadTypes, repo)), + srv(mbus::MessageBusParams().addProtocol(std::make_shared<DocumentProtocol>(repo)), mbus::RPCNetworkParams(slobrok.config())); mbus::Receptor handler; mbus::SourceSession::UP src = srv.mb.createSourceSession(mbus::SourceSessionParams().setReplyHandler(handler)); diff --git a/documentapi/src/tests/routablefactory/routablefactory.cpp b/documentapi/src/tests/routablefactory/routablefactory.cpp index 32a36ef0b59..92e982b2be4 100644 --- a/documentapi/src/tests/routablefactory/routablefactory.cpp +++ b/documentapi/src/tests/routablefactory/routablefactory.cpp @@ -6,7 +6,6 @@ #include <vespa/messagebus/testlib/slobrok.h> #include <vespa/messagebus/testlib/testserver.h> #include <vespa/vespalib/testkit/testapp.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> using document::DocumentTypeRepo; using namespace documentapi; @@ -87,7 +86,6 @@ class TestData { public: mbus::Slobrok _slobrok; - LoadTypeSet _loadTypes; DocumentProtocol::SP _srcProtocol; mbus::TestServer _srcServer; mbus::SourceSession::UP _srcSession; @@ -116,13 +114,12 @@ TEST_APPHOOK(Test); TestData::TestData() : _repo(std::make_shared<DocumentTypeRepo>()), _slobrok(), - _loadTypes(), - _srcProtocol(std::make_shared<DocumentProtocol>(_loadTypes, _repo)), + _srcProtocol(std::make_shared<DocumentProtocol>(_repo)), _srcServer(mbus::MessageBusParams().addProtocol(_srcProtocol), mbus::RPCNetworkParams(_slobrok.config())), _srcSession(), _srcHandler(), - _dstProtocol(std::make_shared<DocumentProtocol>(_loadTypes, _repo)), + _dstProtocol(std::make_shared<DocumentProtocol>(_repo)), _dstServer(mbus::MessageBusParams().addProtocol(_dstProtocol), mbus::RPCNetworkParams(_slobrok.config()).setIdentity(mbus::Identity("dst"))), _dstSession(), diff --git a/documentapi/src/vespa/documentapi/CMakeLists.txt b/documentapi/src/vespa/documentapi/CMakeLists.txt index 46bc0239834..3011259f856 100644 --- a/documentapi/src/vespa/documentapi/CMakeLists.txt +++ b/documentapi/src/vespa/documentapi/CMakeLists.txt @@ -4,7 +4,6 @@ vespa_add_library(documentapi $<TARGET_OBJECTS:documentapi_documentapimessagebus> $<TARGET_OBJECTS:documentapi_documentapimessages> $<TARGET_OBJECTS:documentapi_documentapipolicies> - $<TARGET_OBJECTS:documentapi_documentapiloadtypes> INSTALL lib64 DEPENDS ) diff --git a/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt b/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt deleted file mode 100644 index 42f4d66af07..00000000000 --- a/documentapi/src/vespa/documentapi/loadtypes/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -vespa_add_library(documentapi_documentapiloadtypes OBJECT - SOURCES - loadtype.cpp - loadtypeset.cpp - DEPENDS -) diff --git a/documentapi/src/vespa/documentapi/loadtypes/loadtype.cpp b/documentapi/src/vespa/documentapi/loadtypes/loadtype.cpp deleted file mode 100644 index 5dfdfb0bc09..00000000000 --- a/documentapi/src/vespa/documentapi/loadtypes/loadtype.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include "loadtype.h" -#include <vespa/vespalib/stllike/asciistream.h> - -namespace documentapi { - -const LoadType LoadType::DEFAULT(0, "default", Priority::PRI_NORMAL_3); - -void -LoadType::print(vespalib::asciistream & os) const -{ - os << "LoadType(" << getId() << ": " << getName() << ")"; -} - -} // documentapi diff --git a/documentapi/src/vespa/documentapi/loadtypes/loadtype.h b/documentapi/src/vespa/documentapi/loadtypes/loadtype.h deleted file mode 100644 index a18142e78bd..00000000000 --- a/documentapi/src/vespa/documentapi/loadtypes/loadtype.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -/** - * \class LoadType - * \ingroup loadtype - * - * \brief Class used to identify a given load type. - * - * A load type is a type given to a Vespa operation that is independent of the - * message type, priority or such information. Load types are given by clients - * to external load (if not given, default load type is used), and might also be - * set by the system itself for maintenance load. - */ - -#pragma once - -#include <vespa/metrics/loadtype.h> -#include <vespa/documentapi/messagebus/priority.h> - -namespace vespalib { - class asciistream; -} - -namespace documentapi { - -// Inherit metrics loadtype so it is easy to use load types in load metrics. -class LoadType : public metrics::LoadType { - Priority::Value _priority; - -public: - using UP = std::unique_ptr<LoadType>; - - LoadType(uint32_t id, const string& name, Priority::Value priority) - : metrics::LoadType(id, name), _priority(priority) {} - static const LoadType DEFAULT; - - Priority::Value getPriority() const { return _priority; } -private: - void print(vespalib::asciistream & os) const; -}; - -} diff --git a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp b/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp deleted file mode 100644 index 42aa79332db..00000000000 --- a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include "loadtypeset.h" -#include <vespa/config-load-type.h> -#include <vespa/config/config.h> -#include <vespa/config/common/exceptions.h> -#include <vespa/vespalib/util/stringfmt.h> -#include <vespa/vespalib/stllike/hash_map.hpp> -#include <vespa/config/helper/configgetter.hpp> - - -namespace documentapi { - -void LoadTypeSet::configure(const LoadTypeConfig& config) { - // This configure does not support live reconfig - if (!_types.empty()) return; - - addLoadType(0, LoadType::DEFAULT.getName(), LoadType::DEFAULT.getPriority()); - - for (uint32_t i=0; i<config.type.size(); ++i) { - addLoadType(config.type[i].id, config.type[i].name, Priority::getPriority(config.type[i].priority)); - } -} - -LoadTypeSet::LoadTypeSet() -{ - addLoadType(0, LoadType::DEFAULT.getName(), LoadType::DEFAULT.getPriority()); -} - -LoadTypeSet::LoadTypeSet(const config::ConfigUri & configUri) -{ - std::unique_ptr<LoadTypeConfig> cfg = config::ConfigGetter<LoadTypeConfig>::getConfig(configUri.getConfigId(), configUri.getContext()); - configure(*cfg); -} - -LoadTypeSet::LoadTypeSet(const LoadTypeConfig& config) -{ - configure(config); -} - -LoadTypeSet::~LoadTypeSet() = default; - -void -LoadTypeSet::addLoadType(uint32_t id, const string& name, Priority::Value priority) { - auto it(_types.find(id)); - if (it != _types.end()) { - throw config::InvalidConfigException("Load type identifiers need to be non-overlapping, 1+ and without gaps.\n", VESPA_STRLOC); - } - if (_nameMap.find(name) != _nameMap.end()) { - throw config::InvalidConfigException("Load type names need to be unique and different from the reserved name \"default\".", VESPA_STRLOC); - } - _types[id] = std::make_unique<LoadType>(id, name, priority); - _nameMap[name] = _types[id].get(); -} - -metrics::LoadTypeSet -LoadTypeSet::getMetricLoadTypes() const { - metrics::LoadTypeSet result; - for (const auto & entry : _types) { - result.push_back(metrics::LoadType(entry.first, entry.second->getName())); - } - return result; -} - -const LoadType& -LoadTypeSet::operator[](uint32_t id) const { - auto it(_types.find(id)); - return (it == _types.end() ? LoadType::DEFAULT : *it->second); -} - -const LoadType& -LoadTypeSet::operator[](const string& name) const { - auto it(_nameMap.find(name)); - - return (it == _nameMap.end() ? LoadType::DEFAULT : *it->second); -} - -const LoadType* -LoadTypeSet::findLoadType(const string& name) const { - auto it(_nameMap.find(name)); - return (it == _nameMap.end() ? 0 : it->second); -} - -} diff --git a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h b/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h deleted file mode 100644 index f593935e8b3..00000000000 --- a/documentapi/src/vespa/documentapi/loadtypes/loadtypeset.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -/** - * \class LoadTypeSet - * \ingroup loadtype - * - * \brief Class containing all the various load types that have been configured. - * - * The load type set makes configured load types available in an easy way for - * different parts of Vespa to access it. - */ -#pragma once - -#include "loadtype.h" -#include <vespa/vespalib/stllike/hash_map.h> -#include <map> - -namespace config { - class ConfigUri; -} - -namespace vespa { -namespace config { -namespace content { -namespace internal { - class InternalLoadTypeType; -} -} -} -} - -namespace documentapi { - -class LoadTypeSet -{ - using LoadTypeConfig = const vespa::config::content::internal::InternalLoadTypeType; - vespalib::hash_map<uint32_t, std::unique_ptr<LoadType>> _types; - // Want order to be ~ alphabetical. - std::map<string, LoadType*> _nameMap; - - void configure(const LoadTypeConfig& config); -public: - typedef std::unique_ptr<LoadTypeSet> UP; - typedef std::shared_ptr<LoadTypeSet> SP; - - LoadTypeSet(const LoadTypeSet&) = delete; - LoadTypeSet& operator=(const LoadTypeSet&) = delete; - - LoadTypeSet(); - LoadTypeSet(const config::ConfigUri & configUri); - LoadTypeSet(const LoadTypeConfig& config); - ~LoadTypeSet(); - - void addLoadType(uint32_t id, const string& name, Priority::Value priority); - - const std::map<string, LoadType*>& getLoadTypes() const { return _nameMap; } - metrics::LoadTypeSet getMetricLoadTypes() const; - - const LoadType& operator[](uint32_t id) const; - const LoadType& operator[](const string& name) const; - uint32_t size() const { return uint32_t(_types.size()); } - - /** - * Attempts to locate a load type with given name. Returns 0 if none found. - */ - const LoadType* findLoadType(const string& name) const; -}; - -} // documentapi - diff --git a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp index a957ce5e4ff..560f2f28f0e 100644 --- a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp @@ -21,11 +21,9 @@ namespace documentapi { const mbus::string DocumentProtocol::NAME = "document"; -DocumentProtocol::DocumentProtocol(const LoadTypeSet& loadTypes, - std::shared_ptr<const DocumentTypeRepo> repo, - const string &configId) : +DocumentProtocol::DocumentProtocol(std::shared_ptr<const DocumentTypeRepo> repo, const string &configId) : _routingPolicyRepository(std::make_unique<RoutingPolicyRepository>()), - _routableRepository(std::make_unique<RoutableRepository>(loadTypes)), + _routableRepository(std::make_unique<RoutableRepository>()), _repo(std::move(repo)) { // Prepare config string for routing policy factories. diff --git a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h index eeae4553b3b..f35c6dd0810 100644 --- a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h +++ b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h @@ -17,7 +17,6 @@ namespace document { namespace documentapi { -class LoadTypeSet; class RoutingPolicyRepository; class RoutableRepository; class IRoutingPolicyFactory; @@ -194,9 +193,7 @@ public: * * @param configId The id to use when subscribing to config. */ - DocumentProtocol(const LoadTypeSet& loadTypes, - std::shared_ptr<const document::DocumentTypeRepo> repo, - const string &configId = ""); + DocumentProtocol(std::shared_ptr<const document::DocumentTypeRepo> repo, const string &configId = ""); ~DocumentProtocol() override; /** diff --git a/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h b/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h index 2b492dea240..9a41960b852 100644 --- a/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h +++ b/documentapi/src/vespa/documentapi/messagebus/iroutablefactory.h @@ -8,8 +8,6 @@ namespace documentapi { -class LoadTypeSet; - /** * This interface defines the necessary methods of a routable factory that can be plugged into a {@link * DocumentProtocol} using the {@link DocumentProtocol#putRoutableFactory(int, RoutableFactory, @@ -59,7 +57,7 @@ public: * @param loadTypes The set of configured load types. * @return The decoded routable. */ - virtual mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const = 0; + virtual mbus::Routable::UP decode(document::ByteBuffer &in) const = 0; }; } diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp index 26e609c79fa..8202e938bde 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.cpp @@ -7,7 +7,6 @@ #include <vespa/document/select/parser.h> #include <vespa/document/update/documentupdate.h> #include <vespa/documentapi/documentapi.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/vespalib/objects/nbostream.h> using document::FixedBucketSpaces; @@ -22,12 +21,12 @@ RoutableFactories60::DocumentMessageFactory::encode(const mbus::Routable &obj, v { const auto &msg = static_cast<const DocumentMessage&>(obj); out.putByte(msg.getPriority()); - out.putInt(LoadType::DEFAULT.getId()); + out.putInt(0); // LoadType return doEncode(msg, out); } mbus::Routable::UP -RoutableFactories60::DocumentMessageFactory::decode(document::ByteBuffer &in, const LoadTypeSet&) const +RoutableFactories60::DocumentMessageFactory::decode(document::ByteBuffer &in) const { uint8_t pri; in.getByte(pri); @@ -50,7 +49,7 @@ RoutableFactories60::DocumentReplyFactory::encode(const mbus::Routable &obj, ves } mbus::Routable::UP -RoutableFactories60::DocumentReplyFactory::decode(document::ByteBuffer &in, const LoadTypeSet&) const +RoutableFactories60::DocumentReplyFactory::decode(document::ByteBuffer &in) const { uint8_t pri; in.getByte(pri); diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h index 579abbda291..7e8156ee071 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h @@ -87,7 +87,7 @@ public: public: bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override; - mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override; + mbus::Routable::UP decode(document::ByteBuffer &in) const override; }; /** @@ -121,7 +121,7 @@ public: public: bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override; - mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override; + mbus::Routable::UP decode(document::ByteBuffer &in) const override; }; //////////////////////////////////////////////////////////////////////////////// diff --git a/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp b/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp index 6ed33cda060..60cdbb3a5e8 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/routablerepository.cpp @@ -1,9 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "routablerepository.h" -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/document/util/stringutil.h> -#include <vespa/vespalib/util/exceptions.h> #include <sstream> #include <algorithm> @@ -44,11 +42,10 @@ RoutableRepository::VersionMap::getFactory(const vespalib::Version &version) con [](auto & lhs, auto & rhs) { return lhs.first.compareTo(rhs.first) <= 0; })->second; } -RoutableRepository::RoutableRepository(const LoadTypeSet& loadTypes) : +RoutableRepository::RoutableRepository() : _lock(), _factoryTypes(), - _cache(), - _loadTypes(loadTypes) + _cache() { } @@ -69,7 +66,7 @@ RoutableRepository::decode(const vespalib::Version &version, mbus::BlobRef data) type, version.toString().c_str()); return mbus::Routable::UP(); } - mbus::Routable::UP ret = factory->decode(in, _loadTypes); + mbus::Routable::UP ret = factory->decode(in); if (!ret) { LOG(error, "Routable factory failed to deserialize routable of type %d (version %s).", type, version.toString().c_str()); diff --git a/documentapi/src/vespa/documentapi/messagebus/routablerepository.h b/documentapi/src/vespa/documentapi/messagebus/routablerepository.h index 7e73f3929b8..1b043e2b6f8 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablerepository.h +++ b/documentapi/src/vespa/documentapi/messagebus/routablerepository.h @@ -9,8 +9,6 @@ namespace documentapi { -class LoadTypeSet; - /** * This class encapsulates the logic required to map routable type and version to a corresponding {@link * RoutableFactory}. It is owned and accessed through a {@link DocumentProtocol} instance. This class uses a @@ -40,7 +38,6 @@ private: mutable std::mutex _lock; TypeMap _factoryTypes; mutable FactoryCache _cache; - const LoadTypeSet& _loadTypes; public: RoutableRepository(const RoutableRepository &) = delete; @@ -48,7 +45,7 @@ public: /** * Constructs a new routable repository. */ - explicit RoutableRepository(const LoadTypeSet& loadTypes); + RoutableRepository(); /** * Decodes a {@link Routable} from the given byte array. This uses the content of the byte array to diff --git a/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp b/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp index f034ccdd6d1..a842caef379 100644 --- a/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp +++ b/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp @@ -6,7 +6,6 @@ #include <vespa/document/document.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/documentapi/documentapi.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/messagebus/destinationsession.h> #include <vespa/messagebus/protocolset.h> #include <vespa/messagebus/rpcmessagebus.h> @@ -47,7 +46,6 @@ public: class FeedHandler : public mbus::IMessageHandler { private: - documentapi::LoadTypeSet _loadTypes; mbus::RPCMessageBus _mbus; mbus::DestinationSession::UP _session; OutputFile &_idx; @@ -95,8 +93,7 @@ FeedHandler::handleMessage(mbus::Message::UP message) } FeedHandler::FeedHandler(std::shared_ptr<const document::DocumentTypeRepo> repo, OutputFile &idx, OutputFile &dat) - : _loadTypes(), - _mbus(mbus::MessageBusParams().addProtocol(mbus::IProtocol::SP(new documentapi::DocumentProtocol(_loadTypes, repo))), + : _mbus(mbus::MessageBusParams().addProtocol(std::make_shared<documentapi::DocumentProtocol>(repo)), mbus::RPCNetworkParams()), _session(_mbus.getMessageBus() .createDestinationSession(mbus::DestinationSessionParams() diff --git a/searchcore/src/apps/vespa-feed-bm/bm_message_bus.cpp b/searchcore/src/apps/vespa-feed-bm/bm_message_bus.cpp index ec50a4c7c01..b608593dada 100644 --- a/searchcore/src/apps/vespa-feed-bm/bm_message_bus.cpp +++ b/searchcore/src/apps/vespa-feed-bm/bm_message_bus.cpp @@ -129,16 +129,15 @@ BmMessageBus::ReplyHandler::message_aborted(uint64_t msg_id) } BmMessageBus::BmMessageBus(const config::ConfigUri& config_uri, - std::shared_ptr<const document::DocumentTypeRepo> document_type_repo, - const documentapi::LoadTypeSet& load_types) + std::shared_ptr<const document::DocumentTypeRepo> document_type_repo) : _reply_handler(std::make_unique<ReplyHandler>()), _message_bus(), _session() { mbus::RPCNetworkParams params(config_uri); mbus::ProtocolSet protocol_set; - protocol_set.add(std::make_shared<DocumentProtocol>(load_types, document_type_repo)); - protocol_set.add(std::make_shared<StorageProtocol>(document_type_repo, load_types)); + protocol_set.add(std::make_shared<DocumentProtocol>(document_type_repo)); + protocol_set.add(std::make_shared<StorageProtocol>(document_type_repo)); params.setIdentity(mbus::Identity("vespa-bm-client")); _message_bus = std::make_unique<mbus::RPCMessageBus>( protocol_set, diff --git a/searchcore/src/apps/vespa-feed-bm/bm_message_bus.h b/searchcore/src/apps/vespa-feed-bm/bm_message_bus.h index 9ebe394e9e6..a9cff1fb826 100644 --- a/searchcore/src/apps/vespa-feed-bm/bm_message_bus.h +++ b/searchcore/src/apps/vespa-feed-bm/bm_message_bus.h @@ -6,7 +6,6 @@ namespace config { class ConfigUri; } namespace document { class DocumentTypeRepo; } -namespace documentapi { class LoadTypeSet; } namespace mbus { @@ -32,8 +31,7 @@ class BmMessageBus std::unique_ptr<mbus::SourceSession> _session; public: BmMessageBus(const config::ConfigUri& config_uri, - std::shared_ptr<const document::DocumentTypeRepo> document_type_repo, - const documentapi::LoadTypeSet& load_types); + std::shared_ptr<const document::DocumentTypeRepo> document_type_repo); ~BmMessageBus(); uint32_t get_error_count() const; void send_msg(std::unique_ptr<mbus::Message> msg, const mbus::Route &route, PendingTracker &tracker); diff --git a/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp b/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp index 575cde3fe00..d37b6ee9f41 100644 --- a/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp +++ b/searchcore/src/apps/vespa-feed-bm/storage_api_rpc_bm_feed_handler.cpp @@ -6,14 +6,12 @@ #include "storage_reply_error_checker.h" #include <vespa/document/fieldvalue/document.h> #include <vespa/document/update/documentupdate.h> -#include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/storageapi/messageapi/storagemessage.h> #include <vespa/storageapi/message/persistence.h> #include <vespa/storage/storageserver/message_dispatcher.h> #include <vespa/storage/storageserver/rpc/message_codec_provider.h> #include <vespa/storage/storageserver/rpc/shared_rpc_resources.h> #include <vespa/storage/storageserver/rpc/storage_api_rpc_service.h> -#include <cassert> using document::Document; using document::DocumentId; @@ -75,7 +73,7 @@ StorageApiRpcBmFeedHandler::StorageApiRpcBmFeedHandler(SharedRpcResources& share _storage_address(std::make_unique<StorageMessageAddress>(&_Storage, distributor ? NodeType::DISTRIBUTOR : NodeType::STORAGE, 0)), _shared_rpc_resources(shared_rpc_resources_in), _message_dispatcher(std::make_unique<MyMessageDispatcher>()), - _message_codec_provider(std::make_unique<storage::rpc::MessageCodecProvider>(repo, std::make_shared<documentapi::LoadTypeSet>())), + _message_codec_provider(std::make_unique<storage::rpc::MessageCodecProvider>(repo)), _rpc_client(std::make_unique<storage::rpc::StorageApiRpcService>(*_message_dispatcher, _shared_rpc_resources, *_message_codec_provider, rpc_params)) { } diff --git a/searchcore/src/apps/vespa-feed-bm/vespa_feed_bm.cpp b/searchcore/src/apps/vespa-feed-bm/vespa_feed_bm.cpp index a55638651d6..9cbbbcb8761 100644 --- a/searchcore/src/apps/vespa-feed-bm/vespa_feed_bm.cpp +++ b/searchcore/src/apps/vespa-feed-bm/vespa_feed_bm.cpp @@ -15,7 +15,6 @@ #include <vespa/config-bucketspaces.h> #include <vespa/config-imported-fields.h> #include <vespa/config-indexschema.h> -#include <vespa/config-load-type.h> #include <vespa/config-persistence.h> #include <vespa/config-rank-profiles.h> #include <vespa/config-slobroks.h> @@ -62,7 +61,6 @@ #include <vespa/storage/config/config-stor-communicationmanager.h> #include <vespa/storage/config/config-stor-distributormanager.h> #include <vespa/storage/config/config-stor-opslogger.h> -#include <vespa/storage/config/config-stor-prioritymapping.h> #include <vespa/storage/config/config-stor-server.h> #include <vespa/storage/config/config-stor-status.h> #include <vespa/storage/config/config-stor-visitordispatcher.h> @@ -86,7 +84,6 @@ using namespace std::chrono_literals; using namespace vespa::config::search::core; using namespace vespa::config::search::summary; using namespace vespa::config::search; -using vespa::config::content::LoadTypeConfigBuilder; using vespa::config::content::PersistenceConfigBuilder; using vespa::config::content::StorDistributionConfigBuilder; using vespa::config::content::StorFilestorConfigBuilder; @@ -98,7 +95,6 @@ using vespa::config::content::core::StorBucketInitConfigBuilder; using vespa::config::content::core::StorCommunicationmanagerConfigBuilder; using vespa::config::content::core::StorDistributormanagerConfigBuilder; using vespa::config::content::core::StorOpsloggerConfigBuilder; -using vespa::config::content::core::StorPrioritymappingConfigBuilder; using vespa::config::content::core::StorServerConfigBuilder; using vespa::config::content::core::StorStatusConfigBuilder; using vespa::config::content::core::StorVisitorConfigBuilder; @@ -439,12 +435,10 @@ struct MyStorageConfig StorBouncerConfigBuilder stor_bouncer; StorCommunicationmanagerConfigBuilder stor_communicationmanager; StorOpsloggerConfigBuilder stor_opslogger; - StorPrioritymappingConfigBuilder stor_prioritymapping; UpgradingConfigBuilder upgrading; StorServerConfigBuilder stor_server; StorStatusConfigBuilder stor_status; BucketspacesConfigBuilder bucketspaces; - LoadTypeConfigBuilder load_type; MetricsmanagerConfigBuilder metricsmanager; SlobroksConfigBuilder slobroks; MessagebusConfigBuilder messagebus; @@ -457,12 +451,10 @@ struct MyStorageConfig stor_bouncer(), stor_communicationmanager(), stor_opslogger(), - stor_prioritymapping(), upgrading(), stor_server(), stor_status(), bucketspaces(), - load_type(), metricsmanager(), slobroks(), messagebus() @@ -511,12 +503,10 @@ struct MyStorageConfig set.addBuilder(config_id, &stor_bouncer); set.addBuilder(config_id, &stor_communicationmanager); set.addBuilder(config_id, &stor_opslogger); - set.addBuilder(config_id, &stor_prioritymapping); set.addBuilder(config_id, &upgrading); set.addBuilder(config_id, &stor_server); set.addBuilder(config_id, &stor_status); set.addBuilder(config_id, &bucketspaces); - set.addBuilder(config_id, &load_type); set.addBuilder(config_id, &metricsmanager); set.addBuilder(config_id, &slobroks); set.addBuilder(config_id, &messagebus); @@ -919,9 +909,7 @@ PersistenceProviderFixture::start_message_bus() { config::ConfigUri config_uri("bm-message-bus", _config_context); LOG(info, "Starting message bus"); - _message_bus = std::make_unique<BmMessageBus>(config_uri, - _repo, - documentapi::LoadTypeSet()); + _message_bus = std::make_unique<BmMessageBus>(config_uri, _repo); LOG(info, "Started message bus"); } diff --git a/storage/src/tests/common/metricstest.cpp b/storage/src/tests/common/metricstest.cpp index 2c09b2974e5..3f7e1036c08 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); @@ -137,15 +134,13 @@ void MetricsTest::createFakeLoad() { FileStorDiskMetrics& disk(*_filestorMetrics->disk); disk.queueSize.addValue(4 * n); - //disk.averageQueueWaitingTime[documentapi::LoadType::DEFAULT].addValue(10 * n); + disk.averageQueueWaitingTime.addValue(10 * n); disk.pendingMerges.addValue(4 * n); for (uint32_t j=0; j<disk.threads.size(); ++j) { FileStorThreadMetrics& thread(*disk.threads[j]); thread.operations.inc(120 * n); thread.failedOperations.inc(2 * n); - using documentapi::LoadType; - thread.put.count.inc(10 * n); thread.put.latency.addValue(5 * n); thread.get.count.inc(12 * n); @@ -242,7 +237,6 @@ TEST_F(MetricsTest, snapshot_presenting) { LOG(debug, "Adding to get metric"); - using documentapi::LoadType; thread0.get.count.inc(1); LOG(debug, "Waiting for 5 minute snapshot to be taken"); diff --git a/storage/src/tests/common/teststorageapp.cpp b/storage/src/tests/common/teststorageapp.cpp index e904f690bde..81ef5a2e800 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()); @@ -55,15 +54,8 @@ TestStorageApp::TestStorageApp(StorageComponentRegisterImpl::UP compReg, if (index == 0xffff) index = serverConfig->nodeIndex; redundancy = config::ConfigGetter<vespa::config::content::StorDistributionConfig>::getConfig(uri.getConfigId(), uri.getContext())->redundancy; nodeCount = config::ConfigGetter<vespa::config::content::FleetcontrollerConfig>::getConfig(uri.getConfigId(), uri.getContext())->totalStorageCount; - _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 +63,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..121195ba033 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); @@ -223,7 +221,6 @@ TEST_F(StateReporterTest, report_metrics) { LOG(debug, "Adding to get metric"); - using documentapi::LoadType; thread0.get.count.inc(1); LOG(debug, "Waiting for 5 minute snapshot to be taken"); diff --git a/storage/src/vespa/storage/common/storagecomponent.cpp b/storage/src/vespa/storage/common/storagecomponent.cpp index c5194f909c0..7e0543a0893 100644 --- a/storage/src/vespa/storage/common/storagecomponent.cpp +++ b/storage/src/vespa/storage/common/storagecomponent.cpp @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "storagecomponent.h" -#include <vespa/storage/storageserver/prioritymapper.h> #include <vespa/vespalib/util/exceptions.h> #include <vespa/vespalib/stllike/asciistream.h> #include <vespa/vdslib/distribution/distribution.h> @@ -40,22 +39,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. - _priorityMapper->setConfig(c); -} - -void StorageComponent::setBucketIdFactory(const document::BucketIdFactory& factory) { // Assumed to not be set dynamically. @@ -88,8 +71,6 @@ StorageComponent::StorageComponent(StorageComponentRegister& compReg, _nodeType(nullptr), _index(0), _repos(), - _loadTypes(), - _priorityMapper(new PriorityMapper), _bucketIdFactory(), _distribution(), _nodeStateUpdater(nullptr), @@ -120,12 +101,6 @@ StorageComponent::getIdentity() const return name.str(); } -uint8_t -StorageComponent::getPriority(const documentapi::LoadType& lt) const -{ - return _priorityMapper->getPriority(lt); -} - std::shared_ptr<StorageComponent::Repos> StorageComponent::getTypeRepo() const { @@ -133,13 +108,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..8910c6da587 100644 --- a/storage/src/vespa/storage/common/storagecomponent.h +++ b/storage/src/vespa/storage/common/storagecomponent.h @@ -37,24 +37,16 @@ #include <vespa/vdslib/state/node.h> #include <mutex> -namespace vespa::config::content::core::internal { - class InternalStorPrioritymappingType; -} namespace document { class DocumentTypeRepo; class FieldSetRepo; } -namespace documentapi { - class LoadType; - class LoadTypeSet; -} namespace storage { namespace lib { class Distribution; } struct NodeStateUpdater; -class PriorityMapper; struct StorageComponentRegister; class StorageComponent : public framework::Component { @@ -66,8 +58,6 @@ public: const std::shared_ptr<const document::FieldSetRepo> fieldSetRepo; }; 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,8 +73,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,9 +87,7 @@ 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; NodeStateUpdater& getStateUpdater() const; uint64_t getGeneration() const { return _generation.load(std::memory_order_relaxed); } @@ -110,9 +96,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; - std::unique_ptr<PriorityMapper> _priorityMapper; + // TODO: move _distribution in to _repos so lock will only taken once and only copying one shared_ptr. document::BucketIdFactory _bucketIdFactory; DistributionSP _distribution; NodeStateUpdater* _nodeStateUpdater; 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..3ce02a73324 100644 --- a/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.cpp +++ b/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.cpp @@ -16,8 +16,6 @@ StorageComponentRegisterImpl::StorageComponentRegisterImpl() _nodeType(nullptr), _index(0xffff), _docTypeRepo(), - _loadTypes(new documentapi::LoadTypeSet), - _priorityConfig(), _bucketIdFactory(), _distribution(), _nodeStateUpdater(nullptr), @@ -38,8 +36,6 @@ StorageComponentRegisterImpl::registerStorageComponent(StorageComponent& smc) smc.setNodeStateUpdater(*_nodeStateUpdater); } smc.setDocumentTypeRepo(_docTypeRepo); - smc.setLoadTypes(_loadTypes); - smc.setPriorityConfig(_priorityConfig); smc.setBucketIdFactory(_bucketIdFactory); smc.setDistribution(_distribution); } @@ -85,26 +81,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); - _priorityConfig = config; - for (auto& component : _components) { - component->setPriorityConfig(config); - } -} - -void StorageComponentRegisterImpl::setBucketIdFactory(const document::BucketIdFactory& factory) { 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..be3c89fe176 100644 --- a/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h +++ b/storage/src/vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h @@ -8,10 +8,8 @@ #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> #include <vespa/storageframework/defaultimplementation/component/componentregisterimpl.h> #include <vespa/vdslib/distribution/distribution.h> @@ -21,7 +19,6 @@ class StorageComponentRegisterImpl : public virtual StorageComponentRegister, public virtual framework::defaultimplementation::ComponentRegisterImpl { - using PriorityConfig = StorageComponent::PriorityConfig; using BucketspacesConfig = vespa::config::content::core::internal::InternalBucketspacesType; std::mutex _componentLock; @@ -30,8 +27,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; NodeStateUpdater* _nodeStateUpdater; @@ -47,7 +42,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,8 +51,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); virtual void setBucketSpacesConfig(const BucketspacesConfig&); 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/documentapiconverter.cpp b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp index b1c8c1e43a4..70f47d8108b 100644 --- a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp +++ b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp @@ -185,7 +185,7 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentReply& fromReply, break; } - if (toMsg.get()) { + if (toMsg) { if (fromReply.hasErrors()) { toMsg->setResult(api::ReturnCode((api::ReturnCode::Result) fromReply.getError(0).getCode(), fromReply.getError(0).getMessage())); diff --git a/storage/src/vespa/storage/storageserver/priorityconverter.cpp b/storage/src/vespa/storage/storageserver/priorityconverter.cpp index 41bea1b44df..d4dbe943664 100644 --- a/storage/src/vespa/storage/storageserver/priorityconverter.cpp +++ b/storage/src/vespa/storage/storageserver/priorityconverter.cpp @@ -13,9 +13,7 @@ PriorityConverter::PriorityConverter(const config::ConfigUri & configUri) _configFetcher.start(); } -PriorityConverter::~PriorityConverter() -{ -} +PriorityConverter::~PriorityConverter() = default; uint8_t PriorityConverter::toStoragePriority(documentapi::Priority::Value documentApiPriority) const diff --git a/storage/src/vespa/storage/storageserver/prioritymapper.h b/storage/src/vespa/storage/storageserver/prioritymapper.h deleted file mode 100644 index f5aebcfb786..00000000000 --- a/storage/src/vespa/storage/storageserver/prioritymapper.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#pragma once - -#include <vespa/documentapi/loadtypes/loadtype.h> -#include <vespa/storage/config/config-stor-prioritymapping.h> - -namespace storage { - -class PriorityMapper -{ - std::vector<uint8_t> _priorities; - -public: - typedef vespa::config::content::core::internal::InternalStorPrioritymappingType Config; - - PriorityMapper() : _priorities(16, 120) {} - - void setConfig(const Config c) { - _priorities[documentapi::Priority::PRI_HIGHEST] = c.highest; - _priorities[documentapi::Priority::PRI_VERY_HIGH] = c.veryHigh; - _priorities[documentapi::Priority::PRI_HIGH_1] = c.high1; - _priorities[documentapi::Priority::PRI_HIGH_2] = c.high2; - _priorities[documentapi::Priority::PRI_HIGH_3] = c.high3; - _priorities[documentapi::Priority::PRI_NORMAL_1] = c.normal1; - _priorities[documentapi::Priority::PRI_NORMAL_2] = c.normal2; - _priorities[documentapi::Priority::PRI_NORMAL_3] = c.normal3; - _priorities[documentapi::Priority::PRI_NORMAL_4] = c.normal4; - _priorities[documentapi::Priority::PRI_NORMAL_5] = c.normal5; - _priorities[documentapi::Priority::PRI_NORMAL_6] = c.normal6; - _priorities[documentapi::Priority::PRI_LOW_1] = c.low1; - _priorities[documentapi::Priority::PRI_LOW_2] = c.low2; - _priorities[documentapi::Priority::PRI_LOW_3] = c.low3; - _priorities[documentapi::Priority::PRI_VERY_LOW] = c.veryLow; - _priorities[documentapi::Priority::PRI_LOWEST] = c.lowest; - } - - uint8_t getPriority(const documentapi::LoadType& lt) const { - return _priorities[lt.getPriority()]; - } -}; - -} // storage 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..f8585abe3f5 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); + explicit 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); + explicit 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..120965cc4fe 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> @@ -89,13 +88,11 @@ StorageNode::StorageNode( _serverConfig(), _clusterConfig(), _distributionConfig(), - _priorityConfig(), _doctypesConfig(), _bucketSpacesConfig(), _newServerConfig(), _newClusterConfig(), _newDistributionConfig(), - _newPriorityConfig(), _newDoctypesConfig(), _newBucketSpacesConfig(), _component(), @@ -112,7 +109,6 @@ StorageNode::subscribeToConfigs() _configFetcher->subscribe<StorDistributionConfig>(_configUri.getConfigId(), this); _configFetcher->subscribe<UpgradingConfig>(_configUri.getConfigId(), this); _configFetcher->subscribe<StorServerConfig>(_configUri.getConfigId(), this); - _configFetcher->subscribe<StorPrioritymappingConfig>(_configUri.getConfigId(), this); _configFetcher->subscribe<BucketspacesConfig>(_configUri.getConfigId(), this); _configFetcher->start(); @@ -121,7 +117,6 @@ StorageNode::subscribeToConfigs() _serverConfig = std::move(_newServerConfig); _clusterConfig = std::move(_newClusterConfig); _distributionConfig = std::move(_newDistributionConfig); - _priorityConfig = std::move(_newPriorityConfig); _bucketSpacesConfig = std::move(_newBucketSpacesConfig); } @@ -145,10 +140,8 @@ 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); _context.getComponentRegister().setBucketSpacesConfig(*_bucketSpacesConfig); _metrics = std::make_shared<StorageMetricSet>(); @@ -164,11 +157,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. @@ -335,10 +328,7 @@ StorageNode::handleLiveConfigUpdate(const InitialGuard & initGuard) } _newClusterConfig.reset(); } - if (_newPriorityConfig) { - _priorityConfig = std::move(_newPriorityConfig); - _context.getComponentRegister().setPriorityConfig(*_priorityConfig); - } + if (_newBucketSpacesConfig) { _bucketSpacesConfig = std::move(_newBucketSpacesConfig); _context.getComponentRegister().setBucketSpacesConfig(*_bucketSpacesConfig); @@ -490,19 +480,6 @@ void StorageNode::configure(std::unique_ptr<StorDistributionConfig> config) { handleLiveConfigUpdate(concurrent_config_guard); } } - -void StorageNode::configure(std::unique_ptr<StorPrioritymappingConfig> config) { - log_config_received(*config); - { - std::lock_guard configLockGuard(_configLock); - _newPriorityConfig = std::move(config); - } - if (_priorityConfig) { - InitialGuard concurrent_config_guard(_initial_config_mutex); - handleLiveConfigUpdate(concurrent_config_guard); - } -} - void StorageNode::configure(std::unique_ptr<document::DocumenttypesConfig> config, bool hasChanged, int64_t generation) diff --git a/storage/src/vespa/storage/storageserver/storagenode.h b/storage/src/vespa/storage/storageserver/storagenode.h index 9450cdce5ff..259f48f3492 100644 --- a/storage/src/vespa/storage/storageserver/storagenode.h +++ b/storage/src/vespa/storage/storageserver/storagenode.h @@ -20,7 +20,6 @@ #include <vespa/document/config/config-documenttypes.h> #include <vespa/storage/common/doneinitializehandler.h> #include <vespa/config-bucketspaces.h> -#include <vespa/storage/config/config-stor-prioritymapping.h> #include <vespa/storage/config/config-stor-server.h> #include <vespa/storage/storageutil/resumeguard.h> #include <vespa/storageframework/defaultimplementation/component/componentregisterimpl.h> @@ -53,7 +52,6 @@ namespace lib { class NodeType; } class StorageNode : private config::IFetcherCallback<vespa::config::content::core::StorServerConfig>, private config::IFetcherCallback<vespa::config::content::StorDistributionConfig>, private config::IFetcherCallback<vespa::config::content::UpgradingConfig>, - private config::IFetcherCallback<vespa::config::content::core::StorPrioritymappingConfig>, private config::IFetcherCallback<vespa::config::content::core::BucketspacesConfig>, private framework::MetricUpdateHook, private DoneInitializeHandler, @@ -100,7 +98,6 @@ protected: using StorServerConfig = vespa::config::content::core::StorServerConfig; using UpgradingConfig = vespa::config::content::UpgradingConfig; using StorDistributionConfig = vespa::config::content::StorDistributionConfig; - using StorPrioritymappingConfig = vespa::config::content::core::StorPrioritymappingConfig; using BucketspacesConfig = vespa::config::content::core::BucketspacesConfig; private: bool _singleThreadedDebugMode; @@ -135,7 +132,6 @@ private: void configure(std::unique_ptr<StorServerConfig> config) override; void configure(std::unique_ptr<UpgradingConfig> config) override; void configure(std::unique_ptr<StorDistributionConfig> config) override; - void configure(std::unique_ptr<StorPrioritymappingConfig>) override; virtual void configure(std::unique_ptr<document::DocumenttypesConfig> config, bool hasChanged, int64_t generation); void configure(std::unique_ptr<BucketspacesConfig>) override; @@ -151,14 +147,12 @@ protected: std::unique_ptr<StorServerConfig> _serverConfig; std::unique_ptr<UpgradingConfig> _clusterConfig; std::unique_ptr<StorDistributionConfig> _distributionConfig; - std::unique_ptr<StorPrioritymappingConfig> _priorityConfig; std::unique_ptr<document::DocumenttypesConfig> _doctypesConfig; std::unique_ptr<BucketspacesConfig> _bucketSpacesConfig; // New configs gotten that has yet to have been handled std::unique_ptr<StorServerConfig> _newServerConfig; std::unique_ptr<UpgradingConfig> _newClusterConfig; std::unique_ptr<StorDistributionConfig> _newDistributionConfig; - std::unique_ptr<StorPrioritymappingConfig> _newPriorityConfig; std::unique_ptr<document::DocumenttypesConfig> _newDoctypesConfig; std::unique_ptr<BucketspacesConfig> _newBucketSpacesConfig; std::unique_ptr<StorageComponent> _component; diff --git a/storage/src/vespa/storage/visiting/visitor.cpp b/storage/src/vespa/storage/visiting/visitor.cpp index a8582fcf403..3618073da91 100644 --- a/storage/src/vespa/storage/visiting/visitor.cpp +++ b/storage/src/vespa/storage/visiting/visitor.cpp @@ -6,7 +6,6 @@ #include <vespa/storageapi/message/datagram.h> #include <vespa/storage/persistence/messages.h> #include <vespa/documentapi/messagebus/messages/visitor.h> -#include <vespa/documentapi/loadtypes/loadtype.h> #include <vespa/document/select/node.h> #include <vespa/document/fieldset/fieldsets.h> #include <vespa/vespalib/stllike/hash_map.hpp> diff --git a/storage/src/vespa/storage/visiting/visitor.h b/storage/src/vespa/storage/visiting/visitor.h index 8eb02e6ccfc..6f2b33629e6 100644 --- a/storage/src/vespa/storage/visiting/visitor.h +++ b/storage/src/vespa/storage/visiting/visitor.h @@ -382,10 +382,6 @@ public: void setOwnNodeIndex(uint16_t nodeIndex) { _ownNodeIndex = nodeIndex; } void setBucketSpace(document::BucketSpace bucketSpace) { _bucketSpace = bucketSpace; } - const documentapi::LoadType& getLoadType() const { - return _initiatingCmd->getLoadType(); - } - /** Override this to know which buckets are currently being visited. */ virtual void startingVisitor(const std::vector<document::BucketId>&) {} 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 diff --git a/storage/src/vespa/storage/visiting/visitorthread.cpp b/storage/src/vespa/storage/visiting/visitorthread.cpp index 52943fde419..1c89acf74b0 100644 --- a/storage/src/vespa/storage/visiting/visitorthread.cpp +++ b/storage/src/vespa/storage/visiting/visitorthread.cpp @@ -2,7 +2,6 @@ #include "visitorthread.h" #include "messages.h" -#include <vespa/documentapi/loadtypes/loadtype.h> #include <vespa/document/select/bodyfielddetector.h> #include <vespa/document/select/parser.h> #include <vespa/messagebus/rpcmessagebus.h> diff --git a/storageapi/src/tests/mbusprot/storageprotocoltest.cpp b/storageapi/src/tests/mbusprot/storageprotocoltest.cpp index e807ab673d5..5637110f341 100644 --- a/storageapi/src/tests/mbusprot/storageprotocoltest.cpp +++ b/storageapi/src/tests/mbusprot/storageprotocoltest.cpp @@ -56,7 +56,6 @@ struct StorageProtocolTest : TestWithParam<vespalib::Version> { document::Bucket _bucket; document::BucketId _dummy_remap_bucket{17, 12345}; BucketInfo _dummy_bucket_info{1,2,3,4,5, true, false, 48}; - documentapi::LoadTypeSet _loadTypes; mbusprot::StorageProtocol _protocol; static auto constexpr CONDITION_STRING = "There's just one condition"; @@ -66,9 +65,8 @@ struct StorageProtocolTest : TestWithParam<vespalib::Version> { _testDocId(_testDoc->getId()), _bucket_id(16, 0x51), _bucket(makeDocumentBucket(_bucket_id)), - _protocol(_docMan.getTypeRepoSP(), _loadTypes) + _protocol(_docMan.getTypeRepoSP()) { - _loadTypes.addLoadType(34, "foo", documentapi::Priority::PRI_NORMAL_2); } ~StorageProtocolTest(); diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp index 2c7b4a1e6f8..45d9d2bd711 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp @@ -92,7 +92,7 @@ ProtocolSerialization5_0::onEncodeCommand(GBBuf& buf, const api::StorageCommand& buf.putLong(msg.getMsgId()); buf.putByte(msg.getPriority()); buf.putShort(msg.getSourceIndex()); - buf.putInt(msg.getLoadType().getId()); + buf.putInt(0); // LoadType 'default' } void @@ -102,15 +102,12 @@ ProtocolSerialization5_0::onDecodeCommand(BBuf& buf, api::StorageCommand& msg) c uint8_t priority = SH::getByte(buf); msg.setPriority(priority); msg.setSourceIndex(SH::getShort(buf)); - (void)SH::getInt(buf); + (void)SH::getInt(buf); // LoadType } -ProtocolSerialization5_0::ProtocolSerialization5_0( - const std::shared_ptr<const document::DocumentTypeRepo>& repo, - const documentapi::LoadTypeSet& loadTypes) - : ProtocolSerialization4_2(repo), - _loadTypes(loadTypes) +ProtocolSerialization5_0::ProtocolSerialization5_0(const std::shared_ptr<const document::DocumentTypeRepo>& repo) + : ProtocolSerialization4_2(repo) { } diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h index 67f02aa2d2a..8d38db89a08 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h @@ -2,17 +2,12 @@ #pragma once #include "protocolserialization4_2.h" -#include <vespa/documentapi/loadtypes/loadtypeset.h> namespace storage::mbusprot { class ProtocolSerialization5_0 : public ProtocolSerialization4_2 { -private: - const documentapi::LoadTypeSet& _loadTypes; - public: - ProtocolSerialization5_0(const std::shared_ptr<const document::DocumentTypeRepo>&, - const documentapi::LoadTypeSet& loadTypes); + ProtocolSerialization5_0(const std::shared_ptr<const document::DocumentTypeRepo>&); document::Bucket getBucket(document::ByteBuffer& buf) const override; void putBucket(const document::Bucket& bucket, vespalib::GrowableByteBuffer& buf) const override; @@ -73,9 +68,6 @@ public: SRep::UP onDecodeCreateVisitorReply(const SCmd& cmd, BBuf& buf) const override; void onDecodeCommand(BBuf& buf, api::StorageCommand& msg) const override; void onDecodeReply(BBuf&, api::StorageReply&) const override; - -protected: - const documentapi::LoadTypeSet& loadTypes() const noexcept { return _loadTypes; }; }; } diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp index 0b1f66127ba..b289c1661a0 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp @@ -44,9 +44,8 @@ ProtocolSerialization5_1::putBucketInfo( } ProtocolSerialization5_1::ProtocolSerialization5_1( - const std::shared_ptr<const document::DocumentTypeRepo>& repo, - const documentapi::LoadTypeSet& loadTypes) - : ProtocolSerialization5_0(repo, loadTypes) + const std::shared_ptr<const document::DocumentTypeRepo>& repo) + : ProtocolSerialization5_0(repo) { } diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.h index 5df0d757ce2..b46257a2182 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.h @@ -3,8 +3,7 @@ #include "protocolserialization5_0.h" -namespace storage { -namespace mbusprot { +namespace storage::mbusprot { class ProtocolSerialization5_1 : public ProtocolSerialization5_0 { @@ -13,8 +12,7 @@ class ProtocolSerialization5_1 : public ProtocolSerialization5_0 BUCKET_ACTIVE = 0x2, }; public: - ProtocolSerialization5_1(const std::shared_ptr<const document::DocumentTypeRepo>&, - const documentapi::LoadTypeSet& loadTypes); + ProtocolSerialization5_1(const std::shared_ptr<const document::DocumentTypeRepo>&); api::BucketInfo getBucketInfo(document::ByteBuffer& buf) const override; void putBucketInfo(const api::BucketInfo& info, vespalib::GrowableByteBuffer& buf) const override; @@ -33,5 +31,4 @@ protected: SCmd::UP onDecodeCreateBucketCommand(BBuf&) const override; }; -} // mbusprot -} // storage +} diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_2.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_2.h index f6f9443248c..50200edcbcf 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_2.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_2.h @@ -12,9 +12,8 @@ namespace storage::mbusprot { class ProtocolSerialization5_2 : public ProtocolSerialization5_1 { public: - ProtocolSerialization5_2(const std::shared_ptr<const document::DocumentTypeRepo>& repo, - const documentapi::LoadTypeSet & loadTypes) - : ProtocolSerialization5_1(repo, loadTypes) + ProtocolSerialization5_2(const std::shared_ptr<const document::DocumentTypeRepo>& repo) + : ProtocolSerialization5_1(repo) {} protected: diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.cpp index 930879082ed..cd66928877c 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.cpp @@ -3,12 +3,10 @@ #include "protocolserialization6_0.h" #include "serializationhelper.h" -namespace storage { -namespace mbusprot { +namespace storage::mbusprot { -ProtocolSerialization6_0::ProtocolSerialization6_0(const std::shared_ptr<const document::DocumentTypeRepo> &repo, - const documentapi::LoadTypeSet &loadTypes) - : ProtocolSerialization5_2(repo, loadTypes) +ProtocolSerialization6_0::ProtocolSerialization6_0(const std::shared_ptr<const document::DocumentTypeRepo> &repo) + : ProtocolSerialization5_2(repo) { } @@ -40,4 +38,3 @@ ProtocolSerialization6_0::putBucketSpace(document::BucketSpace bucketSpace, vesp } } -} diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.h index 5c4e6b2ec63..efce45ce844 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization6_0.h @@ -3,10 +3,8 @@ #pragma once #include "protocolserialization5_2.h" -#include <vespa/documentapi/loadtypes/loadtypeset.h> -namespace storage { -namespace mbusprot { +namespace storage::mbusprot { /** * Protocol serialization version adding decoding and encoding @@ -15,8 +13,7 @@ namespace mbusprot { class ProtocolSerialization6_0 : public ProtocolSerialization5_2 { public: - ProtocolSerialization6_0(const std::shared_ptr<const document::DocumentTypeRepo> &repo, - const documentapi::LoadTypeSet &loadTypes); + ProtocolSerialization6_0(const std::shared_ptr<const document::DocumentTypeRepo> &repo); document::Bucket getBucket(document::ByteBuffer &buf) const override; void putBucket(const document::Bucket &bucket, vespalib::GrowableByteBuffer &buf) const override; @@ -25,4 +22,3 @@ public: }; } -} diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.cpp index b356ce59999..98f76b4afb7 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.cpp @@ -14,11 +14,9 @@ namespace storage::mbusprot { -ProtocolSerialization7::ProtocolSerialization7(std::shared_ptr<const document::DocumentTypeRepo> repo, - const documentapi::LoadTypeSet& load_types) +ProtocolSerialization7::ProtocolSerialization7(std::shared_ptr<const document::DocumentTypeRepo> repo) : ProtocolSerialization(), - _repo(std::move(repo)), - _load_types(load_types) + _repo(std::move(repo)) { } @@ -113,7 +111,6 @@ void write_request_header(vespalib::GrowableByteBuffer& buf, const api::StorageC hdr.set_message_id(cmd.getMsgId()); hdr.set_priority(cmd.getPriority()); hdr.set_source_index(cmd.getSourceIndex()); - hdr.set_loadtype_id(cmd.getLoadType().getId()); uint8_t dest[128]; // Only primitive fields, should be plenty large enough. auto encoded_size = static_cast<uint32_t>(hdr.ByteSizeLong()); @@ -232,12 +229,10 @@ class RequestDecoder { protobuf::RequestHeader _hdr; ::google::protobuf::Arena _arena; ProtobufType* _proto_obj; - const documentapi::LoadTypeSet& _load_types; public: - RequestDecoder(document::ByteBuffer& in_buf, const documentapi::LoadTypeSet& load_types) + RequestDecoder(document::ByteBuffer& in_buf) : _arena(), - _proto_obj(::google::protobuf::Arena::Create<ProtobufType>(&_arena)), - _load_types(load_types) + _proto_obj(::google::protobuf::Arena::Create<ProtobufType>(&_arena)) { decode_request_header(in_buf, _hdr); assert(in_buf.getRemaining() <= INT_MAX); @@ -308,7 +303,7 @@ void encode_response(vespalib::GrowableByteBuffer& out_buf, const api::StorageRe template <typename ProtobufType, typename Func> std::unique_ptr<api::StorageCommand> ProtocolSerialization7::decode_request(document::ByteBuffer& in_buf, Func&& f) const { - RequestDecoder<ProtobufType> dec(in_buf, _load_types); + RequestDecoder<ProtobufType> dec(in_buf); const auto& req = dec.request(); auto cmd = f(req); dec.transfer_meta_information_to(*cmd); diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.h index e1d08691bc1..8f9a5d8df8d 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization7.h @@ -3,7 +3,6 @@ #pragma once #include "protocolserialization.h" -#include <vespa/documentapi/loadtypes/loadtypeset.h> namespace storage::mbusprot { @@ -13,13 +12,10 @@ namespace storage::mbusprot { */ class ProtocolSerialization7 final : public ProtocolSerialization { const std::shared_ptr<const document::DocumentTypeRepo> _repo; - const documentapi::LoadTypeSet& _load_types; public: - ProtocolSerialization7(std::shared_ptr<const document::DocumentTypeRepo> repo, - const documentapi::LoadTypeSet& load_types); + explicit ProtocolSerialization7(std::shared_ptr<const document::DocumentTypeRepo> repo); const document::DocumentTypeRepo& type_repo() const noexcept { return *_repo; } - const documentapi::LoadTypeSet& load_type_set() const noexcept { return _load_types; } // Put void onEncode(GBBuf&, const api::PutCommand&) const override; diff --git a/storageapi/src/vespa/storageapi/mbusprot/storagemessage.h b/storageapi/src/vespa/storageapi/mbusprot/storagemessage.h index c63271a8956..edeab31ec8a 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/storagemessage.h +++ b/storageapi/src/vespa/storageapi/mbusprot/storagemessage.h @@ -12,7 +12,7 @@ public: virtual ~StorageMessage() {} virtual api::StorageMessage::SP getInternalMessage() = 0; - virtual storage::api::StorageMessage::CSP getInternalMessage() const = 0; + virtual api::StorageMessage::CSP getInternalMessage() const = 0; }; diff --git a/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.cpp b/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.cpp index b5107e68454..f6e68b3dd04 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.cpp @@ -15,13 +15,12 @@ namespace storage::mbusprot { mbus::string StorageProtocol::NAME = "StorageProtocol"; -StorageProtocol::StorageProtocol(const std::shared_ptr<const document::DocumentTypeRepo> repo, - const documentapi::LoadTypeSet& loadTypes) - : _serializer5_0(repo, loadTypes), - _serializer5_1(repo, loadTypes), - _serializer5_2(repo, loadTypes), - _serializer6_0(repo, loadTypes), - _serializer7_0(repo, loadTypes) +StorageProtocol::StorageProtocol(const std::shared_ptr<const document::DocumentTypeRepo> repo) + : _serializer5_0(repo), + _serializer5_1(repo), + _serializer5_2(repo), + _serializer6_0(repo), + _serializer7_0(repo) { } diff --git a/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.h b/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.h index 40f2d26d833..ad9ee908424 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.h +++ b/storageapi/src/vespa/storageapi/mbusprot/storageprotocol.h @@ -15,8 +15,7 @@ public: static mbus::string NAME; - StorageProtocol(const std::shared_ptr<const document::DocumentTypeRepo>, - const documentapi::LoadTypeSet& loadTypes); + explicit StorageProtocol(const std::shared_ptr<const document::DocumentTypeRepo>); ~StorageProtocol() override; const mbus::string& getName() const override { return NAME; } @@ -29,7 +28,7 @@ private: ProtocolSerialization5_1 _serializer5_1; ProtocolSerialization5_2 _serializer5_2; ProtocolSerialization6_0 _serializer6_0; - ProtocolSerialization7 _serializer7_0; + ProtocolSerialization7 _serializer7_0; }; } diff --git a/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp b/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp index 1c2eccb0743..892e7199cf3 100644 --- a/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp +++ b/storageapi/src/vespa/storageapi/messageapi/storagemessage.cpp @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "storagemessage.h" -#include <vespa/documentapi/loadtypes/loadtype.h> #include <vespa/messagebus/routing/verbatimdirective.h> #include <vespa/vespalib/util/exceptions.h> #include <vespa/vespalib/stllike/asciistream.h> @@ -263,11 +262,6 @@ StorageMessage::StorageMessage(const StorageMessage& other, Id id) noexcept StorageMessage::~StorageMessage() = default; -const documentapi::LoadType& -StorageMessage::getLoadType() const noexcept { - return documentapi::LoadType::DEFAULT; -} - void StorageMessage::setNewMsgId() noexcept { diff --git a/storageapi/src/vespa/storageapi/messageapi/storagemessage.h b/storageapi/src/vespa/storageapi/messageapi/storagemessage.h index b49612d8728..acf651d8816 100644 --- a/storageapi/src/vespa/storageapi/messageapi/storagemessage.h +++ b/storageapi/src/vespa/storageapi/messageapi/storagemessage.h @@ -21,7 +21,6 @@ #include <iosfwd> namespace vespalib { class asciistream; } -namespace documentapi { class LoadType; } // The following macros are provided as a way to write storage messages simply. // They implement the parts of the code that can easily be automaticly // generated. @@ -431,8 +430,6 @@ public: */ virtual bool callHandler(MessageHandler&, const StorageMessage::SP&) const = 0; - const documentapi::LoadType& getLoadType() const noexcept; - mbus::Trace && steal_trace() noexcept { return std::move(_trace); } mbus::Trace& getTrace() noexcept { return _trace; } const mbus::Trace& getTrace() const noexcept { return _trace; } diff --git a/vespaclient/src/vespa/vespaclient/vesparoute/application.cpp b/vespaclient/src/vespa/vespaclient/vesparoute/application.cpp index ae64db4d452..468c6b859ed 100644 --- a/vespaclient/src/vespa/vespaclient/vesparoute/application.cpp +++ b/vespaclient/src/vespa/vespaclient/vesparoute/application.cpp @@ -25,7 +25,6 @@ using document::DocumentTypeRepo; namespace vesparoute { Application::Application() : - _loadTypes(), _net(), _mbus(), _params() @@ -54,7 +53,7 @@ Application::Main() *_net, mbus::MessageBusParams() .setRetryPolicy(mbus::IRetryPolicy::SP()) - .addProtocol(std::make_shared<documentapi::DocumentProtocol>(_loadTypes, repo))); + .addProtocol(std::make_shared<documentapi::DocumentProtocol>(repo))); mbus::ConfigAgent cfg(*_mbus); cfg.configure(ConfigGetter<MessagebusConfig>::getConfig(_params.getRoutingConfigId())); diff --git a/vespaclient/src/vespa/vespaclient/vesparoute/application.h b/vespaclient/src/vespa/vespaclient/vesparoute/application.h index 697319befcc..89f025472f5 100644 --- a/vespaclient/src/vespa/vespaclient/vesparoute/application.h +++ b/vespaclient/src/vespa/vespaclient/vesparoute/application.h @@ -6,7 +6,6 @@ #include <vespa/messagebus/routing/hopblueprint.h> #include "mynetwork.h" #include "params.h" -#include <vespa/documentapi/loadtypes/loadtypeset.h> namespace vesparoute { @@ -15,7 +14,6 @@ namespace vesparoute { */ class Application : public FastOS_Application { private: - documentapi::LoadTypeSet _loadTypes; std::unique_ptr<MyNetwork> _net; std::unique_ptr<mbus::MessageBus> _mbus; Params _params; |