Cross-replica atomicity and coordination
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 598
- Forks
- 168
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 86
Description
Is your feature request related to a problem? Please describe.
Various replicas of an Pulp instance can update out-of-sync with each other.
Describe the solution you'd like
As a "next step" to https://github.com/pulp/pulpcore/issues/7333, which enabled intra-replica atomicity, it would be nice if distribution updates could be co-ordinated across replicas such that all replicas would update their distributed content sets simultaneously and atomically.
There is also a potential use case for the final distribution update to optionally be separate and manually triggered - as this would allow the external management application to trigger replication on a number of replicas and once all replicas report that they are ready to update their distributions, that external application can trigger that distribution update on all replicas simultaneously.
Challenges: coordination of large systems is always difficult
- how are failures handled and propagated?
- does a failed or stuck replica become a problem for the entire replica ecosystem?
- should this be optional, should there be an override for emergency situations where one might not want to wait or be denied access to updated content over coordination issues?
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context about the feature request here.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading issue #7333 to understand the existing intra-replica atomicity model. Investigate how distribution updates and replica state are coordinated, then define failure handling, optional coordination, overrides, and the externally triggered final update before identifying implementation entry points and tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100