From: Matan Breizman Date: Tue, 14 Jan 2025 13:26:41 +0000 (+0000) Subject: osd/SnapMapper: Add logs to ctor and update_bits() X-Git-Tag: v20.0.0~273^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6479e9e336cae7f22df3dd0c4a4fbd7dc2653fcb;p=ceph.git osd/SnapMapper: Add logs to ctor and update_bits() Signed-off-by: Matan Breizman --- diff --git a/src/osd/SnapMapper.cc b/src/osd/SnapMapper.cc index 76f02c515220..8395d2c913bb 100644 --- a/src/osd/SnapMapper.cc +++ b/src/osd/SnapMapper.cc @@ -205,6 +205,20 @@ int OSDriver::get_next_or_current( } #endif // WITH_SEASTAR + SnapMapper::SnapMapper( + CephContext* cct, + MapCacher::StoreDriver *driver, + uint32_t match, ///< [in] pgid + uint32_t bits, ///< [in] current split bits + int64_t pool, ///< [in] pool + shard_id_t shard ///< [in] shard + ) + : cct(cct), backend(driver), mask_bits(bits), match(match), pool(pool), + shard(shard), shard_prefix(make_shard_prefix(shard)) { + dout(10) << *this << __func__ << dendl; + update_bits(mask_bits); + } + string SnapMapper::get_prefix(int64_t pool, snapid_t snap) { static_assert(sizeof(pool) == 8, "assumed by the formatting code"); @@ -483,6 +497,24 @@ void SnapMapper::set_snaps( backend.set_keys(to_set, t); } +void SnapMapper::update_bits( + uint32_t new_bits) ///< [in] new split bits +{ + dout(20) << *this << __func__ << " new_bits: " << new_bits << dendl; + mask_bits = new_bits; + std::set _prefixes = hobject_t::get_prefixes( + mask_bits, + match, + pool); + prefixes.clear(); + for (auto i = _prefixes.begin(); i != _prefixes.end(); ++i) { + prefixes.insert(shard_prefix + *i); + } + dout(20) << *this <<__func__ << " prefix updated" << dendl; + + reset_prefix_itr(CEPH_NOSNAP, "update_bits"); + } + int SnapMapper::update_snaps( const hobject_t &oid, const set &new_snaps, diff --git a/src/osd/SnapMapper.h b/src/osd/SnapMapper.h index 3dd4366c2d41..cdd3bb5e3735 100644 --- a/src/osd/SnapMapper.h +++ b/src/osd/SnapMapper.h @@ -331,28 +331,12 @@ private: uint32_t bits, ///< [in] current split bits int64_t pool, ///< [in] pool shard_id_t shard ///< [in] shard - ) - : cct(cct), backend(driver), mask_bits(bits), match(match), pool(pool), - shard(shard), shard_prefix(make_shard_prefix(shard)) { - update_bits(mask_bits); - } + ); /// Update bits in case of pg split or merge void update_bits( uint32_t new_bits ///< [in] new split bits - ) { - mask_bits = new_bits; - std::set _prefixes = hobject_t::get_prefixes( - mask_bits, - match, - pool); - prefixes.clear(); - for (auto i = _prefixes.begin(); i != _prefixes.end(); ++i) { - prefixes.insert(shard_prefix + *i); - } - - reset_prefix_itr(CEPH_NOSNAP, "update_bits"); - } + ); const std::set::iterator get_prefix_itr() { return prefix_itr;