Skip to content

Commit fe3bc76

Browse files
committed
rgw/rados: calculate_preferred_shards takes bool is_versioned
Signed-off-by: Casey Bodley <[email protected]>
1 parent 519b8b2 commit fe3bc76

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

src/rgw/driver/rados/rgw_rados.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10815,7 +10815,7 @@ int RGWRados::cls_bucket_head_async(const DoutPrefixProvider *dpp, const RGWBuck
1081510815

1081610816
// uses information that the store has easy access to transition to the shard calculatoin logic
1081710817
void RGWRados::calculate_preferred_shards(const DoutPrefixProvider* dpp,
10818-
const RGWBucketInfo& bucket_info,
10818+
bool is_versioned,
1081910819
const uint64_t num_objs,
1082010820
const uint32_t num_source_shards,
1082110821
const uint32_t min_layout_shards,
@@ -10827,7 +10827,7 @@ void RGWRados::calculate_preferred_shards(const DoutPrefixProvider* dpp,
1082710827
uint64_t max_objs_per_shard =
1082810828
cct->_conf.get_val<uint64_t>("rgw_max_objs_per_shard");
1082910829

10830-
if (bucket_info.versioned()) {
10830+
if (is_versioned) {
1083110831
// Since each versioned bucket requires 4 entries for the first object
1083210832
// and 2 additional entries for each additional object, we want to
1083310833
// trigger resharding sooner.
@@ -10870,12 +10870,13 @@ int RGWRados::check_bucket_shards(const RGWBucketInfo& bucket_info,
1087010870

1087110871
bool need_resharding = false;
1087210872
uint32_t suggested_num_shards = 0;
10873+
const bool is_versioned = bucket_info.versioned();
1087310874
const uint32_t num_source_shards =
1087410875
rgw::current_num_shards(bucket_info.layout);
1087510876
const uint32_t min_layout_shards =
1087610877
rgw::current_min_layout_shards(bucket_info.layout);
1087710878

10878-
calculate_preferred_shards(dpp, bucket_info, num_objs,
10879+
calculate_preferred_shards(dpp, is_versioned, num_objs,
1087910880
num_source_shards, min_layout_shards,
1088010881
need_resharding, &suggested_num_shards);
1088110882
if (! need_resharding) {

src/rgw/driver/rados/rgw_rados.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1628,7 +1628,7 @@ int restore_obj_from_cloud(RGWLCCloudTierCtx& tier_ctx,
16281628
optional_yield y, bool check_size_only = false);
16291629

16301630
void calculate_preferred_shards(const DoutPrefixProvider* dpp,
1631-
const RGWBucketInfo& bucket_info,
1631+
bool is_versioned,
16321632
const uint64_t num_objs,
16331633
const uint32_t current_shard_count,
16341634
const uint32_t min_layout_shards,

src/rgw/driver/rados/rgw_reshard.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1642,6 +1642,7 @@ int RGWReshard::process_entry(const cls_rgw_reshard_entry& entry,
16421642
num_entries += s.second.num_objects;
16431643
}
16441644

1645+
const bool is_versioned = bucket_info.versioned();
16451646
const uint32_t current_shard_count =
16461647
rgw::current_num_shards(bucket_info.layout);
16471648
const uint32_t min_layout_shards =
@@ -1653,7 +1654,7 @@ int RGWReshard::process_entry(const cls_rgw_reshard_entry& entry,
16531654
// needed to perform the calculation before calling
16541655
// calculating_preferred_shards() in this class
16551656
store->getRados()->calculate_preferred_shards(
1656-
dpp, bucket_info, num_entries, current_shard_count, min_layout_shards,
1657+
dpp, is_versioned, num_entries, current_shard_count, min_layout_shards,
16571658
needs_resharding, &suggested_shard_count);
16581659

16591660
// if we no longer need resharding or currently need to expand

0 commit comments

Comments
 (0)