From: Casey Bodley Date: Fri, 15 Nov 2024 21:13:59 +0000 (-0500) Subject: rgw/rados: move trim_reshard_log() from RGWRados to RGWSI_BucketIndex_RADOS X-Git-Tag: testing/wip-vshankar-testing-20250411.090237-debug~31^2~5 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=22f5e506c4a1370bf0bce6d883a4d0f1b45061d2;p=ceph-ci.git rgw/rados: move trim_reshard_log() from RGWRados to RGWSI_BucketIndex_RADOS Signed-off-by: Casey Bodley --- diff --git a/src/rgw/driver/rados/rgw_rados.cc b/src/rgw/driver/rados/rgw_rados.cc index 2b3c0ffddf8..3b1bbadda65 100644 --- a/src/rgw/driver/rados/rgw_rados.cc +++ b/src/rgw/driver/rados/rgw_rados.cc @@ -9938,18 +9938,6 @@ int RGWRados::bi_remove(const DoutPrefixProvider *dpp, BucketShard& bs) return 0; } -int RGWRados::trim_reshard_log_entries(const DoutPrefixProvider *dpp, RGWBucketInfo& bucket_info, optional_yield y) -{ - librados::IoCtx index_pool; - map bucket_objs; - - int r = svc.bi_rados->open_bucket_index(dpp, bucket_info, std::nullopt, bucket_info.layout.current_index, &index_pool, &bucket_objs, nullptr); - if (r < 0) { - return r; - } - return CLSRGWIssueReshardLogTrim(index_pool, bucket_objs, cct->_conf->rgw_bucket_index_max_aio)(); -} - int RGWRados::gc_operate(const DoutPrefixProvider *dpp, string& oid, librados::ObjectWriteOperation&& op, optional_yield y) { return rgw_rados_operate(dpp, gc_pool_ctx, oid, std::move(op), y); diff --git a/src/rgw/driver/rados/rgw_rados.h b/src/rgw/driver/rados/rgw_rados.h index eda57dc97c0..9afe35be4c3 100644 --- a/src/rgw/driver/rados/rgw_rados.h +++ b/src/rgw/driver/rados/rgw_rados.h @@ -1564,7 +1564,6 @@ public: std::list *entries, bool *is_truncated, bool reshardlog, optional_yield y); int bi_remove(const DoutPrefixProvider *dpp, BucketShard& bs); - int trim_reshard_log_entries(const DoutPrefixProvider *dpp, RGWBucketInfo& bucket_info, optional_yield y); int cls_obj_usage_log_add(const DoutPrefixProvider *dpp, const std::string& oid, rgw_usage_log_info& info, optional_yield y); int cls_obj_usage_log_read(const DoutPrefixProvider *dpp, const std::string& oid, const std::string& user, const std::string& bucket, uint64_t start_epoch, diff --git a/src/rgw/driver/rados/rgw_reshard.cc b/src/rgw/driver/rados/rgw_reshard.cc index d975a2ae0d7..c7fc3df43a2 100644 --- a/src/rgw/driver/rados/rgw_reshard.cc +++ b/src/rgw/driver/rados/rgw_reshard.cc @@ -552,7 +552,7 @@ static int revert_target_layout(rgw::sal::RadosStore* store, ret = 0; // non-fatal error } // trim the reshard log entries written in logrecord state - ret = store->getRados()->trim_reshard_log_entries(dpp, bucket_info, y); + ret = store->svc()->bi_rados->trim_reshard_log(dpp, y, bucket_info); if (ret < 0) { ldpp_dout(dpp, 1) << "WARNING: " << __func__ << " failed to trim " "reshard log entries: " << cpp_strerror(ret) << dendl; @@ -640,11 +640,11 @@ static int init_reshard(rgw::sal::RadosStore* store, if (support_logrecord) { if (ret = fault.check("trim_reshard_log_entries"); ret == 0) { // no fault injected, trim reshard log entries - ret = store->getRados()->trim_reshard_log_entries(dpp, bucket_info, y); + ret = store->svc()->bi_rados->trim_reshard_log(dpp, y, bucket_info); } if (ret == -EOPNOTSUPP) { // not an error, logrecord is not supported, change to block reshard - ldpp_dout(dpp, 0) << "WARNING: " << "trim_reshard_log_entries() does not supported" + ldpp_dout(dpp, 0) << "WARNING: " << "trim_reshard_log() does not supported" << " logrecord, falling back to block reshard mode." << dendl; bucket_info.layout.resharding = rgw::BucketReshardState::InProgress; support_logrecord = false; diff --git a/src/rgw/radosgw-admin/radosgw-admin.cc b/src/rgw/radosgw-admin/radosgw-admin.cc index 4e5cba2f796..802ca73b308 100644 --- a/src/rgw/radosgw-admin/radosgw-admin.cc +++ b/src/rgw/radosgw-admin/radosgw-admin.cc @@ -11538,9 +11538,9 @@ next: cerr << "ERROR: could not init bucket: " << cpp_strerror(-ret) << std::endl; return -ret; } - ret = static_cast(driver)->getRados()->trim_reshard_log_entries(dpp(), bucket->get_info(), null_yield); + ret = static_cast(driver)->svc()->bi_rados->trim_reshard_log(dpp(), null_yield, bucket->get_info()); if (ret < 0) { - cerr << "ERROR: trim_reshard_log_entries(): " << cpp_strerror(-ret) << std::endl; + cerr << "ERROR: trim_reshard_log(): " << cpp_strerror(-ret) << std::endl; return -ret; } } diff --git a/src/rgw/services/svc_bi_rados.cc b/src/rgw/services/svc_bi_rados.cc index 8253cbeea7b..98e6b87bcf7 100644 --- a/src/rgw/services/svc_bi_rados.cc +++ b/src/rgw/services/svc_bi_rados.cc @@ -507,6 +507,20 @@ int RGWSI_BucketIndex_RADOS::set_reshard_status(const DoutPrefixProvider *dpp, return r; } +int RGWSI_BucketIndex_RADOS::trim_reshard_log(const DoutPrefixProvider* dpp, + optional_yield y, + const RGWBucketInfo& bucket_info) +{ + librados::IoCtx index_pool; + map bucket_objs; + + int r = open_bucket_index(dpp, bucket_info, std::nullopt, bucket_info.layout.current_index, &index_pool, &bucket_objs, nullptr); + if (r < 0) { + return r; + } + return CLSRGWIssueReshardLogTrim(index_pool, bucket_objs, cct->_conf->rgw_bucket_index_max_aio)(); +} + int RGWSI_BucketIndex_RADOS::handle_overwrite(const DoutPrefixProvider *dpp, const RGWBucketInfo& info, const RGWBucketInfo& orig_info, diff --git a/src/rgw/services/svc_bi_rados.h b/src/rgw/services/svc_bi_rados.h index 41745d645b4..a4ecd8cd7f0 100644 --- a/src/rgw/services/svc_bi_rados.h +++ b/src/rgw/services/svc_bi_rados.h @@ -141,6 +141,8 @@ public: int set_reshard_status(const DoutPrefixProvider *dpp, const RGWBucketInfo& bucket_info, cls_rgw_reshard_status status); + int trim_reshard_log(const DoutPrefixProvider* dpp, optional_yield, + const RGWBucketInfo& bucket_info); int handle_overwrite(const DoutPrefixProvider *dpp, const RGWBucketInfo& info, const RGWBucketInfo& orig_info,