From: Radosław Zarzyński Date: Fri, 6 Oct 2023 14:42:20 +0000 (+0200) Subject: crimson/osd: bring attr cache to ObjectContext X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=01e0c811e2d780300e5ee7fa88977b68d40889fd;p=ceph-ci.git crimson/osd: bring attr cache to ObjectContext Signed-off-by: Radosław Zarzyński --- diff --git a/src/crimson/osd/object_context.h b/src/crimson/osd/object_context.h index 3d07c14cec3..415f4281035 100644 --- a/src/crimson/osd/object_context.h +++ b/src/crimson/osd/object_context.h @@ -74,6 +74,9 @@ public: using watch_key_t = std::pair; std::map> watchers; + // attr cache. ECTransaction is the initial user + std::map> attr_cache; + CommonOBCPipeline obc_pipeline; ObjectContext(hobject_t hoid) : lock(hoid.to_str()), diff --git a/src/crimson/osd/object_context_loader.cc b/src/crimson/osd/object_context_loader.cc index d85e2584406..d7689a0455d 100644 --- a/src/crimson/osd/object_context_loader.cc +++ b/src/crimson/osd/object_context_loader.cc @@ -169,6 +169,7 @@ ObjectContextLoader::load_obc(ObjectContextRef obc) // See set_clone_ssc obc->set_clone_state(std::move(md->os)); } + obc->attr_cache = std::move(md->attr_cache); DEBUGDPP("loaded obc {} for {}", dpp, obc->obs.oi, obc->obs.oi.soid); return seastar::now(); }); diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index 697f3e48aa4..d61454dc11e 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -145,7 +145,7 @@ PGBackend::load_metadata(const hobject_t& oid) return crimson::ct_error::object_corrupted::make(); } } - + ret->attr_cache = std::move(attrs); return load_metadata_ertr::make_ready_future( std::move(ret)); }, crimson::ct_error::enoent::handle([oid] { diff --git a/src/crimson/osd/pg_backend.h b/src/crimson/osd/pg_backend.h index 3ec46ad69b1..6c1abd0f3b3 100644 --- a/src/crimson/osd/pg_backend.h +++ b/src/crimson/osd/pg_backend.h @@ -18,6 +18,7 @@ #include "messages/MOSDOpReply.h" #include "os/Transaction.h" #include "osd/osd_types.h" +#include "crimson/os/futurized_store.h" #include "crimson/osd/object_context.h" #include "crimson/osd/osd_operation.h" #include "crimson/osd/osd_operations/osdop_params.h" @@ -451,6 +452,7 @@ public: struct loaded_object_md_t { ObjectState os; crimson::osd::SnapSetContextRef ssc; + crimson::os::FuturizedStore::Shard::attrs_t attr_cache; using ref = std::unique_ptr; }; load_metadata_iertr::future