- PXC#489: GTID holes created on cluster peers of async slave node (CID#62236)
Issue:
-----
Let's understand the issue using a topology.
- Independent Master
- Galera Nodes (node#1 and node#2).
- Node#1 is acting as async-slave to Independent Master.
Let's say user execute some action on node#1 these action will get replicated
in galera-eco-system but at same time it is data is being modified directly
on slave putting slave out of sync from master.
Now same action is executed on master. This action is replicated to slave
but given that slave already has executed the action slave would raise and
error. This is can be handled by installed error handler that would allow
slave to suppress such errors.
There are other use-cases where-in "UPDATE" can cause same record to update
to same value in which case UPDATE simply doesn't execute the action on slave.
In all such cases even though action is suppressed GTID sequence update
still needs to get replicated in galera-eco-system as it is done in
Master-Slave eco-system.
(There could be different views on whether event in master-slave eco-system
should be propogated to galera-eco-system but let's for now assume
this is needed).
Solution:
---------
When such a situation arise in Master-Slave eco-system, Slave will create
an empty GTID event that is then replicated if Slave is acting as Master
to some other Slave.
Galera will follow the same. Such empty GTID event will now also be replicated
in Galera eco-system.
commit 71bf847450c8dc9 b1e5992cf4d5b08 58ac77646e
Merge: f6f18fc 8181e9e
Author: Krunal Bauskar <email address hidden>
Date: Wed Jan 20 11:55:41 2016 +0530
Merge pull request #79 from kbauskar/ 5.6-pxc- 489
- PXC#489: GTID holes created on cluster peers of async slave node (C…
commit 8181e9e9efe5a99 3977890f3c000d0 88fb7fd9b8
Author: Krunal Bauskar <email address hidden>
Date: Mon Jan 18 14:36:33 2016 +0530
- PXC#489: GTID holes created on cluster peers of async slave node (CID#62236)
Issue:
-----
Let's understand the issue using a topology.
- Independent Master
- Galera Nodes (node#1 and node#2).
- Node#1 is acting as async-slave to Independent Master.
Let's say user execute some action on node#1 these action will get replicated
in galera-eco-system but at same time it is data is being modified directly
on slave putting slave out of sync from master.
Now same action is executed on master. This action is replicated to slave
but given that slave already has executed the action slave would raise and
error. This is can be handled by installed error handler that would allow
slave to suppress such errors.
There are other use-cases where-in "UPDATE" can cause same record to update
to same value in which case UPDATE simply doesn't execute the action on slave.
In all such cases even though action is suppressed GTID sequence update
still needs to get replicated in galera-eco-system as it is done in
Master-Slave eco-system.
(There could be different views on whether event in master-slave eco-system
should be propogated to galera-eco-system but let's for now assume
this is needed).
Solution:
---------
When such a situation arise in Master-Slave eco-system, Slave will create
an empty GTID event that is then replicated if Slave is acting as Master
to some other Slave.
Galera will follow the same. Such empty GTID event will now also be replicated
in Galera eco-system.