]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
3 years agodoc/rgw: document zone features
Casey Bodley [Mon, 8 Mar 2021 17:48:13 +0000 (12:48 -0500)]
doc/rgw: document zone features

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: RGWSI_Zone::can_reshard() respects zonegroup 'resharding' feature
Casey Bodley [Wed, 3 Mar 2021 21:58:33 +0000 (16:58 -0500)]
rgw: RGWSI_Zone::can_reshard() respects zonegroup 'resharding' feature

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: 'sync status' shows enabled/disabled zonegroup features
Casey Bodley [Wed, 3 Mar 2021 21:55:23 +0000 (16:55 -0500)]
radosgw-admin: 'sync status' shows enabled/disabled zonegroup features

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: zone/zonegroup commands support --enable-feature=x --disable-feature=y
Casey Bodley [Wed, 3 Mar 2021 21:54:58 +0000 (16:54 -0500)]
radosgw-admin: zone/zonegroup commands support --enable-feature=x --disable-feature=y

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: add set of 'features' to zone and zonegroup
Casey Bodley [Wed, 3 Mar 2021 19:13:05 +0000 (14:13 -0500)]
rgw: add set of 'features' to zone and zonegroup

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agojson: encoding for flat_set accepts all template params
Casey Bodley [Wed, 3 Mar 2021 19:05:24 +0000 (14:05 -0500)]
json: encoding for flat_set accepts all template params

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw/multisite: don't delete per shard status on init
Yuval Lifshitz [Wed, 16 Jun 2021 09:32:25 +0000 (12:32 +0300)]
rgw/multisite: don't delete per shard status on init

and pass correct generation and num shards when deleting
per shard status objects when disabling during incremental sync

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agorgw/multisite: support enable right after disable
Yuval Lifshitz [Mon, 14 Jun 2021 14:03:35 +0000 (17:03 +0300)]
rgw/multisite: support enable right after disable

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agorgw/multisite: remove the retry mechanism
Yuval Lifshitz [Thu, 27 May 2021 15:54:31 +0000 (18:54 +0300)]
rgw/multisite: remove the retry mechanism

when writign the sync status object

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agorgw/multisite: allow bucket sync disable/enable
Yuval Lifshitz [Tue, 18 May 2021 15:59:54 +0000 (18:59 +0300)]
rgw/multisite: allow bucket sync disable/enable

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agorgw/multisite: track shard sync status objects per generation
Yuval Lifshitz [Tue, 25 May 2021 18:11:25 +0000 (21:11 +0300)]
rgw/multisite: track shard sync status objects per generation

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agorgw: remove destination shard id from rgw_bucket_sync_pair_info
Casey Bodley [Wed, 9 Jun 2021 16:26:54 +0000 (12:26 -0400)]
rgw: remove destination shard id from rgw_bucket_sync_pair_info

the sync_pair is used as input to RGWBucketPipeSyncStatusManager::status_oid()
to generate the per-shard sync status object names

this sync status tracks incremental bucket sync, which reads changes
from a source bucket's bilog shard, and copies objects from the remote
source bucket to the local destination bucket

this doesn't require sync to know anything about the destination bucket
shards, so rgw_bucket_sync_pair_info and status_oid() now only track the
the destination's rgw_bucket instead of rgw_bucket_shard

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: Trim old generations in BucketTrimInstanceCR
Adam C. Emerson [Fri, 14 May 2021 22:59:48 +0000 (18:59 -0400)]
rgw: Trim old generations in BucketTrimInstanceCR

Only one generation per call.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: Add RGWRadosRemoveOidCR
Adam C. Emerson [Tue, 18 May 2021 22:34:43 +0000 (18:34 -0400)]
rgw: Add RGWRadosRemoveOidCR

A more generally applicable way of removing objects in coroutines.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: Add RGWAsyncPutBucketInstanceInfoCR
Adam C. Emerson [Tue, 18 May 2021 21:56:27 +0000 (17:56 -0400)]
rgw: Add RGWAsyncPutBucketInstanceInfoCR

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: Trim bilog with generation
Adam C. Emerson [Mon, 26 Apr 2021 22:45:09 +0000 (18:45 -0400)]
rgw: Trim bilog with generation

