* RGW: deleted buckets are automatically cleaned up as part of trimming process.
DeleteBucket will start returning 409 BucketNotEmpty errors until empty
on all zones when sync policy is enabled.
- `radosgw-admin bucket list-deleted` lists such buckets.
* RADOS: A performance botteneck in the balancer mgr module has been fixed.
Related Tracker: https://tracker.ceph.com/issues/68657
ldpp_dout(dpp, 10) << "store log layout type: " << bci.info.layout.logs.back().layout.type << dendl;
for (int i = 0; i < shards_num; ++i) {
ldpp_dout(dpp, 10) << "adding to data_log shard_id: " << i << " of gen:" << index_log.gen << dendl;
- int ret = svc_datalog->add_entry(dpp, bci.info, index_log, i,
- null_yield);
+ int ret = svc_datalog->add_entry(dpp, bci.info, index_log, i, y);
if (ret < 0) {
ldpp_dout(dpp, 1) << "WARNING: failed writing data log for bucket="
<< bci.info.bucket << ", shard_id=" << i << "of generation="
int RGWBucketInstanceMetadataHandler::remove(std::string& entry, RGWObjVersionTracker& objv_tracker,
optional_yield y, const DoutPrefixProvider *dpp)
{
- return 0; // skip bucket instance removal. each zone will handle it independently during trimming
+ RGWBucketCompleteInfo bci;
+ int ret = svc_bucket->read_bucket_instance_info(entry, &bci.info, nullptr,
+ &bci.attrs, y, dpp);
+ if (ret == -ENOENT) {
+ return 0;
+ }
+ if (ret < 0) {
+ return ret;
+ }
+
+ // skip bucket instance removal. each zone will handle it independently during trimming
+
+ std::ignore = update_bucket_topic_mappings(dpp, &bci, /*current_bci=*/nullptr,
+ driver);
+ return 0;
}
int RGWBucketInstanceMetadataHandler::mutate(const std::string& entry, const ceph::real_time& mtime,
std::string prefix;
int max_keys;
bool is_truncated;
- bool allow_unordered;
std::list<bucket_list_entry> entries;
bucket_unordered_list_result() : max_keys(0), is_truncated(false) {}
JSONDecoder::decode_json("Prefix", prefix, obj);
JSONDecoder::decode_json("MaxKeys", max_keys, obj);
JSONDecoder::decode_json("IsTruncated", is_truncated, obj);
- JSONDecoder::decode_json("allow-unordered", allow_unordered, obj);
JSONDecoder::decode_json("Entries", entries, obj);
}
};
bilog_autotrim(primary.zone, ['--rgw-sync-log-trim-max-buckets', '50'],)
for zonegroup in realm.current_period.zonegroups:
+ zonegroup_conns = ZonegroupConns(zonegroup)
for zone in zonegroup_conns.zones:
assert check_bucket_instance_metadata(zone.zone, test_bucket.name)
time.sleep(config.checkpoint_delay)
for zonegroup in realm.current_period.zonegroups:
+ zonegroup_conns = ZonegroupConns(zonegroup)
for zone in zonegroup_conns.zones:
assert check_bucket_instance_metadata(zone.zone, test_bucket.name)