]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw/d4n: squashing all commits related to caching head in the
authorPritha Srivastava <prsrivas@redhat.com>
Wed, 20 Mar 2024 04:14:50 +0000 (09:44 +0530)
committerPritha Srivastava <prsrivas@redhat.com>
Mon, 21 Apr 2025 04:04:07 +0000 (09:34 +0530)
commitd5bcd3a6afbb02083e39126c5052792c8dc129f9
tree9b272a4f70005e30984189c8ac8ce184787fb28c
parentde04ef0b8b900eaecb4832e25e65d4ed5ea9152b
rgw/d4n: squashing all commits related to caching head in the
write-back workflow, modifying set_obj_attrs(), get_obj_attrs() and
delete_obj_attrs based on the cached head and modifying the cleaning
method to use a min-heap data structure for storing dirty objects only.

1. rgw/d4n: implementation for caching head object in write-back workflow.
2. rgw/d4n: modifications to get write back cache working after cleaning
process.
3. rgw/d4n: modifications for eviction of dirty blocks.
4. rgw/d4n: modifications include adding a heap of dirty objects
which has objects ordered by their creation time and the top
element of which is fetched in the cleaning method, processed
and deleted in a loop.
5. rgw/d4n: changing the format of cached blocks to
bucket_name_version_object_name_ofs_len, to avoid checks
for versioned and non-versioned objects.
6. rgw/d4n: modifications to set_obj_attrs(), modify_obj_attrs()
and delete_obj_attrs() to check if the head object exists in a cache,
else direct the calls to backend store.
7. rgw/d4n: handling version in case of bucket versioning being suspended
while writing the object.

Co-authored by: Samarah <samarah.uriarte@ibm.com>
Changed dynamic_cast to static_cast for D4NFilterObject
in D4NFilterWriter class constructors.

Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
src/rgw/driver/d4n/d4n_directory.cc
src/rgw/driver/d4n/d4n_directory.h
src/rgw/driver/d4n/d4n_policy.cc
src/rgw/driver/d4n/d4n_policy.h
src/rgw/driver/d4n/rgw_sal_d4n.cc
src/rgw/driver/d4n/rgw_sal_d4n.h
src/test/rgw/test_d4n_policy.cc