From the REST interface and radosgw-admin. Assume Generation 0 if none
provided and error if it doesn't exist.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: Bilog trim takes markers as string view
Adam C. Emerson [Tue, 27 Apr 2021 23:31:57 +0000 (19:31 -0400)]
rgw: Bilog trim takes markers as string view

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agocommon: get_str_vec takes std::string_view
Adam C. Emerson [Tue, 27 Apr 2021 23:31:15 +0000 (19:31 -0400)]
common: get_str_vec takes std::string_view

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: BucketInstanceTrimCR knows about generations
Adam C. Emerson [Fri, 14 May 2021 19:44:01 +0000 (15:44 -0400)]
rgw: BucketInstanceTrimCR knows about generations

Fetch the current generation from remote peers and trim the minimum
marker on the minimum generation.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: Add cast from bucket_index_log_layout
Adam C. Emerson [Fri, 14 May 2021 19:26:42 +0000 (15:26 -0400)]
rgw: Add cast from bucket_index_log_layout

To bucket_index_layout_generation

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: add sync_info to BILog_Status output
Adam C. Emerson [Thu, 13 May 2021 21:11:52 +0000 (17:11 -0400)]
rgw: add sync_info to BILog_Status output

Needed so we can get the incremental generation.

Guard this behind a version check and return the original output if
less than 2.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: fix incremental sync by using the right generation for bilog listing
Shilpa Jagannath [Wed, 2 Jun 2021 17:57:06 +0000 (23:27 +0530)]
rgw: fix incremental sync by using the right generation for bilog listing

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: on bucket reshard, write datalog entries for each shard of the previous generation
Shilpa Jagannath [Fri, 21 May 2021 06:47:49 +0000 (12:17 +0530)]
rgw: on bucket reshard, write datalog entries for each shard of the previous generation

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agoqa/rgw: temporarily disable multisite reshard tests
Casey Bodley [Tue, 25 May 2021 18:37:26 +0000 (14:37 -0400)]
qa/rgw: temporarily disable multisite reshard tests

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest/rgw: add multisite test for full sync after reshard
Casey Bodley [Fri, 30 Apr 2021 20:22:33 +0000 (16:22 -0400)]
test/rgw: add multisite test for full sync after reshard

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest/rgw: add simple multisite reshard test
Casey Bodley [Fri, 30 Apr 2021 19:08:39 +0000 (15:08 -0400)]
test/rgw: add simple multisite reshard test

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: 'bucket sync checkpoint' waits for generation to catch up
Casey Bodley [Tue, 18 May 2021 19:55:28 +0000 (15:55 -0400)]
radosgw-admin: 'bucket sync checkpoint' waits for generation to catch up

poll on rgw_read_bucket_full_sync_status() until
full_status.incremental_gen catches up to the latest_gen we got from
rgw_read_remote_bilog_info()

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: get_bucket_instance_ids() uses num_shards from layout
Casey Bodley [Wed, 19 May 2021 18:03:48 +0000 (14:03 -0400)]
rgw: get_bucket_instance_ids() uses num_shards from layout

knock out a TODO that was causing this assertion failure in
RGWRados::get_bucket_stats() after a reshard:

  ceph_assert(headers.size() == bucket_instance_ids.size());

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: rgw_read_remote_bilog_info() returns rgw_bucket_index_marker_info
Casey Bodley [Thu, 20 May 2021 15:15:26 +0000 (11:15 -0400)]
rgw: rgw_read_remote_bilog_info() returns rgw_bucket_index_marker_info

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: adding generation number to async notification
Shilpa Jagannath [Mon, 15 Feb 2021 14:46:29 +0000 (20:16 +0530)]
rgw: adding generation number to async notification

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: add custom json encode/decode for the v1 notify API
Casey Bodley [Tue, 23 Feb 2021 19:55:50 +0000 (14:55 -0500)]
rgw: add custom json encode/decode for the v1 notify API

this adds wrapper structs rgw_data_notify_v1_encoder and
rgw_data_notify_v1_decoder that can encode/decode the v1 json format
directly on the v2 data structure

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest/rgw: fix python error on test failure
Casey Bodley [Fri, 14 May 2021 17:49:09 +0000 (13:49 -0400)]
test/rgw: fix python error on test failure

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: fix handling of bucket layout in metadata sync
Casey Bodley [Fri, 14 May 2021 16:30:21 +0000 (12:30 -0400)]
rgw: fix handling of bucket layout in metadata sync

clear the bucket layout we get from the metadata master, and overwrite it
with our zone's defaults

