From 72092a63aa378af4b700ed8d24fdb32e232c2cb8 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Sat, 19 Oct 2024 11:49:06 +0100 Subject: [PATCH] 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 --- src/rgw/driver/rados/rgw_rados.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/rgw/driver/rados/rgw_rados.cc b/src/rgw/driver/rados/rgw_rados.cc index 68e91cdefe8a..a18b8e4640b6 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(); -- 2.47.3