Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Hi,
When using GTID replication from a Galera cluster it is useful have a positioning feature that for a certain domain ID always the newest GTID known by the server is used.
In the Galera + GTID documentation it is recommended to have a unique gtid_domain_id on each cluster member, and another domain (the same for the cluster) configured as wsrep_gtid_domain_id. This is because some transactions can cause a local GTID that is not replicated to the rest of the cluster. For example a rolling schema upgrade.
So, we can have a situation with 2 cluster members. Each cluster member have domain A and B, and the cluster has domain G. All relevant changes occur on domain G. "Local" changes on domains A and B are very, very rare.
The replica connects to one of the cluster members through a load balancer. It receives schema changes through the replication stream on domain A. It receives all the cluster traffic on domain G. Then, it fails over to another cluster member. It signs on with the request to include domains A and B at their current (newest) position, and domain G at a specific position.
This way, it will not get the schema changes twice (on domain A and B), setting up replication will work. There is a tiny risk of a schema change not picked up but this outweighs not being able to replicate anymore because (when first replicating from the node serving domain A) the position of domain B is missing in the replica's negotiation to node B.
Thank you for taking this into consideration,
Michael
Attachments
Issue Links
- is caused by
-
MDEV-34485 Ignored GTID domain IDs still appear in gtid_slave_pos
- Open
- relates to
-
MDEV-34487 GTID positioning: Ignore filtered domain ids
- Open