>=16.2.8
--------
+* RGW: The behavior for Multipart Upload was modified so that only
+ CompleteMultipartUpload notification is sent at the end of the multipart upload.
+ The POST notification at the beginning of the upload, and PUT notifications that
+ were sent on each part are not sent anymore.
+
* MON/MGR: Pools can now be created with `--bulk` flag. Any pools created with `bulk`
will use a profile of the `pg_autoscaler` that provides more performance from the start.
However, any pools created without the `--bulk` flag will remain using it's old behavior
// make reservation for notification if needed
rgw::notify::reservation_t res(this, store, s, s->object.get());
const auto event_type = rgw::notify::ObjectCreatedPut;
- op_ret = rgw::notify::publish_reserve(this, event_type, res, obj_tags.get());
- if (op_ret < 0) {
- return;
+ if(!multipart) {
+ op_ret = rgw::notify::publish_reserve(this, event_type, res, obj_tags.get());
+ if (op_ret < 0) {
+ return;
+ }
}
// create the object processor
return;
}
- // make reservation for notification if needed
- rgw::notify::reservation_t res(this, store, s, s->object.get());
- const auto event_type = rgw::notify::ObjectCreatedPost;
- op_ret = rgw::notify::publish_reserve(this, event_type, res, nullptr);
- if (op_ret < 0) {
- return;
- }
-
do {
char buf[33];
std::unique_ptr<rgw::sal::RGWObject> obj;
op_ret = obj_op->write_meta(this, bl.length(), 0, s->yield);
} while (op_ret == -EEXIST);
-
- // send request to notification manager
- const auto ret = rgw::notify::publish_commit(s->object.get(), s->obj_size, ceph::real_clock::now(), attrs[RGW_ATTR_ETAG].to_str(), event_type, res, this);
- if (ret < 0) {
- ldpp_dout(this, 1) << "ERROR: publishing notification failed, with error: " << ret << dendl;
- // too late to rollback operation, hence op_ret is not set here
- }
}
int RGWCompleteMultipart::verify_permission(optional_yield y)