]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: allow CLSRGWConcurrentIO to handle "advancing" retries
authorJ. Eric Ivancich <ivancich@redhat.com>
Mon, 19 Jul 2021 18:23:42 +0000 (14:23 -0400)
committerDan van der Ster <daniel.vanderster@cern.ch>
Fri, 18 Feb 2022 21:26:59 +0000 (22:26 +0100)
commit5b4416671a3a9f1fbef0d20d081d05e41851d926
tree0bb91bc6933ba76d118c7f3ea629be158b03ea25
parent9843c5475a7525ac08db7ae4ed6a3110a90801d5
rgw: allow CLSRGWConcurrentIO to handle "advancing" retries

When doing an asynchronous/concurrent bucket index operation against
multiple bucket index shards, a special error code is set aside to
indicate that an "advancing" retry of a/some shard(s) is necessary. In
that case another asynchronous call is made on the indicated shard(s)
from the client (i.e., CLSRGWConcurrentIO).  It is up to the subclass
of CLSRGWConcurrentIO to handle the retry such that it "advances" and
simply doesn't get stuck, looping forever.

The retry functionality only works when the "need_multiple_rounds"
functionality is not in use.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
(cherry picked from commit 5d283074750dc6bd458877bd42921037b5bb7f4b)

Conflicts:
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h

Resolved by taking the patch version -- all cases of auto type and std::
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h
src/cls/rgw/cls_rgw_const.h