23#ifndef MEMBER_INFO_INCLUDE
24#define MEMBER_INFO_INCLUDE
57#define CNF_ENFORCE_UPDATE_EVERYWHERE_CHECKS_F 0x1
63#define CNF_SINGLE_PRIMARY_MODE_F 0x2
70#define DEFAULT_NOT_RECEIVED_LOWER_CASE_TABLE_NAMES 65540
72#define SKIP_ENCODING_LOWER_CASE_TABLE_NAMES 65541
211 void *
operator new(
size_t size,
const std::nothrow_t &)
noexcept {
228 void operator delete(
void *ptr,
const std::nothrow_t &)
noexcept {
241 void *
operator new(
size_t size)
noexcept {
255 void operator delete(
void *ptr)
noexcept {
my_free(ptr); }
296 const std::string &gcs_member_id_arg,
299 ulonglong gtid_assignment_block_size_arg,
301 bool in_single_primary_mode,
303 uint member_weight_arg, uint lower_case_table_names_arg,
304 bool default_table_encryption_arg,
305 const char *recovery_endpoints_arg,
306 const char *view_change_uuid_arg,
bool allow_single_leader,
361 void update(
const char *hostname_arg, uint port_arg,
const char *uuid_arg,
363 const std::string &gcs_member_id_arg,
366 ulonglong gtid_assignment_block_size_arg,
368 bool in_single_primary_mode,
370 uint member_weight_arg, uint lower_case_table_names_arg,
371 bool default_table_encryption_arg,
372 const char *recovery_endpoints_arg,
373 const char *view_change_uuid_arg,
bool allow_single_leader);
469 bool enforce_everywhere_checks);
507 void update_gtid_sets(std::string &executed_gtids, std::string &purged_gtids,
508 std::string &retrieve_gtids);
526 const uint32 configuation_flag);
532 const uint32 configuation_flags);
671 const std::string &group_action_running_name);
686 const std::string &group_action_running_description);
697 const unsigned char *)
override;
749typedef std::vector<Group_member_info *, Malloc_allocator<Group_member_info *>>
916 const std::string &uuid,
944 std::string >id_executed,
945 std::string &purged_gtids,
946 std::string >id_retrieved) = 0;
975 uint member_weight) = 0;
988 bool enforce_everywhere) = 0;
995 virtual void encode(std::vector<uchar> *to_encode) = 0;
1111 void *
operator new(
size_t size,
const std::nothrow_t &)
noexcept {
1128 void operator delete(
void *ptr,
const std::nothrow_t &)
noexcept {
1141 void *
operator new(
size_t size)
noexcept {
1155 void operator delete(
void *ptr)
noexcept {
my_free(ptr); }
1201 std::string &purged_gtids,
1202 std::string >id_retrieved)
override;
1212 uint member_weight)
override;
1218 void encode(std::vector<uchar> *to_encode)
override;
1353 std::vector<unsigned char> *
buffer,
1354 const std::string &member_actions_serialized_configuration)
const;
1373 const unsigned char **pit_data,
size_t *pit_length);
1384 std::vector<unsigned char> *
buffer,
1385 const std::string &replication_failover_channels_serialized_configuration)
1391 const unsigned char *
end)
override;
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:39
Definition: member_info.h:766
virtual mysql_mutex_t * get_update_lock()=0
This method returns the update lock for consistent read of member state.
virtual bool get_primary_member_info(Group_member_info &member_info_arg)=0
Return the group member info for the current group primary.
virtual void update(Group_member_info_list *new_members)=0
Updates all members of the group.
virtual void update_primary_member_flag(bool in_primary_mode)=0
Changes the primary flag on all members.
virtual bool is_unreachable_member_present()=0
Check if an unreachable member exists.
virtual Group_member_info::Group_member_status get_group_member_status_by_member_id(const Gcs_member_identifier &id)=0
Return the status of the member with the given GCS identifier.
virtual bool is_member_info_present(const std::string &uuid)=0
Is the member present in the group info.
virtual std::string get_string_current_view_active_hosts() const =0
This method returns all ONLINE and RECOVERING members comma separated host and port in string format.
virtual void add(Group_member_info *new_member)=0
Adds a new member to be managed by this Group manager.
virtual bool is_majority_unreachable()=0
Check if majority of the group is unreachable.
virtual void update_member_status(const std::string &uuid, Group_member_info::Group_member_status new_status, Notification_context &ctx)=0
Updates the status of a single member.
virtual size_t get_number_of_members_online()=0
Number of ONLINE members in the group.
virtual void update_gtid_sets(const std::string &uuid, std::string >id_executed, std::string &purged_gtids, std::string >id_retrieved)=0
Updates the GTID sets on a single member.
virtual Group_member_info_list * decode(const uchar *to_decode, size_t length)=0
Decodes the raw format of this object.
virtual bool get_group_member_info_by_index(int idx, Group_member_info &member_info_arg)=0
Retrieves a registered Group member by an index function.
virtual std::pair< bool, std::string > get_group_member_uuid_from_member_id(const Gcs_member_identifier &id)=0
Returns the member-uuid of the given GCS identifier.
virtual void update_member_weight(const std::string &uuid, uint member_weight)=0
Updates the weight of a single member.
virtual void update(Group_member_info *update_local_member)=0
Removes all members of the group and update new local member.
virtual bool get_primary_member_uuid(std::string &primary_member_uuid)=0
Return the uuid for the for the primary.
virtual void set_member_reachable(const std::string &uuid)=0
Sets the identified member as reachable.
virtual void update_member_role(const std::string &uuid, Group_member_info::Group_member_role new_role, Notification_context &ctx)=0
Updates the role of a single member.
virtual size_t get_number_of_members()=0
Number of members in the group.
virtual Member_version get_group_lowest_online_version()=0
Return lowest member version.
virtual void set_member_unreachable(const std::string &uuid)=0
Sets the identified member as unreachable.
virtual bool get_group_member_info(const std::string &uuid, Group_member_info &member_info_arg)=0
Retrieves a registered Group member by its uuid.
virtual std::list< Gcs_member_identifier > * get_online_members_with_guarantees(const Gcs_member_identifier &exclude_member)=0
Retrieves all ONLINE Group members managed by this site, or NULL if any group member version is from ...
virtual bool is_conflict_detection_enabled()=0
Check if some member of the group has the conflict detection enable.
virtual Group_member_info_list * get_all_members()=0
Retrieves all Group members managed by this site.
virtual void update_enforce_everywhere_checks_flag(bool enforce_everywhere)=0
Set the enforces_update_everywhere_checks flag on all members.
virtual void update_group_primary_roles(const std::string &uuid, Notification_context &ctx)=0
Updates the primary/secondary roles of the group.
virtual ~Group_member_info_manager_interface()=default
virtual void encode(std::vector< uchar > *to_encode)=0
Encodes this object to send via the network.
virtual bool get_group_member_info_by_member_id(const Gcs_member_identifier &id, Group_member_info &member_info_arg)=0
Retrieves a registered Group member by its backbone GCS identifier.
virtual bool is_recovering_member_present()=0
Check if a member in recovery exists in the group.
This is the Group_member_info_manager message.
Definition: member_info.h:1291
Group_member_info_list * members
Definition: member_info.h:1399
void add_member_actions_serialized_configuration(std::vector< unsigned char > *buffer, const std::string &member_actions_serialized_configuration) const
Adds a already serialized member actions configuration to the Group_member_info_manager_message conte...
Definition: member_info.cc:1576
void add_replication_failover_channels_serialized_configuration(std::vector< unsigned char > *buffer, const std::string &replication_failover_channels_serialized_configuration) const
Adds a already serialized replication failover channels configuration to the Group_member_info_manage...
Definition: member_info.cc:1629
void decode_payload(const unsigned char *buffer, const unsigned char *end) override
Decodes the contents of the buffer and sets the payload field values according to the values decoded.
Definition: member_info.cc:1547
void encode_payload(std::vector< unsigned char > *buffer) const override
Encodes the contents of this instance payload into the buffer.
Definition: member_info.cc:1529
enum_payload_item_type
Definition: member_info.h:1293
@ PIT_MAX
Definition: member_info.h:1310
@ PIT_MEMBER_DATA
Definition: member_info.h:1301
@ PIT_RPL_FAILOVER_CONFIGURATION
Definition: member_info.h:1307
@ PIT_MEMBER_ACTIONS
Definition: member_info.h:1304
@ PIT_MEMBERS_NUMBER
Definition: member_info.h:1298
@ PIT_UNKNOWN
Definition: member_info.h:1295
bool get_pit_data(const enum_payload_item_type pit, const unsigned char *buffer, size_t length, const unsigned char **pit_data, size_t *pit_length)
Gets the data that belongs to payload_item_type pit.
Definition: member_info.cc:1588
Group_member_info_manager_message()
Group_member_info_manager_message constructor.
Definition: member_info.cc:1473
~Group_member_info_manager_message() override
Group_member_info_manager_message destructor.
Definition: member_info.cc:1498
Group_member_info_list * get_all_members()
Retrieves all Group members on this message.
Definition: member_info.cc:1513
void clear_members()
Clear members and its allocated memory.
Definition: member_info.cc:1504
Implementation of the interface Group_member_info_manager_interface.
Definition: member_info.h:1090
void add(Group_member_info *new_member) override
Adds a new member to be managed by this Group manager.
Definition: member_info.cc:1132
bool is_majority_unreachable() override
Check if majority of the group is unreachable.
Definition: member_info.cc:1402
Group_member_info::Group_member_status get_group_member_status_by_member_id(const Gcs_member_identifier &id) override
Return the status of the member with the given GCS identifier.
Definition: member_info.cc:1071
std::list< Gcs_member_identifier > * get_online_members_with_guarantees(const Gcs_member_identifier &exclude_member) override
Retrieves all ONLINE Group members managed by this site, or NULL if any group member version is from ...
Definition: member_info.cc:1104
void update_member_weight(const std::string &uuid, uint member_weight) override
Updates the weight of a single member.
Definition: member_info.cc:1274
void update_primary_member_flag(bool in_primary_mode) override
Changes the primary flag on all members.
Definition: member_info.cc:1289
bool is_recovering_member_present() override
Check if a member in recovery exists in the group.
Definition: member_info.cc:1436
void update_gtid_sets(const std::string &uuid, std::string >id_executed, std::string &purged_gtids, std::string >id_retrieved) override
Updates the GTID sets on a single member.
Definition: member_info.cc:1216
bool is_member_info_present(const std::string &uuid) override
Is the member present in the group info.
Definition: member_info.cc:956
void update(Group_member_info *update_local_member) override
Removes all members of the group and update new local member.
Definition: member_info.cc:1140
void update_enforce_everywhere_checks_flag(bool enforce_everywhere) override
Set the enforces_update_everywhere_checks flag on all members.
Definition: member_info.cc:1298
bool get_group_member_info_by_member_id(const Gcs_member_identifier &id, Group_member_info &member_info_arg) override
Retrieves a registered Group member by its backbone GCS identifier.
Definition: member_info.cc:1041
mysql_mutex_t update_lock
Definition: member_info.h:1249
void set_member_unreachable(const std::string &uuid) override
Sets the identified member as unreachable.
Definition: member_info.cc:1197
void clear_members()
Definition: member_info.cc:1308
void encode(std::vector< uchar > *to_encode) override
Encodes this object to send via the network.
Definition: member_info.cc:1337
Group_member_info_list * decode(const uchar *to_decode, size_t length) override
Decodes the raw format of this object.
Definition: member_info.cc:1344
size_t get_number_of_members() override
Number of members in the group.
Definition: member_info.cc:937
bool get_group_member_info(const std::string &uuid, Group_member_info &member_info_arg) override
Retrieves a registered Group member by its uuid.
Definition: member_info.cc:970
Group_member_info_list * get_all_members() override
Retrieves all Group members managed by this site.
Definition: member_info.cc:1086
bool is_conflict_detection_enabled() override
Check if some member of the group has the conflict detection enable.
Definition: member_info.cc:1321
Group_member_info * get_group_member_info_by_member_id_internal(const Gcs_member_identifier &id)
Definition: member_info.cc:1025
void update_member_role(const std::string &uuid, Group_member_info::Group_member_role new_role, Notification_context &ctx) override
Updates the role of a single member.
Definition: member_info.cc:1233
Group_member_info_manager(Group_member_info *local_member_info, PSI_mutex_key psi_mutex_key=key_GR_LOCK_group_member_info_manager_update_lock)
Definition: member_info.cc:917
mysql_mutex_t * get_update_lock() override
This method returns the update lock for consistent read of member state.
Definition: member_info.h:1238
bool get_primary_member_uuid(std::string &primary_member_uuid) override
Return the uuid for the for the primary.
Definition: member_info.cc:1357
std::string get_string_current_view_active_hosts() const override
This method returns all ONLINE and RECOVERING members comma separated host and port in string format.
Definition: member_info.cc:1453
std::pair< bool, std::string > get_group_member_uuid_from_member_id(const Gcs_member_identifier &id) override
Returns the member-uuid of the given GCS identifier.
Definition: member_info.cc:1055
void update_member_status(const std::string &uuid, Group_member_info::Group_member_status new_status, Notification_context &ctx) override
Updates the status of a single member.
Definition: member_info.cc:1176
~Group_member_info_manager() override
Definition: member_info.cc:931
Group_member_info * local_member_info
Definition: member_info.h:1247
size_t get_number_of_members_online() override
Number of ONLINE members in the group.
Definition: member_info.cc:941
Group_member_info_map * members
Definition: member_info.h:1246
void set_member_reachable(const std::string &uuid) override
Sets the identified member as reachable.
Definition: member_info.cc:1207
bool get_group_member_info_by_index(int idx, Group_member_info &member_info_arg) override
Retrieves a registered Group member by an index function.
Definition: member_info.cc:983
Member_version get_group_lowest_online_version() override
Return lowest member version.
Definition: member_info.cc:1004
void update_group_primary_roles(const std::string &uuid, Notification_context &ctx) override
Updates the primary/secondary roles of the group.
Definition: member_info.cc:1253
bool get_primary_member_info(Group_member_info &member_info_arg) override
Return the group member info for the current group primary.
Definition: member_info.cc:1385
bool is_unreachable_member_present() override
Check if an unreachable member exists.
Definition: member_info.cc:1419
Definition: member_info.h:80
void update(const char *hostname_arg, uint port_arg, const char *uuid_arg, int write_set_extraction_algorithm, const std::string &gcs_member_id_arg, Group_member_info::Group_member_status status_arg, Member_version &member_version_arg, ulonglong gtid_assignment_block_size_arg, Group_member_info::Group_member_role role_arg, bool in_single_primary_mode, bool has_enforces_update_everywhere_checks, uint member_weight_arg, uint lower_case_table_names_arg, bool default_table_encryption_arg, const char *recovery_endpoints_arg, const char *view_change_uuid_arg, bool allow_single_leader)
Update Group_member_info.
Definition: member_info.cc:181
static bool comparator_group_member_version(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:851
void set_is_group_action_running(bool is_running)
Sets if the member is currently running a group action.
Definition: member_info.cc:760
uint port
Definition: member_info.h:716
void decode_payload(const unsigned char *buffer, const unsigned char *) override
Decodes the contents of the buffer and sets the payload field values according to the values decoded.
Definition: member_info.cc:385
static std::string get_configuration_flags_string(const uint32 configuation_flags)
Definition: member_info.cc:830
bool unreachable
Definition: member_info.h:726
uint64 gtid_assignment_block_size
Definition: member_info.h:725
std::string get_recovery_endpoints()
List of member advertised recovery endpoints.
Definition: member_info.cc:856
void disable_conflict_detection()
Update this member conflict detection to false.
Definition: member_info.cc:735
uint32 get_configuration_flags()
Definition: member_info.cc:664
std::string recovery_endpoints
Definition: member_info.h:735
bool in_primary_mode()
Definition: member_info.cc:695
const char * get_write_set_extraction_algorithm_name()
Definition: member_info.cc:646
void encode_payload(std::vector< unsigned char > *buffer) const override
Encodes the contents of this instance payload into the buffer.
Definition: member_info.cc:275
bool group_action_running
Definition: member_info.h:733
static const char * get_configuration_flag_string(const uint32 configuation_flag)
Definition: member_info.cc:816
static bool comparator_group_member_uuid(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:881
void set_enforces_update_everywhere_checks_flag(bool enforce_everywhere_checks)
Set the enforces_update_everywhere_checks flag.
Definition: member_info.cc:679
ulonglong get_gtid_assignment_block_size()
Definition: member_info.cc:659
void set_is_primary_election_running(bool is_running)
Sets if the member is currently running a primary election.
Definition: member_info.cc:788
bool has_enforces_update_everywhere_checks()
Definition: member_info.cc:700
const std::string & get_group_action_running_description()
Get group action description if running on the member.
Definition: member_info.cc:774
bool m_allow_single_leader
Definition: member_info.h:737
bool get_allow_single_leader()
Definition: member_info.cc:871
uint member_weight
Definition: member_info.h:730
static bool comparator_group_member_weight(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:886
bool conflict_detection_enable
Definition: member_info.h:729
bool is_conflict_detection_enabled()
Return true if conflict detection is enable on this member.
Definition: member_info.cc:740
Group_member_role role
Definition: member_info.h:727
void set_view_change_uuid(const char *view_change_cnf)
Save member view change uuid.
Definition: member_info.cc:876
uint32 configuration_flags
Definition: member_info.h:728
bool primary_election_running
Definition: member_info.h:734
Member_version * member_version
Definition: member_info.h:720
bool has_greater_weight(Group_member_info *other)
Return true if member weight is higher than other member weight.
Definition: member_info.cc:907
uint get_port()
Definition: member_info.cc:556
bool get_default_table_encryption()
Definition: member_info.cc:715
~Group_member_info() override
Destructor.
Definition: member_info.cc:175
std::string purged_gtid_set
Definition: member_info.h:722
uint write_set_extraction_algorithm
Definition: member_info.h:724
std::string uuid
Definition: member_info.h:717
void enable_conflict_detection()
Update this member conflict detection to true.
Definition: member_info.cc:730
bool is_primary_election_running()
Definition: member_info.cc:783
bool operator==(Group_member_info &other)
Redefinition of operate ==, which operate upon the uuid.
Definition: member_info.cc:793
bool is_group_action_running()
Definition: member_info.cc:755
std::string m_group_action_running_name
Definition: member_info.h:738
Group_member_status get_recovery_status()
Definition: member_info.cc:569
enum_transaction_write_set_hashing_algorithm_compatibility
Definition: member_info.h:193
@ HASH_ALGORITHM_XXHASH64
Definition: member_info.h:196
@ HASH_ALGORITHM_OFF
Definition: member_info.h:194
@ HASH_ALGORITHM_MURMUR32
Definition: member_info.h:195
std::string get_view_change_uuid()
Get UID used when logging view change events.
Definition: member_info.cc:866
static const char * get_member_status_string(Group_member_status status)
Definition: member_info.cc:798
std::string m_group_action_running_description
Definition: member_info.h:739
void update_gtid_sets(std::string &executed_gtids, std::string &purged_gtids, std::string &retrieve_gtids)
Updates this object GTID sets.
Definition: member_info.cc:607
uint lower_case_table_names
Definition: member_info.h:731
Gcs_member_identifier * gcs_member_id
Definition: member_info.h:719
bool in_primary_mode_internal()
Internal method without concurrency control.
Definition: member_info.cc:691
Group_member_role get_role()
Definition: member_info.cc:574
std::string retrieved_gtid_set
Definition: member_info.h:723
void set_primary_mode_flag(bool in_primary_mode)
Set the primary flag.
Definition: member_info.cc:669
void set_group_action_running_description(const std::string &group_action_running_description)
Set group action description if running on the member.
Definition: member_info.cc:778
bool skip_encode_default_table_encryption
Definition: member_info.h:742
void set_group_action_running_name(const std::string &group_action_running_name)
Set group action name if running on the member.
Definition: member_info.cc:769
bool has_lower_uuid_internal(Group_member_info *other)
Return true if server uuid is lower than other member server uuid Internal method without concurrency...
Definition: member_info.cc:898
Group_member_info(PSI_mutex_key psi_mutex_key_arg=key_GR_LOCK_group_member_info_update_lock)
Group_member_info empty constructor.
Definition: member_info.cc:37
uint get_write_set_extraction_algorithm()
Definition: member_info.cc:641
bool m_skip_encode_view_change_uuid
Definition: member_info.h:743
void set_unreachable()
Sets this member as unreachable.
Definition: member_info.cc:720
void set_role(Group_member_role new_role)
Updates this object member role.
Definition: member_info.cc:616
Gcs_member_identifier get_gcs_member_id()
Definition: member_info.cc:596
std::string get_gtid_purged()
Definition: member_info.cc:631
std::string m_view_change_uuid
Definition: member_info.h:736
Group_member_status status
Definition: member_info.h:718
Member_version get_member_version()
Definition: member_info.cc:621
PSI_mutex_key psi_mutex_key
Definition: member_info.h:746
std::string get_gtid_executed()
Definition: member_info.cc:626
uint get_member_weight()
Return member weight.
Definition: member_info.cc:750
Group_member_role
Definition: member_info.h:182
@ MEMBER_ROLE_PRIMARY
Definition: member_info.h:183
@ MEMBER_ROLE_SECONDARY
Definition: member_info.h:184
@ MEMBER_ROLE_END
Definition: member_info.h:185
uint get_lower_case_table_names()
Definition: member_info.cc:705
std::string executed_gtid_set
Definition: member_info.h:721
const std::string & get_group_action_running_name()
Get group action name if running on the member.
Definition: member_info.cc:765
void set_recovery_endpoints(const char *endpoints)
Save list of member advertised recovery endpoints.
Definition: member_info.cc:861
const char * get_member_role_string()
Definition: member_info.cc:579
Group_member_status
Definition: member_info.h:168
@ MEMBER_ONLINE
Definition: member_info.h:169
@ MEMBER_UNREACHABLE
Definition: member_info.h:173
@ MEMBER_OFFLINE
Definition: member_info.h:170
@ MEMBER_IN_RECOVERY
Definition: member_info.h:171
@ MEMBER_END
Definition: member_info.h:174
@ MEMBER_ERROR
Definition: member_info.h:172
std::string get_uuid()
Definition: member_info.cc:562
mysql_mutex_t update_lock
Definition: member_info.h:714
bool has_greater_version(Group_member_info *other)
Return true if member version is higher than other member version.
Definition: member_info.cc:891
bool default_table_encryption
Definition: member_info.h:732
void set_reachable()
Sets this member as reachable.
Definition: member_info.cc:725
std::string hostname
Definition: member_info.h:715
std::string get_hostname()
Definition: member_info.cc:550
bool is_unreachable()
Return true if this has been flagged as unreachable.
Definition: member_info.cc:710
void set_member_weight(uint new_member_weight)
Update member weight.
Definition: member_info.cc:745
enum_payload_item_type
Definition: member_info.h:82
@ PIT_EXECUTED_GTID
Definition: member_info.h:108
@ PIT_GCS_ID
Definition: member_info.h:96
@ PIT_CONFLICT_DETECTION_ENABLE
Definition: member_info.h:123
@ PIT_PURGED_GTID
Definition: member_info.h:141
@ PIT_RECOVERY_ENDPOINTS
Definition: member_info.h:144
@ PIT_ALLOW_SINGLE_LEADER
Definition: member_info.h:150
@ PIT_LOWER_CASE_TABLE_NAME
Definition: member_info.h:129
@ PIT_GROUP_ACTION_RUNNING
Definition: member_info.h:132
@ PIT_GROUP_ACTION_RUNNING_DESCRIPTION
Definition: member_info.h:156
@ PIT_GTID_ASSIGNMENT_BLOCK_SIZE
Definition: member_info.h:114
@ PIT_MAX
Definition: member_info.h:159
@ PIT_DEFAULT_TABLE_ENCRYPTION
Definition: member_info.h:138
@ PIT_WRITE_SET_EXTRACTION_ALGORITHM
Definition: member_info.h:105
@ PIT_PORT
Definition: member_info.h:90
@ PIT_PRIMARY_ELECTION_RUNNING
Definition: member_info.h:135
@ PIT_MEMBER_ROLE
Definition: member_info.h:117
@ PIT_CONFIGURATION_FLAGS
Definition: member_info.h:120
@ PIT_UNKNOWN
Definition: member_info.h:84
@ PIT_UUID
Definition: member_info.h:93
@ PIT_GROUP_ACTION_RUNNING_NAME
Definition: member_info.h:153
@ PIT_VIEW_CHANGE_UUID
Definition: member_info.h:147
@ PIT_MEMBER_WEIGHT
Definition: member_info.h:126
@ PIT_RETRIEVED_GTID
Definition: member_info.h:111
@ PIT_VERSION
Definition: member_info.h:102
@ PIT_STATUS
Definition: member_info.h:99
@ PIT_HOSTNAME
Definition: member_info.h:87
void update_recovery_status(Group_member_status new_status)
Updates this object recovery status.
Definition: member_info.cc:602
bool has_lower_uuid(Group_member_info *other)
Return true if server uuid is lower than other member server uuid.
Definition: member_info.cc:902
std::string get_gtid_retrieved()
Definition: member_info.cc:636
Malloc_allocator is a C++ STL memory allocator based on my_malloc/my_free.
Definition: malloc_allocator.h:62
represent the MySQL version of a Member within the Group Replication group.
Definition: member_version.h:34
A convenience context class used to share information between the event handlers and the notifier.
Definition: notification.h:34
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:63
#define MY_WME
Definition: my_sys.h:127
unsigned int PSI_mutex_key
Instrumented mutex key.
Definition: psi_mutex_bits.h:51
Group_member_info_map::iterator Group_member_info_map_iterator
Definition: member_info.h:757
Group_member_info_list::iterator Group_member_info_list_iterator
Definition: member_info.h:751
std::map< std::string, Group_member_info *, std::less< std::string >, Malloc_allocator< std::pair< const std::string, Group_member_info * > > > Group_member_info_map
Definition: member_info.h:756
std::vector< Group_member_info *, Malloc_allocator< Group_member_info * > > Group_member_info_list
Definition: member_info.h:750
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
unsigned char uchar
Definition: my_inttypes.h:51
#define MYF(v)
Definition: my_inttypes.h:96
uint64_t uint64
Definition: my_inttypes.h:68
uint32_t uint32
Definition: my_inttypes.h:66
void * my_malloc(PSI_memory_key key, size_t size, int flags)
Allocates size bytes of memory.
Definition: my_memory.cc:56
void my_free(void *ptr)
Frees the memory pointed by the ptr.
Definition: my_memory.cc:80
Common header for many mysys elements.
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
bool is_running(const PluginFuncEnv *env) noexcept
Definition: loader.cc:201
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:417
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:191
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2891
#define NODISCARD
The function attribute [[NODISCARD]] is a replacement for [[nodiscard]] to workaround a gcc bug.
Definition: nodiscard.h:46
PSI_memory_key key_group_member_info
Definition: plugin_psi.h:244
PSI_mutex_key key_GR_LOCK_group_member_info_update_lock
Definition: plugin_psi.h:125
PSI_mutex_key key_GR_LOCK_group_member_info_manager_update_lock
Definition: plugin_psi.h:124
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49