24#ifndef SEMISYNC_SOURCE_ACK_RECEIVER_DEFINED
25#define SEMISYNC_SOURCE_ACK_RECEIVER_DEFINED
Ack_receiver is responsible to control ack receive thread and maintain slave information used by ack ...
Definition: semisync_source_ack_receiver.h:61
void setTraceLevel(unsigned long trace_level)
Definition: semisync_source_ack_receiver.h:106
Ack_receiver()
Definition: semisync_source_ack_receiver.cc:63
void wait_for_slave_connection()
Definition: semisync_source_ack_receiver.cc:229
my_thread_handle m_pid
Definition: semisync_source_ack_receiver.h:126
Slave_vector m_slaves
Definition: semisync_source_ack_receiver.h:125
bool start()
Start ack receive thread.
Definition: semisync_source_ack_receiver.cc:86
void stop()
Stop ack receive thread.
Definition: semisync_source_ack_receiver.cc:113
bool init()
Definition: semisync_source_ack_receiver.h:108
uint8 m_status
Definition: semisync_source_ack_receiver.h:116
mysql_cond_t m_cond
Definition: semisync_source_ack_receiver.h:122
bool add_slave(THD *thd)
Notify ack receiver to receive acks on the dump session.
Definition: semisync_source_ack_receiver.cc:137
mysql_mutex_t m_mutex
Definition: semisync_source_ack_receiver.h:121
void remove_slave(THD *thd)
Notify ack receiver not to receive ack on the dump session.
Definition: semisync_source_ack_receiver.cc:175
Ack_receiver & operator=(const Ack_receiver &ack_receiver)
status
Definition: semisync_source_ack_receiver.h:115
@ ST_STOPPING
Definition: semisync_source_ack_receiver.h:115
@ ST_UP
Definition: semisync_source_ack_receiver.h:115
@ ST_DOWN
Definition: semisync_source_ack_receiver.h:115
void set_stage_info(const PSI_stage_info &stage)
Definition: semisync_source_ack_receiver.cc:222
void run()
The core of ack receive thread.
Definition: semisync_source_ack_receiver.cc:243
bool m_slaves_changed
Definition: semisync_source_ack_receiver.h:124
~Ack_receiver()
Definition: semisync_source_ack_receiver.cc:75
Ack_receiver(const Ack_receiver &ack_receiver)
Base class for semi-sync master and slave classes.
Definition: semisync.h:83
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
unsigned long trace_level_
Definition: semisync.h:50
Some integer typedefs for easier portability.
uint8_t uint8
Definition: my_inttypes.h:63
Common #defines and includes for file and socket I/O.
Defines to make different thread packages compatible.
int my_socket
Definition: mysql.h:65
unsigned long rpl_semi_sync_source_trace_level
Definition: semisync_source.cc:47
bool rpl_semi_sync_source_enabled
Definition: semisync_source.cc:45
Slave_vector::iterator Slave_vector_it
Definition: semisync_source_ack_receiver.h:49
Ack_receiver * ack_receiver
Definition: semisync_source_plugin.cc:64
std::vector< Slave > Slave_vector
Definition: semisync_source_ack_receiver.h:48
my_socket fd
The real socket descriptor.
Definition: mysql_socket_bits.h:37
Stage instrument information.
Definition: psi_stage_bits.h:74
Definition: semisync_source_ack_receiver.h:37
uint32_t thread_id
Definition: semisync_source_ack_receiver.h:39
EnumStatus
Definition: semisync_source_ack_receiver.h:38
Vio * vio
Definition: semisync_source_ack_receiver.h:40
my_socket sock_fd() const
Definition: semisync_source_ack_receiver.h:45
uint server_id
Definition: semisync_source_ack_receiver.h:41
mysql_compress_context compress_ctx
Definition: semisync_source_ack_receiver.h:42
EnumStatus m_status
Definition: semisync_source_ack_receiver.h:43
Definition: violite.h:320
MYSQL_SOCKET mysql_socket
Definition: violite.h:321
Definition: my_thread_bits.h:58
Compression context information.
Definition: my_compress.h:74
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50