From: Garry Drankovich Date: Wed, 2 Apr 2025 21:31:02 +0000 (+0300) Subject: osd/PrimaryLogPG: avoid redundant container clones and lookups X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=db9dd7c6ef2fdac96324b3fbe0f9281e764cd87f;p=ceph-ci.git osd/PrimaryLogPG: avoid redundant container clones and lookups Signed-off-by: Garry Drankovich --- diff --git a/src/osd/PGTransaction.h b/src/osd/PGTransaction.h index 928d9483966..8e067321a07 100644 --- a/src/osd/PGTransaction.h +++ b/src/osd/PGTransaction.h @@ -322,16 +322,16 @@ public: void update_snaps( const hobject_t &hoid, ///< [in] object for snaps - const std::set &old_snaps,///< [in] old snaps value - const std::set &new_snaps ///< [in] new snaps value + std::set &&old_snaps,///< [in] old snaps value + std::set &&new_snaps ///< [in] new snaps value ) { auto &op = get_object_op(hoid); ceph_assert(!op.updated_snaps); ceph_assert(op.buffer_updates.empty()); ceph_assert(!op.truncate); op.updated_snaps = make_pair( - old_snaps, - new_snaps); + std::move(old_snaps), + std::move(new_snaps)); } /// Clears, truncates diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 9db4cb9ddd5..2ef83f31937 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -4835,8 +4835,8 @@ int PrimaryLogPG::trim_object( t->remove(coid); t->update_snaps( coid, - old_snaps, - new_snaps); + std::move(old_snaps), + std::move(new_snaps)); coi = object_info_t(coid); @@ -4870,8 +4870,8 @@ int PrimaryLogPG::trim_object( t->update_snaps( coid, - old_snaps, - new_snaps); + std::move(old_snaps), + std::move(new_snaps)); } // save head snapset @@ -15892,9 +15892,10 @@ boost::statechart::result PrimaryLogPG::AwaitAsyncWork::react(const DoSnapWork&) pg->snap_trimq.erase(snap_to_trim); - if (pg->snap_trimq_repeat.count(snap_to_trim)) { + if (auto it = pg->snap_trimq_repeat.find(snap_to_trim); + it != pg->snap_trimq_repeat.end()) { ldout(pg->cct, 10) << " removing from snap_trimq_repeat" << dendl; - pg->snap_trimq_repeat.erase(snap_to_trim); + pg->snap_trimq_repeat.erase(it); } else { ldout(pg->cct, 10) << "adding snap " << snap_to_trim << " to purged_snaps"