24#ifndef MYSQL_CSA_RELAY_LOG_EVENT_READER_CONTROLLER_H
25#define MYSQL_CSA_RELAY_LOG_EVENT_READER_CONTROLLER_H
110 std::optional<Event_file_metadata>
read_next(
191 void choose_reader(
bool next_log,
const std::string &prev_file);
Interface class that all specializations of template <...> Basic_binlog_file_reader inherit from.
Definition: binlog_reader.h:364
Definition: rpl_rli.h:208
The Event Reader / Controller class.
Definition: event_reader_controller.h:80
bool is_error() const
Check if reader has an error.
Definition: event_reader_controller.h:127
Relay_log_info * m_rli
non-owning RLI object pointer
Definition: event_reader_controller.h:199
void close()
Closes readers, stops prefetcher, clears internal state including error state.
Definition: event_reader_controller.cpp:131
bool m_enable_prefetcher
Variable to decide on whether we want to run prefetcher.
Definition: event_reader_controller.h:220
bool m_using_prefetcher
Flag indicating whether currently opened log file is active.
Definition: event_reader_controller.h:215
void stop()
Stop the reader.
Definition: event_reader_controller.cpp:234
bool check_cache_truncated()
If cache is truncated, reopen the reader to avoid reading trash data.
Definition: event_reader_controller.cpp:142
Relaylog_file_reader m_active_reader
Reader for active files.
Definition: event_reader_controller.h:203
const std::string & get_file_name() const
Obtain currently processed file.
Definition: event_reader_controller.h:123
bool m_active_file_reading
This flag is true in case we are using active file reader and reading from the active relay log file.
Definition: event_reader_controller.h:218
std::string m_error_msg
Error message if any.
Definition: event_reader_controller.h:197
std::unordered_set< std::string > m_logs_to_purge
Here we keep the list of logs to be purged (in case later logs are applied before),...
Definition: event_reader_controller.h:213
IBasic_binlog_file_reader * m_current_reader
Non-owning pointer to currently used reader (m_inactive_reader or m_active_reader)
Definition: event_reader_controller.h:208
bool purge_applied_logs(const char *to_log)
Purge relay log files up to to_log.
Definition: event_reader_controller.cpp:354
Event_reader_controller(Relay_log_info *rli, Log_prefetcher_sptr prefetcher)
Definition: event_reader_controller.cpp:34
std::string m_file_name
Stores the current file as obtaining from stream.
Definition: event_reader_controller.h:210
bool move_to_next_log()
Moves to the next log file.
Log_prefetcher_sptr m_prefetcher
Relay log prefetcher.
Definition: event_reader_controller.h:201
bool set_error(const char *msg)
Sets internal error to msg.
Definition: event_reader_controller.cpp:53
bool is_stopped() const
Check if reader is stopped.
Definition: event_reader_controller.cpp:230
bool is_data_available()
Checks whether there is data in the current file.
Definition: event_reader_controller.cpp:155
bool wait_data_ready(unsigned int return_timeout_ms)
Waits until data is available, stopped or return_timeout_ms is reached.
Definition: event_reader_controller.cpp:174
bool concurrent_purge(const std::string &log_filename) override
Register log_filename as a log ready to be purged.
Definition: event_reader_controller.cpp:400
std::optional< Event_file_metadata > read_next(unsigned int return_timeout_ms, Reader_controller_read_type read_type)
Fetches next: event data, event metadata, event metadata plus raw payload, depending on read type.
Definition: event_reader_controller.cpp:242
bool move_to_log(bool next_log=true, my_off_t offset=0)
When next_log is true, opens the next file.
Definition: event_reader_controller.cpp:97
bool open()
Opens the first relay log.
Definition: event_reader_controller.cpp:64
bool m_is_error
Flag which is true in case any error occurred.
Definition: event_reader_controller.h:195
std::atomic< bool > m_is_stopped
Stop flag.
Definition: event_reader_controller.h:222
void choose_reader(bool next_log, const std::string &prev_file)
Implements internal logic to choose between active and inactive file reading.
Definition: event_reader_controller.cpp:79
Prefetched_relaylog_reader m_inactive_reader
Reader for inactive files.
Definition: event_reader_controller.h:205
bool wait_for_new_event(unsigned int return_timeout_ms)
In case we read from active file, we use this function to passively wait for new event.
Interface for a relay log controller which is capable of purging the relay logs.
Definition: log_purge_controller.h:39
Binary log event definitions.
ulonglong my_off_t
Definition: my_inttypes.h:72
static const char * log_filename
Definition: myisamlog.cc:97
constexpr bool prefetcher_enable
Definition: tune.h:41
Definition: channel.cpp:28
std::shared_ptr< Log_prefetcher > Log_prefetcher_sptr
Definition: log_prefetcher.h:48
Reader_controller_read_type
Definition: reader_controller_read_type.h:31
Transaction boundary parser definitions.