cockroachdb / cockroachdb/cockroach
loqrecovery: meta ranges only reconciled during upreplication
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
Following loss of quorum recovery, we rely on upreplication to update the meta ranges with the new range descriptor. However, we're not always able to upreplicate. The trivial example is when recovering 1 node out of a 3-node cluster, but the same happens when recovering 2 nodes out of 4 (since we don't allow fragile RF=2 quorums), or when there are replication constraints.
This means that e.g. `crdb_ranges` or `SHOW RANGES` will still show the old range descriptor from before the recovery. Systems that rely on the meta information will also be affected.
We should make sure the meta descriptors are updated following recovery even when we can't upreplicate, for example by having the replicate queue reconcile them.
Jira issue: CRDB-25176
Contributor guide
Research direction
Start with the replicate queue and its recovery path after loss of quorum, focusing on cases where upreplication is unavailable. Trace how meta descriptors are reconciled, then verify that crdb_ranges and SHOW RANGES report the post-recovery descriptor for the one-of-three and two-of-four recovery scenarios, including replication constraints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100