From: Mykola Golub Date: Sat, 19 Oct 2024 10:49:06 +0000 (+0100) Subject: rgw: trigger resharding of versioned buckets sooner X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=72092a63aa378af4b700ed8d24fdb32e232c2cb8;p=ceph.git rgw: trigger resharding of versioned buckets sooner Versioned buckets require more keys per object. Fixes: https://tracker.ceph.com/issues/68206 Signed-off-by: Mykola Golub (cherry picked from commit b45f65615d3415b90b48efdb1c4d2c3995316582) Conflicts: src/rgw/driver/rados/rgw_rados.cc src/rgw/driver/rados/rgw_rados.h src/rgw/driver/rados/rgw_reshard.cc calculate_preferred_shards() changes from #57538 not on squid --- diff --git a/src/rgw/driver/rados/rgw_rados.cc b/src/rgw/driver/rados/rgw_rados.cc index 68e91cdefe8a0..a18b8e4640b68 100644 --- a/src/rgw/driver/rados/rgw_rados.cc +++ b/src/rgw/driver/rados/rgw_rados.cc @@ -10512,9 +10512,16 @@ int RGWRados::check_bucket_shards(const RGWBucketInfo& bucket_info, } uint32_t suggested_num_shards = 0; - const uint64_t max_objs_per_shard = + uint64_t max_objs_per_shard = cct->_conf.get_val("rgw_max_objs_per_shard"); + if (bucket_info.versioning_enabled()) { + // Since each versioned bucket requires 4 entries for the first object + // and 2 additional entries for each additional object, we want to + // trigger resharding sooner. + max_objs_per_shard /= 3; + } + // TODO: consider per-bucket sync policy here? const bool is_multisite = svc.zone->need_to_log_data();