From 0fab43b9b0e6b0cac620b03604ab2fad8a61121d Mon Sep 17 00:00:00 2001 From: Yingxin Cheng Date: Thu, 3 Dec 2020 09:58:02 +0800 Subject: [PATCH] crimson/onode-staged-tree: implement a ghobject_t constructor Signed-off-by: Yingxin Cheng --- src/common/hobject.h | 8 ++++++ .../onode_manager/staged-fltree/tree_utils.h | 28 +++++-------------- .../seastore/onode_tree/test_staged_fltree.cc | 6 ++++ 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/common/hobject.h b/src/common/hobject.h index a3812b9b154..b7d4895c33e 100644 --- a/src/common/hobject.h +++ b/src/common/hobject.h @@ -397,6 +397,14 @@ public: shard_id(shard), max(false) {} + ghobject_t(shard_id_t shard, int64_t pool, uint32_t hash, + const std::string& nspace, const std::string& oid, + snapid_t snap, gen_t gen) + : hobj(object_t(oid), "", snap, hash, pool, nspace), + generation(gen), + shard_id(shard), + max(false) {} + static ghobject_t make_pgmeta(int64_t pool, uint32_t hash, shard_id_t shard) { hobject_t h(object_t(), std::string(), CEPH_NOSNAP, hash, pool, std::string()); return ghobject_t(h, NO_GEN, shard); diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h b/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h index cdefd1ae129..b7ca22a8256 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/tree_utils.h @@ -15,27 +15,13 @@ #include "stages/key_layout.h" #include "tree.h" -namespace crimson::os::seastore::onode { +/** + * tree_utils + * + * Contains shared logic for unit tests and perf tool. + */ -ghobject_t make_ghobj( - int shard, unsigned pool, unsigned crush, - std::string ns, std::string oid, unsigned snap, unsigned gen) { - assert(shard <= std::numeric_limits::max()); - assert(shard >= std::numeric_limits::min()); - assert(pool <= std::numeric_limits::max()); - assert(crush <= std::numeric_limits::max()); - assert(snap <= std::numeric_limits::max()); - assert(gen <= std::numeric_limits::max()); - ghobject_t ghobj; - ghobj.shard_id.id = shard; - ghobj.hobj.pool = pool; - ghobj.hobj.set_hash(crush); - ghobj.hobj.nspace = ns; - ghobj.hobj.oid.name = oid; - ghobj.hobj.snap = snap; - ghobj.generation = gen; - return ghobj; -} +namespace crimson::os::seastore::onode { class Onodes { public: @@ -130,7 +116,7 @@ class KVPool { assert(oid_size >= current_size); os_oid << std::string(oid_size - current_size, '_'); - return make_ghobj(index2, index2, index2, + return ghobject_t(shard_id_t(index2), index2, index2, os_ns.str(), os_oid.str(), index0, index0); } }; diff --git a/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc b/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc index 3441a6698de..e29481c23e3 100644 --- a/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc +++ b/src/test/crimson/seastore/onode_tree/test_staged_fltree.cc @@ -27,6 +27,12 @@ namespace { return crimson::get_logger(ceph_subsys_test); } + ghobject_t make_ghobj( + shard_t shard, pool_t pool, crush_hash_t crush, + std::string ns, std::string oid, snap_t snap, gen_t gen) { + return ghobject_t{shard_id_t{shard}, pool, crush, ns, oid, snap, gen}; + } + // return a key_view_t and its underlying memory buffer. // the buffer needs to be freed manually. std::pair build_key_view(const ghobject_t& hobj) { -- 2.39.5