From: Casey Bodley Date: Mon, 21 Nov 2016 18:21:07 +0000 (-0500) Subject: rgw: ops use zone placement's compression type X-Git-Tag: v11.1.0~105^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b6abe6421c25873aaffb1b2c282374724770ede4;p=ceph.git rgw: ops use zone placement's compression type Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_compression.cc b/src/rgw/rgw_compression.cc index 3a193ce7f959..6c48039b7419 100644 --- a/src/rgw/rgw_compression.cc +++ b/src/rgw/rgw_compression.cc @@ -64,8 +64,7 @@ RGWGetObj_Decompress::RGWGetObj_Decompress(CephContext* cct_, { compressor = Compressor::create(cct, cs_info->compression_type); if (!compressor.get()) - lderr(cct) << "Cannot load compressor of type " << cs_info->compression_type - << " for rgw, check rgw_compression_type config option" << dendl; + lderr(cct) << "Cannot load compressor of type " << cs_info->compression_type << dendl; } int RGWGetObj_Decompress::handle_data(bufferlist& bl, off_t bl_ofs, off_t bl_len) @@ -74,8 +73,7 @@ int RGWGetObj_Decompress::handle_data(bufferlist& bl, off_t bl_ofs, off_t bl_len if (!compressor.get()) { // if compressor isn't available - error, because cannot return decompressed data? - lderr(cct) << "Cannot load compressor of type " << cs_info->compression_type - << " for rgw, check rgw_compression_type config option" << dendl; + lderr(cct) << "Cannot load compressor of type " << cs_info->compression_type << dendl; return -EIO; } bufferlist out_bl, in_bl; diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index eb85980c5358..54838d873277 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -2807,10 +2807,10 @@ int RGWPutObj::get_data(const off_t fst, const off_t lst, bufferlist& bl) return ret; } -// special handling for rgw_compression_type = "random" with multipart uploads -static CompressorRef get_compressor_plugin(const req_state *s) +// special handling for compression type = "random" with multipart uploads +static CompressorRef get_compressor_plugin(const req_state *s, + const std::string& compression_type) { - const auto& compression_type = s->cct->_conf->rgw_compression_type; if (compression_type != "random") { return Compressor::create(s->cct, compression_type); } @@ -2846,6 +2846,8 @@ void RGWPutObj::execute() off_t fst; off_t lst; + const auto& compression_type = store->get_zone_params().get_compression_type( + s->bucket_info.placement_rule); CompressorRef plugin; boost::optional compressor; @@ -2932,11 +2934,11 @@ void RGWPutObj::execute() fst = copy_source_range_fst; lst = copy_source_range_lst; - if (s->cct->_conf->rgw_compression_type != "none") { - plugin = get_compressor_plugin(s); + if (compression_type != "none") { + plugin = get_compressor_plugin(s, compression_type); if (!plugin) { - ldout(s->cct, 1) << "Cannot load plugin for rgw_compression_type " - << s->cct->_conf->rgw_compression_type << dendl; + ldout(s->cct, 1) << "Cannot load plugin for compression type " + << compression_type << dendl; } else { compressor.emplace(s->cct, plugin, filter); filter = &*compressor; @@ -3239,12 +3241,13 @@ void RGWPostObj::execute() if (op_ret < 0) return; - const auto& compression_type = s->cct->_conf->rgw_compression_type; + const auto& compression_type = store->get_zone_params().get_compression_type( + s->bucket_info.placement_rule); CompressorRef plugin; if (compression_type != "none") { plugin = Compressor::create(s->cct, compression_type); if (!plugin) { - ldout(s->cct, 1) << "Cannot load plugin for rgw_compression_type " + ldout(s->cct, 1) << "Cannot load plugin for compression type " << compression_type << dendl; } else { compressor.emplace(s->cct, plugin, filter); diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 979bea54b9cd..1677d4d8422f 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -7115,11 +7115,12 @@ int RGWRados::fetch_remote_obj(RGWObjectCtx& obj_ctx, RGWPutObjDataProcessor *filter = &processor; - const auto& compression_type = cct->_conf->rgw_compression_type; + const auto& compression_type = zone_params.get_compression_type( + dest_bucket_info.placement_rule); if (compression_type != "none") { plugin = Compressor::create(cct, compression_type); if (!plugin) { - ldout(cct, 1) << "Cannot load plugin for rgw_compression_type " + ldout(cct, 1) << "Cannot load plugin for compression type " << compression_type << dendl; } else { compressor = boost::in_place(cct, plugin, filter);