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

migrater: reverse_replication and other solidification #5325

Merged
merged 7 commits into from
Oct 24, 2019

Conversation

sougou
Copy link
Contributor

@sougou sougou commented Oct 19, 2019

The previous implementation only created the reverse replication streams, but there was no option to start them. This change introduces the flag and the functionality to start the reverse replication.

The overall order of operations have been adjusted to make more logical sense with respect to reverse replication.

The reverse replication now receives a more user friendly reverse_workflow name which makes things more understandable.

This change also addresses a special corner case: once the migration is fully done, the last action is to delete the target vreplication streams. But if this operation fails partially, the user has to manually delete the left over streams. Re-attempting the migrate command will likely result in errors about the streams being inconsistent. This delete is now done in two phases: First, the streams are marked as frozen, and then deleted. This also gives us the opportunity to check for this flag right at the beginning. If we detect that any of the streams are frozen, we directly skip forward and just delete the left over streams.

The migration cancel has also been hardened. It now performs the cancel based on the original data structures that were built. The previous algorithm of re-reading the data separately was confusing and less maintainable.

Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
@sougou sougou requested a review from deepthi October 19, 2019 21:35
Copy link
Member

@deepthi deepthi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good except for a minor doc fix.

@@ -157,34 +176,43 @@ func (wr *Wrangler) MigrateWrites(ctx context.Context, targetKeyspace, workflow
defer targetUnlock(&err)
}

journalsExist, err := mi.checkJournals(ctx)
// If not journals exist, sourceWorkflows will be initialized by sm.MigrateStreams.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If journals don't exist

Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
@sougou sougou merged commit 16e07b8 into vitessio:master Oct 24, 2019
@sougou sougou deleted the ss-vrepl-reverse branch October 24, 2019 06:02
systay pushed a commit that referenced this pull request Jul 22, 2024
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.

2 participants