pulp / pulp/pulpcore

Cross-replica atomicity and coordination

Open
#7,485 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.