summaryrefslogtreecommitdiff
path: root/include/mysql/plugin.h
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2014-03-21 13:30:55 +0100
committerunknown <knielsen@knielsen-hq.org>2014-03-21 13:30:55 +0100
commitb35296911886143267ea471530e701169e5f7f56 (patch)
treec5a824c6e873a0ce46a0058aed3d00fbdbebf3d4 /include/mysql/plugin.h
parenta5418c5540f06e2ec4016734e9f1cc5c50c01de0 (diff)
downloadmariadb-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.h1
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.