From 2d3828258157ccda9e2e0c7bdf69f2b15f971e37 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rados=C5=82aw=20Zarzy=C5=84ski?= Date: Fri, 6 Oct 2023 16:42:20 +0200 Subject: [PATCH] crimson/osd: bring attr cache to ObjectContext MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Radosław Zarzyński --- src/crimson/osd/object_context.h | 3 +++ src/crimson/osd/object_context_loader.cc | 1 + src/crimson/osd/pg_backend.cc | 2 +- src/crimson/osd/pg_backend.h | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) 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 a360ad606e7..ef42af785dc 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -148,7 +148,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 c13c87a6f32..fcad19a2978 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" @@ -452,6 +453,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 -- 2.47.3