mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
group0_client: Add shared_token_metadata dependency
It will be needed later to get tablet_metadata from. The dependency is "OK", shared_token_metadata is low-level sharded service. Client already references db::system_keyspace, which in turn references replica::database which, finally, references token_metadata Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
This commit is contained in:
2
main.cc
2
main.cc
@@ -1511,7 +1511,7 @@ To start the scylla server proper, simply invoke as: scylla server (or just scyl
|
||||
// group0 client exists only on shard 0.
|
||||
// The client has to be created before `stop_raft` since during
|
||||
// destruction it has to exist until raft_gr.stop() completes.
|
||||
service::raft_group0_client group0_client{raft_gr.local(), sys_ks.local(), maintenance_mode_enabled{cfg->maintenance_mode()}};
|
||||
service::raft_group0_client group0_client{raft_gr.local(), sys_ks.local(), token_metadata.local(), maintenance_mode_enabled{cfg->maintenance_mode()}};
|
||||
|
||||
service::raft_group0 group0_service{
|
||||
stop_signal.as_local_abort_source(), raft_gr.local(), messaging,
|
||||
|
||||
@@ -338,8 +338,8 @@ group0_command raft_group0_client::prepare_command(Command change, std::string_v
|
||||
return group0_cmd;
|
||||
}
|
||||
|
||||
raft_group0_client::raft_group0_client(service::raft_group_registry& raft_gr, db::system_keyspace& sys_ks, maintenance_mode_enabled maintenance_mode)
|
||||
: _raft_gr(raft_gr), _sys_ks(sys_ks), _maintenance_mode(maintenance_mode) {
|
||||
raft_group0_client::raft_group0_client(service::raft_group_registry& raft_gr, db::system_keyspace& sys_ks, locator::shared_token_metadata& tm, maintenance_mode_enabled maintenance_mode)
|
||||
: _raft_gr(raft_gr), _sys_ks(sys_ks), _token_metadata(tm), _maintenance_mode(maintenance_mode) {
|
||||
}
|
||||
|
||||
size_t raft_group0_client::max_command_size() const {
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
#include "db/system_keyspace.hh"
|
||||
#include "service/maintenance_mode.hh"
|
||||
|
||||
namespace locator {
|
||||
class shared_token_metadata;
|
||||
}
|
||||
|
||||
namespace service {
|
||||
// Obtaining this object means that all previously finished operations on group 0 are visible on this node.
|
||||
|
||||
@@ -72,6 +76,7 @@ public:
|
||||
class raft_group0_client {
|
||||
service::raft_group_registry& _raft_gr;
|
||||
db::system_keyspace& _sys_ks;
|
||||
locator::shared_token_metadata& _token_metadata;
|
||||
|
||||
// See `group0_guard::impl` for explanation of the purpose of these locks.
|
||||
semaphore _read_apply_mutex = semaphore(1);
|
||||
@@ -104,7 +109,7 @@ class raft_group0_client {
|
||||
};
|
||||
|
||||
public:
|
||||
raft_group0_client(service::raft_group_registry&, db::system_keyspace&, maintenance_mode_enabled);
|
||||
raft_group0_client(service::raft_group_registry&, db::system_keyspace&, locator::shared_token_metadata&, maintenance_mode_enabled);
|
||||
|
||||
// Call after `system_keyspace` is initialized.
|
||||
future<> init();
|
||||
|
||||
@@ -801,7 +801,7 @@ private:
|
||||
auto stop_mapreduce_service = defer([this] { _mapreduce_service.stop().get(); });
|
||||
|
||||
// gropu0 client exists only on shard 0
|
||||
service::raft_group0_client group0_client(_group0_registry.local(), _sys_ks.local(), maintenance_mode_enabled::no);
|
||||
service::raft_group0_client group0_client(_group0_registry.local(), _sys_ks.local(), _token_metadata.local(), maintenance_mode_enabled::no);
|
||||
|
||||
_mm.start(std::ref(_mnotifier), std::ref(_feature_service), std::ref(_ms), std::ref(_proxy), std::ref(_gossiper), std::ref(group0_client), std::ref(_sys_ks)).get();
|
||||
auto stop_mm = defer([this] { _mm.stop().get(); });
|
||||
|
||||
Reference in New Issue
Block a user