24#ifndef MEMBER_INFO_INCLUDE
25#define MEMBER_INFO_INCLUDE
59#define CNF_ENFORCE_UPDATE_EVERYWHERE_CHECKS_F 0x1
65#define CNF_SINGLE_PRIMARY_MODE_F 0x2
72#define DEFAULT_NOT_RECEIVED_LOWER_CASE_TABLE_NAMES 65540
74#define SKIP_ENCODING_LOWER_CASE_TABLE_NAMES 65541
216 void *
operator new(
size_t size,
const std::nothrow_t &)
noexcept {
233 void operator delete(
void *ptr,
const std::nothrow_t &)
noexcept {
246 void *
operator new(
size_t size)
noexcept {
260 void operator delete(
void *ptr)
noexcept {
my_free(ptr); }
303 const std::string &gcs_member_id_arg,
306 ulonglong gtid_assignment_block_size_arg,
308 bool in_single_primary_mode,
310 uint member_weight_arg, uint lower_case_table_names_arg,
311 bool default_table_encryption_arg,
312 const char *recovery_endpoints_arg,
313 const char *view_change_uuid_arg,
bool allow_single_leader,
314 bool preemptive_garbage_collection,
371 void update(
const char *hostname_arg, uint port_arg,
const char *uuid_arg,
373 const std::string &gcs_member_id_arg,
376 ulonglong gtid_assignment_block_size_arg,
378 bool in_single_primary_mode,
380 uint member_weight_arg, uint lower_case_table_names_arg,
381 bool default_table_encryption_arg,
382 const char *recovery_endpoints_arg,
383 const char *view_change_uuid_arg,
bool allow_single_leader,
384 bool preemptive_garbage_collection);
480 bool enforce_everywhere_checks);
518 void update_gtid_sets(std::string &executed_gtids, std::string &purged_gtids,
519 std::string &retrieve_gtids);
537 const uint32 configuation_flag);
543 const uint32 configuation_flags);
682 const std::string &group_action_running_name);
697 const std::string &group_action_running_description);
717 const unsigned char *)
override;
770typedef std::vector<Group_member_info *, Malloc_allocator<Group_member_info *>>
937 const std::string &uuid,
965 std::string >id_executed,
966 std::string &purged_gtids,
967 std::string >id_retrieved) = 0;
996 uint member_weight) = 0;
1009 bool enforce_everywhere) = 0;
1016 virtual void encode(std::vector<uchar> *to_encode) = 0;
1132 void *
operator new(
size_t size,
const std::nothrow_t &)
noexcept {
1149 void operator delete(
void *ptr,
const std::nothrow_t &)
noexcept {
1162 void *
operator new(
size_t size)
noexcept {
1176 void operator delete(
void *ptr)
noexcept {
my_free(ptr); }
1222 std::string &purged_gtids,
1223 std::string >id_retrieved)
override;
1233 uint member_weight)
override;
1239 void encode(std::vector<uchar> *to_encode)
override;
1374 std::vector<unsigned char> *
buffer,
1375 const std::string &member_actions_serialized_configuration)
const;
1394 const unsigned char **pit_data,
size_t *pit_length);
1405 std::vector<unsigned char> *
buffer,
1406 const std::string &replication_failover_channels_serialized_configuration)
1412 const unsigned char *
end)
override;
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:40
Definition: member_info.h:787
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:1312
Group_member_info_list * members
Definition: member_info.h:1420
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:1602
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:1655
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:1573
void encode_payload(std::vector< unsigned char > *buffer) const override
Encodes the contents of this instance payload into the buffer.
Definition: member_info.cc:1555
enum_payload_item_type
Definition: member_info.h:1314
@ PIT_MAX
Definition: member_info.h:1331
@ PIT_MEMBER_DATA
Definition: member_info.h:1322
@ PIT_RPL_FAILOVER_CONFIGURATION
Definition: member_info.h:1328
@ PIT_MEMBER_ACTIONS
Definition: member_info.h:1325
@ PIT_MEMBERS_NUMBER
Definition: member_info.h:1319
@ PIT_UNKNOWN
Definition: member_info.h:1316
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:1614
Group_member_info_manager_message()
Group_member_info_manager_message constructor.
Definition: member_info.cc:1499
~Group_member_info_manager_message() override
Group_member_info_manager_message destructor.
Definition: member_info.cc:1524
Group_member_info_list * get_all_members()
Retrieves all Group members on this message.
Definition: member_info.cc:1539
void clear_members()
Clear members and its allocated memory.
Definition: member_info.cc:1530
Implementation of the interface Group_member_info_manager_interface.
Definition: member_info.h:1111
void add(Group_member_info *new_member) override
Adds a new member to be managed by this Group manager.
Definition: member_info.cc:1158
bool is_majority_unreachable() override
Check if majority of the group is unreachable.
Definition: member_info.cc:1428
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:1097
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:1130
void update_member_weight(const std::string &uuid, uint member_weight) override
Updates the weight of a single member.
Definition: member_info.cc:1300
void update_primary_member_flag(bool in_primary_mode) override
Changes the primary flag on all members.
Definition: member_info.cc:1315
bool is_recovering_member_present() override
Check if a member in recovery exists in the group.
Definition: member_info.cc:1462
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:1242
bool is_member_info_present(const std::string &uuid) override
Is the member present in the group info.
Definition: member_info.cc:982
void update(Group_member_info *update_local_member) override
Removes all members of the group and update new local member.
Definition: member_info.cc:1166
void update_enforce_everywhere_checks_flag(bool enforce_everywhere) override
Set the enforces_update_everywhere_checks flag on all members.
Definition: member_info.cc:1324
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:1067
mysql_mutex_t update_lock
Definition: member_info.h:1270
void set_member_unreachable(const std::string &uuid) override
Sets the identified member as unreachable.
Definition: member_info.cc:1223
void clear_members()
Definition: member_info.cc:1334
void encode(std::vector< uchar > *to_encode) override
Encodes this object to send via the network.
Definition: member_info.cc:1363
Group_member_info_list * decode(const uchar *to_decode, size_t length) override
Decodes the raw format of this object.
Definition: member_info.cc:1370
size_t get_number_of_members() override
Number of members in the group.
Definition: member_info.cc:963
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:996
Group_member_info_list * get_all_members() override
Retrieves all Group members managed by this site.
Definition: member_info.cc:1112
bool is_conflict_detection_enabled() override
Check if some member of the group has the conflict detection enable.
Definition: member_info.cc:1347
Group_member_info * get_group_member_info_by_member_id_internal(const Gcs_member_identifier &id)
Definition: member_info.cc:1051
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:1259
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:943
mysql_mutex_t * get_update_lock() override
This method returns the update lock for consistent read of member state.
Definition: member_info.h:1259
bool get_primary_member_uuid(std::string &primary_member_uuid) override
Return the uuid for the for the primary.
Definition: member_info.cc:1383
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:1479
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:1081
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:1202
~Group_member_info_manager() override
Definition: member_info.cc:957
Group_member_info * local_member_info
Definition: member_info.h:1268
size_t get_number_of_members_online() override
Number of ONLINE members in the group.
Definition: member_info.cc:967
Group_member_info_map * members
Definition: member_info.h:1267
void set_member_reachable(const std::string &uuid) override
Sets the identified member as reachable.
Definition: member_info.cc:1233
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:1009
Member_version get_group_lowest_online_version() override
Return lowest member version.
Definition: member_info.cc:1030
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:1279
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:1411
bool is_unreachable_member_present() override
Check if an unreachable member exists.
Definition: member_info.cc:1445
Definition: member_info.h:82
static bool comparator_group_member_version(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:872
void set_is_group_action_running(bool is_running)
Sets if the member is currently running a group action.
Definition: member_info.cc:781
bool m_preemptive_garbage_collection
Definition: member_info.h:760
uint port
Definition: member_info.h:736
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:399
static std::string get_configuration_flags_string(const uint32 configuation_flags)
Definition: member_info.cc:851
bool unreachable
Definition: member_info.h:746
uint64 gtid_assignment_block_size
Definition: member_info.h:745
std::string get_recovery_endpoints()
List of member advertised recovery endpoints.
Definition: member_info.cc:877
void disable_conflict_detection()
Update this member conflict detection to false.
Definition: member_info.cc:756
uint32 get_configuration_flags()
Definition: member_info.cc:685
std::string recovery_endpoints
Definition: member_info.h:755
bool in_primary_mode()
Definition: member_info.cc:716
const char * get_write_set_extraction_algorithm_name()
Definition: member_info.cc:667
void encode_payload(std::vector< unsigned char > *buffer) const override
Encodes the contents of this instance payload into the buffer.
Definition: member_info.cc:284
bool group_action_running
Definition: member_info.h:753
static const char * get_configuration_flag_string(const uint32 configuation_flag)
Definition: member_info.cc:837
static bool comparator_group_member_uuid(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:907
void set_enforces_update_everywhere_checks_flag(bool enforce_everywhere_checks)
Set the enforces_update_everywhere_checks flag.
Definition: member_info.cc:700
ulonglong get_gtid_assignment_block_size()
Definition: member_info.cc:680
void set_is_primary_election_running(bool is_running)
Sets if the member is currently running a primary election.
Definition: member_info.cc:809
bool has_enforces_update_everywhere_checks()
Definition: member_info.cc:721
const std::string & get_group_action_running_description()
Get group action description if running on the member.
Definition: member_info.cc:795
bool m_allow_single_leader
Definition: member_info.h:757
bool get_allow_single_leader()
Definition: member_info.cc:892
uint member_weight
Definition: member_info.h:750
static bool comparator_group_member_weight(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:912
bool conflict_detection_enable
Definition: member_info.h:749
bool is_conflict_detection_enabled()
Return true if conflict detection is enable on this member.
Definition: member_info.cc:761
Group_member_role role
Definition: member_info.h:747
void set_view_change_uuid(const char *view_change_cnf)
Save member view change uuid.
Definition: member_info.cc:897
uint32 configuration_flags
Definition: member_info.h:748
bool primary_election_running
Definition: member_info.h:754
Member_version * member_version
Definition: member_info.h:740
bool has_greater_weight(Group_member_info *other)
Return true if member weight is higher than other member weight.
Definition: member_info.cc:933
uint get_port()
Definition: member_info.cc:577
bool get_default_table_encryption()
Definition: member_info.cc:736
~Group_member_info() override
Destructor.
Definition: member_info.cc:182
std::string purged_gtid_set
Definition: member_info.h:742
uint write_set_extraction_algorithm
Definition: member_info.h:744
std::string uuid
Definition: member_info.h:737
void enable_conflict_detection()
Update this member conflict detection to true.
Definition: member_info.cc:751
bool is_primary_election_running()
Definition: member_info.cc:804
bool operator==(Group_member_info &other)
Redefinition of operate ==, which operate upon the uuid.
Definition: member_info.cc:814
bool is_group_action_running()
Definition: member_info.cc:776
std::string m_group_action_running_name
Definition: member_info.h:758
Group_member_status get_recovery_status()
Definition: member_info.cc:590
enum_transaction_write_set_hashing_algorithm_compatibility
Definition: member_info.h:198
@ HASH_ALGORITHM_XXHASH64
Definition: member_info.h:201
@ HASH_ALGORITHM_OFF
Definition: member_info.h:199
@ HASH_ALGORITHM_MURMUR32
Definition: member_info.h:200
std::string get_view_change_uuid()
Get UID used when logging view change events.
Definition: member_info.cc:887
static const char * get_member_status_string(Group_member_status status)
Definition: member_info.cc:819
std::string m_group_action_running_description
Definition: member_info.h:759
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:628
uint lower_case_table_names
Definition: member_info.h:751
Gcs_member_identifier * gcs_member_id
Definition: member_info.h:739
bool in_primary_mode_internal()
Internal method without concurrency control.
Definition: member_info.cc:712
Group_member_role get_role()
Definition: member_info.cc:595
std::string retrieved_gtid_set
Definition: member_info.h:743
void set_primary_mode_flag(bool in_primary_mode)
Set the primary flag.
Definition: member_info.cc:690
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:799
bool skip_encode_default_table_encryption
Definition: member_info.h:763
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:790
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:924
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:38
uint get_write_set_extraction_algorithm()
Definition: member_info.cc:662
bool m_skip_encode_view_change_uuid
Definition: member_info.h:764
void set_unreachable()
Sets this member as unreachable.
Definition: member_info.cc:741
void set_role(Group_member_role new_role)
Updates this object member role.
Definition: member_info.cc:637
Gcs_member_identifier get_gcs_member_id()
Definition: member_info.cc:617
std::string get_gtid_purged()
Definition: member_info.cc:652
std::string m_view_change_uuid
Definition: member_info.h:756
Group_member_status status
Definition: member_info.h:738
Member_version get_member_version()
Definition: member_info.cc:642
PSI_mutex_key psi_mutex_key
Definition: member_info.h:767
std::string get_gtid_executed()
Definition: member_info.cc:647
uint get_member_weight()
Return member weight.
Definition: member_info.cc:771
Group_member_role
Definition: member_info.h:187
@ MEMBER_ROLE_PRIMARY
Definition: member_info.h:188
@ MEMBER_ROLE_SECONDARY
Definition: member_info.h:189
@ MEMBER_ROLE_END
Definition: member_info.h:190
uint get_lower_case_table_names()
Definition: member_info.cc:726
std::string executed_gtid_set
Definition: member_info.h:741
const std::string & get_group_action_running_name()
Get group action name if running on the member.
Definition: member_info.cc:786
void set_recovery_endpoints(const char *endpoints)
Save list of member advertised recovery endpoints.
Definition: member_info.cc:882
const char * get_member_role_string()
Definition: member_info.cc:600
Group_member_status
Definition: member_info.h:173
@ MEMBER_ONLINE
Definition: member_info.h:174
@ MEMBER_UNREACHABLE
Definition: member_info.h:178
@ MEMBER_OFFLINE
Definition: member_info.h:175
@ MEMBER_IN_RECOVERY
Definition: member_info.h:176
@ MEMBER_END
Definition: member_info.h:179
@ MEMBER_ERROR
Definition: member_info.h:177
std::string get_uuid()
Definition: member_info.cc:583
mysql_mutex_t update_lock
Definition: member_info.h:734
bool has_greater_version(Group_member_info *other)
Return true if member version is higher than other member version.
Definition: member_info.cc:917
bool default_table_encryption
Definition: member_info.h:752
void set_reachable()
Sets this member as reachable.
Definition: member_info.cc:746
std::string hostname
Definition: member_info.h:735
std::string get_hostname()
Definition: member_info.cc:571
bool is_unreachable()
Return true if this has been flagged as unreachable.
Definition: member_info.cc:731
bool get_preemptive_garbage_collection()
Get the value of 'group_replication_preemptive_garbage_collection' option on this member.
Definition: member_info.cc:902
void set_member_weight(uint new_member_weight)
Update member weight.
Definition: member_info.cc:766
enum_payload_item_type
Definition: member_info.h:84
@ PIT_EXECUTED_GTID
Definition: member_info.h:110
@ PIT_GCS_ID
Definition: member_info.h:98
@ PIT_CONFLICT_DETECTION_ENABLE
Definition: member_info.h:125
@ PIT_PURGED_GTID
Definition: member_info.h:143
@ PIT_RECOVERY_ENDPOINTS
Definition: member_info.h:146
@ PIT_ALLOW_SINGLE_LEADER
Definition: member_info.h:152
@ PIT_LOWER_CASE_TABLE_NAME
Definition: member_info.h:131
@ PIT_GROUP_ACTION_RUNNING
Definition: member_info.h:134
@ PIT_GROUP_ACTION_RUNNING_DESCRIPTION
Definition: member_info.h:158
@ PIT_GTID_ASSIGNMENT_BLOCK_SIZE
Definition: member_info.h:116
@ PIT_MAX
Definition: member_info.h:164
@ PIT_DEFAULT_TABLE_ENCRYPTION
Definition: member_info.h:140
@ PIT_PREEMPTIVE_GARBAGE_COLLECTION
Definition: member_info.h:161
@ PIT_WRITE_SET_EXTRACTION_ALGORITHM
Definition: member_info.h:107
@ PIT_PORT
Definition: member_info.h:92
@ PIT_PRIMARY_ELECTION_RUNNING
Definition: member_info.h:137
@ PIT_MEMBER_ROLE
Definition: member_info.h:119
@ PIT_CONFIGURATION_FLAGS
Definition: member_info.h:122
@ PIT_UNKNOWN
Definition: member_info.h:86
@ PIT_UUID
Definition: member_info.h:95
@ PIT_GROUP_ACTION_RUNNING_NAME
Definition: member_info.h:155
@ PIT_VIEW_CHANGE_UUID
Definition: member_info.h:149
@ PIT_MEMBER_WEIGHT
Definition: member_info.h:128
@ PIT_RETRIEVED_GTID
Definition: member_info.h:113
@ PIT_VERSION
Definition: member_info.h:104
@ PIT_STATUS
Definition: member_info.h:101
@ PIT_HOSTNAME
Definition: member_info.h:89
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, bool preemptive_garbage_collection)
Update Group_member_info.
Definition: member_info.cc:188
void update_recovery_status(Group_member_status new_status)
Updates this object recovery status.
Definition: member_info.cc:623
bool has_lower_uuid(Group_member_info *other)
Return true if server uuid is lower than other member server uuid.
Definition: member_info.cc:928
std::string get_gtid_retrieved()
Definition: member_info.cc:657
Malloc_allocator is a C++ STL memory allocator based on my_malloc/my_free.
Definition: malloc_allocator.h:63
represent the MySQL version of a Member within the Group Replication group.
Definition: member_version.h:35
A convenience context class used to share information between the event handlers and the notifier.
Definition: notification.h:35
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:64
#define MY_WME
Definition: my_sys.h:128
unsigned int PSI_mutex_key
Instrumented mutex key.
Definition: psi_mutex_bits.h:52
Group_member_info_map::iterator Group_member_info_map_iterator
Definition: member_info.h:778
Group_member_info_list::iterator Group_member_info_list_iterator
Definition: member_info.h:772
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:777
std::vector< Group_member_info *, Malloc_allocator< Group_member_info * > > Group_member_info_list
Definition: member_info.h:771
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
unsigned char uchar
Definition: my_inttypes.h:52
#define MYF(v)
Definition: my_inttypes.h:97
uint64_t uint64
Definition: my_inttypes.h:69
uint32_t uint32
Definition: my_inttypes.h:67
void * my_malloc(PSI_memory_key key, size_t size, int flags)
Allocates size bytes of memory.
Definition: my_memory.cc:57
void my_free(void *ptr)
Frees the memory pointed by the ptr.
Definition: my_memory.cc:81
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:76
bool is_running(const PluginFuncEnv *env) noexcept
Definition: loader.cc:203
size_t size(const char *const c)
Definition: base64.h:46
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
std::map< Key, Value, Compare, ut::allocator< std::pair< const Key, Value > > > map
Specialization of map which uses ut_allocator.
Definition: ut0new.h:2892
#define NODISCARD
The function attribute [[NODISCARD]] is a replacement for [[nodiscard]] to workaround a gcc bug.
Definition: nodiscard.h:47
static constexpr bool PREEMPTIVE_GARBAGE_COLLECTION_DEFAULT
Definition: plugin_constants.h:98
PSI_memory_key key_group_member_info
Definition: plugin_psi.h:245
PSI_mutex_key key_GR_LOCK_group_member_info_update_lock
Definition: plugin_psi.h:126
PSI_mutex_key key_GR_LOCK_group_member_info_manager_update_lock
Definition: plugin_psi.h:125
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50