From d358e7e628c57c8da1392936639d5428edb7d621 Mon Sep 17 00:00:00 2001 From: Pritha Srivastava Date: Fri, 23 Aug 2024 12:45:00 +0530 Subject: [PATCH] rgw/d4n: removing code that writes object entry to the object directory in redis Objects were being written to the directory for bucket listing but another data structure needs to be used that allows for ordered listing indexed by a bucket name/ id, hence removing the entries that do not serve this purpose (they also add to the number of calls to the redis server). Signed-off-by: Pritha Srivastava --- src/rgw/driver/d4n/rgw_sal_d4n.cc | 67 ------------------------------- 1 file changed, 67 deletions(-) diff --git a/src/rgw/driver/d4n/rgw_sal_d4n.cc b/src/rgw/driver/d4n/rgw_sal_d4n.cc index 5ad6b0c3a88..6cd73240ed0 100644 --- a/src/rgw/driver/d4n/rgw_sal_d4n.cc +++ b/src/rgw/driver/d4n/rgw_sal_d4n.cc @@ -312,20 +312,6 @@ int D4NFilterObject::copy_object(const ACLOwner& owner, std::string object_key = dest_object->get_bucket()->get_name() + "_" + dest_object->get_oid(); driver->get_policy_driver()->get_cache_policy()->updateObj(dpp, object_key, dest_version, true, this->get_size(), creationTime, std::get(dest_object->get_bucket()->get_owner()), *etag, dest_object->get_bucket()->get_name(), dest_object->get_key(), y); } - - //write object to directory. - rgw::d4n::CacheObj object = rgw::d4n::CacheObj{ - .objName = dest_object->get_oid(), - .bucketName = dest_object->get_bucket()->get_name(), - .creationTime = std::to_string(creationTime), - .dirty = dirty, - .hostsList = { dpp->get_cct()->_conf->rgw_d4n_l1_datacache_address } - }; - ret = driver->get_obj_dir()->set(dpp, &object, y); - if (ret < 0) { - ldpp_dout(dpp, 10) << "D4NFilterObject::" << __func__ << "(): ObjectDirectory set method failed with err: " << ret << dendl; - return ret; - } } } @@ -994,19 +980,6 @@ int D4NFilterObject::D4NFilterReadOp::prepare(optional_yield y, const DoutPrefix if (ret < 0) { ldpp_dout(dpp, 0) << "D4NFilterObject::" << __func__ << "(): BlockDirectory set method failed for head object, ret=" << ret << dendl; } - //write object to directory. - rgw::d4n::CacheObj object = rgw::d4n::CacheObj{ - .objName = source->get_oid(), - .bucketName = source->get_bucket()->get_name(), - .creationTime = std::to_string(ceph::real_clock::to_double(source->get_mtime())), - .dirty = false, - .hostsList = { dpp->get_cct()->_conf->rgw_d4n_l1_datacache_address } - }; - ret = source->driver->get_obj_dir()->set(dpp, &object, y); - if (ret < 0) { - ldpp_dout(dpp, 10) << "D4NFilterObject::" << __func__ << "(): ObjectDirectory set method failed with err: " << ret << dendl; - return ret; - } } else { ldpp_dout(dpp, 0) << "D4NFilterObject::" << __func__ << "(): put for head object failed, ret=" << ret << dendl; } @@ -1682,18 +1655,6 @@ int D4NFilterObject::D4NFilterReadOp::D4NFilterGetCB::handle_data(bufferlist& bl } else { ldpp_dout(dpp, 0) << "Failed to fetch existing block for: " << existing_block.cacheObj.objName << " blockID: " << existing_block.blockID << " block size: " << existing_block.size << ", ret=" << ret << dendl; } - //write object to directory. - rgw::d4n::CacheObj object = rgw::d4n::CacheObj{ - .objName = source->get_oid(), - .bucketName = source->get_bucket()->get_name(), - .dirty = dirty, - .hostsList = { dpp->get_cct()->_conf->rgw_d4n_l1_datacache_address } - }; - ret = source->driver->get_obj_dir()->set(dpp, &object, *y); - if (ret < 0) { - ldpp_dout(dpp, 10) << "D4NFilterObject::D4NFilterReadOp::D4NFilterGetCB::::" << __func__ << "(): ObjectDirectory set method failed with err: " << ret << dendl; - return ret; - } } else { ldpp_dout(dpp, 0) << "D4NFilterObject::D4NFilterReadOp::D4NFilterGetCB::" << __func__ << "(): put() to cache backend failed, ret=" << ret << dendl; } @@ -2288,21 +2249,6 @@ int D4NFilterWriter::complete(size_t accounted_size, const std::string& etag, ldpp_dout(dpp, 16) << "D4NFilterWriter::" << __func__ << "(): object_key=" << object_key << dendl; driver->get_policy_driver()->get_cache_policy()->updateObj(dpp, object_key, version, dirty, accounted_size, creationTime, std::get(obj->get_bucket()->get_owner()), objEtag, obj->get_bucket()->get_name(), obj->get_key(), y); } - - //write object to directory. - hostsList = { dpp->get_cct()->_conf->rgw_d4n_l1_datacache_address }; - rgw::d4n::CacheObj object = rgw::d4n::CacheObj{ - .objName = obj->get_oid(), - .bucketName = obj->get_bucket()->get_name(), - .creationTime = std::to_string(creationTime), - .dirty = dirty, - .hostsList = hostsList - }; - ret = driver->get_obj_dir()->set(dpp, &object, y); - if (ret < 0) { - ldpp_dout(dpp, 0) << "D4NFilterWriter::" << __func__ << "(): ObjectDirectory set method failed, ret=" << ret << dendl; - return ret; - } } else { //if get_cache_driver()->put() ldpp_dout(dpp, 0) << "D4NFilterWriter::" << __func__ << "(): put failed for head_oid_in_cache, ret=" << ret << dendl; return ret; @@ -2364,19 +2310,6 @@ int D4NFilterMultipartUpload::complete(const DoutPrefixProvider *dpp, if (ret < 0) { ldpp_dout(dpp, 0) << "D4NFilterMultipartUpload::" << __func__ << "(): BlockDirectory set method failed for head object, ret=" << ret << dendl; } - //write object to directory. - rgw::d4n::CacheObj object = rgw::d4n::CacheObj{ - .objName = d4n_target_obj->get_oid(), - .bucketName = d4n_target_obj->get_bucket()->get_name(), - .creationTime = std::to_string(ceph::real_clock::to_double(target_obj->get_mtime())), - .dirty = false, - .hostsList = { dpp->get_cct()->_conf->rgw_d4n_l1_datacache_address } - }; - ret = driver->get_obj_dir()->set(dpp, &object, y); - if (ret < 0) { - ldpp_dout(dpp, 10) << "D4NFilterMultipartUpload::" << __func__ << "(): ObjectDirectory set method failed with err: " << ret << dendl; - return ret; - } } else { ldpp_dout(dpp, 0) << "D4NFilterMultipartUpload::" << __func__ << "(): put for head object failed, ret=" << ret << dendl; return ret; -- 2.39.5