26#ifndef MYSQLROUTER_CLUSTER_METADATA_INCLUDED
27#define MYSQLROUTER_CLUSTER_METADATA_INCLUDED
92 for (
size_t i = 0; i <
N; ++i) {
101 MySQLSession *
mysql,
const std::uint32_t router_id);
106 for (
size_t i = 0; i <
N; ++i) {
124 MySQLSession *
mysql,
unsigned int router_id = 0);
141 const std::string &value =
"")
170 "_disconnect_existing_sessions_when_hidden"};
185constexpr const std::chrono::milliseconds
187 std::chrono::milliseconds(60 * 1000);
Definition: mysql_session.h:154
Definition: cluster_metadata.h:135
void invalidated_cluster_routing_policy(const InvalidatedClusterRoutingPolicy value)
Definition: cluster_metadata.h:156
InvalidatedClusterRoutingPolicy invalidated_cluster_routing_policy() const
Definition: cluster_metadata.h:150
void target_value(const std::string &value)
Definition: cluster_metadata.h:155
TargetCluster(const TargetType type=TargetType::ByPrimaryRole, const std::string &value="")
Definition: cluster_metadata.h:140
TargetType
Definition: cluster_metadata.h:137
InvalidatedClusterRoutingPolicy
Definition: cluster_metadata.h:138
void target_type(const TargetType value)
Definition: cluster_metadata.h:154
std::string target_value_
Definition: cluster_metadata.h:163
TargetType target_type_
Definition: cluster_metadata.h:162
InvalidatedClusterRoutingPolicy invalidated_cluster_routing_policy_
Definition: cluster_metadata.h:164
std::string to_string() const
Definition: cluster_metadata.h:146
const char * c_str() const
Definition: cluster_metadata.h:147
TargetType target_type() const
Definition: cluster_metadata.h:149
Definition: expected.h:286
std::atomic< Type > N
Definition: ut0counter.h:225
Definition: instrumented_condition_variable.h:32
void ROUTER_CLUSTER_EXPORT verify_routing_guidelines_version(MySQLSession *mysql, const std::uint32_t router_id)
Definition: cluster_metadata.cc:459
constexpr MetadataSchemaVersion kClusterSetsMetadataVersion
Definition: cluster_metadata.h:59
constexpr MetadataSchemaVersion kNewMetadataVersion
Definition: cluster_metadata.h:56
bool ROUTER_CLUSTER_EXPORT is_part_of_cluster_set(MySQLSession *mysql)
Definition: cluster_metadata.cc:1174
ClusterType
Definition: cluster_metadata.h:116
InstanceType
Definition: cluster_metadata.h:175
std::string ROUTER_CLUSTER_EXPORT get_unsupported_server_version_msg(MySQLSession *mysql)
Definition: cluster_metadata.cc:1421
constexpr MetadataSchemaVersion kUpgradeInProgressMetadataVersion
Definition: cluster_metadata.h:65
constexpr MetadataSchemaVersion kRequiredRoutingMetadataSchemaVersion[]
Definition: cluster_metadata.h:52
constexpr const std::string_view kNodeTagDisconnectWhenHidden
Definition: cluster_metadata.h:169
bool ROUTER_CLUSTER_EXPORT is_server_version_supported(MySQLSession *mysql)
Definition: cluster_metadata.cc:1417
constexpr MetadataSchemaVersion kRoutingGuidelinesMetadataVersion
Definition: cluster_metadata.h:62
constexpr const std::string_view kNodeTagHidden
Definition: cluster_metadata.h:168
MetadataSchemaVersion ROUTER_CLUSTER_EXPORT get_metadata_schema_version(MySQLSession *mysql)
Definition: cluster_metadata.cc:492
std::string ROUTER_CLUSTER_EXPORT get_metadata_schema_uncompatible_msg(const mysqlrouter::MetadataSchemaVersion &version)
Definition: cluster_metadata.cc:450
stdx::expected< void, std::string > ROUTER_CLUSTER_EXPORT setup_metadata_session(MySQLSession &session)
Definition: cluster_metadata.cc:1347
const bool kDefaultCloseConnectionAfterRefreshClusterSet
Definition: cluster_metadata.h:195
bool ROUTER_CLUSTER_EXPORT check_group_has_quorum(MySQLSession *mysql)
Definition: cluster_metadata.cc:559
constexpr MetadataSchemaVersion kRequiredBootstrapSchemaVersion[]
Definition: cluster_metadata.h:49
const bool kDefaultCloseConnectionAfterRefreshCluster
Definition: cluster_metadata.h:194
constexpr const std::chrono::milliseconds kDefaultMetadataTTLClusterGRNotificationsON
Definition: cluster_metadata.h:186
ClusterType ROUTER_CLUSTER_EXPORT get_cluster_type(const MetadataSchemaVersion &schema_version, MySQLSession *mysql, unsigned int router_id=0)
Definition: cluster_metadata.cc:1215
constexpr const std::chrono::milliseconds kDefaultMetadataTTLClusterSet
Definition: cluster_metadata.h:188
const bool kDefaultUseGRNotificationsClusterSet
Definition: cluster_metadata.h:192
bool ROUTER_CLUSTER_EXPORT check_group_replication_online(MySQLSession *mysql)
Definition: cluster_metadata.cc:543
bool ROUTER_CLUSTER_EXPORT metadata_schema_version_is_compatible(const mysqlrouter::MetadataSchemaVersion &required, const mysqlrouter::MetadataSchemaVersion &available)
Definition: cluster_metadata.cc:436
constexpr const std::chrono::milliseconds kDefaultMetadataTTLCluster
Definition: cluster_metadata.h:184
constexpr const bool kNodeTagDisconnectWhenHiddenDefault
Definition: cluster_metadata.h:173
constexpr const bool kNodeTagHiddenDefault
Definition: cluster_metadata.h:172
std::optional< InstanceType > ROUTER_CLUSTER_EXPORT str_to_instance_type(const std::string &)
Definition: cluster_metadata.cc:1375
std::string ROUTER_CLUSTER_EXPORT to_string(const MetadataSchemaVersion &version)
Definition: cluster_metadata.cc:487
const bool kDefaultUseGRNotificationsCluster
Definition: cluster_metadata.h:191
struct result result
Definition: result.h:34
required uint64 version
Definition: replication_group_member_actions.proto:41
required string type
Definition: replication_group_member_actions.proto:34
#define ROUTER_CLUSTER_EXPORT
Definition: router_cluster_export.h:15
Definition: version_base.h:33