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

Simplfy min replicas #272

Merged
merged 4 commits into from
Jul 1, 2024
Merged

Simplfy min replicas #272

merged 4 commits into from
Jul 1, 2024

Conversation

nolancon
Copy link
Collaborator

@nolancon nolancon commented Jun 27, 2024

Description of your changes

Previously, min-replicas applied to the number of backends on which the bucket should be updated before it can be considered Synced. This change means that min-replicas now applies to the number of backends on which the bucket should be created before it can be considered Ready. This means we only consider a bucket Synced when it is successfully updated on all backends.

The reason for the change is that with the introduction of more sub-resources such as Versioning (and planned Locking), it is problematic to consider a Bucket to be Synced if sub resources such as Versioning have not been enforced on all backends. We need to avoid a situation where, for example, a Bucket is considered Synced, but of it's three backends Versioning has been enabled on backends 1 and 2, while Locking has been enabled on backends 2 and 3. If the Bucket is then paused, the Bucket will be stuck in this scenario but seen as Synced by the user.

The easiest remedy is to simplify this process and only consider a bucket Synced once it is available on all backends, and only then pause the bucket (should auto-pause be enabled).

I have:

  • Run make reviewable to ensure this PR is ready for review.
  • Run make ceph-chainsaw to validate these changes against Ceph. This step is not always necessary. However, for changes related to S3 calls it is sensible to validate against an actual Ceph cluster. Localstack is used in our CI Chainsaw suite for convenience and there can be disparity in S3 behaviours betwee it and Ceph. See docs/TESTING.md for information on how to run tests against a Ceph cluster.
  • Added backport release-x.y labels to auto-backport this PR if necessary.

How has this code been tested

Updated chainsaw and a lot of unit tests

nolancon added 3 commits June 28, 2024 09:51
- Make min replicas reponsible for Ready status not Synced
- Remove min-replicas from autopause check
- Only pause when Ready and Synced
@nolancon nolancon changed the title Min replicas Simplfy min replicas Jun 28, 2024
@nolancon nolancon marked this pull request as ready for review June 28, 2024 10:48
@nolancon nolancon requested review from mhmxs and Shunpoco June 28, 2024 10:48
@nolancon nolancon merged commit faa7d30 into main Jul 1, 2024
10 checks passed
@nolancon nolancon deleted the min-replicas branch July 1, 2024 09:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants