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

quincy: rgw: make incomplete multipart upload part of bucket check efficient #57405

Open
wants to merge 2 commits into
base: quincy
Choose a base branch
from

Conversation

ivancich
Copy link
Member

backport tracker: https://tracker.ceph.com/issues/65891


backport of #57083
parent tracker: https://tracker.ceph.com/issues/65769

this backport was staged using ceph-backport.sh version 16.0.0.6848
find the latest version at https://github.com/ceph/ceph/blob/master/src/script/ceph-backport.sh

Previously the incomplete multipart portion of bucket check would list
all entries in the _multipart_ namespace across all shards and then
analyze them in memory before taking further action.

Since all index entries for a given multipart upload are all on the
same shard by design, we can work on this asynchronously shard by
shard. Furthermore since all entries for a given multipart upload are
sequential in the bucket index, we can use a small window to analyze
each of the uploads.

This should make the operation quicker and use much less memory in the
worst cases.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>

(cherry picked from commit ebe9893)

    Conflicts:
        src/rgw/driver/rados/rgw_bucket.{cc,h}
            - located in src/rgw
	    - small adjustments due to zipper progress
…m bi

As one of the steps in `radosgw-admin bucket check --fix ...` it looks
for bucket index entries for incomplete multipart uploads that do not
have a corresponding ".meta" entry in the same bucket index. It then
intends to delete those entries, however the function that it calls
to perform the bucket index deletions was flawed and did not direct
the removals to the appropriate shard(s), but instead a non-existant
oid.

This commit determines the appropriate shard for each of the entries
to be removed and asynchronously issues a librados call to
omap_rm_keys.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit 0521c2a)

    Conflicts:
        src/rgw/driver/rados/rgw_rados.cc
            - remove bitx debugging
@ivancich
Copy link
Member Author

After multiple tries I was unable to get a clean build on shaman, so I'm going to drop my QA attempt and let this be done through the standard process.

@ivancich ivancich removed the wip-eric-testing-1 for ivancich testing label May 20, 2024
@cbodley
Copy link
Contributor

cbodley commented May 20, 2024

After multiple tries I was unable to get a clean build on shaman, so I'm going to drop my QA attempt and let this be done through the standard process.

thanks @ivancich. it looks like the centos 9 builds are failing because they're running some new ceph-container logic that they shouldn't be

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants