mariadb/storage
Kristian Nielsen 184f718fef MDEV-7249: Performance problem in parallel replication with multi-level slaves
Parallel replication (in 10.0 / "conservative" mode) relies on binlog group
commits to group transactions that can be safely run in parallel on the
slave. The --binlog-commit-wait-count and --binlog-commit-wait-usec options
exist to increase the number of commits per group. But in case of conflicts
between transactions, this can cause unnecessary delay and reduced througput,
especially on a slave where commit order is fixed.

This patch adds a heuristics to reduce this problem. When transaction T1 goes
to commit, it will first wait for N transactions to queue up for a group
commit. However, if we detect that another transaction T2 is waiting for a row
lock held by T1, then we will skip the wait and let T1 commit immediately,
releasing locks and let T2 continue.

On a slave, this avoids the unfortunate situation where T1 is waiting for T2
to join the group commit, but T2 is waiting for T1 to release locks, causing
no work to be done for the duration of the --binlog-commit-wait-usec timeout.

(The heuristic seems reasonable on the master as well, so it is enabled for
all transactions, not just replication transactions).
2015-03-13 14:01:52 +01:00
..
archive MDEV-5120 Test suite test maria-no-logging fails 2014-09-30 20:31:14 +03:00
blackhole MDEV-5120 Test suite test maria-no-logging fails 2014-09-30 20:31:14 +03:00
cassandra compilation failure: ha_cassandra 2014-10-11 09:09:18 +02:00
connect fix connect.json_udf test for static builds 2015-03-06 20:49:48 +01:00
csv MDEV-5120 Test suite test maria-no-logging fails 2014-09-30 20:31:14 +03:00
example 5.5.40+ merge 2014-10-09 10:30:11 +02:00
federated Merge branch '5.5' into 10.0 2015-02-18 15:16:27 +01:00
federatedx 5.5.40+ merge 2014-10-09 10:30:11 +02:00
heap 5.5.40+ merge 2014-10-09 10:30:11 +02:00
innobase MDEV-7249: Performance problem in parallel replication with multi-level slaves 2015-03-13 14:01:52 +01:00
maria 5.5 merge 2015-01-21 12:03:02 +01:00
mroonga fix mroonga to compile w/o performance schema 2015-02-24 15:54:59 +01:00
myisam 5.5 merge 2015-01-21 12:03:02 +01:00
myisammrg Storage engines tests: ALTER ONLINE works differently for MERGE in 10.0 2014-12-05 21:38:16 +04:00
ndb mysql-5.5.37 selective merge 2014-03-27 22:26:58 +01:00
oqgraph MDEV-7351 5.5 build fails on Ubuntu Utopic in buildbot 2015-02-09 20:53:28 +01:00
perfschema P_S 5.6.22 2015-01-21 14:53:40 +01:00
sequence 5.5.40+ merge 2014-10-09 10:30:11 +02:00
sphinx MDEV-5539 Empty results in UNION with Sphinx engine 2014-12-30 17:10:54 +02:00
spider Merge Spider 3.2.18 2015-02-20 00:41:26 +09:00
test_sql_discovery MDEV-4955 discover of table non-existance on CREATE 2014-02-27 22:43:42 +01:00
tokudb Merge branch '5.5' into 10.0 2015-03-06 18:41:32 +01:00
xtradb MDEV-7249: Performance problem in parallel replication with multi-level slaves 2015-03-13 14:01:52 +01:00