24#ifndef GCS_EVENT_HANDLERS_INCLUDE 
   25#define GCS_EVENT_HANDLERS_INCLUDE 
   69                            ulong components_stop_timeout);
 
   80      const std::vector<Gcs_member_identifier> &members,
 
   81      const std::vector<Gcs_member_identifier> &unreachable) 
const override;
 
  121                           const std::string &message_origin) 
const;
 
  127                                bool is_joining, 
bool is_leaving) 
const;
 
  129                              bool is_leaving) 
const;
 
  131                              bool is_leaving) 
const;
 
  146      const std::vector<Gcs_member_identifier> &members,
 
  163      std::string &suggested_primary) 
const;
 
  166                                   bool is_joining) 
const;
 
  251      std::string &group_action_running_initiator,
 
  252      std::string &group_action_running_description) 
const;
 
  298                           std::string &all_hosts,
 
  299                           std::string &primary_host) 
const;
 
  308  std::set<Group_member_info *, Group_member_info_pointer_comparator>
 
Definition: applier.h:240
 
Definition: compatibility_module.h:41
 
This interface is implemented by those who wish to receive messages.
Definition: gcs_communication_event_listener.h:36
 
This interface is implemented by those who wish to receive Control Interface notifications.
Definition: gcs_control_event_listener.h:52
 
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:40
 
This class serves as data container for information flowing in the GCS ecosystem.
Definition: gcs_message.h:48
 
Class that represents the data that is exchanged within a group.
Definition: gcs_message.h:357
 
This represents the membership view that a member has from a group.
Definition: gcs_view.h:55
 
Definition: member_info.h:81
 
Group_member_status
Definition: member_info.h:169
 
bool has_lower_uuid(Group_member_info *other)
Return true if server uuid is lower than other member server uuid.
Definition: member_info.cc:899
 
A convenience context class used to share information between the event handlers and the notifier.
Definition: notification.h:35
 
Definition: gcs_event_handlers.h:59
 
bool was_member_expelled_from_group(const Gcs_view &view) const
This method checks if member was expelled from the group due to network failures.
Definition: gcs_event_handlers.cc:765
 
void handle_single_primary_message(Plugin_gcs_message *processed_message) const
Definition: gcs_event_handlers.cc:411
 
void handle_transaction_prepared_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:240
 
void handle_transactional_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:176
 
void handle_leader_election_if_needed(enum_primary_election_mode election_mode, std::string &suggested_primary) const
This method handles the election of a new primary node when the plugin runs in single primary mode.
Definition: gcs_event_handlers.cc:788
 
int update_group_info_manager(const Gcs_view &new_view, const Exchanged_data &exchanged_data, bool is_joining, bool is_leaving) const
Definition: gcs_event_handlers.cc:804
 
Gcs_message_data * get_exchangeable_data() const override
This method is called when the Data Exchange is about to happen in order for the client to provide wh...
Definition: gcs_event_handlers.cc:1320
 
void log_members_leaving_message(const Gcs_view &new_view) const
Logs member leaving message to error logs from view.
Definition: gcs_event_handlers.cc:556
 
void handle_sync_before_execution_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:261
 
int process_local_exchanged_data(const Exchanged_data &exchanged_data, bool is_joining) const
Definition: gcs_event_handlers.cc:1164
 
void get_hosts_from_view(const std::vector< Gcs_member_identifier > &members, std::string &all_hosts, std::string &primary_host) const
This function return all members present in vector of Gcs_member_identifier in HOST:PORT format separ...
Definition: gcs_event_handlers.cc:584
 
void handle_joining_members(const Gcs_view &new_view, bool is_joining, bool is_leaving) const
Definition: gcs_event_handlers.cc:859
 
void handle_leaving_members(const Gcs_view &new_view, bool is_joining, bool is_leaving) const
Definition: gcs_event_handlers.cc:1118
 
void on_suspicions(const std::vector< Gcs_member_identifier > &members, const std::vector< Gcs_member_identifier > &unreachable) const override
This member function is called when the set of suspicions has changed in the underlying communication...
Definition: gcs_event_handlers.cc:472
 
void disable_read_mode_for_compatible_members(bool force_check=false) const
This function disable read-only mode when member version is compatible with group.
Definition: gcs_event_handlers.cc:1876
 
void handle_group_action_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:438
 
Compatibility_module * compatibility_manager
Definition: gcs_event_handlers.h:311
 
bool set_number_of_members_on_view_changed_to_10
Definition: gcs_event_handlers.h:320
 
