diff options
author | Arne Juul <arnej@verizonmedia.com> | 2021-08-16 06:21:05 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2021-08-16 06:22:20 +0000 |
commit | 2bddc841afefd89d3de25d83f6b97b465923e455 (patch) | |
tree | f8b3257333986e13c04ab216439298f490763f65 /slobrok | |
parent | f9d92a66b4181633a811b178b2a2f8497798d7bc (diff) |
add consensus map and wire its inputs
Diffstat (limited to 'slobrok')
-rw-r--r-- | slobrok/src/vespa/slobrok/server/exchange_manager.cpp | 2 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/sbenv.cpp | 1 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/sbenv.h | 6 |
3 files changed, 9 insertions, 0 deletions
diff --git a/slobrok/src/vespa/slobrok/server/exchange_manager.cpp b/slobrok/src/vespa/slobrok/server/exchange_manager.cpp index 632c823a2c1..7e693a9ea3d 100644 --- a/slobrok/src/vespa/slobrok/server/exchange_manager.cpp +++ b/slobrok/src/vespa/slobrok/server/exchange_manager.cpp @@ -39,6 +39,7 @@ ExchangeManager::addPartner(const std::string & name, const std::string & spec) auto [ it, wasNew ] = _partners.emplace(name, std::make_unique<RemoteSlobrok>(name, spec, *this)); LOG_ASSERT(wasNew); RemoteSlobrok & partner = *it->second; + partner.remoteMap().registerListener(_env.consensusMap()); partner.tryConnect(); return OkState(); } @@ -51,6 +52,7 @@ ExchangeManager::removePartner(const std::string & name) LOG_ASSERT(oldremote); _partners.erase(name); oldremote->shutdown(); + oldremote->remoteMap().unregisterListener(_env.consensusMap()); } std::vector<std::string> diff --git a/slobrok/src/vespa/slobrok/server/sbenv.cpp b/slobrok/src/vespa/slobrok/server/sbenv.cpp index 6bf5bbd985d..bf7466bb397 100644 --- a/slobrok/src/vespa/slobrok/server/sbenv.cpp +++ b/slobrok/src/vespa/slobrok/server/sbenv.cpp @@ -118,6 +118,7 @@ SBEnv::SBEnv(const ConfigShim &shim) srandom(time(nullptr) ^ getpid()); _rpcsrvmap.proxy().registerListener(_globalVisibleHistory); _rpcsrvmap.proxy().registerListener(_localRpcMonitorMap); + _localRpcMonitorMap.dispatcher().registerListener(_consensusMap); _rpcHooks.initRPC(getSupervisor()); } diff --git a/slobrok/src/vespa/slobrok/server/sbenv.h b/slobrok/src/vespa/slobrok/server/sbenv.h index 853e72e83c5..18ac40c2ba7 100644 --- a/slobrok/src/vespa/slobrok/server/sbenv.h +++ b/slobrok/src/vespa/slobrok/server/sbenv.h @@ -10,6 +10,7 @@ #include "ok_state.h" #include "local_rpc_monitor_map.h" #include "metrics_producer.h" +#include "union_service_map.h" #include <vespa/config-slobroks.h> #include <vespa/slobrok/cfg.h> #include <vespa/vespalib/net/simple_health_producer.h> @@ -56,6 +57,7 @@ private: MetricsProducer _metrics; vespalib::SimpleComponentConfigProducer _components; LocalRpcMonitorMap _localRpcMonitorMap; + UnionServiceMap _consensusMap; ServiceMapHistory _globalVisibleHistory; public: @@ -82,6 +84,10 @@ public: return _localRpcMonitorMap.history(); } + UnionServiceMap& consensusMap() { + return _consensusMap; + } + const std::string & mySpec() const { return _me; } bool isSuspended() const { return false; } |