24#ifndef GCS_OPERATIONS_INCLUDE
25#define GCS_OPERATIONS_INCLUDE
256 bool skip_if_not_initialized =
false);
382 std::vector<Gcs_member_identifier> &preferred_leaders,
383 std::vector<Gcs_member_identifier> &actual_leaders);
This has the functionality of mysql_rwlock_t, with two differences:
Definition: rpl_gtid.h:309
This interface is implemented by those who wish to receive messages.
Definition: gcs_communication_event_listener.h:36
This interface represents all the communication facilities that a binding implementation should provi...
Definition: gcs_communication_interface.h:90
This interface is implemented by those who wish to receive Control Interface notifications.
Definition: gcs_control_event_listener.h:52
Group Replication implementation of Logger_interface.
Definition: gcs_logger.h:36
Definition: gcs_group_management_interface.h:32
This class is to be used to provide parameters to bindings in a transparent and generic way.
Definition: gcs_types.h:59
This interface must be implemented by all specific binding implementations as its entry point.
Definition: gcs_interface.h:101
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:40
Implementation of Gcs_mysql_network_provider_auth_interface that retrieves auth data from MySQL.
Definition: gcs_mysql_network_provider.h:70
Internal implementation of Gcs_mysql_network_provider_native_interface_impl that serves as a proxy fo...
Definition: gcs_mysql_network_provider.h:216
Implementation of a.
Definition: gcs_mysql_network_provider.h:297
Coordinates all operations to GCS interface.
Definition: gcs_operations.h:49
enum enum_force_members_state force_members(const char *members)
Forces a new group membership, on which the excluded members will not receive a new view and will be ...
Definition: gcs_operations.cc:491
Gcs_group_management_interface * get_gcs_group_manager() const
Definition: gcs_operations.cc:573
bool is_initialized()
Returns a flag indicating whether or not the component is initialized.
Definition: gcs_operations.cc:815
static const std::string gcs_engine
Definition: gcs_operations.h:460
int get_local_member_identifier(std::string &identifier)
Get the local member identifier.
Definition: gcs_operations.cc:383
std::pair< bool, std::future< void > > set_protocol_version(Gcs_protocol_version gcs_protocol)
Modifies the GCS protocol version in use.
Definition: gcs_operations.cc:746
enum enum_gcs_error set_write_concurrency(uint32_t new_write_concurrency)
Reconfigures the group's "write concurrency" value.
Definition: gcs_operations.cc:614
Checkable_rwlock * view_observers_lock
Lock for the list of waiters on a view change.
Definition: gcs_operations.h:486
Gcs_view * get_current_view()
Get the group current view.
Definition: gcs_operations.cc:364
enum enum_gcs_error configure(const Gcs_interface_parameters ¶meters)
Configure the GCS interface.
Definition: gcs_operations.cc:129
enum enum_gcs_error join(const Gcs_communication_event_listener &communication_event_listener, const Gcs_control_event_listener &control_event_listener, Plugin_gcs_view_modification_notifier *view_notifier)
Request server to join the group.
Definition: gcs_operations.cc:199
Gcs_protocol_version get_protocol_version()
Retrieves the group's "group communication protocol" value.
Definition: gcs_operations.cc:722
enum enum_gcs_error send_transaction_message(Transaction_message_interface &message)
Send a transaction message to the group.
Definition: gcs_operations.cc:449
enum enum_gcs_error get_leaders(std::vector< Gcs_member_identifier > &preferred_leaders, std::vector< Gcs_member_identifier > &actual_leaders)
Inspect the group's "consensus leader" configuration.
Definition: gcs_operations.cc:654
void leave_coordination_member_left()
Declare the member as being already out of the group.
Definition: gcs_operations.cc:357
Gcs_communication_interface * get_gcs_communication() const
Definition: gcs_operations.cc:693
enum enum_gcs_error set_xcom_cache_size(uint64_t new_size)
Requests GCS to change the maximum size of the XCom cache.
Definition: gcs_operations.cc:763
uint32_t get_minimum_write_concurrency() const
Retrieves the minimum supported "write concurrency" value.
Definition: gcs_operations.cc:669
enum_leave_state
This enumeration describes the return values when a process tries to leave a group.
Definition: gcs_operations.h:57
@ ERROR_WHEN_LEAVING
Definition: gcs_operations.h:65
@ ALREADY_LEFT
Definition: gcs_operations.h:63
@ ALREADY_LEAVING
Definition: gcs_operations.h:61
@ NOW_LEAVING
Definition: gcs_operations.h:59
bool is_injected_view_modification()
Checks if the view modification is a injected one.
Definition: gcs_operations.cc:341
enum enum_gcs_error set_everyone_leader()
Reconfigures the group's "consensus leaders.".
Definition: gcs_operations.cc:641
std::atomic< bool > leave_coordination_left
Did the member already left.
Definition: gcs_operations.h:479
static const std::string & get_gcs_engine()
Definition: gcs_operations.cc:813
enum enum_gcs_error set_debug_options(std::string &debug_options) const
Configure the debug options that shall be used by GCS.
Definition: gcs_operations.cc:186
enum enum_gcs_error set_leader(Gcs_member_identifier const &leader)
Reconfigures the group's "consensus leaders.".
Definition: gcs_operations.cc:627
std::shared_ptr< Gcs_mysql_network_provider > gcs_mysql_net_provider
Definition: gcs_operations.h:470
Gcs_operations()
Default constructor.
Definition: gcs_operations.cc:36
Gcs_gr_logger_impl gcs_logger
Definition: gcs_operations.h:461
void notify_of_view_change_end()
Notify all listeners that a view changed.
Definition: gcs_operations.cc:323
Gcs_mysql_network_provider * get_mysql_network_provider()
Get the mysql network provider owned by GCS operations.
Definition: gcs_operations.cc:799
void remove_view_notifer(Plugin_gcs_view_modification_notifier *view_notifier)
Removes the notifier from the list.
Definition: gcs_operations.cc:348
Gcs_mysql_network_provider_native_interface_impl native_interface
Definition: gcs_operations.h:469
void notify_of_view_change_cancellation(int errnr=GROUP_REPLICATION_CONFIGURATION_ERROR)
Notify all listeners that a view was canceled.
Definition: gcs_operations.cc:332
void finalize()
Finalize the GCS interface.
Definition: gcs_operations.cc:107
enum enum_gcs_error do_set_debug_options(std::string &debug_options) const
Internal function that configures the debug options that shall be used by GCS.
Definition: gcs_operations.cc:162
enum enum_gcs_error get_write_concurrency(uint32_t &write_concurrency)
Retrieves the group's "write concurrency" value.
Definition: gcs_operations.cc:601
enum_force_members_state
This enumeration describes the return value when forces a new group membership.
Definition: gcs_operations.h:74
@ FORCE_MEMBERS_ER_VALUE_SET_ERROR
Definition: gcs_operations.h:89
@ FORCE_MEMBERS_ER_TIMEOUT_ON_WAIT_FOR_VIEW
Definition: gcs_operations.h:87
@ FORCE_MEMBERS_ER_MEMBER_NOT_ONLINE
Definition: gcs_operations.h:78
@ FORCE_MEMBERS_ER_NOT_ONLINE_AND_MAJORITY_UNREACHABLE
Definition: gcs_operations.h:83
@ FORCE_MEMBERS_ER_INTERNAL_ERROR
Definition: gcs_operations.h:91
@ FORCE_MEMBERS_ER_MEMBERS_WHEN_LEAVING
Definition: gcs_operations.h:85
@ FORCE_MEMBERS_OK
Definition: gcs_operations.h:76
std::list< Plugin_gcs_view_modification_notifier * > view_change_notifier_list
List of associated view change notifiers waiting.
Definition: gcs_operations.h:482
bool belongs_to_group()
Returns true if this server belongs to the group.
Definition: gcs_operations.cc:252
Checkable_rwlock * gcs_operations_lock
Definition: gcs_operations.h:484
Gcs_protocol_version get_maximum_protocol_version()
Get the maximum protocol version currently supported by the group.
Definition: gcs_operations.cc:734
enum enum_gcs_error send_message(const Plugin_gcs_message &message, bool skip_if_not_initialized=false)
Send a message to the group.
Definition: gcs_operations.cc:405
std::atomic< bool > leave_coordination_leaving
Is the member leaving.
Definition: gcs_operations.h:477
enum_leave_state leave(Plugin_gcs_view_modification_notifier *view_notifier)
Request GCS interface to leave the group.
Definition: gcs_operations.cc:270
Gcs_mysql_network_provider_auth_interface_impl auth_provider
External IoC dependencies for gcs_mysql_net_provider.
Definition: gcs_operations.h:468
uint32_t get_maximum_write_concurrency() const
Retrieves the maximum supported "write concurrency" value.
Definition: gcs_operations.cc:681
virtual ~Gcs_operations()
Destructor.
Definition: gcs_operations.cc:56
enum_transport_protocol get_current_incoming_connections_protocol()
Get the current incoming connections protocol stack configured in GCS.
Definition: gcs_operations.cc:781
Gcs_interface * gcs_interface
Definition: gcs_operations.h:472
bool injected_view_modification
Was this view change injected.
Definition: gcs_operations.h:475
enum enum_gcs_error reconfigure(const Gcs_interface_parameters ¶meters)
Reconfigure the GCS interface, i.e.
Definition: gcs_operations.cc:150
int initialize()
Initialize the GCS interface.
Definition: gcs_operations.cc:61
This represents the membership view that a member has from a group.
Definition: gcs_view.h:55
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:64
Definition: gcs_view_modification_notifier.h:36
Definition: transaction_message_interface.h:41
enum_gcs_error
This enumeration describes errors which can occur during group communication operations.
Definition: gcs_types.h:41
Gcs_protocol_version
The GCS protocol versions.
Definition: gcs_types.h:128
enum_transport_protocol
Enum that describes the available XCom Communication Stacks.
Definition: network_provider.h:45
#define GROUP_REPLICATION_CONFIGURATION_ERROR
Definition: plugin_constants.h:37