]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/rados: move trim_reshard_log() from RGWRados to RGWSI_BucketIndex_RADOS
authorCasey Bodley <cbodley@redhat.com>
Fri, 15 Nov 2024 21:13:59 +0000 (16:13 -0500)
committerCasey Bodley <cbodley@redhat.com>
Mon, 7 Apr 2025 17:14:29 +0000 (13:14 -0400)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/driver/rados/rgw_rados.cc
src/rgw/driver/rados/rgw_rados.h
src/rgw/driver/rados/rgw_reshard.cc
src/rgw/radosgw-admin/radosgw-admin.cc
src/rgw/services/svc_bi_rados.cc
src/rgw/services/svc_bi_rados.h

index 2b3c0ffddf8a5856189b0726656f021ce16c3de4..3b1bbadda65587af290a8b27e08973a4581e044b 100644 (file)
@@ -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<int, string> 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);
index eda57dc97c01b7af5314029e9becf3a0c64046ce..9afe35be4c32969ce929067dc714e626dc46e657 100644 (file)
@@ -1564,7 +1564,6 @@ public:
               std::list<rgw_cls_bi_entry> *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,
index d975a2ae0d7a88bfe6edd6dc87da7c41178dd230..c7fc3df43a21a141624b8b8ed8e68a60df643d67 100644 (file)
@@ -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;
index 4e5cba2f79639cdac5e1cbd8ff38865c8b50e616..802ca73b308fbc40df82073f7a463710584c77f0 100644 (file)
@@ -11538,9 +11538,9 @@ next:
       cerr << "ERROR: could not init bucket: " << cpp_strerror(-ret) << std::endl;
       return -ret;
     }
-    ret = static_cast<rgw::sal::RadosStore*>(driver)->getRados()->trim_reshard_log_entries(dpp(), bucket->get_info(), null_yield);
+    ret = static_cast<rgw::sal::RadosStore*>(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;
     }
   }
index 8253cbeea7b905f5ab99e39669b1ef5380247b6b..98e6b87bcf7be239a9865b37a102c478a84c4a36 100644 (file)
@@ -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<int, string> 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,
index 41745d645b44c3b5c66c66fd61120041c326f1d6..a4ecd8cd7f074516c0aa40a45e84e4d8ba476e79 100644 (file)
@@ -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,