summaryrefslogtreecommitdiff
path: root/sql/rpl_parallel.h
Commit message (Collapse)AuthorAgeFilesLines
...
* MDEV-4506: Parallel replication.unknown2013-10-231-0/+3
| | | | | | | | | | | | | | | | | | | | Fix some more parts of old-style position updates. Now we save in rgi some coordinates for master log and relay log, so that in do_update_pos() we can use the right set of coordinates with the right events. The Rotate_log_event::do_update_pos() is fixed in the parallel case to not directly update relay-log.info (as Rotate event runs directly in the driver SQL thread, ahead of actual event execution). Instead, group_master_log_file is updated as part of do_update_pos() in each event execution. In the parallel case, position updates happen in parallel without any ordering, but taking care that position is not updated backwards. Since position update happens only after event execution this leads to the right result. Also fix an access-after-free introduced in an earlier commit.
* MDEV-4506: Parallel replication: Intermediate commit.unknown2013-10-171-0/+1
| | | | | | | | | | | | | Fix some part of update of old-style coordinates in parallel replication: - Ignore XtraDB request for old-style coordinates, not meaningful for parallel replication (must use GTID to get crash-safe parallel slave). - Only update relay log coordinates forward, not backwards, to ensure that parallel threads do not conflict with each other. - Move future_event_relay_log_pos to rgi.
* MDEV-4506: Parallel replication.unknown2013-10-081-0/+1
| | | | | | | | | Improve STOP SLAVE in parallel mode. Now, the parallel part will queue the current event group to the end, and then stop queing any more events. Each worker will complete the current event group, and then just skip any further queued events.
* MDEV-4506: Parallel replication. .result file updates + a few comment updates.unknown2013-09-301-0/+4
|
* MDEV-4506: Parallel replication: After-review fixes.unknown2013-09-231-1/+0
|
* MDEV-4506: Parallel replication.unknown2013-09-171-0/+1
| | | | | Add another test case, using DEBUG_SYNC. Fix one bug found.
* MDEV-4506, parallel replication.unknown2013-09-131-3/+3
| | | | Some after-review fixes.
* MDEV-4506: Parallel replication: intermediate commit.unknown2013-07-081-1/+10
| | | | | | | | | 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.
* MDEV-4506: Parallel replication: Intermediate commit.unknown2013-07-051-1/+0
| | | | | | | | | | | | | | Impement options --binlog-commit-wait-count and --binlog-commit-wait-usec. These options permit the DBA to deliberately increase latency of an individual commit to get more transactions in each binlog group commit. This increases the opportunity for parallel replication on the slave, and can also decrease I/O load on the master. The options also make it easier to test the parallel replication with mysql-test-run.
* MDEV-4506: Parallel replication: Intermediate commit.unknown2013-07-041-0/+3
| | | | | | Wait for all worker threads to finish when stopping the SQL thread. (Only a basic wait; this still needs to be fixed to include timeout logic as in sql_slave_killed()).
* MDEV-4506: Parallel replication. Intermediate commit.unknown2013-07-031-2/+9
| | | | | | | | Hook in the wait-for-prior-commit logic (not really tested yet). Clean up some resource maintenance around rpl_group_info (may still be some smaller issues there though). Add a ToDo list at the top of rpl_parallel.cc
* MDEV-4506: Parallel replication: Intermediate commit.unknown2013-06-281-1/+1
| | | | | 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.
* MDEV-4506: Parallel replication of group-committed transactions: ↵unknown2013-06-241-0/+74
Intermediate commit First very rough sketch. We spawn and retire a pool of slave threads. Test main.alias works, most likely not much else does.