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

loqrecovery: when performing loss of quorum recovery use NON_VOTER replicas if no VOTERs survived #80620

Open
aliher1911 opened this issue Apr 27, 2022 · 1 comment
Labels
A-kv-replication Relating to Raft, consensus, and coordination. C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-kv-replication KV Replication Team

Comments

@aliher1911
Copy link
Contributor

aliher1911 commented Apr 27, 2022

Is your feature request related to a problem? Please describe.
Currently loss of quorum recovery only uses VOTERs or INCOMING_VOTERs as candidates for survivors.
Consider the scenario where we have regional by row table and all voters are in primary region but we also have follower reads in other regions. If primary region for a range is lost, we still have the data in other regions, but existing recovery procedures ignore them.

Describe the solution you'd like
Since followers contain all the data with only difference that it could be lagging further behind is it better than having no data at all. We should consider those if we don't have any voter candidates.

Note that this change is not straightforward as simply marking a follower as voter is not enough. DistSender won't route requests to them and up-replication won't happen either.
We could consider this as half online approach where we can do things like manipulate meta2 ranges or change DistSender.

Jira issue: CRDB-15578

Epic CRDB-14205

@aliher1911 aliher1911 added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) A-kv-replication Relating to Raft, consensus, and coordination. T-kv-replication KV Replication Team labels Apr 27, 2022
@aliher1911 aliher1911 added this to Incoming in Replication via automation Apr 27, 2022
@erikgrinaker erikgrinaker changed the title when performing loss of quorum recovery use NON_VOTER replicas if no VOTERs survived loqrecovery: when performing loss of quorum recovery use NON_VOTER replicas if no VOTERs survived May 5, 2022
@mwang1026 mwang1026 moved this from Incoming to 22.2 in Replication May 5, 2022
@jlinder jlinder added sync-me and removed sync-me labels May 20, 2022
Copy link

We have marked this issue as stale because it has been inactive for
18 months. If this issue is still relevant, removing the stale label
or adding a comment will keep it active. Otherwise, we'll close it in
10 days to keep the issue queue tidy. Thank you for your contribution
to CockroachDB!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-kv-replication Relating to Raft, consensus, and coordination. C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-kv-replication KV Replication Team
Projects
None yet
Development

No branches or pull requests

2 participants