24#ifndef MYSQL_CSA_RELAY_LOG_ADAPTIVE_READER_H
25#define MYSQL_CSA_RELAY_LOG_ADAPTIVE_READER_H
64 std::size_t max_read_event_bytes,
65 std::size_t max_read_payload_bytes);
168 std::chrono::system_clock::now()};
Definition: rpl_rli.h:208
This is the base class for verifying transaction boundaries.
Definition: trx_boundary_parser.h:50
@ TRX_BOUNDARY_PARSER_APPLIER
Definition: trx_boundary_parser.h:59
The Event Reader / Controller class.
Definition: event_reader_controller.h:80
Empty implementation of Event_set_fetchable that does not fetch events from the storage as they were ...
Definition: event_set_fetchable_cache.h:48
Implementation of Event_set_fetchable that fetches events from the relay log.
Definition: event_set_fetchable_relay_log.h:51
A job represents a single unit of work applied by worker pool threads.
Definition: job.h:47
Iterates over relay log and returns fetchable Jobs This reader reads consecutive events from the rela...
Definition: relay_log_adaptive_reader.h:55
std::unique_ptr< Channel > m_channel
Owning pointer to channel object.
Definition: relay_log_adaptive_reader.h:156
Relay_log_adaptive_reader(Relay_log_adaptive_reader &&)=delete
Relay_log_adaptive_reader & operator=(const Relay_log_adaptive_reader &)=delete
double m_worker_min_load_threshold
Threshold below which we ask workers to read transactions in order to increase reader and receiver th...
Definition: relay_log_adaptive_reader.h:159
std::size_t m_current_transaction_max_event_length
Definition: relay_log_adaptive_reader.h:131
Sliding_window_counter m_thp_worker_exec_time
Used to calculate workers load.
Definition: relay_log_adaptive_reader.h:165
bool m_is_in_trx
Definition: relay_log_adaptive_reader.h:133
std::shared_ptr< Fetchable_transaction > m_active_fetchable_transaction
Definition: relay_log_adaptive_reader.h:119
Reader_controller_read_type m_next_read_type
Definition: relay_log_adaptive_reader.h:124
void tune()
Tunes reader parameters based on CSA statistics.
Definition: relay_log_adaptive_reader.cpp:76
Relay_log_adaptive_reader(const Relay_log_adaptive_reader &)=delete
double m_worker_max_load_threshold
Threshold above which we go back to previous settings.
Definition: relay_log_adaptive_reader.h:161
std::size_t m_max_read_payload_bytes
The maximum number of bytes that this reader can cache for a single transaction without decoding.
Definition: relay_log_adaptive_reader.h:154
unsigned int m_instance_id
Unique instance id for statistics monitoring.
Definition: relay_log_adaptive_reader.h:142
void stop() override
Awakes and stops the reader.
Definition: relay_log_adaptive_reader.cpp:485
Relay_log_info * m_rli
Pointer to the relay log context of applier thread that launches CSA.
Definition: relay_log_adaptive_reader.h:100
virtual ~Relay_log_adaptive_reader() override
Definition: relay_log_adaptive_reader.cpp:74
Relay_log_adaptive_reader(int instance_id, Relay_log_info *rli, std::size_t max_read_event_bytes, std::size_t max_read_payload_bytes)
Definition: relay_log_adaptive_reader.cpp:45
Relay_log_adaptive_reader & operator=(Relay_log_adaptive_reader &&)=delete
Event_reader_controller * m_reader
Applier reader, object used to read event METADATA (non owning pointer)
Definition: relay_log_adaptive_reader.h:102
Relay_log_deleter_handle m_delete_handler
Deleter for the current file.
Definition: relay_log_adaptive_reader.h:106
Job_ptr read() override
Reads the next Job (full transaction) from the relay log and supplies a fetchable job object.
Definition: relay_log_adaptive_reader.cpp:149
Reader_controller_read_type m_read_type
Definition: relay_log_adaptive_reader.h:123
std::size_t m_max_read_event_bytes
The maximum number of bytes that this reader can cache for a single transaction with decoding.
Definition: relay_log_adaptive_reader.h:150
bool m_is_error
Internal error flag.
Definition: relay_log_adaptive_reader.h:138
bool is_error() const override
Checks whether reader errored out True - reader errored out.
Definition: relay_log_adaptive_reader.cpp:483
long int m_tune_period_ms
We tune parameters each m_tune_period_ms milliseconds.
Definition: relay_log_adaptive_reader.h:170
scheduler::Statistics_instance_monitor_ref m_stat_monitor
Statistics monitoring object for the current instance.
Definition: relay_log_adaptive_reader.h:144
std::shared_ptr< Log_event > m_current_fde
Current FDE pointer. Source's FDEs are attached to transactions.
Definition: relay_log_adaptive_reader.h:111
std::chrono::time_point< std::chrono::system_clock > m_last_tune_time
Time point at which we tuned parameters for the last time.
Definition: relay_log_adaptive_reader.h:167
bool m_stopped
Stop flag, set externally or by reached until condition.
Definition: relay_log_adaptive_reader.h:140
Event_set_fetchable_cache * m_open_cache_batch
Definition: relay_log_adaptive_reader.h:127
int64_t m_prev_seq
Previous sequence number recorded to validate timestamps.
Definition: relay_log_adaptive_reader.h:136
Event_set_fetchable_relay_log * m_open_stream_batch
Definition: relay_log_adaptive_reader.h:129
Log_prefetcher_sptr m_prefetcher
Definition: relay_log_adaptive_reader.h:108
Event_file_metadata m_start_batch_metadata
Definition: relay_log_adaptive_reader.h:121
Resource_instance_monitor_ref m_resource_monitor
Resource monitoring object for the current instance.
Definition: relay_log_adaptive_reader.h:146
bool is_stopped() const override
Checks whether CSA is stopped.
Definition: relay_log_adaptive_reader.cpp:116
Log_purge_controller_sptr m_shared_controller
Owning pointer of applier reader.
Definition: relay_log_adaptive_reader.h:104
Sliding_window_counter m_thp_task_exec_time
Used to calculate workers load.
Definition: relay_log_adaptive_reader.h:163
Transaction_boundary_parser m_transaction_boundary_parser
Definition: relay_log_adaptive_reader.h:115
Binary log event definitions.
constexpr std::size_t provider_max_read_payload_bytes
Definition: tune.h:47
constexpr std::size_t provider_max_read_event_bytes
Definition: tune.h:46
Definition: channel.cpp:28
std::shared_ptr< Relay_log_deleter > Relay_log_deleter_handle
Represents a shared reference to Relay_log_deleter.
Definition: relay_log_deleter.h:40
std::shared_ptr< Log_prefetcher > Log_prefetcher_sptr
Definition: log_prefetcher.h:48
std::shared_ptr< Log_purge_controller > Log_purge_controller_sptr
Definition: log_purge_controller.h:35
std::reference_wrapper< Resource_instance_monitor > Resource_instance_monitor_ref
Definition: resource_monitor.h:43
Reader_controller_read_type
Definition: reader_controller_read_type.h:31
@ event
Reads and decodes event.
std::reference_wrapper< Statistics_instance_monitor > Statistics_instance_monitor_ref
Definition: statistics_instance_monitor.h:43
Calculates statistic value in a time window.
Definition: sliding_window_counter.h:30
Transaction boundary parser definitions.