MySQL 8.4.2
Source Code Documentation
|
#include <member_info.h>
Public Member Functions | |
virtual | ~Group_member_info_manager_interface ()=default |
virtual size_t | get_number_of_members ()=0 |
Number of members in the group. More... | |
virtual size_t | get_number_of_members_online ()=0 |
Number of ONLINE members in the group. More... | |
virtual bool | is_member_info_present (const std::string &uuid)=0 |
Is the member present in the group info. More... | |
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. More... | |
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. More... | |
virtual Member_version | get_group_lowest_online_version ()=0 |
Return lowest member version. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual Group_member_info_list * | get_all_members ()=0 |
Retrieves all Group members managed by this site. More... | |
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 a version lower than TRANSACTION_WITH_GUARANTEES_VERSION. More... | |
virtual void | add (Group_member_info *new_member)=0 |
Adds a new member to be managed by this Group manager. More... | |
virtual void | update (Group_member_info *update_local_member)=0 |
Removes all members of the group and update new local member. More... | |
virtual void | update (Group_member_info_list *new_members)=0 |
Updates all members of the group. More... | |
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. More... | |
virtual void | set_member_unreachable (const std::string &uuid)=0 |
Sets the identified member as unreachable. More... | |
virtual void | set_member_reachable (const std::string &uuid)=0 |
Sets the identified member as reachable. More... | |
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. More... | |
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. More... | |
virtual void | update_group_primary_roles (const std::string &uuid, Notification_context &ctx)=0 |
Updates the primary/secondary roles of the group. More... | |
virtual void | update_member_weight (const std::string &uuid, uint member_weight)=0 |
Updates the weight of a single member. More... | |
virtual void | update_primary_member_flag (bool in_primary_mode)=0 |
Changes the primary flag on all members. More... | |
virtual void | update_enforce_everywhere_checks_flag (bool enforce_everywhere)=0 |
Set the enforces_update_everywhere_checks flag on all members. More... | |
virtual void | encode (std::vector< uchar > *to_encode)=0 |
Encodes this object to send via the network. More... | |
virtual Group_member_info_list * | decode (const uchar *to_decode, size_t length)=0 |
Decodes the raw format of this object. More... | |
virtual bool | is_conflict_detection_enabled ()=0 |
Check if some member of the group has the conflict detection enable. More... | |
virtual bool | get_primary_member_uuid (std::string &primary_member_uuid)=0 |
Return the uuid for the for the primary. More... | |
virtual bool | get_primary_member_info (Group_member_info &member_info_arg)=0 |
Return the group member info for the current group primary. More... | |
virtual bool | is_majority_unreachable ()=0 |
Check if majority of the group is unreachable. More... | |
virtual bool | is_unreachable_member_present ()=0 |
Check if an unreachable member exists. More... | |
virtual bool | is_recovering_member_present ()=0 |
Check if a member in recovery exists in the group. More... | |
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. More... | |
virtual mysql_mutex_t * | get_update_lock ()=0 |
This method returns the update lock for consistent read of member state. More... | |
|
virtualdefault |
|
pure virtual |
Adds a new member to be managed by this Group manager.
[in] | new_member | new group member |
Implemented in Group_member_info_manager.
|
pure virtual |
Decodes the raw format of this object.
[in] | to_decode | raw encoded data |
[in] | length | raw encoded data length |
Implemented in Group_member_info_manager.
|
pure virtual |
Encodes this object to send via the network.
[out] | to_encode | out parameter to receive the encoded data |
Implemented in Group_member_info_manager.
|
pure virtual |
Retrieves all Group members managed by this site.
Implemented in Group_member_info_manager.
|
pure virtual |
Return lowest member version.
Implemented in Group_member_info_manager.
|
pure virtual |
Retrieves a registered Group member by its uuid.
[in] | uuid | uuid to retrieve |
[out] | member_info_arg | a member info reference local to the method caller that is updated when the member is found. |
Implemented in Group_member_info_manager.
|
pure virtual |
Retrieves a registered Group member by an index function.
One is free to determine the index function. Nevertheless, it should have the same result regardless of the member of the group where it is called
[in] | idx | the index |
[out] | member_info_arg | a member info reference local to the method caller that is updated when the member is found. |
Implemented in Group_member_info_manager.
|
pure virtual |
Retrieves a registered Group member by its backbone GCS identifier.
[in] | id | the GCS identifier |
[out] | member_info_arg | a member info reference local to the method caller that is updated when the member is found. |
Implemented in Group_member_info_manager.
|
pure virtual |
Return the status of the member with the given GCS identifier.
[in] | id | the GCS identifier |
Implemented in Group_member_info_manager.
|
pure virtual |
Returns the member-uuid of the given GCS identifier.
[in] | id | the GCS identifier |
Implemented in Group_member_info_manager.
|
pure virtual |
|
pure virtual |
Number of ONLINE members in the group.
UNREACHABLE members are included.
Implemented in Group_member_info_manager.
|
pure virtual |
Retrieves all ONLINE Group members managed by this site, or NULL if any group member version is from a version lower than TRANSACTION_WITH_GUARANTEES_VERSION.
Implemented in Group_member_info_manager.
|
pure virtual |
Return the group member info for the current group primary.
[out] | member_info_arg | a member info reference local to the method caller that is updated when the member is found. |
Implemented in Group_member_info_manager.
|
pure virtual |
Return the uuid for the for the primary.
[out] | primary_member_uuid | the uuid of the primary will be assigned here. |
Implemented in Group_member_info_manager.
|
pure virtual |
This method returns all ONLINE and RECOVERING members comma separated host and port in string format.
Implemented in Group_member_info_manager.
|
pure virtual |
This method returns the update lock for consistent read of member state.
Implemented in Group_member_info_manager.
|
pure virtual |
Check if some member of the group has the conflict detection enable.
Implemented in Group_member_info_manager.
|
pure virtual |
Check if majority of the group is unreachable.
This approach is optimistic, right after return the majority can be reestablish or go away.
Implemented in Group_member_info_manager.
|
pure virtual |
Is the member present in the group info.
[in] | uuid | uuid to check |
Implemented in Group_member_info_manager.
|
pure virtual |
Check if a member in recovery exists in the group.
This approach is optimistic, right after return a member can enter the group
Implemented in Group_member_info_manager.
|
pure virtual |
Check if an unreachable member exists.
This approach is optimistic, right after return a member can be marked as reachable/unreachable
Implemented in Group_member_info_manager.
|
pure virtual |
Sets the identified member as reachable.
[in] | uuid | member uuid |
Implemented in Group_member_info_manager.
|
pure virtual |
Sets the identified member as unreachable.
[in] | uuid | member uuid |
Implemented in Group_member_info_manager.
|
pure virtual |
Removes all members of the group and update new local member.
[in] | update_local_member | new Group member |
Implemented in Group_member_info_manager.
|
pure virtual |
Updates all members of the group.
Typically used after a view change.
[in] | new_members | new Group members |
Implemented in Group_member_info_manager.
|
pure virtual |
Set the enforces_update_everywhere_checks flag on all members.
enforce_everywhere | are the update everywhere checks active or not |
Implemented in Group_member_info_manager.
|
pure virtual |
Updates the primary/secondary roles of the group.
This method allows for all roles to be updated at once in the same method
[in] | uuid | the primary member uuid |
[in,out] | ctx | The notification context to update. |
Implemented in Group_member_info_manager.
|
pure virtual |
Updates the GTID sets on a single member.
[in] | uuid | member uuid |
[in] | gtid_executed | the member executed GTID set |
[in] | purged_gtids | the server purged GTID set |
[in] | gtid_retrieved | the member retrieved GTID set for the applier |
Implemented in Group_member_info_manager.
|
pure virtual |
Updates the role of a single member.
[in] | uuid | member uuid |
[in] | new_role | role to change to |
[in,out] | ctx | The notification context to update. |
Implemented in Group_member_info_manager.
|
pure virtual |
Updates the status of a single member.
[in] | uuid | member uuid |
[in] | new_status | status to change to |
[in,out] | ctx | The notification context to update. |
Implemented in Group_member_info_manager.
|
pure virtual |
Updates the weight of a single member.
[in] | uuid | member uuid |
[in] | member_weight | the new weight |
Implemented in Group_member_info_manager.
|
pure virtual |
Changes the primary flag on all members.
in_primary_mode | is the member in primary mode |
Implemented in Group_member_info_manager.