summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.h
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2014-03-12 00:14:49 +0100
committerunknown <knielsen@knielsen-hq.org>2014-03-12 00:14:49 +0100
commit8b9b7ec395df111f886224a565b63a1a312e5679 (patch)
treea44e2719f727964a854ed9c45e26e7314f6b62a4 /sql/rpl_rli.h
parent2c2478b82260f5110ea2c5bed3c6c7bcd3558453 (diff)
downloadmariadb-git-8b9b7ec395df111f886224a565b63a1a312e5679.tar.gz
MDEV-5804: If same GTID is received on multiple master connections in multi-source replication, the event is double-executed causing corruption or replication failure
Some fixes, mainly to make it work in non-parallel replication mode also (--slave-parallel-threads=0). Patch should be fairly complete now.
Diffstat (limited to 'sql/rpl_rli.h')
-rw-r--r--sql/rpl_rli.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index 6db4ce5d61b..100ce25fe9c 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -575,6 +575,20 @@ struct rpl_group_info
counting one event group twice.
*/
bool did_mark_start_commit;
+ enum {
+ GTID_DUPLICATE_NULL=0,
+ GTID_DUPLICATE_IGNORE=1,
+ GTID_DUPLICATE_OWNER=2
+ };
+ /*
+ When --gtid-ignore-duplicates, this is set to one of the above three
+ values:
+ GTID_DUPLICATE_NULL - Not using --gtid-ignore-duplicates.
+ GTID_DUPLICATE_IGNORE - This gtid already applied, skip the event group.
+ GTID_DUPLICATE_OWNER - We are the current owner of the domain, and must
+ apply the event group and then release the domain.
+ */
+ uint8 gtid_ignore_duplicate_state;
/*
Runtime state for printing a note when slave is taking