crimson/osd: SnapMapper::record_purged_snaps() takes abstratced store and txn

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
This commit is contained in:
Radoslaw Zarzynski 2022-11-18 17:47:16 +00:00
parent 3fef67bf36
commit 742cb2efb1
3 changed files with 17 additions and 16 deletions

View File

@ -6650,10 +6650,14 @@ void OSD::handle_get_purged_snaps_reply(MMonGetPurgedSnapsReply *m)
if (!is_preboot() ||
m->last < superblock.purged_snaps_last) {
goto out;
} else {
OSDriver osdriver{store.get(), service.meta_ch, make_purged_snaps_oid()};
SnapMapper::record_purged_snaps(
cct,
osdriver,
osdriver.get_transaction(&t),
m->purged_snaps);
}
SnapMapper::record_purged_snaps(cct, store.get(), service.meta_ch,
make_purged_snaps_oid(), &t,
m->purged_snaps);
superblock.purged_snaps_last = m->last;
write_superblock(t);
store->queue_transaction(
@ -8186,9 +8190,12 @@ void OSD::handle_osd_map(MOSDMap *m)
// record new purged_snaps
if (superblock.purged_snaps_last == start - 1) {
SnapMapper::record_purged_snaps(cct, store.get(), service.meta_ch,
make_purged_snaps_oid(), &t,
purged_snaps);
OSDriver osdriver{store.get(), service.meta_ch, make_purged_snaps_oid()};
SnapMapper::record_purged_snaps(
cct,
osdriver,
osdriver.get_transaction(&t),
purged_snaps);
superblock.purged_snaps_last = last;
} else {
dout(10) << __func__ << " superblock purged_snaps_last is "

View File

@ -618,14 +618,11 @@ int SnapMapper::_lookup_purged_snap(
void SnapMapper::record_purged_snaps(
CephContext *cct,
ObjectStore *store,
ObjectStore::CollectionHandle& ch,
ghobject_t hoid,
ObjectStore::Transaction *t,
OSDriver& backend,
OSDriver::OSTransaction&& txn,
map<epoch_t,mempool::osdmap::map<int64_t,snap_interval_set_t>> purged_snaps)
{
dout(10) << __func__ << " purged_snaps " << purged_snaps << dendl;
OSDriver backend(store, ch, hoid);
map<string,ceph::buffer::list> m;
set<string> rm;
for (auto& [epoch, bypool] : purged_snaps) {
@ -668,7 +665,6 @@ void SnapMapper::record_purged_snaps(
}
}
}
auto txn = backend.get_transaction(t);
txn.remove_keys(rm);
txn.set_keys(m);
dout(10) << __func__ << " rm " << rm.size() << " keys, set " << m.size()

View File

@ -197,10 +197,8 @@ public:
static void record_purged_snaps(
CephContext *cct,
ObjectStore *store,
ObjectStore::CollectionHandle& ch,
ghobject_t hoid,
ObjectStore::Transaction *t,
OSDriver& backend,
OSDriver::OSTransaction&& txn,
std::map<epoch_t,mempool::osdmap::map<int64_t,snap_interval_set_t>> purged_snaps);
static void scrub_purged_snaps(
CephContext *cct,