diff options
author | unknown <knielsen@knielsen-hq.org> | 2014-03-21 13:30:55 +0100 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2014-03-21 13:30:55 +0100 |
commit | b35296911886143267ea471530e701169e5f7f56 (patch) | |
tree | c5a824c6e873a0ce46a0058aed3d00fbdbebf3d4 /include/mysql/plugin.h | |
parent | a5418c5540f06e2ec4016734e9f1cc5c50c01de0 (diff) | |
download | mariadb-git-b35296911886143267ea471530e701169e5f7f56.tar.gz |
MDEV-5914: Parallel replication deadlock due to InnoDB lock conflicts
Due to how gap locks work, two transactions could group commit together on the
master, but get lock conflicts and then deadlock due to different thread
scheduling order on slave.
For now, remove these deadlocks by running the parallel slave in READ
COMMITTED mode. And let InnoDB/XtraDB allow statement-based binlogging for the
parallel slave in READ COMMITTED.
We are also investigating a different solution long-term, which is based on
relaxing the gap locks only between the transactions running in parallel for
one slave, but not against possibly external transactions.
Diffstat (limited to 'include/mysql/plugin.h')
-rw-r--r-- | include/mysql/plugin.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h index 8e8229d6630..ceb6ac93ff5 100644 --- a/include/mysql/plugin.h +++ b/include/mysql/plugin.h @@ -622,6 +622,7 @@ void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton); void thd_storage_lock_wait(MYSQL_THD thd, long long value); int thd_tx_isolation(const MYSQL_THD thd); int thd_tx_is_read_only(const MYSQL_THD thd); +int thd_rpl_is_parallel(const MYSQL_THD thd); /** Create a temporary file. |