Plugin_gcs_events_handler(Applier_module_interface *applier_module, Recovery_module *recovery_module, Compatibility_module *compatibility_manager, ulong components_stop_timeout)
Plugin_gcs_events_handler constructor.
Definition: gcs_event_handlers.cc:54
 
ulong stop_wait_timeout
Definition: gcs_event_handlers.h:317
 
bool pre_process_message(Plugin_gcs_message *plugin_message, const std::string &message_origin) const
This method passes the message to message listeners.
Definition: gcs_event_handlers.cc:167
 
void on_message_received(const Gcs_message &message) const override
This method is called whenever a message is to be delivered.
Definition: gcs_event_handlers.cc:78
 
void handle_recovery_message(Plugin_gcs_message *message) const
Definition: gcs_event_handlers.cc:306
 
st_compatibility_types check_version_compatibility_with_group() const
When the member is joining, cycle through all members on group and see if it is compatible with them.
Definition: gcs_event_handlers.cc:1557
 
Recovery_module * recovery_module
Definition: gcs_event_handlers.h:302
 
int check_group_compatibility(size_t number_of_members) const
Checks the compatibility of the member with the group.
Definition: gcs_event_handlers.cc:1483
 
void handle_certifier_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:281
 
bool is_member_on_vector(const std::vector< Gcs_member_identifier > &members, const Gcs_member_identifier &member_id) const
Verifies if a certain Vector of Member Ids contains a given member id.
Definition: gcs_event_handlers.cc:1154
 
bool is_group_running_a_primary_election() const
Check if the group is running a primary election.
Definition: gcs_event_handlers.cc:1861
 
Applier_module_interface * applier_module
Definition: gcs_event_handlers.h:301
 
void log_members_joining_message(const Gcs_view &new_view) const
Logs member joining message to error logs from view.
Definition: gcs_event_handlers.cc:572
 
void on_view_changed(const Gcs_view &new_view, const Exchanged_data &exchanged_data) const override
This method is called when the view is ready to be installed.
Definition: gcs_event_handlers.cc:622
 
bool is_group_running_a_configuration_change(std::string &group_action_running_initiator, std::string &group_action_running_description) const
Check if a member is not entering a group where an action is running.
Definition: gcs_event_handlers.cc:1841
 
void collect_members_executed_sets(View_change_packet *view_packet) const
This method takes all the group executed sets and adds those belonging to non recovering member to th...
Definition: gcs_event_handlers.cc:1706
 
Notification_context m_notification_ctx
The notification context for the GCS delivery thread.
Definition: gcs_event_handlers.h:324
 
~Plugin_gcs_events_handler() override
Definition: gcs_event_handlers.cc:73
 
void handle_transactional_with_guarantee_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:203
 
void update_member_status(const std::vector< Gcs_member_identifier > &members, Group_member_info::Group_member_status status, Group_member_info::Group_member_status old_equal_to, Group_member_info::Group_member_status old_different_from) const
This method updates the status of the members in the list according to the given parameters.
Definition: gcs_event_handlers.cc:1440
 
void handle_stats_message(const Gcs_message &message) const
Definition: gcs_event_handlers.cc:397
 
int compare_member_transaction_sets() const
Method that compares the group's aggregated GTID set against the joiner GTID set.
Definition: gcs_event_handlers.cc:1632
 
st_compatibility_types * joiner_compatibility_status
The status of this member when it joins.
Definition: gcs_event_handlers.h:314
 
std::set< Group_member_info *, Group_member_info_pointer_comparator > * temporary_states
Definition: gcs_event_handlers.h:309
 
int compare_member_option_compatibility() const
Method that compares the member options with the value of the same option on all other members.
Definition: gcs_event_handlers.cc:1730
 
void set_stop_wait_timeout(ulong timeout)
Sets the component stop timeout.
Definition: gcs_event_handlers.h:88
 
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:64
 
Definition: recovery.h:45
 
A packet to send view change related info to the applier.
Definition: applier.h:91
 
st_compatibility_types
Definition: compatibility_module.h:33
 
std::vector< std::pair< Gcs_member_identifier *, Gcs_message_data * > > Exchanged_data
Alias for the Data exchanged and delivered from all nodes.
Definition: gcs_control_event_listener.h:40
 
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:496
 
enum_primary_election_mode
Enum for election types.
Definition: primary_election_include.h:33
 
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:61
 
Group_member_info_pointer_comparator to guarantee uniqueness.
Definition: gcs_event_handlers.h:47
 
bool operator()(Group_member_info *one, Group_member_info *other) const
Definition: gcs_event_handlers.h:48