mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-4506: Parallel replication: intermediate commit.
Fix a bunch of issues found with locking, ordering, and non-thread-safe stuff in Relay_log_info. Now able to do a simple benchmark, showing 4.5 times speedup for applying a binlog with 10000 REPLACE statements.
This commit is contained in:
@@ -604,6 +604,7 @@ private:
|
||||
struct rpl_group_info
|
||||
{
|
||||
Relay_log_info *rli;
|
||||
THD *thd;
|
||||
/*
|
||||
Current GTID being processed.
|
||||
The sub_id gives the binlog order within one domain_id. A zero sub_id
|
||||
@@ -630,10 +631,19 @@ struct rpl_group_info
|
||||
*/
|
||||
uint64 wait_commit_sub_id;
|
||||
struct rpl_group_info *wait_commit_group_info;
|
||||
/*
|
||||
If non-zero, the event group must wait for this sub_id to be committed
|
||||
before the execution of the event group is allowed to start.
|
||||
|
||||
(When we execute in parallel the transactions that group committed
|
||||
together on the master, we still need to wait for any prior transactions
|
||||
to have commtted).
|
||||
*/
|
||||
uint64 wait_start_sub_id;
|
||||
|
||||
struct rpl_parallel_entry *parallel_entry;
|
||||
|
||||
rpl_group_info(Relay_log_info *rli);
|
||||
rpl_group_info(Relay_log_info *rli_);
|
||||
~rpl_group_info() { };
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user