Files
scylladb/gms/application_state.cc
Konstantin Osipov 051dceeaff raft: (and gossip) begin gossiping raft server ids
We plan to use gossip data to educate Raft RPC about IP addresses
of raft peers. Add raft server ids to application state, so
that when we get a notification about a gossip peer we can
identify which raft server id this notification is for,
specifically, we can find what IP address stands for this server
id, and, whenever the IP address changes, we can update Raft
address map with the new address.

On the same token, at boot time, we now have to start Gossip
before Raft, since Raft won't be able to send any messages
without gossip data about IP addresses.
2022-11-17 12:07:31 +03:00

56 lines
2.1 KiB
C++

/*
* Modified by ScyllaDB
* Copyright 2015-present ScyllaDB
*/
/*
* SPDX-License-Identifier: (AGPL-3.0-or-later and Apache-2.0)
*/
#include "gms/application_state.hh"
#include <seastar/core/sstring.hh>
#include <ostream>
#include <map>
#include "seastarx.hh"
namespace gms {
static const std::map<application_state, sstring> application_state_names = {
{application_state::STATUS, "STATUS"},
{application_state::LOAD, "LOAD"},
{application_state::SCHEMA, "SCHEMA"},
{application_state::DC, "DC"},
{application_state::RACK, "RACK"},
{application_state::RELEASE_VERSION, "RELEASE_VERSION"},
{application_state::REMOVAL_COORDINATOR, "REMOVAL_COORDINATOR"},
{application_state::INTERNAL_IP, "INTERNAL_IP"},
{application_state::RPC_ADDRESS, "RPC_ADDRESS"},
{application_state::RAFT_SERVER_ID, "RAFT_SERVER_ID"},
{application_state::SEVERITY, "SEVERITY"},
{application_state::NET_VERSION, "NET_VERSION"},
{application_state::HOST_ID, "HOST_ID"},
{application_state::TOKENS, "TOKENS"},
{application_state::SUPPORTED_FEATURES, "SUPPORTED_FEATURES"},
{application_state::CACHE_HITRATES, "CACHE_HITRATES"},
{application_state::SCHEMA_TABLES_VERSION, "SCHEMA_TABLES_VERSION"},
{application_state::RPC_READY, "RPC_READY"},
{application_state::VIEW_BACKLOG, "VIEW_BACKLOG"},
{application_state::SHARD_COUNT, "SHARD_COUNT"},
{application_state::IGNORE_MSB_BITS, "IGNOR_MSB_BITS"},
{application_state::CDC_GENERATION_ID, "CDC_STREAMS_TIMESTAMP"}, /* not named "CDC_GENERATION_ID" for backward compatibility */
{application_state::SNITCH_NAME, "SNITCH_NAME"},
};
std::ostream& operator<<(std::ostream& os, const application_state& m) {
auto it = application_state_names.find(m);
if (it != application_state_names.end()) {
os << application_state_names.at(m);
} else {
os << "UNKNOWN";
}
return os;
}
}