MySQL 8.3.0
Source Code Documentation
Gcs_group_management_interface Class Referenceabstract

#include <gcs_group_management_interface.h>

Inheritance diagram for Gcs_group_management_interface:
[legend]

Public Member Functions

virtual enum_gcs_error modify_configuration (const Gcs_interface_parameters &reconfigured_group)=0
 Method that allows sending of a new group configuration. More...
 
virtual uint32_t get_minimum_write_concurrency () const =0
 Retrieves the minimum supported "write concurrency" value. More...
 
virtual uint32_t get_maximum_write_concurrency () const =0
 Retrieves the maximum supported "write concurrency" value. More...
 
virtual enum_gcs_error get_write_concurrency (uint32_t &write_concurrency) const =0
 Retrieves the group's "write concurrency" value. More...
 
virtual enum_gcs_error set_write_concurrency (uint32_t write_concurrency)=0
 Reconfigures the group's "write concurrency" value. More...
 
virtual ~Gcs_group_management_interface ()=default
 
virtual enum_gcs_error set_single_leader (Gcs_member_identifier const &leader)=0
 Reconfigures the group's "consensus leaders.". More...
 
virtual enum_gcs_error set_everyone_leader ()=0
 Reconfigures the group's "consensus leaders.". More...
 
virtual enum_gcs_error get_leaders (std::vector< Gcs_member_identifier > &preferred_leaders, std::vector< Gcs_member_identifier > &actual_leaders)=0
 Inspect the group's "consensus leader" configuration. More...
 

Constructor & Destructor Documentation

◆ ~Gcs_group_management_interface()

virtual Gcs_group_management_interface::~Gcs_group_management_interface ( )
virtualdefault

Member Function Documentation

◆ get_leaders()

virtual enum_gcs_error Gcs_group_management_interface::get_leaders ( std::vector< Gcs_member_identifier > &  preferred_leaders,
std::vector< Gcs_member_identifier > &  actual_leaders 
)
pure virtual

Inspect the group's "consensus leader" configuration.

Parameters
[out]preferred_leadersThe members specified as preferred leaders.
[out]actual_leadersThe members actually carrying out the leader role at this moment.
Return values
GCS_OKif successful, preferred_leaders and actual_leaders contain the result
GCS_NOKif unsuccessful

Implemented in Gcs_xcom_group_management.

◆ get_maximum_write_concurrency()

virtual uint32_t Gcs_group_management_interface::get_maximum_write_concurrency ( ) const
pure virtual

Retrieves the maximum supported "write concurrency" value.

Implemented in Gcs_xcom_group_management.

◆ get_minimum_write_concurrency()

virtual uint32_t Gcs_group_management_interface::get_minimum_write_concurrency ( ) const
pure virtual

Retrieves the minimum supported "write concurrency" value.

Implemented in Gcs_xcom_group_management.

◆ get_write_concurrency()

virtual enum_gcs_error Gcs_group_management_interface::get_write_concurrency ( uint32_t &  write_concurrency) const
pure virtual

Retrieves the group's "write concurrency" value.

Parameters
[out]write_concurrencyA reference to where the group's "write concurrency" value will be written to
Return values
GCS_OKif successful and write_concurrency has been written to
GCS_NOKif GCS was unable to request the current "write concurrency" value from the underlying implementation

Implemented in Gcs_xcom_group_management.

◆ modify_configuration()

virtual enum_gcs_error Gcs_group_management_interface::modify_configuration ( const Gcs_interface_parameters reconfigured_group)
pure virtual

Method that allows sending of a new group configuration.

This is to be used when the group is blocked due to a loss of majority and only on one node from the new group.

Implementations in each binding might have there specificities but some rules must be followed:

  • This should be a non-blocking call;
  • Typically, it shall cause a View Change, since we are forcing a new configuration.
Parameters
[in]reconfigured_groupa list containing the new nodes

Implemented in Gcs_xcom_group_management.

◆ set_everyone_leader()

virtual enum_gcs_error Gcs_group_management_interface::set_everyone_leader ( )
pure virtual

Reconfigures the group's "consensus leaders.".

Instructs the underlying GCS to use every member as a consensus leader.

Return values
GCS_OKif successful
GCS_NOKif unsuccessful

Implemented in Gcs_xcom_group_management.

◆ set_single_leader()

virtual enum_gcs_error Gcs_group_management_interface::set_single_leader ( Gcs_member_identifier const &  leader)
pure virtual

Reconfigures the group's "consensus leaders.".

Instructs the underlying GCS to use leader as the single preferred consensus leader.

Parameters
leaderThe member you desire to act as a consensus leader.
Return values
GCS_OKif successful
GCS_NOKif unsuccessful

Implemented in Gcs_xcom_group_management.

◆ set_write_concurrency()

virtual enum_gcs_error Gcs_group_management_interface::set_write_concurrency ( uint32_t  write_concurrency)
pure virtual

Reconfigures the group's "write concurrency" value.

The caller should ensure that the supplied value is between minimum_write_concurrency and maximum_write_concurrency.

The method is non-blocking, meaning that it shall only send the request to an underlying GCS. The final result can be polled via get_write_concurrency.

Parameters
write_concurrencyThe desired "write concurrency" value.
Return values
GCS_OKif successful
GCS_NOKif unsuccessful

Implemented in Gcs_xcom_group_management.


The documentation for this class was generated from the following file: