From: Zhang Song Date: Wed, 10 Apr 2024 03:17:30 +0000 (+0800) Subject: crimson/os/seastore: introduce PROMOTE and DEMOTE transaction type X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ece1a684970671ccf888c6381f7c1268e8802e78;p=ceph.git crimson/os/seastore: introduce PROMOTE and DEMOTE transaction type Signed-off-by: Zhang Song Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/cache.cc b/src/crimson/os/seastore/cache.cc index bcc2adef7d1e..4bcf21f098f6 100644 --- a/src/crimson/os/seastore/cache.cc +++ b/src/crimson/os/seastore/cache.cc @@ -133,6 +133,8 @@ void Cache::register_metrics(store_index_t store_index) {src_t::TRIM_ALLOC, {sm::label_instance("src", "TRIM_ALLOC")}}, {src_t::CLEANER_MAIN, {sm::label_instance("src", "CLEANER_MAIN")}}, {src_t::CLEANER_COLD, {sm::label_instance("src", "CLEANER_COLD")}}, + {src_t::PROMOTE, {sm::label_instance("src", "PROMOTE")}}, + {src_t::DEMOTE, {sm::label_instance("src", "DEMOTE")}}, }; assert(labels_by_src.size() == (std::size_t)src_t::MAX); @@ -672,6 +674,10 @@ void Cache::register_metrics(store_index_t store_index) src2 == Transaction::src_t::CLEANER_MAIN) || (src1 == Transaction::src_t::CLEANER_COLD && src2 == Transaction::src_t::CLEANER_COLD) || + (src1 == Transaction::src_t::PROMOTE && + src2 == Transaction::src_t::PROMOTE) || + (src1 == Transaction::src_t::DEMOTE && + src2 == Transaction::src_t::DEMOTE) || (src1 == Transaction::src_t::TRIM_ALLOC && src2 == Transaction::src_t::TRIM_ALLOC)) { continue; diff --git a/src/crimson/os/seastore/cache.h b/src/crimson/os/seastore/cache.h index c878ad6d51f1..72c5d174db66 100644 --- a/src/crimson/os/seastore/cache.h +++ b/src/crimson/os/seastore/cache.h @@ -1905,6 +1905,10 @@ private: src2 == Transaction::src_t::CLEANER_MAIN)); assert(!(src1 == Transaction::src_t::CLEANER_COLD && src2 == Transaction::src_t::CLEANER_COLD)); + assert(!(src1 == Transaction::src_t::PROMOTE && + src2 == Transaction::src_t::PROMOTE)); + assert(!(src1 == Transaction::src_t::DEMOTE && + src2 == Transaction::src_t::DEMOTE)); assert(!(src1 == Transaction::src_t::TRIM_ALLOC && src2 == Transaction::src_t::TRIM_ALLOC)); diff --git a/src/crimson/os/seastore/seastore_types.cc b/src/crimson/os/seastore/seastore_types.cc index d205d009f11b..adddf6fd3fd9 100644 --- a/src/crimson/os/seastore/seastore_types.cc +++ b/src/crimson/os/seastore/seastore_types.cc @@ -816,6 +816,10 @@ std::ostream &operator<<(std::ostream &os, transaction_type_t type) return os << "CLEANER_MAIN"; case transaction_type_t::CLEANER_COLD: return os << "CLEANER_COLD"; + case transaction_type_t::PROMOTE: + return os << "PROMOTE"; + case transaction_type_t::DEMOTE: + return os << "DEMOTE"; case transaction_type_t::MAX: return os << "TRANS_TYPE_NULL"; default: diff --git a/src/crimson/os/seastore/seastore_types.h b/src/crimson/os/seastore/seastore_types.h index 58b23da38147..76f1dbe7ebc1 100644 --- a/src/crimson/os/seastore/seastore_types.h +++ b/src/crimson/os/seastore/seastore_types.h @@ -2718,6 +2718,8 @@ enum class transaction_type_t : uint8_t { TRIM_ALLOC, CLEANER_MAIN, CLEANER_COLD, + PROMOTE, + DEMOTE, MAX };