Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support --checksum-data flag, on-the-fly checksum verification #4

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

shlomi-noach
Copy link

This PR introduces --checksum-data, an opt-in checksum verification that runs throughout the migration.

With --checksum-data enabled, each rowcopy (a range of rows copied from the original table to the ghost table) is followed by a checksum on the two tables for that range.

Checksums are executed concurrently to rowcopy and are the exception to the single thread model for gh-ost.

A checksum may well fail while the migration is running: since gh-ost works in async design, where binlog entries are applied at some point in time after they're generated, it's quite possible that ongoing traffic will make some checksums fail.

A failed range's checksum is retried and retried until successful.

When --checksum-data is enabled, cut-over does not complete if failed checksums are found. While tables are locked in preparation for cut-over, a grace period is given so that the checksum evaluation can run to completion.

This is experimental.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant