MDEV-4506: Parallel replication: Intermediate commit.

First step of splitting out part of Relay_log_info, so that different
event groups being applied in parallel can each use their own copy.
This commit is contained in:
unknown 2013-06-28 15:19:30 +02:00
commit 1b3dc66e31
12 changed files with 161 additions and 89 deletions

View file

@ -53,6 +53,8 @@ class Master_info;
*****************************************************************************/
struct rpl_group_info;
class Relay_log_info : public Slave_reporting_capability
{
public:
@ -312,13 +314,8 @@ public:
char slave_patternload_file[FN_REFLEN];
size_t slave_patternload_file_size;
/*
Current GTID being processed.
The sub_id gives the binlog order within one domain_id. A zero sub_id
means that there is no active GTID.
*/
uint64 gtid_sub_id;
rpl_gtid current_gtid;
/* Various data related to the currently executing event group. */
struct rpl_group_info *group_info;
rpl_parallel parallel;
Relay_log_info(bool is_slave_recovery);
@ -596,6 +593,26 @@ private:
};
/*
This is data for various state needed to be kept for the processing of
one event group in the SQL thread.
For single-threaded replication it is linked from the RLI, for parallel
replication it is linked into each event group being executed in parallel.
*/
struct rpl_group_info
{
Relay_log_info *rli;
/*
Current GTID being processed.
The sub_id gives the binlog order within one domain_id. A zero sub_id
means that there is no active GTID.
*/
uint64 gtid_sub_id;
rpl_gtid current_gtid;
};
// Defined in rpl_rli.cc
int init_relay_log_info(Relay_log_info* rli, const char* info_fname);