23#ifndef RPL_ASYNC_CONN_FAILOVER_CONFIGURATION_PROPAGATION_INCLUDED
24#define RPL_ASYNC_CONN_FAILOVER_CONFIGURATION_PROPAGATION_INCLUDED
29#include "sql/protobuf/generated/protobuf_lite/replication_asynchronous_connection_failover.pb.h"
130 std::map<std::pair<std::string, std::string>,
int>
m_status;
176 bool receive(
const char *tag,
const unsigned char *data,
size_t data_length);
262 const std::vector<std::string>
263 &exchanged_replication_failover_channels_serialized_configuration);
280 "mysql_replication_asynchronous_connection_failover",
281 "mysql_replication_asynchronous_connection_managed",
282 "mysql_replication_asynchronous_connection_variable_status",
283 "mysql_replication_asynchronous_connection_failover_and_managed_and_"
290 const std::string
m_db{
"mysql"};
294 "replication_asynchronous_connection_failover"};
301 "replication_asynchronous_connection_failover_managed"};
388 bool send(
const char *tag,
const char *data,
size_t data_length);
414 bool send_managed(
const char *data,
size_t data_length);
Definition: rpl_async_conn_failover_configuration_propagation.h:143
bool get_configuration(std::string &serialized_configuration)
Get data stored in mysql.replication_asynchronous_connection_failover or mysql.replication_asynchrono...
Definition: rpl_async_conn_failover_configuration_propagation.cc:693
bool set_configuration(const std::vector< std::string > &exchanged_replication_failover_channels_serialized_configuration)
Save data in mysql.replication_asynchronous_connection_failover or mysql.replication_asynchronous_con...
Definition: rpl_async_conn_failover_configuration_propagation.cc:777
bool receive(const char *tag, const unsigned char *data, size_t data_length)
Receive data sent by group replication group member.
Definition: rpl_async_conn_failover_configuration_propagation.cc:308
void reload_failover_channels_status()
Reload the failover channel status from runtime information.
Definition: rpl_async_conn_failover_configuration_propagation.cc:688
bool send_failover(const char *data, size_t data_length)
Send mysql.replication_asynchronous_connection_failover table data to group replication group members...
Definition: rpl_async_conn_failover_configuration_propagation.cc:481
bool send_failover_data(Rpl_sys_table_access &table_op)
Get stored data in mysql.replication_asynchronous_connection_failover table and send to its group rep...
Definition: rpl_async_conn_failover_configuration_propagation.cc:634
bool receive_channel_status(const unsigned char *data, size_t data_length)
Receive SOURCE_CONNECTION_AUTO_FAILOVER value of CHANGE REPLICATION SOURCE command data sent by group...
Definition: rpl_async_conn_failover_configuration_propagation.cc:458
bool send(const char *tag, const char *data, size_t data_length)
Send data to all group replication group members.
Definition: rpl_async_conn_failover_configuration_propagation.cc:499
bool send_channel_status(const char *data, size_t data_length)
Send SOURCE_CONNECTION_AUTO_FAILOVER value of CHANGE REPLICATION SOURCE command data to group replica...
Definition: rpl_async_conn_failover_configuration_propagation.cc:493
bool init()
Initialize and configure group_replication_message_service_recv service so member can receive and pro...
Definition: rpl_async_conn_failover_configuration_propagation.cc:276
bool receive_failover_and_managed_and_status(const unsigned char *data, size_t data_length)
Receive mysql.replication_asynchronous_connection_failover and mysql.replication_asynchronous_connect...
Definition: rpl_async_conn_failover_configuration_propagation.cc:886
virtual ~Rpl_acf_configuration_handler()
Destruction.
Definition: rpl_async_conn_failover_configuration_propagation.cc:274
Rpl_acf_configuration_handler()
Construction.
Definition: rpl_async_conn_failover_configuration_propagation.cc:272
const std::string m_db
Definition: rpl_async_conn_failover_configuration_propagation.h:290
Rpl_acf_status_configuration m_rpl_failover_channels_status
Definition: rpl_async_conn_failover_configuration_propagation.h:312
const std::string m_table_failover
Definition: rpl_async_conn_failover_configuration_propagation.h:293
bool set_failover_managed_internal(const protobuf_replication_asynchronous_connection_failover::SourceAndManagedAndStatusList &configuration)
Save data in mysql.replication_asynchronous_connection_failover_managed table.
Definition: rpl_async_conn_failover_configuration_propagation.cc:971
bool set_failover_sources_internal(const protobuf_replication_asynchronous_connection_failover::SourceAndManagedAndStatusList &configuration)
Save data in mysql.replication_asynchronous_connection_failover table.
Definition: rpl_async_conn_failover_configuration_propagation.cc:919
const uint m_table_failover_num_field
Definition: rpl_async_conn_failover_configuration_propagation.h:297
bool send_managed_data(Rpl_sys_table_access &table_op)
Get stored data in mysql.replication_asynchronous_connection_failover_managed table and send to its g...
Definition: rpl_async_conn_failover_configuration_propagation.cc:586
bool receive_managed(const unsigned char *data, size_t data_length)
Receive mysql.replication_asynchronous_connection_failover_managed table data sent by group replicati...
Definition: rpl_async_conn_failover_configuration_propagation.cc:387
bool send_table_data(Rpl_sys_table_access &table_op)
Get stored data in mysql.replication_asynchronous_connection_failover or mysql.replication_asynchrono...
Definition: rpl_async_conn_failover_configuration_propagation.cc:677
const std::string m_table_managed
Definition: rpl_async_conn_failover_configuration_propagation.h:300
bool receive_failover(const unsigned char *data, size_t data_length)
Receive mysql.replication_asynchronous_connection_failover table data sent by group replication group...
Definition: rpl_async_conn_failover_configuration_propagation.cc:326
bool send_channel_status_and_version_data(const std::string &channel, Rpl_acf_status_configuration::enum_key key, int status)
Send variable status to its group replication group members.
Definition: rpl_async_conn_failover_configuration_propagation.cc:548
bool force_my_replication_failover_channels_configuration_on_all_members()
Collect and broadcast the replication failover channels configuration in a serialized protobuf_replic...
Definition: rpl_async_conn_failover_configuration_propagation.cc:873
const std::vector< std::string > m_message_tag
Definition: rpl_async_conn_failover_configuration_propagation.h:279
void delete_channel_status(const std::string &channel, Rpl_acf_status_configuration::enum_key key)
Delete channel status.
Definition: rpl_async_conn_failover_configuration_propagation.cc:580
bool deinit()
Unregister group_replication_message_service_recv service.
Definition: rpl_async_conn_failover_configuration_propagation.cc:298
bool send_managed(const char *data, size_t data_length)
Send mysql.replication_asynchronous_connection_failover_managed table data to group replication group...
Definition: rpl_async_conn_failover_configuration_propagation.cc:487
const uint m_table_managed_num_field
Definition: rpl_async_conn_failover_configuration_propagation.h:306
Memory storage of the replication failover channel status configuration propagated to Group Replicati...
Definition: rpl_async_conn_failover_configuration_propagation.h:36
void reload()
Reloads the status configuration from runtime information.
Definition: rpl_async_conn_failover_configuration_propagation.cc:90
virtual ~Rpl_acf_status_configuration()
Definition: rpl_async_conn_failover_configuration_propagation.cc:61
static std::string get_key_name(Rpl_acf_status_configuration::enum_key key)
Definition: rpl_async_conn_failover_configuration_propagation.cc:65
void delete_channel_status(const std::string &channel, Rpl_acf_status_configuration::enum_key key)
Delete the status configuration value.
Definition: rpl_async_conn_failover_configuration_propagation.cc:120
enum_key
Status keys propagated with the group.
Definition: rpl_async_conn_failover_configuration_propagation.h:45
@ SOURCE_CONNECTION_AUTO_FAILOVER
Definition: rpl_async_conn_failover_configuration_propagation.h:45
mysql_mutex_t m_lock
Definition: rpl_async_conn_failover_configuration_propagation.h:121
bool set(const protobuf_replication_asynchronous_connection_failover::VariableStatusList &configuration)
Sets the status configuration with the one received from the group.
Definition: rpl_async_conn_failover_configuration_propagation.cc:164
std::map< std::pair< std::string, std::string >, int > m_status
Definition: rpl_async_conn_failover_configuration_propagation.h:130
void set_value_and_increment_version(const std::string &channel, Rpl_acf_status_configuration::enum_key key, int value, protobuf_replication_asynchronous_connection_failover::VariableStatusList &configuration)
Sets the status configuration value and increment version value.
Definition: rpl_async_conn_failover_configuration_propagation.cc:136
Rpl_acf_status_configuration()
Definition: rpl_async_conn_failover_configuration_propagation.cc:57
bool reset()
Clears the status configuration.
Definition: rpl_async_conn_failover_configuration_propagation.cc:71
static const std::vector< std::string > m_key_names
Definition: rpl_async_conn_failover_configuration_propagation.h:132
ulonglong m_version
Definition: rpl_async_conn_failover_configuration_propagation.h:123
void get(protobuf_replication_asynchronous_connection_failover::SourceAndManagedAndStatusList &configuration)
Gets the status configuration to send to the group.
Definition: rpl_async_conn_failover_configuration_propagation.cc:252
The class are wrappers for handler index and random scan functions to simplify their usage.
Definition: rpl_sys_table_access.h:42
unsigned long long int ulonglong
Definition: my_inttypes.h:55
Definition: rpl_async_conn_failover_table_operations.h:35
required string key
Definition: replication_asynchronous_connection_failover.proto:59
required string configuration
Definition: replication_asynchronous_connection_failover.proto:48
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:60
message SourceAndManagedAndStatusList
Definition: replication_asynchronous_connection_failover.proto:69
message VariableStatusList
Definition: replication_asynchronous_connection_failover.proto:63
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
unsigned int uint
Definition: uca9-dump.cc:74