without clearing the layout, init_default_bucket_layout() was adding another
log layout in addition to the one from the master. this caused the bilog
list API to provide a 'next_log' when only gen=0 exists

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw/multisite: fix bucket shard state init function
Yuval Lifshitz [Fri, 14 May 2021 09:27:09 +0000 (12:27 +0300)]
rgw/multisite: fix bucket shard state init function

* make sure src/dest shard ids are the same in sync pair
* copy sync pair by value in coroutine loop

Signed-off-by: Yuval Lifshitz <ylifshit@redhat.com>
3 years agorgw: update bucket sync status after bucket shards finishes current gen
Shilpa Jagannath [Mon, 5 Apr 2021 20:15:45 +0000 (01:45 +0530)]
rgw: update bucket sync status after bucket shards finishes current gen

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: reshard preserves old index in multisite
Casey Bodley [Fri, 26 Mar 2021 15:00:57 +0000 (11:00 -0400)]
rgw: reshard preserves old index in multisite

if the old index is still referenced by an InIndex log layout, we can't
call clean_index() to remove the index objects yet. log trimming will do
that later, once the bilogs are no longer needed

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: BILog_List handles requests for generation=0
Casey Bodley [Thu, 25 Feb 2021 20:39:26 +0000 (15:39 -0500)]
rgw: BILog_List handles requests for generation=0

previous logic treated requests for generation=0 as the latest gen

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: zero-initialize rgw_bucket_sync_status::incremental_gen
Casey Bodley [Tue, 9 Feb 2021 23:40:29 +0000 (18:40 -0500)]
rgw: zero-initialize rgw_bucket_sync_status::incremental_gen

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: handle older/newer generations after reading bucket sync status
Casey Bodley [Tue, 9 Feb 2021 23:00:14 +0000 (18:00 -0500)]
rgw: handle older/newer generations after reading bucket sync status

wait until we've read the bucket sync status and found that we're in
incremental sync before we start using incremental_gen for comparison

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: Handle entries of the wrong generation
Adam C. Emerson [Mon, 14 Dec 2020 05:56:23 +0000 (00:56 -0500)]
rgw: Handle entries of the wrong generation

Drop entries from past generations.

Send entries of future generations to the error repo for retry.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: rgw_data_change can decode v1 format if gen was 0
Casey Bodley [Wed, 10 Feb 2021 00:04:19 +0000 (19:04 -0500)]
rgw: rgw_data_change can decode v1 format if gen was 0

but if gen>0, require decoders to understand the v2 format. this way,
old clients can't decode entries with gen>0, so they won't be able to
serve them to other zones

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: rename rgw_data_change::gen_id
Casey Bodley [Wed, 10 Feb 2021 00:03:43 +0000 (19:03 -0500)]
rgw: rename rgw_data_change::gen_id

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: add gen parameter to RGWDataChangesLog::add_entry
Adam C. Emerson [Mon, 14 Dec 2020 02:13:44 +0000 (21:13 -0500)]
rgw: add gen parameter to RGWDataChangesLog::add_entry

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: Add gen_id to rgw_data_change
Adam C. Emerson [Mon, 14 Dec 2020 01:30:52 +0000 (20:30 -0500)]
rgw: Add gen_id to rgw_data_change

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: vector<rgw_data_change_log_entry> not list
Adam C. Emerson [Sun, 13 Dec 2020 23:54:28 +0000 (18:54 -0500)]
rgw: vector<rgw_data_change_log_entry> not list

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
3 years agorgw: add json encoding of bucket layout types
Casey Bodley [Mon, 1 Feb 2021 19:39:39 +0000 (14:39 -0500)]
rgw: add json encoding of bucket layout types

adds a "layout" section to RGWBucketInfo

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agojson: add encode_json() overload for string_view
Casey Bodley [Mon, 1 Feb 2021 19:34:54 +0000 (14:34 -0500)]
json: add encode_json() overload for string_view

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: refactor per-entry reshard logic into separate function
Casey Bodley [Tue, 2 Feb 2021 17:51:14 +0000 (12:51 -0500)]
rgw: refactor per-entry reshard logic into separate function

this cuts down on nesting and avoids the need for goto

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: reshard adds a log layout for the new index
Casey Bodley [Mon, 1 Feb 2021 17:04:36 +0000 (12:04 -0500)]
rgw: reshard adds a log layout for the new index

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: try reshard even if bucket is resharding
Casey Bodley [Mon, 1 Feb 2021 17:02:44 +0000 (12:02 -0500)]
radosgw-admin: try reshard even if bucket is resharding

