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

[DARGA] Backport pglogical replication enhancements for replication set locking #12513

Merged
merged 11 commits into from Dec 14, 2016

Conversation

carbonin
Copy link
Member

@carbonin carbonin commented Nov 8, 2016

This is a backport for some issues with pglogical replication in the darga release.

In particular this backports the locking mechanism for editing the replication set which solves worker failures when the workers are adding or removing tables from the replication set concurrently.

There were some additional dependent changes that needed to also come back for this cherry-pick to apply cleanly.

The PRs backported by this PR are:

https://bugzilla.redhat.com/show_bug.cgi?id=1391997

@gtanzillo please review
/cc @chessbyte What should I do with the labels on the referenced PRs?

This allows for a more complete "reset" when removing the node
that will be sure to remove all data from the previous installation.
These specs cover the cases where the provider node is not yet
created.
…ansaction

This will allow us to rollback the whole process if something
bad happens while creating the replication set (like a unique
constraint error).

After this change we will no longer see the replication type as
"Remote" when we fail to cleanly create the provider node.

https://bugzilla.redhat.com/show_bug.cgi?id=1380475
…tion set

If we try to add a table that is already present in the set, we should
not fail the creation of the node in the region.

This way, the setup can continue to add other tables that may not
have been added before.

https://bugzilla.redhat.com/show_bug.cgi?id=1380475
This will be useful for dealing with separate processes (possibly
also running on separate servers) which may try to add or remove
tables from the set concurrently.
Some issues have been reported with this, and this will help
debugging.
This will prevent multiple processes from executing this logic
at the same time which will prevent us from adding a table that
is already included in the set or removing a table that is not in
the set.

https://bugzilla.redhat.com/show_bug.cgi?id=1387420
…#refresh_excludes

This is no longer needed as we will always take a lock around this logic.
@miq-bot
Copy link
Member

miq-bot commented Nov 8, 2016

Checked commits carbonin/manageiq@a477f63~...963959c with ruby 2.2.5, rubocop 0.37.2, and haml-lint 0.16.1
6 files checked, 0 offenses detected
Everything looks good. 🍪

@gtanzillo
Copy link
Member

👍 Looks good!

@chessbyte chessbyte merged commit 2ff0913 into ManageIQ:darga Dec 14, 2016
@chessbyte chessbyte added this to the Sprint 51 Ending Jan 2, 2017 milestone Dec 14, 2016
@carbonin carbonin deleted the backport_pgl_locking branch March 7, 2017 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants