Bug #62646
closedRGW Swift info not providing max_deletes_per_request in bulk_delete section
0%
Description
RGW implements the info endpoint for the Swift protocol - this was added with https://github.com/ceph/ceph/commit/277079da3c57f61221254f266b698ab3962ef87c
Currently the Ceph RADOSGW presents a key bulk_delete
with no subkeys or values:
{ "bulk_delete": {}, "container_quotas": {}, "swift": { "max_file_size": 5368709120, "container_listing_limit": 10000, "version": "17.2.6", "policies": [ { "default": true, "name": "default-placement" } ], "max_object_name_size": 1024, "strict_cors_mode": true, "max_container_name_length": 255 }, "tempurl": { "methods": [ "GET", "HEAD", "PUT", "POST", "DELETE" ] }, "slo": { "max_manifest_segments": 1000 }, "account_quotas": {}, "staticweb": {}, "tempauth": { "account_acls": true } }
If you compare this to what OpenStack Swift implements at https://github.com/openstack/swift/blame/191b627b856bc2e8eaa4049521e3476bf29ed40c/swift/common/middleware/bulk.py#L773 or documents at https://github.com/openstack/python-swiftclient/blob/54fbfa8bc9c10feb48fbce843d6ba6fcf6533ece/doc/source/service-api.rst#capabilities (at least) the keys max_deletes_per_request
and max_failed_deletes
are missing.
While Swift clients might(!) enable bulk_delete operations they are unable to determine how many deletes can actually be issued and have to fall back to some default, sane or not.
- https://opendev.org/openstack/openstacksdk/src/commit/48eaeab93dae9392d68dc2b75a855d239cea2062/openstack/object_store/v1/_proxy.py#L1154
- https://opendev.org/openstack/python-swiftclient/src/commit/54fbfa8bc9c10feb48fbce843d6ba6fcf6533ece/swiftclient/service.py#L2562
Presenting these limits correctly to Swift clients should be rather easy but potentially speed up bulk_deletes.