allow reshard in case a previous reshard failed. if the reshard is
actually still in progress, we'll fail to get the reshard lock

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest: fix threading for FaultInjector death tests
Casey Bodley [Tue, 19 Jan 2021 14:27:13 +0000 (09:27 -0500)]
test: fix threading for FaultInjector death tests

addresses test timeout and warning message:

[WARNING] /home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/src/gtest-death-test.cc:1121:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 3 threads. See https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#death-tests-and-threads for more explanation and suggested solutions, especially if this is the last message you see before your test times out.

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: remove fault injection options from usage
Casey Bodley [Fri, 18 Dec 2020 21:01:15 +0000 (16:01 -0500)]
radosgw-admin: remove fault injection options from usage

these are only used for testing, not administration

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: RGWBucketReshard doesn't need a friend
Casey Bodley [Fri, 18 Dec 2020 16:19:55 +0000 (11:19 -0500)]
rgw: RGWBucketReshard doesn't need a friend

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: fix decode of cls_rgw reshard types
Casey Bodley [Fri, 18 Dec 2020 15:46:49 +0000 (10:46 -0500)]
rgw: fix decode of cls_rgw reshard types

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: BucketReshardManager takes layouts
Casey Bodley [Fri, 18 Dec 2020 15:23:55 +0000 (10:23 -0500)]
rgw: BucketReshardManager takes layouts

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: clean up uses of BucketShard::init() without info
Casey Bodley [Fri, 18 Dec 2020 15:22:23 +0000 (10:22 -0500)]
rgw: clean up uses of BucketShard::init() without info

the rgw_bucket overload of BucketShard::init() has to look up the bucket
info. use the RGWBucketInfo overload when we have one

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoqa/rgw: disable coredumps for reshard fault injection
Casey Bodley [Thu, 17 Dec 2020 17:19:12 +0000 (12:19 -0500)]
qa/rgw: disable coredumps for reshard fault injection

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest/rgw: add test_bucket_reshard() for fault injection testing
Casey Bodley [Wed, 16 Dec 2020 23:17:29 +0000 (18:17 -0500)]
test/rgw: add test_bucket_reshard() for fault injection testing

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agotest/rgw: test_rgw_reshard.py exec_cmd() can return error code
Casey Bodley [Wed, 16 Dec 2020 23:16:41 +0000 (18:16 -0500)]
test/rgw: test_rgw_reshard.py exec_cmd() can return error code

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: 'bucket reshard' returns positive error codes
Casey Bodley [Wed, 16 Dec 2020 23:13:43 +0000 (18:13 -0500)]
radosgw-admin: 'bucket reshard' returns positive error codes

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: reshard first cleans up old-style reshards
Casey Bodley [Wed, 16 Dec 2020 18:57:28 +0000 (13:57 -0500)]
rgw: reshard first cleans up old-style reshards

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: refactor reshard init/cleanup with fault injection
Casey Bodley [Tue, 15 Dec 2020 18:57:31 +0000 (13:57 -0500)]
rgw: refactor reshard init/cleanup with fault injection

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: add typedef for ReshardFaultInjector
Casey Bodley [Tue, 15 Dec 2020 17:55:03 +0000 (12:55 -0500)]
rgw: add typedef for ReshardFaultInjector

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: BucketReshardManager stores BucketReshardShards by value
Casey Bodley [Tue, 15 Dec 2020 17:07:14 +0000 (12:07 -0500)]
rgw: BucketReshardManager stores BucketReshardShards by value

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: remove unused attrs from RGWBucketReshard
Casey Bodley [Tue, 15 Dec 2020 17:06:24 +0000 (12:06 -0500)]
rgw: remove unused attrs from RGWBucketReshard

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: reshard tests with fault injection
Shilpa Jagannath [Mon, 12 Oct 2020 12:51:16 +0000 (18:21 +0530)]
rgw: reshard tests with fault injection

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agocommon: add generic FaultInjector
Casey Bodley [Wed, 19 Aug 2020 19:15:56 +0000 (15:15 -0400)]
common: add generic FaultInjector

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: Better error handling
Shilpa Jagannath [Mon, 21 Sep 2020 07:31:44 +0000 (13:01 +0530)]
rgw: Better error handling

  - function update_bucket() handles updating bucket state

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: use a helper function to handle repetitive num_shards check
Shilpa Jagannath [Fri, 11 Sep 2020 06:28:55 +0000 (11:58 +0530)]
rgw: use a helper function to handle repetitive num_shards check

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: code organization fixes and error handling
Shilpa Jagannath [Tue, 1 Sep 2020 18:25:42 +0000 (23:55 +0530)]
rgw: code organization fixes and error handling

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: clean up fixes for extra spaces and indentation.
Shilpa Jagannath [Fri, 28 Aug 2020 06:00:04 +0000 (11:30 +0530)]
rgw: clean up fixes for extra spaces and indentation.

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: helper function to set reshard status from rgw::BucketReshardState.
Shilpa Jagannath [Tue, 21 Jul 2020 13:10:09 +0000 (18:40 +0530)]
rgw: helper function to set reshard status from rgw::BucketReshardState.

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: minor fixes
Shilpa Jagannath [Tue, 21 Jul 2020 08:08:24 +0000 (13:38 +0530)]
rgw: minor fixes

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: failing to reshard, restore old indexes
Shilpa Jagannath [Tue, 14 Jul 2020 12:26:05 +0000 (17:56 +0530)]
rgw: failing to reshard, restore old indexes

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: allow clean_index to take const bucket_index_layout_generation&
Shilpa Jagannath [Tue, 14 Jul 2020 07:33:31 +0000 (13:03 +0530)]
rgw: allow clean_index to take const bucket_index_layout_generation&

