]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw/CloudTransition: Replace Coroutines with RGWRestConn APIs 35100/head
authorSoumya Koduri <skoduri@redhat.com>
Wed, 23 Jun 2021 18:00:11 +0000 (23:30 +0530)
committerSoumya Koduri <skoduri@redhat.com>
Thu, 18 Nov 2021 07:22:48 +0000 (12:52 +0530)
commit44317eacf09183fba542de21ff47ce20c3a7df57
tree0f438a9116cf87790297e175a6d9f3ea8fda58f1
parent1e48366c7bc9610abceb4b91377807a67935886e
rgw/CloudTransition: Replace Coroutines with RGWRestConn APIs

To avoid the overhead of using coroutines during lifecycle transition,
RGWRESTStream* APIs are used to transition objects to remote cloud.

Also handled few optimizations and cleanup stated below:
* Store the list of cloud target buckets as part of LCWorker instead
  of making it global. This list is maintained for the duration of
  RGWLC::process(), post which discarded.
* Refactor code to remove coroutine based class definitions which are no
  longer needed and use direct function calls instead.
* Check for cloud transitioned objects using tier-type and return error if
  accessed in RGWGetObj, RGWCopyObj and RGWPutObj ops.

Signed-off-by: Soumya Koduri <skoduri@redhat.com>
12 files changed:
src/rgw/rgw_cr_rest.cc
src/rgw/rgw_cr_rest.h
src/rgw/rgw_lc.cc
src/rgw/rgw_lc.h
src/rgw/rgw_lc_tier.cc
src/rgw/rgw_lc_tier.h
src/rgw/rgw_obj_manifest.h
src/rgw/rgw_op.cc
src/rgw/rgw_rest_client.h
src/rgw/rgw_rest_conn.cc
src/rgw/rgw_rest_conn.h
src/rgw/rgw_zone.h