]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/d4n: removing code that writes object entry to the
authorPritha Srivastava <prsrivas@redhat.com>
Fri, 23 Aug 2024 07:15:00 +0000 (12:45 +0530)
committerPritha Srivastava <prsrivas@redhat.com>
Mon, 21 Apr 2025 04:04:07 +0000 (09:34 +0530)
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 <prsrivas@redhat.com>
src/rgw/driver/d4n/rgw_sal_d4n.cc

index 5ad6b0c3a880e1389399f3d4f54f0ddbbbf1e535..6cd73240ed0540da5603a2c695bd24edcef2c2f4 100644 (file)
@@ -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<rgw_user>(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<rgw_user>(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;