1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-6676: Optimistic parallel replication

Implement a new mode for parallel replication. In this mode, all transactions
are optimistically attempted applied in parallel. In case of conflicts, the
offending transaction is rolled back and retried later non-parallel.

This is an early-release patch to facilitate testing, more changes to user
interface / options will be expected. The new mode is not enabled by default.
This commit is contained in:
Kristian Nielsen
2014-12-05 16:09:48 +01:00
parent 1e3f09f163
commit db21fddc37
55 changed files with 2596 additions and 466 deletions

View File

@ -0,0 +1,41 @@
SET SESSION slave_parallel_mode= '';
ERROR HY000: Variable 'slave_parallel_mode' is a GLOBAL variable and should be set with SET GLOBAL
SELECT @@slave_parallel_mode;
@@slave_parallel_mode
domain
SELECT @@m1.slave_parallel_mode;
ERROR HY000: There is no master connection 'm1'
CHANGE MASTER TO master_host='127.0.0.1', master_port=3310, master_user='root';
SELECT @@``.slave_parallel_mode;
@@``.slave_parallel_mode
domain
SELECT @@slave_parallel_mode;
@@slave_parallel_mode
domain
Parallel_Mode = 'domain'
SELECT @@m2.slave_parallel_mode;
ERROR HY000: There is no master connection 'm2'
SET GLOBAL m2.slave_parallel_mode = '';
ERROR HY000: There is no master connection 'm2'
CHANGE MASTER 'm1' TO master_host='127.0.0.1', master_port=3311, master_user='root';
SELECT @@m1.slave_parallel_mode;
@@m1.slave_parallel_mode
transactional
Parallel_Mode = 'domain'
SET GLOBAL m1.slave_parallel_mode= follow_master_commit;
Parallel_Mode = 'domain'
SET default_master_connection= 'm1';
SELECT @@slave_parallel_mode;
@@slave_parallel_mode
follow_master_commit
SET GLOBAL slave_parallel_mode= waiting;
SELECT @@slave_parallel_mode;
@@slave_parallel_mode
waiting
Parallel_Mode = 'waiting'
SET default_master_connection= '';
SELECT @@slave_parallel_mode;
@@slave_parallel_mode
domain
RESET SLAVE ALL;
RESET SLAVE 'm1' ALL;