Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Currently, MariaDB doesn't automatically do anything to ensure a master and slave's data is consistent. Data inconsistencies will only be found when applying events, i.e. where the assumed state of a replica before applying an event isn't true. For example, if replicating an update rows event where the update targets some PK that doesn't actually exist on the replica when applying the event.
A few ideas have been discussed to periodically ensure the data on the master and slave is consistent:
1. Extend {{Rows_log_event}}s to optionally contain the neighborhood of records surrounding the target record, which the slave would verify are consistent. This neighborhood wouldn't be filled for each Rows log event generated, just some, based on some condition, e.g. time and location based. Alternatively, instead of the actual data of the records, checksums could be calculated to reduce IO.
2. Similar to (1), but instead of re-using an existing Rows_log_event, create a new event type that describes a range of data. There could also be a command to manually run on the master to trigger the consistency checks & events to be generated
Attachments
Issue Links
- relates to
-
MDEV-29796 Auto-generated DELETE for MEMORY/HEAP table can break GTID-based replication
-
- Confirmed
-