fix bi_get() to get objects after being resharded

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: - take non-optional gen_id in svc_bi_rados functions
Shilpa Jagannath [Fri, 10 Jul 2020 08:05:25 +0000 (13:35 +0530)]
rgw: - take non-optional gen_id in svc_bi_rados functions

     - call init_index() on target layout during reshard process.
       Takes const rgw::bucket_index_layout_generation&

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: make RGWBucketInfo non-const in functions using guard_reshard()
Shilpa Manjarabad Jagannath [Thu, 9 Jul 2020 07:18:52 +0000 (12:48 +0530)]
rgw: make RGWBucketInfo non-const in functions using guard_reshard()

 - remove unused 'instance_id' from cls_rgw_reshard_entry
 - other minor fixes

Signed-off-by: Shilpa Manjarabad Jagannath <smanjara@redhat.com>
3 years agorgw: target_layout to be optional
Shilpa Manjarabad Jagannath [Mon, 6 Jul 2020 09:47:15 +0000 (15:17 +0530)]
rgw: target_layout to be optional

Signed-off-by: Shilpa Manjarabad Jagannath <smanjara@redhat.com>
3 years agorgw: use rgw::BucketReshardState for reshard state change
Shilpa Jagannath [Mon, 29 Jun 2020 19:17:53 +0000 (00:47 +0530)]
rgw: use rgw::BucketReshardState for reshard state change

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: fetch updated bucketinfo rather than bucket_id in guard_reshard
Shilpa Jagannath [Wed, 10 Jun 2020 14:09:55 +0000 (19:39 +0530)]
rgw: fetch updated bucketinfo rather than bucket_id in guard_reshard

To be able to read the updated layout.

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: use BucketReshardState states in appropriate places
Shilpa Jagannath [Tue, 9 Jun 2020 03:05:27 +0000 (08:35 +0530)]
rgw: use BucketReshardState states in appropriate places

This replaces cls_rgw_reshard_status.

Remove unused parameters in cls_rgw_bucket_instance_entry.
Other minor cleanup fixes.

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw/dynamic-resharding: Allow clean_index to take generation number
Shilpa Jagannath [Thu, 21 May 2020 12:59:15 +0000 (18:29 +0530)]
rgw/dynamic-resharding: Allow clean_index to take generation number

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw/dynamic-resharding: reshard bucket using the same instance id
Shilpa Jagannath [Thu, 21 May 2020 12:54:29 +0000 (18:24 +0530)]
rgw/dynamic-resharding: reshard bucket using the same instance id

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw/dynamic-resharding: remove creation of new bucket instance
Shilpa Jagannath [Thu, 21 May 2020 12:33:01 +0000 (18:03 +0530)]
rgw/dynamic-resharding: remove creation of new bucket instance

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agotest/rgw: add --gen to radosgw-admin/help.t
Casey Bodley [Wed, 3 Feb 2021 15:39:18 +0000 (10:39 -0500)]
test/rgw: add --gen to radosgw-admin/help.t

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: add generations to error repo with binary format
Casey Bodley [Fri, 22 Jan 2021 23:28:50 +0000 (18:28 -0500)]
rgw: add generations to error repo with binary format

adds a backward-compatible binary encoding for error repo keys that can
contain a generation number along with the bucket and shard

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: add generation support to BILog admin APIs
Shilpa Jagannath [Thu, 3 Dec 2020 06:23:40 +0000 (11:53 +0530)]
rgw: add generation support to BILog admin APIs

Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
3 years agorgw: remove rgw_bucket_shard_sync_info::full_marker
Casey Bodley [Fri, 20 Nov 2020 17:32:48 +0000 (12:32 -0500)]
rgw: remove rgw_bucket_shard_sync_info::full_marker

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: disable backoff on data sync error_retry_time
Casey Bodley [Wed, 18 Nov 2020 21:24:11 +0000 (16:24 -0500)]
rgw: disable backoff on data sync error_retry_time

this backoff is triggered often by the per-bucket lease for full sync,
and causes tests to fail with checkpoint timeouts

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoqa/rgw: rgw_multisite_tests task loads default plugins
Adam C. Emerson [Sat, 8 May 2021 00:01:11 +0000 (20:01 -0400)]
qa/rgw: rgw_multisite_tests task loads default plugins

the ability to filter tests by attribute is provided by the
nose.plugins.attrib plugin, which wasn't being loaded by default

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoqa/rgw: disable multisite tests for 'bucket sync disable'
Casey Bodley [Tue, 10 Nov 2020 16:36:31 +0000 (11:36 -0500)]
qa/rgw: disable multisite tests for 'bucket sync disable'

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoqa/rgw: add missing meta checkpoint to test_multipart_object_sync
Casey Bodley [Tue, 10 Nov 2020 21:38:10 +0000 (16:38 -0500)]
qa/rgw: add missing meta checkpoint to test_multipart_object_sync

if metadata sync hasn't finished, the 'bucket checkpoint' commands may
not find its bucket info

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: RGWSyncBucketCR holds lease over Init state too
Casey Bodley [Tue, 10 Nov 2020 20:00:40 +0000 (15:00 -0500)]
rgw: RGWSyncBucketCR holds lease over Init state too

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: fix up BucketShardIncrementalSync log message
Casey Bodley [Tue, 6 Oct 2020 21:59:44 +0000 (17:59 -0400)]
rgw: fix up BucketShardIncrementalSync log message

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: move full sync from SyncBucketShard to SyncBucket
Casey Bodley [Tue, 6 Oct 2020 21:59:41 +0000 (17:59 -0400)]
rgw: move full sync from SyncBucketShard to SyncBucket

renamed ListBucketShardCR to ListRemoteBucketCR and removed the shard-id
parameter

renamed BucketFullSyncShardMarkerTrack to BucketFullSyncMarkerTrack,
which now updates the bucket-level rgw_bucket_sync_status

renamed BucketShardFullSyncCR to BucketFullSyncCR

BucketSyncCR now takes a bucket-wide lease during full sync

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: 'bucket sync checkpoint' waits for full sync
Casey Bodley [Tue, 6 Oct 2020 21:59:39 +0000 (17:59 -0400)]
radosgw-admin: 'bucket sync checkpoint' waits for full sync

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agoradosgw-admin: 'bucket sync status' displays new full sync status
Casey Bodley [Tue, 6 Oct 2020 21:59:36 +0000 (17:59 -0400)]
radosgw-admin: 'bucket sync status' displays new full sync status

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: add rgw_read_bucket_full_sync_status()
Casey Bodley [Tue, 6 Oct 2020 21:59:34 +0000 (17:59 -0400)]
rgw: add rgw_read_bucket_full_sync_status()

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: InitBucketShardSyncStatus always sets state to Incremental
Casey Bodley [Tue, 6 Oct 2020 21:59:31 +0000 (17:59 -0400)]
rgw: InitBucketShardSyncStatus always sets state to Incremental

full sync happens as the bucket level, so the shards will always start
in StateIncrementalSync

Signed-off-by: Casey Bodley <cbodley@redhat.com>
3 years agorgw: split SyncBucket from SyncBucketShard
Casey Bodley [Tue, 6 Oct 2020 21:59:29 +0000 (17:59 -0400)]
rgw: split SyncBucket from SyncBucketShard

Signed-off-by: Casey Bodley <cbodley@redhat.com>