Commit 45c3c715 authored by unknown's avatar unknown

MDEV-4506: Parallel replication. .result file updates + a few comment updates.

parent 976606d0
...@@ -31,6 +31,6 @@ a ...@@ -31,6 +31,6 @@ a
1 1
2 2
3 3
InnoDB: Last MySQL binlog file position 0 922, file name ./master-bin.000001 InnoDB: Last MySQL binlog file position 0 926, file name ./master-bin.000001
SET DEBUG_SYNC= 'RESET'; SET DEBUG_SYNC= 'RESET';
DROP TABLE t1; DROP TABLE t1;
...@@ -32,6 +32,6 @@ a ...@@ -32,6 +32,6 @@ a
1 1
2 2
3 3
InnoDB: Last MySQL binlog file position 0 922, file name ./master-bin.000001 InnoDB: Last MySQL binlog file position 0 926, file name ./master-bin.000001
SET DEBUG_SYNC= 'RESET'; SET DEBUG_SYNC= 'RESET';
DROP TABLE t1; DROP TABLE t1;
...@@ -647,11 +647,12 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev) ...@@ -647,11 +647,12 @@ rpl_parallel::do_event(rpl_group_info *serial_rgi, Log_event *ev)
still executing the first ones, to be able to start executing a large still executing the first ones, to be able to start executing a large
event group without having to wait for the end to be fetched from the event group without having to wait for the end to be fetched from the
master. And we continue to queue up more events after the first group, master. And we continue to queue up more events after the first group,
avoiding the overhead of worker threads constantly entering and so that we can continue to process subsequent parts of the relay log in
leaving the worker thread free list. parallel without having to wait for previous long-running events to
complete.
But if the worker thread is idle at any point, it may return to the But if the worker thread is idle at any point, it may return to the
idle list or be servicing a different request. So check this, and idle list or start servicing a different request. So check this, and
allocate a new thread if the old one is no longer processing for us. allocate a new thread if the old one is no longer processing for us.
*/ */
cur_thread= e->rpl_thread; cur_thread= e->rpl_thread;
......
...@@ -57,6 +57,10 @@ struct rpl_parallel_entry { ...@@ -57,6 +57,10 @@ struct rpl_parallel_entry {
uint64 last_committed_sub_id; uint64 last_committed_sub_id;
mysql_mutex_t LOCK_parallel_entry; mysql_mutex_t LOCK_parallel_entry;
mysql_cond_t COND_parallel_entry; mysql_cond_t COND_parallel_entry;
/*
The sub_id of the last event group in this replication domain that was
queued for execution by a worker thread.
*/
uint64 current_sub_id; uint64 current_sub_id;
rpl_group_info *current_group_info; rpl_group_info *current_group_info;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment