]> git.apps.os.sepia.ceph.com Git - ceph-ci.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)
committerJ. Eric Ivancich <ivancich@redhat.com>
Wed, 4 Aug 2021 04:44:06 +0000 (00:44 -0400)
commit5d283074750dc6bd458877bd42921037b5bb7f4b
treea5b30bcdae494fe15dd802377de2403342886c79
parent9606346592dfd6261aa2daa4cbec56f9a72c65fc
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>
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h
src/cls/rgw/cls_rgw_const.h