MySQL 8.4.0
Source Code Documentation
plugin.cc File Reference
#include <cassert>
#include <sstream>
#include <mysql/components/services/log_builtins.h>
#include <mysql/service_rpl_transaction_write_set.h>
#include "mutex_lock.h"
#include "my_dbug.h"
#include "my_inttypes.h"
#include "my_io.h"
#include "plugin/group_replication/include/autorejoin.h"
#include "plugin/group_replication/include/consistency_manager.h"
#include "plugin/group_replication/include/gcs_mysql_network_provider.h"
#include "plugin/group_replication/include/mysql_version_gcs_protocol_map.h"
#include "plugin/group_replication/include/observer_server_actions.h"
#include "plugin/group_replication/include/observer_server_state.h"
#include "plugin/group_replication/include/observer_trans.h"
#include "plugin/group_replication/include/perfschema/pfs.h"
#include "plugin/group_replication/include/pipeline_stats.h"
#include "plugin/group_replication/include/plugin.h"
#include "plugin/group_replication/include/plugin_handlers/consensus_leaders_handler.h"
#include "plugin/group_replication/include/plugin_handlers/member_actions_handler.h"
#include "plugin/group_replication/include/plugin_handlers/metrics_handler.h"
#include "plugin/group_replication/include/plugin_handlers/recovery_metadata.h"
#include "plugin/group_replication/include/plugin_observers/recovery_metadata_observer.h"
#include "plugin/group_replication/include/plugin_status_variables.h"
#include "plugin/group_replication/include/plugin_variables.h"
#include "plugin/group_replication/include/plugin_variables/recovery_endpoints.h"
#include "plugin/group_replication/include/services/message_service/message_service.h"
#include "plugin/group_replication/include/services/status_service/status_service.h"
#include "plugin/group_replication/include/sql_service/sql_service_interface.h"
#include "plugin/group_replication/include/thread/mysql_thread.h"
#include "plugin/group_replication/include/udf/udf_registration.h"
#include "plugin/group_replication/include/udf/udf_utils.h"
#include "string_with_len.h"
#include "plugin/group_replication/include/services/notification/impl/gms_listener_test.h"

Functions

static bool initialize_perfschema_module ()
 
static void finalize_perfschema_module ()
 
static bool check_uuid_against_rpl_channel_settings (const char *str)
 
static int check_group_name_string (const char *str, bool is_var_update=false)
 
static int check_recovery_ssl_string (const char *str, const char *var_name, bool is_var_update=false)
 
static int check_if_server_properly_configured ()
 
static bool init_group_sidno ()
 
static void initialize_ssl_option_map ()
 Initialize the ssl option map with variable names. More...
 
static bool initialize_registry_module ()
 
static bool finalize_registry_module ()
 
static int check_flow_control_min_quota_long (longlong value, bool is_var_update=false)
 
static int check_flow_control_min_recovery_quota_long (longlong value, bool is_var_update=false)
 
static int check_flow_control_max_quota_long (longlong value, bool is_var_update=false)
 
static int check_view_change_uuid_string (const char *str, bool is_var_update=false)
 
int configure_group_communication ()
 
int build_gcs_parameters (Gcs_interface_parameters &params)
 
int configure_group_member_manager ()
 
bool check_async_channel_running_on_secondary ()
 
int configure_compatibility_manager ()
 
int initialize_recovery_module ()
 
int configure_and_start_applier_module ()
 
void initialize_asynchronous_channels_observer ()
 
void initialize_group_partition_handler ()
 
int start_group_communication ()
 
int leave_group_and_terminate_plugin_modules (gr_modules::mask modules_to_terminate, char **error_message)
 
int leave_group ()
 
int terminate_applier_module ()
 
int terminate_recovery_module ()
 
void terminate_asynchronous_channels_observer ()
 
void set_auto_increment_handler_values ()
 
static void check_deprecated_variables ()
 
void * get_plugin_pointer ()
 
Checkable_rwlockget_plugin_running_lock ()
 
mysql_mutex_tget_plugin_applier_module_initialize_terminate_lock ()
 
bool plugin_is_group_replication_running ()
 
bool plugin_is_group_replication_cloning ()
 
bool is_plugin_auto_starting_on_non_bootstrap_member ()
 
bool is_plugin_configured_and_starting ()
 
int plugin_group_replication_set_retrieved_certification_info (void *info)
 Method to set retrieved certification info from a recovery channel extracted from a given View_change event. More...
 
rpl_sidno get_group_sidno ()
 
rpl_sidno get_view_change_sidno ()
 
bool is_view_change_log_event_required ()
 
bool get_plugin_is_stopping ()
 
bool get_wait_on_engine_initialization ()
 
void enable_server_shutdown_status ()
 
bool get_server_shutdown_status ()
 
void set_plugin_is_setting_read_mode (bool value)
 
bool get_plugin_is_setting_read_mode ()
 
const char * get_group_name_var ()
 
const char * get_view_change_uuid_var ()
 
ulong get_exit_state_action_var ()
 
ulong get_flow_control_mode_var ()
 
long get_flow_control_certifier_threshold_var ()
 
long get_flow_control_applier_threshold_var ()
 
long get_flow_control_min_quota_var ()
 
long get_flow_control_min_recovery_quota_var ()
 
long get_flow_control_max_quota_var ()
 
int get_flow_control_member_quota_percent_var ()
 
int get_flow_control_period_var ()
 
int get_flow_control_hold_percent_var ()
 
int get_flow_control_release_percent_var ()
 
ulong get_components_stop_timeout_var ()
 
ulong get_communication_stack_var ()
 
bool is_autorejoin_enabled ()
 
uint get_number_of_autorejoin_tries ()
 
ulonglong get_rejoin_timeout ()
 
bool get_allow_single_leader ()
 
int handle_group_replication_incoming_connection (THD *thd, int fd, SSL *ssl_ctx)
 Callback implementation of handle_group_replication_incoming_connection. More...
 
void set_wait_on_start_process (bool cond)
 Set condition to block or unblock the calling threads. More...
 
enum_wait_on_start_process_result initiate_wait_on_start_process ()
 Blocks the calling thread. More...
 
void terminate_wait_on_start_process (enum_wait_on_start_process_result abort)
 Release all the blocked threads. More...
 
bool plugin_get_connection_status (const GROUP_REPLICATION_CONNECTION_STATUS_CALLBACKS &callbacks)
 
bool plugin_get_group_members (uint index, const GROUP_REPLICATION_GROUP_MEMBERS_CALLBACKS &callbacks)
 
uint plugin_get_group_members_number ()
 
bool plugin_get_group_member_stats (uint index, const GROUP_REPLICATION_GROUP_MEMBER_STATS_CALLBACKS &callbacks)
 
int plugin_group_replication_start (char **error_message)
 
int initialize_plugin_and_join (enum_plugin_con_isolation sql_api_isolation, Delayed_initialization_thread *delayed_init_thd)
 
void init_compatibility_manager ()
 
int plugin_group_replication_leave_group ()
 
int plugin_group_replication_stop (char **error_message)
 
int initialize_plugin_modules (gr_modules::mask modules_to_init)
 
int terminate_plugin_modules (gr_modules::mask modules_to_terminate, char **error_message, bool rejoin)
 
bool attempt_rejoin ()
 Encapsulates the logic necessary to attempt a rejoin, i.e. More...
 
void mysql_thread_handler_finalize ()
 
bool mysql_thread_handler_initialize ()
 
void server_services_references_finalize ()
 
bool server_services_references_initialize ()
 
int plugin_group_replication_init (MYSQL_PLUGIN plugin_info)
 
int plugin_group_replication_deinit (void *p)
 
static int plugin_group_replication_check_uninstall (void *)
 
void declare_plugin_cloning (bool is_running)
 
void reset_auto_increment_handler_values (bool force_reset)
 
bool server_engine_initialized ()
 
void register_server_reset_master ()
 
bool get_allow_local_lower_version_join ()
 
ulong get_transaction_size_limit ()
 
bool is_plugin_waiting_to_set_server_read_mode ()
 
void set_enforce_update_everywhere_checks (bool option)
 
void set_single_primary_mode_var (bool option)
 
bool get_single_primary_mode_var ()
 
const mysql_service_registry_tget_plugin_registry ()
 
static bool plugin_running_lock_is_rdlocked (Checkable_rwlock::Guard const &guard)
 
static int check_group_name (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_flow_control_min_quota (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_flow_control_min_recovery_quota (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_flow_control_max_quota (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_sysvar_ulong_timeout (MYSQL_THD, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static void update_recovery_retry_count (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static void update_recovery_reconnect_interval (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static void update_ssl_use (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_recovery_ssl_option (MYSQL_THD thd, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static void update_recovery_ssl_option (MYSQL_THD, SYS_VAR *var, void *var_ptr, const void *save)
 
static void update_recovery_get_public_key (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static void update_ssl_server_cert_verification (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static void update_component_timeout (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_auto_increment_increment (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_ip_allowlist_preconditions (MYSQL_THD thd, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static int check_compression_threshold (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_communication_max_message_size (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_force_members (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_gtid_assignment_block_size (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static bool get_bool_value_using_type_lib (struct st_mysql_value *value, bool &resulting_value)
 
static int check_sysvar_bool (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_single_primary_mode (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_enforce_update_everywhere_checks (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_allow_local_lower_version_join (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static int check_communication_debug_options (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static void update_unreachable_timeout (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_member_weight (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static void update_member_weight (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_member_expel_timeout (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static void update_member_expel_timeout (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_autorejoin_tries (MYSQL_THD, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static void update_autorejoin_tries (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_message_cache_size (MYSQL_THD, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static void update_message_cache_size (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_recovery_compression_algorithm (MYSQL_THD thd, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static void update_recovery_compression_algorithm (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_recovery_zstd_compression_level (MYSQL_THD, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static void update_recovery_zstd_compression_level (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static int check_clone_threshold (MYSQL_THD, SYS_VAR *var, void *save, struct st_mysql_value *value)
 
static void update_clone_threshold (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static void update_transaction_size_limit (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static void update_allow_single_leader (MYSQL_THD, SYS_VAR *, void *var_ptr, const void *save)
 
static MYSQL_SYSVAR_STR (group_name, ov.group_name_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The group name", check_group_name, nullptr, nullptr)
 
static MYSQL_SYSVAR_BOOL (start_on_boot, ov.start_group_replication_at_boot_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Whether the server should start Group Replication or " "not during bootstrap.", nullptr, nullptr, 1)
 
static MYSQL_SYSVAR_STR (local_address, ov.local_address_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The local address, i.e., host:port.", nullptr, nullptr, "")
 
static MYSQL_SYSVAR_STR (group_seeds, ov.group_seeds_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The list of group seeds, comma separated. E.g., " "host1:port1,host2:port2.", nullptr, nullptr, "")
 
static MYSQL_SYSVAR_STR (force_members, ov.force_members_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_NOPERSIST, "The list of members, comma separated. E.g., host1:port1,host2:port2. " "This option is used to force a new group membership, on which the " "excluded " "members will not receive a new view and will be blocked. The DBA will " "need " "to kill the excluded servers.", check_force_members, nullptr, "")
 
static MYSQL_SYSVAR_BOOL (bootstrap_group, ov.bootstrap_group_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specify if this member will bootstrap the group.", nullptr, nullptr, 0)
 
static MYSQL_SYSVAR_ULONG (poll_spin_loops, ov.poll_spin_loops_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of times a thread waits for a communication engine " "mutex to be freed before the thread is suspended.", nullptr, nullptr, 0, 0, ~0UL, 0)
 
static MYSQL_SYSVAR_ULONG (member_expel_timeout, ov.member_expel_timeout_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The period of time, in seconds, that a member waits before " "expelling any member suspected of failing from the group.", check_member_expel_timeout, update_member_expel_timeout, DEFAULT_MEMBER_EXPEL_TIMEOUT, MIN_MEMBER_EXPEL_TIMEOUT, MAX_MEMBER_EXPEL_TIMEOUT, 0)
 
static MYSQL_SYSVAR_ULONG (message_cache_size, ov.message_cache_size_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The maximum size (in bytes) of Group Replication's internal message " "cache (the XCom cache).", check_message_cache_size, update_message_cache_size, DEFAULT_MESSAGE_CACHE_SIZE, MIN_MESSAGE_CACHE_SIZE, MAX_MESSAGE_CACHE_SIZE, 0)
 
static MYSQL_SYSVAR_ULONG (recovery_retry_count, ov.recovery_retry_count_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of times that the joiner tries to connect to the available " "donors before giving up.", check_sysvar_ulong_timeout, update_recovery_retry_count, 10, 0, LONG_TIMEOUT, 0)
 
static MYSQL_SYSVAR_ULONG (recovery_reconnect_interval, ov.recovery_reconnect_interval_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The sleep time between reconnection attempts when no donor was found in " "the group", check_sysvar_ulong_timeout, update_recovery_reconnect_interval, 60, 0, LONG_TIMEOUT, 0)
 
static MYSQL_SYSVAR_BOOL (recovery_use_ssl, ov.recovery_use_ssl_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Whether SSL use should be obligatory during Group " "Replication recovery process.", check_sysvar_bool, update_ssl_use, 0)
 
static MYSQL_SYSVAR_STR (recovery_ssl_ca, ov.recovery_ssl_ca_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The path to a file that contains a list of trusted SSL certificate " "authorities.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_STR (recovery_ssl_capath, ov.recovery_ssl_capath_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The path to a directory that contains trusted SSL certificate authority " "certificates.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_STR (recovery_ssl_cert, ov.recovery_ssl_cert_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The name of the SSL certificate file to use for establishing a secure " "connection.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_STR (recovery_ssl_cipher, ov.recovery_ssl_cipher_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "A list of permissible ciphers to use for SSL encryption.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_STR (recovery_ssl_key, ov.recovery_ssl_key_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The name of the SSL key file to use for establishing a secure " "connection.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_STR (recovery_ssl_crl, ov.recovery_ssl_crl_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The path to a file containing certificate revocation lists.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_STR (recovery_ssl_crlpath, ov.recovery_ssl_crlpath_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The path to a directory that contains files containing certificate " "revocation lists.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_BOOL (recovery_ssl_verify_server_cert, ov.recovery_ssl_verify_server_cert_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Make recovery check the server's Common Name value " "in the donor sent certificate.", check_sysvar_bool, update_ssl_server_cert_verification, 0)
 
static MYSQL_SYSVAR_STR (recovery_tls_version, ov.recovery_tls_version_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "A list of permissible versions to use for TLS encryption.", check_recovery_ssl_option, update_recovery_ssl_option, "TLSv1.2,TLSv1.3")
 
static MYSQL_SYSVAR_STR (recovery_tls_ciphersuites, ov.recovery_tls_ciphersuites_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "A list of permissible ciphersuites to use for TLS 1.3 encryption.", check_recovery_ssl_option, update_recovery_ssl_option, nullptr)
 
static MYSQL_SYSVAR_STR (recovery_public_key_path, ov.recovery_public_key_path_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The path to a file containing donor's public key information.", check_recovery_ssl_option, update_recovery_ssl_option, "")
 
static MYSQL_SYSVAR_BOOL (recovery_get_public_key, ov.recovery_get_public_key_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Make recovery fetch the donor's public key " "information during authentication.", check_sysvar_bool, update_recovery_get_public_key, 0)
 
static MYSQL_SYSVAR_ULONG (components_stop_timeout, ov.components_stop_timeout_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Timeout in seconds that the plugin waits for each of the components " "when " "shutting down.", check_sysvar_ulong_timeout, update_component_timeout, 300, 2, LONG_TIMEOUT, 0)
 
static MYSQL_SYSVAR_BOOL (allow_local_lower_version_join, ov.allow_local_lower_version_join_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Allow this server to join the group even if it has a " "lower plugin version than the group", check_allow_local_lower_version_join, nullptr, 0)
 
static MYSQL_SYSVAR_ULONG (auto_increment_increment, ov.auto_increment_increment_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The group replication group_replication_auto_increment_increment " "determines interval between successive column values", check_auto_increment_increment, nullptr, DEFAULT_AUTO_INCREMENT_INCREMENT, MIN_AUTO_INCREMENT_INCREMENT, MAX_AUTO_INCREMENT_INCREMENT, 0)
 
static MYSQL_SYSVAR_ULONG (compression_threshold, ov.compression_threshold_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The value in bytes above which (lz4) compression is " "enforced. When set to zero, deactivates compression. " "Default: 1000000.", check_compression_threshold, nullptr, DEFAULT_COMPRESSION_THRESHOLD, MIN_COMPRESSION_THRESHOLD, MAX_COMPRESSION_THRESHOLD, 0)
 
static MYSQL_SYSVAR_ULONG (communication_max_message_size, ov.communication_max_message_size_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The maximum message size in bytes after which a message is fragmented.", check_communication_max_message_size, nullptr, DEFAULT_COMMUNICATION_MAX_MESSAGE_SIZE, MIN_COMMUNICATION_MAX_MESSAGE_SIZE, MAX_COMMUNICATION_MAX_MESSAGE_SIZE, 0)
 
static MYSQL_SYSVAR_ULONGLONG (gtid_assignment_block_size, ov.gtid_assignment_block_size_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of consecutive GTIDs that are reserved to each " "member. Each member will consume its blocks and reserve " "more when needed. Default: 1000000.", check_gtid_assignment_block_size, nullptr, DEFAULT_GTID_ASSIGNMENT_BLOCK_SIZE, MIN_GTID_ASSIGNMENT_BLOCK_SIZE, MAX_GTID_ASSIGNMENT_BLOCK_SIZE, 0)
 
static MYSQL_SYSVAR_ENUM (ssl_mode, ov.ssl_mode_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the security state of the connection between Group " "Replication members. Default: DISABLED", nullptr, nullptr, 0, &ov.ssl_mode_values_typelib_t)
 
static MYSQL_SYSVAR_STR (ip_allowlist, ov.ip_allowlist_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "This option can be used to specify which members " "are allowed to connect to this member. The input " "takes the form of a comma separated list of IPv4 " "addresses or subnet CIDR notation. For example: " "192.168.1.0/24,10.0.0.1. In addition, the user can " "also set as input the value 'AUTOMATIC', in which case " "active interfaces on the host will be scanned and " "those with addresses on private subnetworks will be " "automatically added to the IP allowlist. The address " "127.0.0.1 is always added if not specified explicitly " "in the allowlist. Default: 'AUTOMATIC'.", check_ip_allowlist_preconditions, nullptr, "AUTOMATIC")
 
static MYSQL_SYSVAR_BOOL (single_primary_mode, ov.single_primary_mode_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Instructs the group to automatically pick a single server to be " "the one that handles read/write workload. This server is the " "PRIMARY all others are SECONDARIES. Default: TRUE.", check_single_primary_mode, nullptr, true)
 
static MYSQL_SYSVAR_BOOL (enforce_update_everywhere_checks, ov.enforce_update_everywhere_checks_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Enable/Disable strict consistency checks for multi-primary " "update everywhere. Default: FALSE.", check_enforce_update_everywhere_checks, nullptr, false)
 
static MYSQL_SYSVAR_ENUM (flow_control_mode, ov.flow_control_mode_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the mode used on flow control. " "Default: QUOTA", nullptr, nullptr, FCM_QUOTA, &ov.flow_control_mode_typelib_t)
 
static MYSQL_SYSVAR_LONG (flow_control_certifier_threshold, ov.flow_control_certifier_threshold_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the number of waiting transactions that will trigger " "flow control. Default: 25000", nullptr, nullptr, DEFAULT_FLOW_CONTROL_THRESHOLD, MIN_FLOW_CONTROL_THRESHOLD, MAX_FLOW_CONTROL_THRESHOLD, 0)
 
static MYSQL_SYSVAR_LONG (flow_control_applier_threshold, ov.flow_control_applier_threshold_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the number of waiting transactions that will trigger " "flow control. Default: 25000", nullptr, nullptr, DEFAULT_FLOW_CONTROL_THRESHOLD, MIN_FLOW_CONTROL_THRESHOLD, MAX_FLOW_CONTROL_THRESHOLD, 0)
 
static MYSQL_SYSVAR_ULONG (transaction_size_limit, ov.transaction_size_limit_base_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the limit of transaction size that can be transferred over " "network.", nullptr, update_transaction_size_limit, DEFAULT_TRANSACTION_SIZE_LIMIT, MIN_TRANSACTION_SIZE_LIMIT, MAX_TRANSACTION_SIZE_LIMIT, 0)
 
static MYSQL_SYSVAR_STR (communication_debug_options, ov.communication_debug_options_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The set of debug options, comma separated. E.g., DEBUG_BASIC, " "DEBUG_ALL.", check_communication_debug_options, nullptr, "GCS_DEBUG_NONE")
 
static MYSQL_SYSVAR_ENUM (exit_state_action, ov.exit_state_action_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The action that is taken when the server " "leaves the group unexpectedly. " "Possible values are READ_ONLY, " "ABORT_SERVER and OFFLINE_MODE.", nullptr, nullptr, EXIT_STATE_ACTION_OFFLINE_MODE, &ov.exit_state_actions_typelib_t)
 
static MYSQL_SYSVAR_UINT (autorejoin_tries, ov.autorejoin_tries_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of retries to attempt in the auto-rejoin " "procedure.", check_autorejoin_tries, update_autorejoin_tries, 3U, 0U, lv.MAX_AUTOREJOIN_TRIES, 0)
 
static MYSQL_SYSVAR_ULONG (unreachable_majority_timeout, ov.timeout_on_unreachable_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of seconds before going into error when a majority of " "members " "is unreachable." "If 0 there is no action taken.", check_sysvar_ulong_timeout, update_unreachable_timeout, 0, 0, LONG_TIMEOUT, 0)
 
static MYSQL_SYSVAR_UINT (member_weight, ov.member_weight_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Member weight will determine the member role in the group on" " future primary elections", check_member_weight, update_member_weight, DEFAULT_MEMBER_WEIGHT, MIN_MEMBER_WEIGHT, MAX_MEMBER_WEIGHT, 0)
 
static MYSQL_SYSVAR_LONG (flow_control_min_quota, ov.flow_control_min_quota_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the minimum flow-control quota that can be assigned to a node." "Default: 0 (5% of thresholds)", check_flow_control_min_quota, nullptr, MIN_FLOW_CONTROL_THRESHOLD, MIN_FLOW_CONTROL_THRESHOLD, MAX_FLOW_CONTROL_THRESHOLD, 0)
 
static MYSQL_SYSVAR_LONG (flow_control_min_recovery_quota, ov.flow_control_min_recovery_quota_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the minimum flow-control quota that can be assigned to a node," "if flow control was needed due to a recovering node. Default: 0 " "(disabled)", check_flow_control_min_recovery_quota, nullptr, MIN_FLOW_CONTROL_THRESHOLD, MIN_FLOW_CONTROL_THRESHOLD, MAX_FLOW_CONTROL_THRESHOLD, 0)
 
static MYSQL_SYSVAR_LONG (flow_control_max_quota, ov.flow_control_max_quota_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the maximum cluster commit rate allowed " "when flow-control is active." "Default: 0 (disabled)", check_flow_control_max_quota, nullptr, MIN_FLOW_CONTROL_THRESHOLD, MIN_FLOW_CONTROL_THRESHOLD, MAX_FLOW_CONTROL_THRESHOLD, 0)
 
static MYSQL_SYSVAR_INT (flow_control_member_quota_percent, ov.flow_control_member_quota_percent_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the proportion of the quota that is assigned to this member." "Default: 0% (disabled)", nullptr, nullptr, 0, 0, 100, 0)
 
static MYSQL_SYSVAR_INT (flow_control_period, ov.flow_control_period_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies how many seconds to wait between flow-control iterations." "Default: 1", nullptr, nullptr, 1, 1, 60, 0)
 
static MYSQL_SYSVAR_INT (flow_control_hold_percent, ov.flow_control_hold_percent_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the percentage of the quota that is reserved for catch-up." "Default: 10%, 0 disables", nullptr, nullptr, 10, 0, 100, 0)
 
static MYSQL_SYSVAR_INT (flow_control_release_percent, ov.flow_control_release_percent_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Specifies the percentage of the quota the can increase per iteration" "when flow-control is released. Default: 50%, 0 disables", nullptr, nullptr, 50, 0, 1000, 0)
 
static MYSQL_SYSVAR_ULONGLONG (clone_threshold, ov.clone_threshold_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of missing transactions in a joining member needed to " "execute " "the clone procedure.", check_clone_threshold, update_clone_threshold, GNO_END, 1, GNO_END, 0)
 
static MYSQL_SYSVAR_STR (recovery_compression_algorithms, ov.recovery_compression_algorithm_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Recovery channel compression algorithm.", check_recovery_compression_algorithm, update_recovery_compression_algorithm, COMPRESSION_ALGORITHM_UNCOMPRESSED)
 
static MYSQL_SYSVAR_UINT (recovery_zstd_compression_level, ov.recovery_zstd_compression_level_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Recovery channel compression level.", check_recovery_zstd_compression_level, update_recovery_zstd_compression_level, 3U, 1U, 22U, 0)
 
static MYSQL_SYSVAR_BOOL (paxos_single_leader, ov.allow_single_leader_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Enables or disables the usage of a single consensus leader when running " "the group in Single-Primary mode.", check_sysvar_bool, update_allow_single_leader, 0)
 
static int check_advertise_recovery_endpoints (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static MYSQL_SYSVAR_STR (advertise_recovery_endpoints, ov.advertise_recovery_endpoints_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Recovery list of endpoints for joiner connection", check_advertise_recovery_endpoints, nullptr, "DEFAULT")
 
static MYSQL_SYSVAR_ENUM (tls_source, ov.tls_source_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The source of TLS configuration of the connection between " "Group Replication members. Possible values are MYSQL_MAIN " "and MYSQL_ADMIN. Default: MYSQL_MAIN", nullptr, nullptr, 0, &ov.tls_source_values_typelib_t)
 
static int check_view_change_uuid (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static MYSQL_SYSVAR_STR (view_change_uuid, ov.view_change_uuid_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The UUID used to identify view changes in the group, " "but also used in the associated GTID events whenever a " "View Change is logged.", check_view_change_uuid, nullptr, "AUTOMATIC")
 
static MYSQL_SYSVAR_ENUM (communication_stack, ov.communication_stack_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "Selects the group replication protocol stack to " "use : Legacy XCom or MySQL.This option only takes effect after a group " "replication restart. Default: XCom", nullptr, nullptr, XCOM_PROTOCOL, &ov.communication_stack_values_typelib_t)
 
bool get_preemptive_garbage_collection_var ()
 
static int check_preemptive_garbage_collection (MYSQL_THD thd, SYS_VAR *, void *save, struct st_mysql_value *value)
 
static MYSQL_SYSVAR_BOOL (preemptive_garbage_collection, ov.preemptive_garbage_collection_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "This option is only effective in single-primary mode. " "In multi-primary mode, this option is ignored and the feature " "is inactive, thus there is no preemptive garbage collection.", check_preemptive_garbage_collection, nullptr, PREEMPTIVE_GARBAGE_COLLECTION_DEFAULT)
 
uint get_preemptive_garbage_collection_rows_threshold_var ()
 
static MYSQL_SYSVAR_UINT (preemptive_garbage_collection_rows_threshold, ov.preemptive_garbage_collection_rows_threshold_var, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_PERSIST_AS_READ_ONLY, "The number of validating rows that triggers a preemptive " "garbage collection round when " "group_replication_preemptive_garbage_collection is enabled.", nullptr, nullptr, PREEMPTIVE_GARBAGE_COLLECTION_ROWS_THRESHOLD_DEFAULT, PREEMPTIVE_GARBAGE_COLLECTION_ROWS_THRESHOLD_MIN, PREEMPTIVE_GARBAGE_COLLECTION_ROWS_THRESHOLD_MAX, 0)
 
 mysql_declare_plugin (group_replication_plugin)
 

Variables

static struct plugin_local_variables lv
 
static struct plugin_options_variables ov
 
const mysql_service_log_builtins_tlog_bi
 accessor built-ins More...
 
const mysql_service_log_builtins_string_tlog_bs
 string built-ins More...
 
Applier_moduleapplier_module = nullptr
 The plugin applier. More...
 
Recovery_modulerecovery_module = nullptr
 The plugin recovery module. More...
 
Recovery_metadata_modulerecovery_metadata_module = nullptr
 The plugin recovery metadata module. More...
 
Gcs_operationsgcs_module = nullptr
 The plugin group communication module. More...
 
Registry_module_interfaceregistry_module = nullptr
 The registry module. More...
 
Group_events_observation_managergroup_events_observation_manager = nullptr
 The observation module for group events. More...
 
Channel_observation_manager_listchannel_observation_manager_list = nullptr
 The channel observation modules. More...
 
Asynchronous_channels_state_observerasynchronous_channels_state_observer
 The Single primary channel observation module. More...
 
Group_transaction_observation_managergroup_transaction_observation_manager
 The transaction observation module. More...
 
Wait_ticket< my_thread_id > * transactions_latch = nullptr
 Transactions latch. More...
 
Transaction_consistency_managertransaction_consistency_manager = nullptr
 The plugin transaction consistency manager. More...
 
Shared_writelockshared_plugin_stop_lock = nullptr
 Class to coordinate access to the plugin stop lock. More...
 
Delayed_initialization_threaddelayed_initialization_thread = nullptr
 Initialization thread for server starts. More...
 
Group_partition_handlinggroup_partition_handler = nullptr
 The transaction handler for network partitions. More...
 
Blocked_transaction_handlerblocked_transaction_handler = nullptr
 The handler for transaction killing when an error or partition happens. More...
 
Group_action_coordinatorgroup_action_coordinator = nullptr
 The coordinator for group actions. More...
 
Primary_election_handlerprimary_election_handler = nullptr
 The primary election handler. More...
 
Autorejoin_threadautorejoin_module = nullptr
 The thread that handles the auto-rejoin process. More...
 
Remote_clone_handlerremote_clone_handler = nullptr
 The handler to invoke clone. More...
 
Message_service_handlermessage_service_handler = nullptr
 The thread that handles the message service process. More...
 
Advertised_recovery_endpointsadvertised_recovery_endpoints = nullptr
 Handle validation of advertised recovery endpoints. More...
 
Member_actions_handlermember_actions_handler = nullptr
 
Mysql_threadmysql_thread_handler = nullptr
 Handle tasks on mysql_thread. More...
 
Mysql_threadmysql_thread_handler_read_only_mode = nullptr
 Dedicated mysql_thread to enable read_only and super_read_only since these are blocking operations. More...
 
Server_services_referencesserver_services_references_module = nullptr
 Module with the acquired server services on plugin install. More...
 
Metrics_handlermetrics_handler {nullptr}
 
Plugin_gcs_events_handlerevents_handler = nullptr
 
Plugin_gcs_view_modification_notifierview_change_notifier = nullptr
 
Group_member_info_manager_interfacegroup_member_mgr = nullptr
 
Group_member_infolocal_member_info = nullptr
 
Compatibility_modulecompatibility_mgr = nullptr
 
mysql_service_mysql_runtime_error_tmysql_runtime_error_service
 
Consensus_leaders_handlerconsensus_leaders_handler = nullptr
 
Recovery_metadata_observerrecovery_metadata_observer = nullptr
 
static gr::perfschema::Perfschema_moduleperfschema_module = nullptr
 
struct st_mysql_group_replication group_replication_descriptor
 
static SYS_VARgroup_replication_system_vars []
 
static SHOW_VAR group_replication_status_vars []
 
 mysql_declare_plugin_end
 

Function Documentation

◆ attempt_rejoin()

bool attempt_rejoin ( )

Encapsulates the logic necessary to attempt a rejoin, i.e.

gracefully leave the group, terminate GCS infrastructure, terminate auto-rejoin relevant plugin modules, reinitialize auto-rejoin relevant plugin modules, reinitialize GCS infrastructure and attempt to join the group again.

Returns
a flag indicating success or failure.
Return values
truethe rejoin failed.
falsethe rejoin succeeded.

◆ build_gcs_parameters()

int build_gcs_parameters ( Gcs_interface_parameters params)

◆ check_advertise_recovery_endpoints()

static int check_advertise_recovery_endpoints ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_allow_local_lower_version_join()

static int check_allow_local_lower_version_join ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_async_channel_running_on_secondary()

bool check_async_channel_running_on_secondary ( )

◆ check_auto_increment_increment()

static int check_auto_increment_increment ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_autorejoin_tries()

static int check_autorejoin_tries ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_clone_threshold()

static int check_clone_threshold ( MYSQL_THD  ,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_communication_debug_options()

static int check_communication_debug_options ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_communication_max_message_size()

static int check_communication_max_message_size ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_compression_threshold()

static int check_compression_threshold ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_deprecated_variables()

static void check_deprecated_variables ( )
static

◆ check_enforce_update_everywhere_checks()

static int check_enforce_update_everywhere_checks ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_flow_control_max_quota()

static int check_flow_control_max_quota ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_flow_control_max_quota_long()

static int check_flow_control_max_quota_long ( longlong  value,
bool  is_var_update = false 
)
static

◆ check_flow_control_min_quota()

static int check_flow_control_min_quota ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_flow_control_min_quota_long()

static int check_flow_control_min_quota_long ( longlong  value,
bool  is_var_update = false 
)
static

◆ check_flow_control_min_recovery_quota()

static int check_flow_control_min_recovery_quota ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_flow_control_min_recovery_quota_long()

static int check_flow_control_min_recovery_quota_long ( longlong  value,
bool  is_var_update = false 
)
static

◆ check_force_members()

static int check_force_members ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_group_name()

static int check_group_name ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_group_name_string()

static int check_group_name_string ( const char *  str,
bool  is_var_update = false 
)
static

◆ check_gtid_assignment_block_size()

static int check_gtid_assignment_block_size ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_if_server_properly_configured()

static int check_if_server_properly_configured ( )
static

◆ check_ip_allowlist_preconditions()

static int check_ip_allowlist_preconditions ( MYSQL_THD  thd,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_member_expel_timeout()

static int check_member_expel_timeout ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_member_weight()

static int check_member_weight ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_message_cache_size()

static int check_message_cache_size ( MYSQL_THD  ,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_preemptive_garbage_collection()

static int check_preemptive_garbage_collection ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_recovery_compression_algorithm()

static int check_recovery_compression_algorithm ( MYSQL_THD  thd,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_recovery_ssl_option()

static int check_recovery_ssl_option ( MYSQL_THD  thd,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_recovery_ssl_string()

static int check_recovery_ssl_string ( const char *  str,
const char *  var_name,
bool  is_var_update = false 
)
static

◆ check_recovery_zstd_compression_level()

static int check_recovery_zstd_compression_level ( MYSQL_THD  ,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_single_primary_mode()

static int check_single_primary_mode ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_sysvar_bool()

static int check_sysvar_bool ( MYSQL_THD  ,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_sysvar_ulong_timeout()

static int check_sysvar_ulong_timeout ( MYSQL_THD  ,
SYS_VAR var,
void *  save,
struct st_mysql_value value 
)
static

◆ check_uuid_against_rpl_channel_settings()

static bool check_uuid_against_rpl_channel_settings ( const char *  str)
static

◆ check_view_change_uuid()

static int check_view_change_uuid ( MYSQL_THD  thd,
SYS_VAR ,
void *  save,
struct st_mysql_value value 
)
static

◆ check_view_change_uuid_string()

static int check_view_change_uuid_string ( const char *  str,
bool  is_var_update = false 
)
static

◆ configure_and_start_applier_module()

int configure_and_start_applier_module ( )

◆ configure_compatibility_manager()

int configure_compatibility_manager ( )

◆ configure_group_communication()

int configure_group_communication ( )

◆ configure_group_member_manager()

int configure_group_member_manager ( )

◆ declare_plugin_cloning()

void declare_plugin_cloning ( bool  is_running)

◆ enable_server_shutdown_status()

void enable_server_shutdown_status ( )

◆ finalize_perfschema_module()

static void finalize_perfschema_module ( )
static

◆ finalize_registry_module()

static bool finalize_registry_module ( )
static

◆ get_allow_local_lower_version_join()

bool get_allow_local_lower_version_join ( )

◆ get_allow_single_leader()

bool get_allow_single_leader ( )

◆ get_bool_value_using_type_lib()

static bool get_bool_value_using_type_lib ( struct st_mysql_value value,
bool &  resulting_value 
)
static

◆ get_communication_stack_var()

ulong get_communication_stack_var ( )

◆ get_components_stop_timeout_var()

ulong get_components_stop_timeout_var ( )

◆ get_exit_state_action_var()

ulong get_exit_state_action_var ( )

◆ get_flow_control_applier_threshold_var()

long get_flow_control_applier_threshold_var ( )

◆ get_flow_control_certifier_threshold_var()

long get_flow_control_certifier_threshold_var ( )

◆ get_flow_control_hold_percent_var()

int get_flow_control_hold_percent_var ( )

◆ get_flow_control_max_quota_var()

long get_flow_control_max_quota_var ( )

◆ get_flow_control_member_quota_percent_var()

int get_flow_control_member_quota_percent_var ( )

◆ get_flow_control_min_quota_var()

long get_flow_control_min_quota_var ( )

◆ get_flow_control_min_recovery_quota_var()

long get_flow_control_min_recovery_quota_var ( )

◆ get_flow_control_mode_var()

ulong get_flow_control_mode_var ( )

◆ get_flow_control_period_var()

int get_flow_control_period_var ( )

◆ get_flow_control_release_percent_var()

int get_flow_control_release_percent_var ( )

◆ get_group_name_var()

const char * get_group_name_var ( )

◆ get_group_sidno()

rpl_sidno get_group_sidno ( )

◆ get_number_of_autorejoin_tries()

uint get_number_of_autorejoin_tries ( )

◆ get_plugin_applier_module_initialize_terminate_lock()

mysql_mutex_t * get_plugin_applier_module_initialize_terminate_lock ( )

◆ get_plugin_is_setting_read_mode()

bool get_plugin_is_setting_read_mode ( )

◆ get_plugin_is_stopping()

bool get_plugin_is_stopping ( )

◆ get_plugin_pointer()

void * get_plugin_pointer ( )

◆ get_plugin_registry()

const mysql_service_registry_t * get_plugin_registry ( )

◆ get_plugin_running_lock()

Checkable_rwlock * get_plugin_running_lock ( )

◆ get_preemptive_garbage_collection_rows_threshold_var()

uint get_preemptive_garbage_collection_rows_threshold_var ( )

◆ get_preemptive_garbage_collection_var()

bool get_preemptive_garbage_collection_var ( )

◆ get_rejoin_timeout()

ulonglong get_rejoin_timeout ( )

◆ get_server_shutdown_status()

bool get_server_shutdown_status ( )

◆ get_single_primary_mode_var()

bool get_single_primary_mode_var ( )

◆ get_transaction_size_limit()

ulong get_transaction_size_limit ( )

◆ get_view_change_sidno()

rpl_sidno get_view_change_sidno ( )

◆ get_view_change_uuid_var()

const char * get_view_change_uuid_var ( )

◆ get_wait_on_engine_initialization()

bool get_wait_on_engine_initialization ( )

◆ handle_group_replication_incoming_connection()

int handle_group_replication_incoming_connection ( THD thd,
int  fd,
SSL *  ssl_ctx 
)

Callback implementation of handle_group_replication_incoming_connection.

This is the entry point for new MySQL connections that are directed to GCS

Parameters
thdTHD object of the connection
fdFile descriptor of the connections
ssl_ctxSSL data of the connection
Returns
int Returns 1 in case of any error. 0 otherwise.

◆ init_compatibility_manager()

void init_compatibility_manager ( )

◆ init_group_sidno()

static bool init_group_sidno ( )
static

◆ initialize_asynchronous_channels_observer()

void initialize_asynchronous_channels_observer ( )

◆ initialize_group_partition_handler()

void initialize_group_partition_handler ( )

◆ initialize_perfschema_module()

static bool initialize_perfschema_module ( )
static

◆ initialize_plugin_and_join()

int initialize_plugin_and_join ( enum_plugin_con_isolation  sql_api_isolation,
Delayed_initialization_thread delayed_init_thd 
)

We redo the check for the group name here when starting on boot as only now the information about channels and the assign_gtids_to_anonymous_transactions is available.

◆ initialize_plugin_modules()

int initialize_plugin_modules ( gr_modules::mask  modules_to_init)

◆ initialize_recovery_module()

int initialize_recovery_module ( )

◆ initialize_registry_module()

static bool initialize_registry_module ( )
static

◆ initialize_ssl_option_map()

static void initialize_ssl_option_map ( )
static

Initialize the ssl option map with variable names.

◆ initiate_wait_on_start_process()

enum_wait_on_start_process_result initiate_wait_on_start_process ( )

Blocks the calling thread.

◆ is_autorejoin_enabled()

bool is_autorejoin_enabled ( )

◆ is_plugin_auto_starting_on_non_bootstrap_member()

bool is_plugin_auto_starting_on_non_bootstrap_member ( )

◆ is_plugin_configured_and_starting()

bool is_plugin_configured_and_starting ( )

◆ is_plugin_waiting_to_set_server_read_mode()

bool is_plugin_waiting_to_set_server_read_mode ( )

◆ is_view_change_log_event_required()

bool is_view_change_log_event_required ( )

◆ leave_group()

int leave_group ( )

◆ leave_group_and_terminate_plugin_modules()

int leave_group_and_terminate_plugin_modules ( gr_modules::mask  modules_to_terminate,
char **  error_message 
)

◆ mysql_declare_plugin()

mysql_declare_plugin ( group_replication_plugin  )

◆ MYSQL_SYSVAR_BOOL() [1/10]

static MYSQL_SYSVAR_BOOL ( allow_local_lower_version_join  ,
ov.  allow_local_lower_version_join_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Allow this server to join the group even if it has a " "lower plugin version than the group"  ,
check_allow_local_lower_version_join  ,
nullptr  ,
 
)
static

◆ MYSQL_SYSVAR_BOOL() [2/10]

static MYSQL_SYSVAR_BOOL ( bootstrap_group  ,
ov.  bootstrap_group_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specify if this member will bootstrap the group."  ,
nullptr  ,
nullptr  ,
 
)
static

◆ MYSQL_SYSVAR_BOOL() [3/10]

static MYSQL_SYSVAR_BOOL ( enforce_update_everywhere_checks  ,
ov.  enforce_update_everywhere_checks_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Enable/Disable strict consistency checks for multi-primary " "update everywhere. Default: FALSE."  ,
check_enforce_update_everywhere_checks  ,
nullptr  ,
false   
)
static

◆ MYSQL_SYSVAR_BOOL() [4/10]

static MYSQL_SYSVAR_BOOL ( paxos_single_leader  ,
ov.  allow_single_leader_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Enables or disables the usage of a single consensus leader when running " "the group in Single-Primary mode."  ,
check_sysvar_bool  ,
update_allow_single_leader  ,
 
)
static

◆ MYSQL_SYSVAR_BOOL() [5/10]

static MYSQL_SYSVAR_BOOL ( preemptive_garbage_collection  ,
ov.  preemptive_garbage_collection_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"This option is only effective in single-primary mode. " "In multi-primary  mode,
this option is ignored and the feature " "is  inactive,
thus there is no preemptive garbage collection."  ,
check_preemptive_garbage_collection  ,
nullptr  ,
PREEMPTIVE_GARBAGE_COLLECTION_DEFAULT   
)
static

◆ MYSQL_SYSVAR_BOOL() [6/10]

static MYSQL_SYSVAR_BOOL ( recovery_get_public_key  ,
ov.  recovery_get_public_key_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Make recovery fetch the donor's public key " "information during authentication."  ,
check_sysvar_bool  ,
update_recovery_get_public_key  ,
 
)
static

◆ MYSQL_SYSVAR_BOOL() [7/10]

static MYSQL_SYSVAR_BOOL ( recovery_ssl_verify_server_cert  ,
ov.  recovery_ssl_verify_server_cert_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Make recovery check the server's Common Name value " "in the donor sent certificate."  ,
check_sysvar_bool  ,
update_ssl_server_cert_verification  ,
 
)
static

◆ MYSQL_SYSVAR_BOOL() [8/10]

static MYSQL_SYSVAR_BOOL ( recovery_use_ssl  ,
ov.  recovery_use_ssl_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Whether SSL use should be obligatory during Group " "Replication recovery process."  ,
check_sysvar_bool  ,
update_ssl_use  ,
 
)
static

◆ MYSQL_SYSVAR_BOOL() [9/10]

static MYSQL_SYSVAR_BOOL ( single_primary_mode  ,
ov.  single_primary_mode_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Instructs the group to automatically pick a single server to be " "the one that handles read/write workload. This server is the " "PRIMARY all others are SECONDARIES. Default: TRUE."  ,
check_single_primary_mode  ,
nullptr  ,
true   
)
static

◆ MYSQL_SYSVAR_BOOL() [10/10]

static MYSQL_SYSVAR_BOOL ( start_on_boot  ,
ov.  start_group_replication_at_boot_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Whether the server should start Group Replication or " "not during bootstrap."  ,
nullptr  ,
nullptr  ,
 
)
static

◆ MYSQL_SYSVAR_ENUM() [1/5]

static MYSQL_SYSVAR_ENUM ( communication_stack  ,
ov.  communication_stack_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Selects the group replication protocol stack to " "use : Legacy XCom or MySQL.This option only takes effect after a group " "replication restart. Default: XCom"  ,
nullptr  ,
nullptr  ,
XCOM_PROTOCOL  ,
&ov.  communication_stack_values_typelib_t 
)
static

◆ MYSQL_SYSVAR_ENUM() [2/5]

static MYSQL_SYSVAR_ENUM ( exit_state_action  ,
ov.  exit_state_action_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The action that is taken when the server " "leaves the group unexpectedly. " "Possible values are  READ_ONLY,
" "ABORT_SERVER and OFFLINE_MODE."  ,
nullptr  ,
nullptr  ,
EXIT_STATE_ACTION_OFFLINE_MODE  ,
&ov.  exit_state_actions_typelib_t 
)
static

◆ MYSQL_SYSVAR_ENUM() [3/5]

static MYSQL_SYSVAR_ENUM ( flow_control_mode  ,
ov.  flow_control_mode_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the mode used on flow control. " "Default: QUOTA"  ,
nullptr  ,
nullptr  ,
FCM_QUOTA  ,
&ov.  flow_control_mode_typelib_t 
)
static

◆ MYSQL_SYSVAR_ENUM() [4/5]

static MYSQL_SYSVAR_ENUM ( ssl_mode  ,
ov.  ssl_mode_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the security state of the connection between Group " "Replication members. Default: DISABLED"  ,
nullptr  ,
nullptr  ,
,
&ov.  ssl_mode_values_typelib_t 
)
static

◆ MYSQL_SYSVAR_ENUM() [5/5]

static MYSQL_SYSVAR_ENUM ( tls_source  ,
ov.  tls_source_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The source of TLS configuration of the connection between " "Group Replication members. Possible values are MYSQL_MAIN " "and MYSQL_ADMIN. Default: MYSQL_MAIN"  ,
nullptr  ,
nullptr  ,
,
&ov.  tls_source_values_typelib_t 
)
static

◆ MYSQL_SYSVAR_INT() [1/4]

static MYSQL_SYSVAR_INT ( flow_control_hold_percent  ,
ov.  flow_control_hold_percent_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the percentage of the quota that is reserved for catch-up." "Default: 10%  ,
0 disables"  ,
nullptr  ,
nullptr  ,
10  ,
,
100  ,
 
)
static

◆ MYSQL_SYSVAR_INT() [2/4]

static MYSQL_SYSVAR_INT ( flow_control_member_quota_percent  ,
ov.  flow_control_member_quota_percent_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the proportion of the quota that is assigned to this member." "Default: 0% (disabled)"  ,
nullptr  ,
nullptr  ,
,
,
100  ,
 
)
static

◆ MYSQL_SYSVAR_INT() [3/4]

static MYSQL_SYSVAR_INT ( flow_control_period  ,
ov.  flow_control_period_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies how many seconds to wait between flow-control iterations." "Default: 1"  ,
nullptr  ,
nullptr  ,
,
,
60  ,
 
)
static

◆ MYSQL_SYSVAR_INT() [4/4]

static MYSQL_SYSVAR_INT ( flow_control_release_percent  ,
ov.  flow_control_release_percent_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the percentage of the quota the can increase per iteration" "when flow-control is released. Default: 50%  ,
0 disables"  ,
nullptr  ,
nullptr  ,
50  ,
,
1000  ,
 
)
static

◆ MYSQL_SYSVAR_LONG() [1/5]

static MYSQL_SYSVAR_LONG ( flow_control_applier_threshold  ,
ov.  flow_control_applier_threshold_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the number of waiting transactions that will trigger " "flow control. Default: 25000"  ,
nullptr  ,
nullptr  ,
DEFAULT_FLOW_CONTROL_THRESHOLD  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MAX_FLOW_CONTROL_THRESHOLD  ,
 
)
static

◆ MYSQL_SYSVAR_LONG() [2/5]

static MYSQL_SYSVAR_LONG ( flow_control_certifier_threshold  ,
ov.  flow_control_certifier_threshold_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the number of waiting transactions that will trigger " "flow control. Default: 25000"  ,
nullptr  ,
nullptr  ,
DEFAULT_FLOW_CONTROL_THRESHOLD  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MAX_FLOW_CONTROL_THRESHOLD  ,
 
)
static

◆ MYSQL_SYSVAR_LONG() [3/5]

static MYSQL_SYSVAR_LONG ( flow_control_max_quota  ,
ov.  flow_control_max_quota_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the maximum cluster commit rate allowed " "when flow-control is active." "Default: 0 (disabled)"  ,
check_flow_control_max_quota  ,
nullptr  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MAX_FLOW_CONTROL_THRESHOLD  ,
 
)
static

◆ MYSQL_SYSVAR_LONG() [4/5]

static MYSQL_SYSVAR_LONG ( flow_control_min_quota  ,
ov.  flow_control_min_quota_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the minimum flow-control quota that can be assigned to a node." "Default: 0 (5% of thresholds)"  ,
check_flow_control_min_quota  ,
nullptr  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MAX_FLOW_CONTROL_THRESHOLD  ,
 
)
static

◆ MYSQL_SYSVAR_LONG() [5/5]

static MYSQL_SYSVAR_LONG ( flow_control_min_recovery_quota  ,
ov.  flow_control_min_recovery_quota_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the minimum flow-control quota that can be assigned to a  node,
" "if flow control was needed due to a recovering node. Default:0 " "(disabled)"  ,
check_flow_control_min_recovery_quota  ,
nullptr  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MIN_FLOW_CONTROL_THRESHOLD  ,
MAX_FLOW_CONTROL_THRESHOLD  ,
 
)
static

◆ MYSQL_SYSVAR_STR() [1/19]

static MYSQL_SYSVAR_STR ( advertise_recovery_endpoints  ,
ov.  advertise_recovery_endpoints_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Recovery list of endpoints for joiner connection"  ,
check_advertise_recovery_endpoints  ,
nullptr  ,
"DEFAULT"   
)
static

◆ MYSQL_SYSVAR_STR() [2/19]

static MYSQL_SYSVAR_STR ( communication_debug_options  ,
ov.  communication_debug_options_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The set of debug  options,
comma separated. E.  g.,
DEBUG_BASIC  ,
" "DEBUG_ALL."  ,
check_communication_debug_options  ,
nullptr  ,
"GCS_DEBUG_NONE"   
)
static

◆ MYSQL_SYSVAR_STR() [3/19]

static MYSQL_SYSVAR_STR ( force_members  ,
ov.  force_members_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_NOPERSIST,
"The list of  members,
comma separated. E.  g.,
host1:port1  ,
host2:port2. " "This option is used to force a new group  membership,
on which the " "excluded " "members will not receive a new view and will be blocked. The DBA will " "need " "to kill the excluded servers."  ,
check_force_members  ,
nullptr  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [4/19]

static MYSQL_SYSVAR_STR ( group_name  ,
ov.  group_name_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The group name ,
check_group_name  ,
nullptr  ,
nullptr   
)
static

◆ MYSQL_SYSVAR_STR() [5/19]

static MYSQL_SYSVAR_STR ( group_seeds  ,
ov.  group_seeds_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The list of group  seeds,
comma separated. E.  g.,
" "host1:port1  ,
host2:port2."  ,
nullptr  ,
nullptr  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [6/19]

static MYSQL_SYSVAR_STR ( ip_allowlist  ,
ov.  ip_allowlist_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"This option can be used to specify which members " "are allowed to connect to this member. The input " "takes the form of a comma separated list of IPv4 " "addresses or subnet CIDR notation. For example: " "192.168.1.0/  24,
10.0.0.1. In  addition,
the user can " "also set as input the value 'AUTOMATIC'  ,
in which case " "active interfaces on the host will be scanned and " "those with addresses on private subnetworks will be " "automatically added to the IP allowlist. The address " "127.0.0.1 is always added if not specified explicitly " "in the allowlist. Default:'AUTOMATIC'."  ,
check_ip_allowlist_preconditions  ,
nullptr  ,
"AUTOMATIC"   
)
static

◆ MYSQL_SYSVAR_STR() [7/19]

static MYSQL_SYSVAR_STR ( local_address  ,
ov.  local_address_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The local  address,
i.  e.,
host:port."  ,
nullptr  ,
nullptr  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [8/19]

static MYSQL_SYSVAR_STR ( recovery_compression_algorithms  ,
ov.  recovery_compression_algorithm_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Recovery channel compression algorithm."  ,
check_recovery_compression_algorithm  ,
update_recovery_compression_algorithm  ,
COMPRESSION_ALGORITHM_UNCOMPRESSED   
)
static

◆ MYSQL_SYSVAR_STR() [9/19]

static MYSQL_SYSVAR_STR ( recovery_public_key_path  ,
ov.  recovery_public_key_path_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The path to a file containing donor's public key information."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [10/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_ca  ,
ov.  recovery_ssl_ca_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The path to a file that contains a list of trusted SSL certificate " "authorities."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [11/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_capath  ,
ov.  recovery_ssl_capath_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The path to a directory that contains trusted SSL certificate authority " "certificates."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [12/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_cert  ,
ov.  recovery_ssl_cert_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The name of the SSL certificate file to use for establishing a secure " "connection."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [13/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_cipher  ,
ov.  recovery_ssl_cipher_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"A list of permissible ciphers to use for SSL encryption."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [14/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_crl  ,
ov.  recovery_ssl_crl_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The path to a file containing certificate revocation lists."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [15/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_crlpath  ,
ov.  recovery_ssl_crlpath_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The path to a directory that contains files containing certificate " "revocation lists."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [16/19]

static MYSQL_SYSVAR_STR ( recovery_ssl_key  ,
ov.  recovery_ssl_key_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The name of the SSL key file to use for establishing a secure " "connection."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
""   
)
static

◆ MYSQL_SYSVAR_STR() [17/19]

static MYSQL_SYSVAR_STR ( recovery_tls_ciphersuites  ,
ov.  recovery_tls_ciphersuites_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"A list of permissible ciphersuites to use for TLS 1.3 encryption."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
nullptr   
)
static

◆ MYSQL_SYSVAR_STR() [18/19]

static MYSQL_SYSVAR_STR ( recovery_tls_version  ,
ov.  recovery_tls_version_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"A list of permissible versions to use for TLS encryption."  ,
check_recovery_ssl_option  ,
update_recovery_ssl_option  ,
"TLSv1.  2,
TLSv1.3"   
)
static

◆ MYSQL_SYSVAR_STR() [19/19]

static MYSQL_SYSVAR_STR ( view_change_uuid  ,
ov.  view_change_uuid_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The UUID used to identify view changes in the  group,
" "but also used in the associated GTID events whenever a " "View Change is logged."  ,
check_view_change_uuid  ,
nullptr  ,
"AUTOMATIC"   
)
static

◆ MYSQL_SYSVAR_UINT() [1/4]

static MYSQL_SYSVAR_UINT ( autorejoin_tries  ,
ov.  autorejoin_tries_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of retries to attempt in the auto-rejoin " "procedure."  ,
check_autorejoin_tries  ,
update_autorejoin_tries  ,
3U  ,
0U  ,
lv.  MAX_AUTOREJOIN_TRIES,
 
)
static

◆ MYSQL_SYSVAR_UINT() [2/4]

static MYSQL_SYSVAR_UINT ( member_weight  ,
ov.  member_weight_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Member weight will determine the member role in the group on" " future primary elections"  ,
check_member_weight  ,
update_member_weight  ,
DEFAULT_MEMBER_WEIGHT  ,
MIN_MEMBER_WEIGHT  ,
MAX_MEMBER_WEIGHT  ,
 
)
static

◆ MYSQL_SYSVAR_UINT() [3/4]

static MYSQL_SYSVAR_UINT ( preemptive_garbage_collection_rows_threshold  ,
ov.  preemptive_garbage_collection_rows_threshold_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of validating rows that triggers a preemptive " "garbage collection round when " "group_replication_preemptive_garbage_collection is enabled."  ,
nullptr  ,
nullptr  ,
PREEMPTIVE_GARBAGE_COLLECTION_ROWS_THRESHOLD_DEFAULT  ,
PREEMPTIVE_GARBAGE_COLLECTION_ROWS_THRESHOLD_MIN  ,
PREEMPTIVE_GARBAGE_COLLECTION_ROWS_THRESHOLD_MAX  ,
 
)
static

◆ MYSQL_SYSVAR_UINT() [4/4]

static MYSQL_SYSVAR_UINT ( recovery_zstd_compression_level  ,
ov.  recovery_zstd_compression_level_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Recovery channel compression level."  ,
check_recovery_zstd_compression_level  ,
update_recovery_zstd_compression_level  ,
3U  ,
1U  ,
22U  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [1/11]

static MYSQL_SYSVAR_ULONG ( auto_increment_increment  ,
ov.  auto_increment_increment_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The group replication group_replication_auto_increment_increment " "determines interval between successive column values"  ,
check_auto_increment_increment  ,
nullptr  ,
DEFAULT_AUTO_INCREMENT_INCREMENT  ,
MIN_AUTO_INCREMENT_INCREMENT  ,
MAX_AUTO_INCREMENT_INCREMENT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [2/11]

static MYSQL_SYSVAR_ULONG ( communication_max_message_size  ,
ov.  communication_max_message_size_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The maximum message size in bytes after which a message is fragmented."  ,
check_communication_max_message_size  ,
nullptr  ,
DEFAULT_COMMUNICATION_MAX_MESSAGE_SIZE  ,
MIN_COMMUNICATION_MAX_MESSAGE_SIZE  ,
MAX_COMMUNICATION_MAX_MESSAGE_SIZE  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [3/11]

static MYSQL_SYSVAR_ULONG ( components_stop_timeout  ,
ov.  components_stop_timeout_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Timeout in seconds that the plugin waits for each of the components " "when " "shutting down."  ,
check_sysvar_ulong_timeout  ,
update_component_timeout  ,
300  ,
,
LONG_TIMEOUT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [4/11]

static MYSQL_SYSVAR_ULONG ( compression_threshold  ,
ov.  compression_threshold_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The value in bytes above which (lz4) compression is " "enforced. When set to  zero,
deactivates compression. " "Default:1000000."  ,
check_compression_threshold  ,
nullptr  ,
DEFAULT_COMPRESSION_THRESHOLD  ,
MIN_COMPRESSION_THRESHOLD  ,
MAX_COMPRESSION_THRESHOLD  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [5/11]

static MYSQL_SYSVAR_ULONG ( member_expel_timeout  ,
ov.  member_expel_timeout_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The period of  time,
in  seconds,
that a member waits before " "expelling any member suspected of failing from the group."  ,
check_member_expel_timeout  ,
update_member_expel_timeout  ,
DEFAULT_MEMBER_EXPEL_TIMEOUT  ,
MIN_MEMBER_EXPEL_TIMEOUT  ,
MAX_MEMBER_EXPEL_TIMEOUT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [6/11]

static MYSQL_SYSVAR_ULONG ( message_cache_size  ,
ov.  message_cache_size_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The maximum size (in bytes) of Group Replication's internal message " "cache (the XCom cache)."  ,
check_message_cache_size  ,
update_message_cache_size  ,
DEFAULT_MESSAGE_CACHE_SIZE  ,
MIN_MESSAGE_CACHE_SIZE  ,
MAX_MESSAGE_CACHE_SIZE  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [7/11]

static MYSQL_SYSVAR_ULONG ( poll_spin_loops  ,
ov.  poll_spin_loops_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of times a thread waits for a communication engine " "mutex to be freed before the thread is suspended."  ,
nullptr  ,
nullptr  ,
,
,
0UL,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [8/11]

static MYSQL_SYSVAR_ULONG ( recovery_reconnect_interval  ,
ov.  recovery_reconnect_interval_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The sleep time between reconnection attempts when no donor was found in " "the group"  ,
check_sysvar_ulong_timeout  ,
update_recovery_reconnect_interval  ,
60  ,
,
LONG_TIMEOUT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [9/11]

static MYSQL_SYSVAR_ULONG ( recovery_retry_count  ,
ov.  recovery_retry_count_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of times that the joiner tries to connect to the available " "donors before giving up."  ,
check_sysvar_ulong_timeout  ,
update_recovery_retry_count  ,
10  ,
,
LONG_TIMEOUT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [10/11]

static MYSQL_SYSVAR_ULONG ( transaction_size_limit  ,
ov.  transaction_size_limit_base_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"Specifies the limit of transaction size that can be transferred over " "network."  ,
nullptr  ,
update_transaction_size_limit  ,
DEFAULT_TRANSACTION_SIZE_LIMIT  ,
MIN_TRANSACTION_SIZE_LIMIT  ,
MAX_TRANSACTION_SIZE_LIMIT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONG() [11/11]

static MYSQL_SYSVAR_ULONG ( unreachable_majority_timeout  ,
ov.  timeout_on_unreachable_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of seconds before going into error when a majority of " "members " "is unreachable." "If 0 there is no action taken."  ,
check_sysvar_ulong_timeout  ,
update_unreachable_timeout  ,
,
,
LONG_TIMEOUT  ,
 
)
static

◆ MYSQL_SYSVAR_ULONGLONG() [1/2]

static MYSQL_SYSVAR_ULONGLONG ( clone_threshold  ,
ov.  clone_threshold_var,
PLUGIN_VAR_OPCMDARG PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of missing transactions in a joining member needed to " "execute " "the clone procedure."  ,
check_clone_threshold  ,
update_clone_threshold  ,
GNO_END  ,
,
GNO_END  ,
 
)
static

◆ MYSQL_SYSVAR_ULONGLONG() [2/2]

static MYSQL_SYSVAR_ULONGLONG ( gtid_assignment_block_size  ,
ov.  gtid_assignment_block_size_var,
PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_NODEFAULT PLUGIN_VAR_PERSIST_AS_READ_ONLY,
"The number of consecutive GTIDs that are reserved to each " "member. Each member will consume its blocks and reserve " "more when needed. Default: 1000000."  ,
check_gtid_assignment_block_size  ,
nullptr  ,
DEFAULT_GTID_ASSIGNMENT_BLOCK_SIZE  ,
MIN_GTID_ASSIGNMENT_BLOCK_SIZE  ,
MAX_GTID_ASSIGNMENT_BLOCK_SIZE  ,
 
)
static

◆ mysql_thread_handler_finalize()

void mysql_thread_handler_finalize ( )

◆ mysql_thread_handler_initialize()

bool mysql_thread_handler_initialize ( )

◆ plugin_get_connection_status()

bool plugin_get_connection_status ( const GROUP_REPLICATION_CONNECTION_STATUS_CALLBACKS callbacks)

◆ plugin_get_group_member_stats()

bool plugin_get_group_member_stats ( uint  index,
const GROUP_REPLICATION_GROUP_MEMBER_STATS_CALLBACKS callbacks 
)

◆ plugin_get_group_members()

bool plugin_get_group_members ( uint  index,
const GROUP_REPLICATION_GROUP_MEMBERS_CALLBACKS callbacks 
)

◆ plugin_get_group_members_number()

uint plugin_get_group_members_number ( )

◆ plugin_group_replication_check_uninstall()

static int plugin_group_replication_check_uninstall ( void *  )
static

◆ plugin_group_replication_deinit()

int plugin_group_replication_deinit ( void *  p)

◆ plugin_group_replication_init()

int plugin_group_replication_init ( MYSQL_PLUGIN  plugin_info)

◆ plugin_group_replication_leave_group()

int plugin_group_replication_leave_group ( )

◆ plugin_group_replication_set_retrieved_certification_info()

int plugin_group_replication_set_retrieved_certification_info ( void *  info)

Method to set retrieved certification info from a recovery channel extracted from a given View_change event.

Note
a copy of the certification info is made here.
Parameters
infothe given view_change_event.

◆ plugin_group_replication_start()

int plugin_group_replication_start ( char **  error_message)

◆ plugin_group_replication_stop()

int plugin_group_replication_stop ( char **  error_message)

◆ plugin_is_group_replication_cloning()

bool plugin_is_group_replication_cloning ( )

◆ plugin_is_group_replication_running()

bool plugin_is_group_replication_running ( )

◆ plugin_running_lock_is_rdlocked()

static bool plugin_running_lock_is_rdlocked ( Checkable_rwlock::Guard const &  guard)
static

◆ register_server_reset_master()

void register_server_reset_master ( )

◆ reset_auto_increment_handler_values()

void reset_auto_increment_handler_values ( bool  force_reset)

◆ server_engine_initialized()

bool server_engine_initialized ( )

◆ server_services_references_finalize()

void server_services_references_finalize ( )

◆ server_services_references_initialize()

bool server_services_references_initialize ( )

◆ set_auto_increment_handler_values()

void set_auto_increment_handler_values ( )

◆ set_enforce_update_everywhere_checks()

void set_enforce_update_everywhere_checks ( bool  option)

◆ set_plugin_is_setting_read_mode()

void set_plugin_is_setting_read_mode ( bool  value)

◆ set_single_primary_mode_var()

void set_single_primary_mode_var ( bool  option)

◆ set_wait_on_start_process()

void set_wait_on_start_process ( bool  cond)

Set condition to block or unblock the calling threads.

Parameters
[in]condif the threads should be blocked or not

◆ start_group_communication()

int start_group_communication ( )

◆ terminate_applier_module()

int terminate_applier_module ( )

◆ terminate_asynchronous_channels_observer()

void terminate_asynchronous_channels_observer ( )

◆ terminate_plugin_modules()

int terminate_plugin_modules ( gr_modules::mask  modules_to_terminate,
char **  error_message,
bool  rejoin 
)

◆ terminate_recovery_module()

int terminate_recovery_module ( )

◆ terminate_wait_on_start_process()

void terminate_wait_on_start_process ( enum_wait_on_start_process_result  abort)

Release all the blocked threads.

◆ update_allow_single_leader()

static void update_allow_single_leader ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_autorejoin_tries()

static void update_autorejoin_tries ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_clone_threshold()

static void update_clone_threshold ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_component_timeout()

static void update_component_timeout ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_member_expel_timeout()

static void update_member_expel_timeout ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_member_weight()

static void update_member_weight ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_message_cache_size()

static void update_message_cache_size ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_recovery_compression_algorithm()

static void update_recovery_compression_algorithm ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_recovery_get_public_key()

static void update_recovery_get_public_key ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_recovery_reconnect_interval()

static void update_recovery_reconnect_interval ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_recovery_retry_count()

static void update_recovery_retry_count ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_recovery_ssl_option()

static void update_recovery_ssl_option ( MYSQL_THD  ,
SYS_VAR var,
void *  var_ptr,
const void *  save 
)
static

◆ update_recovery_zstd_compression_level()

static void update_recovery_zstd_compression_level ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_ssl_server_cert_verification()

static void update_ssl_server_cert_verification ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_ssl_use()

static void update_ssl_use ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_transaction_size_limit()

static void update_transaction_size_limit ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

◆ update_unreachable_timeout()

static void update_unreachable_timeout ( MYSQL_THD  ,
SYS_VAR ,
void *  var_ptr,
const void *  save 
)
static

Variable Documentation

◆ advertised_recovery_endpoints

Advertised_recovery_endpoints* advertised_recovery_endpoints = nullptr

Handle validation of advertised recovery endpoints.

◆ applier_module

Applier_module* applier_module = nullptr

The plugin applier.

◆ asynchronous_channels_state_observer

Asynchronous_channels_state_observer* asynchronous_channels_state_observer
Initial value:
=
nullptr

The Single primary channel observation module.

◆ autorejoin_module

Autorejoin_thread* autorejoin_module = nullptr

The thread that handles the auto-rejoin process.

◆ blocked_transaction_handler

Blocked_transaction_handler* blocked_transaction_handler = nullptr

The handler for transaction killing when an error or partition happens.

◆ channel_observation_manager_list

Channel_observation_manager_list* channel_observation_manager_list = nullptr

The channel observation modules.

◆ compatibility_mgr

Compatibility_module* compatibility_mgr = nullptr

◆ consensus_leaders_handler

Consensus_leaders_handler* consensus_leaders_handler = nullptr

◆ delayed_initialization_thread

Delayed_initialization_thread* delayed_initialization_thread = nullptr

Initialization thread for server starts.

◆ events_handler

◆ gcs_module

Gcs_operations* gcs_module = nullptr

The plugin group communication module.

The plugin modules.

◆ group_action_coordinator

Group_action_coordinator* group_action_coordinator = nullptr

The coordinator for group actions.

◆ group_events_observation_manager

Group_events_observation_manager* group_events_observation_manager = nullptr

The observation module for group events.

◆ group_member_mgr

◆ group_partition_handler

Group_partition_handling* group_partition_handler = nullptr

The transaction handler for network partitions.

◆ group_replication_descriptor

struct st_mysql_group_replication group_replication_descriptor
Initial value:
= {
}
bool plugin_get_group_member_stats(uint index, const GROUP_REPLICATION_GROUP_MEMBER_STATS_CALLBACKS &callbacks)
Definition: plugin.cc:535
bool plugin_is_group_replication_cloning()
Definition: plugin.cc:247
int plugin_group_replication_stop(char **error_message)
Definition: plugin.cc:1253
bool plugin_get_connection_status(const GROUP_REPLICATION_CONNECTION_STATUS_CALLBACKS &callbacks)
Definition: plugin.cc:504
bool plugin_is_group_replication_running()
Definition: plugin.cc:243
bool plugin_get_group_members(uint index, const GROUP_REPLICATION_GROUP_MEMBERS_CALLBACKS &callbacks)
Definition: plugin.cc:512
int plugin_group_replication_start(char **error_message)
Definition: plugin.cc:543
uint plugin_get_group_members_number()
Definition: plugin.cc:524
int plugin_group_replication_set_retrieved_certification_info(void *info)
Method to set retrieved certification info from a recovery channel extracted from a given View_change...
Definition: plugin.cc:259
#define MYSQL_GROUP_REPLICATION_INTERFACE_VERSION
Definition: plugin_group_replication.h:33

◆ group_replication_status_vars

SHOW_VAR group_replication_status_vars[]
static

◆ group_replication_system_vars

SYS_VAR* group_replication_system_vars[]
static

◆ group_transaction_observation_manager

Group_transaction_observation_manager* group_transaction_observation_manager
Initial value:
=
nullptr

The transaction observation module.

◆ local_member_info

Group_member_info* local_member_info = nullptr

◆ log_bi

accessor built-ins

accessor built-ins

◆ log_bs

string built-ins

◆ lv

struct plugin_local_variables lv
static

◆ member_actions_handler

Member_actions_handler* member_actions_handler = nullptr

◆ message_service_handler

Message_service_handler* message_service_handler = nullptr

The thread that handles the message service process.

◆ metrics_handler

Metrics_handler* metrics_handler {nullptr}

◆ mysql_declare_plugin_end

mysql_declare_plugin_end

◆ mysql_runtime_error_service

mysql_service_mysql_runtime_error_t* mysql_runtime_error_service
Initial value:
=
nullptr

◆ mysql_thread_handler

Mysql_thread* mysql_thread_handler = nullptr

Handle tasks on mysql_thread.

◆ mysql_thread_handler_read_only_mode

Mysql_thread* mysql_thread_handler_read_only_mode = nullptr

Dedicated mysql_thread to enable read_only and super_read_only since these are blocking operations.

If we did use mysql_thread_handler that would block all other other operations until read modes operations complete.

◆ ov

struct plugin_options_variables ov
static

◆ perfschema_module

gr::perfschema::Perfschema_module* perfschema_module = nullptr
static

◆ primary_election_handler

Primary_election_handler* primary_election_handler = nullptr

The primary election handler.

◆ recovery_metadata_module

Recovery_metadata_module* recovery_metadata_module = nullptr

The plugin recovery metadata module.

◆ recovery_metadata_observer

Recovery_metadata_observer* recovery_metadata_observer = nullptr

◆ recovery_module

Recovery_module* recovery_module = nullptr

The plugin recovery module.

◆ registry_module

Registry_module_interface* registry_module = nullptr

The registry module.

◆ remote_clone_handler

Remote_clone_handler* remote_clone_handler = nullptr

The handler to invoke clone.

◆ server_services_references_module

Server_services_references* server_services_references_module = nullptr

Module with the acquired server services on plugin install.

◆ shared_plugin_stop_lock

Shared_writelock* shared_plugin_stop_lock = nullptr

Class to coordinate access to the plugin stop lock.

◆ transaction_consistency_manager

Transaction_consistency_manager* transaction_consistency_manager = nullptr

The plugin transaction consistency manager.

◆ transactions_latch

Wait_ticket<my_thread_id>* transactions_latch = nullptr

Transactions latch.

◆ view_change_notifier