<< " flush_quota " << agent_flush_quota << dendl;
agent_lock.Unlock();
if (!pg->agent_work(max, agent_flush_quota)) {
- dout(10) << __func__ << " " << pg->get_pgid()
+ dout(10) << __func__ << " " << pg->pg_id
<< " no agent_work, delay for " << cct->_conf->osd_agent_delay_time
<< " seconds" << dendl;
if ((m->get_flags() & CEPH_OSD_FLAG_PGOP) == 0)
_pgid = opmap->raw_pg_to_pg(_pgid);
if (opmap->get_primary_shard(_pgid, &pgid) &&
- pgid.shard != pg->get_pgid().shard) {
+ pgid.shard != pg->pg_id.shard) {
dout(7) << __func__ << ": " << *pg << " primary changed since "
<< m->get_map_epoch() << ", dropping" << dendl;
return;
dout(10) << "queueing " << *pg << " for snaptrim" << dendl;
osd->op_shardedwq.queue(
make_pair(
- pg->get_pgid(),
+ pg->pg_id,
PGQueueable(
PGSnapTrim(pg->get_osdmap()->get_epoch()),
cct->_conf->osd_snap_trim_cost,
++it) {
PG *pg = it->second;
- f->dump_stream("pg") << pg->get_pgid();
+ f->dump_stream("pg") << pg->pg_id;
pg->lock();
pg->pgstate_history.dump(f);
pg->unlock();
pg->pg_stats_publish_lock.Lock();
if (pg->pg_stats_publish_valid) {
- m->pg_stat[pg->info.pgid.pgid] = pg->pg_stats_publish;
+ m->pg_stat[pg->pg_id.pgid] = pg->pg_stats_publish;
const auto lec = pg->pg_stats_publish.get_effective_last_epoch_clean();
min_last_epoch_clean = min(min_last_epoch_clean, lec);
- min_last_epoch_clean_pgs.push_back(pg->info.pgid.pgid);
+ min_last_epoch_clean_pgs.push_back(pg->pg_id.pgid);
}
pg->pg_stats_publish_lock.Unlock();
}
pg->lock(no_lockdep_check);
pg_map[pgid] = pg;
pg->get("PGMap"); // because it's in pg_map
- service.pg_add_epoch(pg->info.pgid, createmap->get_epoch());
+ service.pg_add_epoch(pg->pg_id, createmap->get_epoch());
}
return pg;
}
{
epoch_t e(service.get_osdmap()->get_epoch());
pg->get("PGMap"); // For pg_map
- pg_map[pg->info.pgid] = pg;
- service.pg_add_epoch(pg->info.pgid, pg->get_osdmap()->get_epoch());
+ pg_map[pg->pg_id] = pg;
+ service.pg_add_epoch(pg->pg_id, pg->get_osdmap()->get_epoch());
dout(10) << "Adding newly split pg " << *pg << dendl;
pg->handle_loaded(rctx);
pg->write_if_dirty(*(rctx->transaction));
pg->queue_null(e, e);
map<spg_t, list<PG::CephPeeringEvtRef> >::iterator to_wake =
- peering_wait_for_split.find(pg->info.pgid);
+ peering_wait_for_split.find(pg->pg_id);
if (to_wake != peering_wait_for_split.end()) {
for (list<PG::CephPeeringEvtRef>::iterator i =
to_wake->second.begin();
}
peering_wait_for_split.erase(to_wake);
}
- if (!service.get_osdmap()->have_pg_pool(pg->info.pgid.pool()))
+ if (!service.get_osdmap()->have_pg_pool(pg->pg_id.pool()))
_remove_pg(pg);
}
derr << "PGs are upgrading" << dendl;
has_upgraded = true;
}
- dout(10) << "PG " << pg->info.pgid
+ dout(10) << "PG " << pg->pg_id
<< " must upgrade..." << dendl;
pg->upgrade(store);
}
- service.init_splits_between(pg->info.pgid, pg->get_osdmap(), osdmap);
+ service.init_splits_between(pg->pg_id, pg->get_osdmap(), osdmap);
// generate state for PG's current mapping
int primary, up_primary;
}
}
- dout(10) << pg->info.pgid << " needs " << rpib.first << "-"
+ dout(10) << pg->pg_id << " needs " << rpib.first << "-"
<< rpib.second << dendl;
pistate& p = pis[pg];
p.start = rpib.first;
vector<int> acting, up;
int up_primary;
int primary;
- pg_t pgid = pg->info.pgid.pgid;
+ pg_t pgid = pg->pg_id.pgid;
if (p.same_interval_since && last_map->get_pools().count(pgid.pool()))
pgid = pgid.get_ancestor(last_map->get_pg_num(pgid.pool()));
cur_map->pg_to_up_acting_osds(
pgid, &up, &up_primary, &acting, &primary);
if (p.same_interval_since == 0) {
- dout(10) << __func__ << " epoch " << cur_epoch << " pg " << pg->info.pgid
+ dout(10) << __func__ << " epoch " << cur_epoch << " pg " << pg->pg_id
<< " first map, acting " << acting
<< " up " << up << ", same_interval_since = " << cur_epoch << dendl;
p.same_interval_since = cur_epoch;
&pg->past_intervals,
&debug);
if (new_interval) {
- dout(10) << __func__ << " epoch " << cur_epoch << " pg " << pg->info.pgid
+ dout(10) << __func__ << " epoch " << cur_epoch << " pg " << pg->pg_id
<< " " << debug.str() << dendl;
p.old_up = up;
p.old_acting = acting;
PGRef pg(item.first);
SnapMapper &mapper = pg->snap_mapper;
OSDriver &driver = pg->osdriver;
- coll_t coll = coll_t(pg->info.pgid);
+ coll_t coll = coll_t(pg->pg_id);
pg->osr->flush();
bool finished = false;
return;
ObjectStore::Transaction t;
- PGLog::clear_info_log(pg->info.pgid, &t);
+ PGLog::clear_info_log(pg->pg_id, &t);
if (cct->_conf->osd_inject_failure_on_pg_removal) {
generic_derr << "osd_inject_failure_on_pg_removal" << dendl;
vector<int> newup, newacting;
int up_primary, acting_primary;
nextmap->pg_to_up_acting_osds(
- pg->get_pgid().pgid,
+ pg->pg_id.pgid,
&newup, &up_primary,
&newacting, &acting_primary);
pg->handle_advance_map(
// Check for split!
set<spg_t> children;
- spg_t parent(pg->get_pgid());
+ spg_t parent(pg->pg_id);
if (parent.is_split(
lastmap->get_pg_num(pg->pool.id),
nextmap->get_pg_num(pg->pool.id),
&children)) {
- service.mark_split_in_progress(pg->get_pgid(), children);
+ service.mark_split_in_progress(pg->pg_id, children);
split_pgs(
pg, children, new_pgs, lastmap, nextmap,
rctx);
lastmap = nextmap;
handle.reset_tp_timeout();
}
- service.pg_update_epoch(pg->get_pgid(), lastmap->get_epoch());
+ service.pg_update_epoch(pg->pg_id, lastmap->get_epoch());
pg->handle_activate_map(rctx);
if (next_epoch <= osd_epoch) {
dout(10) << __func__ << " advanced to max " << max
else
num_pg_stray++;
- if (!osdmap->have_pg_pool(pg->get_pgid().pool())) {
+ if (!osdmap->have_pg_pool(pg->pg_id.pool())) {
//pool is deleted!
to_remove.push_back(PGRef(pg));
} else {
osdmap->pg_to_up_acting_osds(
pgid.pgid, &up, &up_primary, &acting, &acting_primary);
bool valid_history = project_pg_history(
- pg->get_pgid(), history, pg->get_osdmap()->get_epoch(),
+ pg->pg_id, history, pg->get_osdmap()->get_epoch(),
up, up_primary, acting, acting_primary);
if (valid_history &&
history.same_interval_since <= m->get_epoch()) {
// and handle_notify_timeout
pg->on_removal(&rmt);
- service.cancel_pending_splits_for_parent(pg->get_pgid());
+ service.cancel_pending_splits_for_parent(pg->pg_id);
int tr = store->queue_transaction(
pg->osr.get(), std::move(rmt), NULL,
new ContainerContext<
assert(tr == 0);
DeletingStateRef deleting = service.deleting_pgs.lookup_or_create(
- pg->get_pgid(),
+ pg->pg_id,
make_pair(
- pg->get_pgid(),
+ pg->pg_id,
PGRef(pg))
);
remove_wq.queue(make_pair(PGRef(pg), deleting));
- service.pg_remove_epoch(pg->get_pgid());
+ service.pg_remove_epoch(pg->pg_id);
// dereference from op_wq
- op_shardedwq.clear_pg_pointer(pg->get_pgid());
+ op_shardedwq.clear_pg_pointer(pg->pg_id);
// remove from map
- pg_map.erase(pg->get_pgid());
+ pg_map.erase(pg->pg_id);
pg->put("PGMap"); // since we've taken it out of map
}
dout(10) << "do_recovery starting " << reserved_pushes << " " << *pg << dendl;
#ifdef DEBUG_RECOVERY_OIDS
- dout(20) << " active was " << service.recovery_oids[pg->get_pgid()] << dendl;
+ dout(20) << " active was " << service.recovery_oids[pg->pg_id] << dendl;
#endif
bool more = pg->start_recovery_ops(reserved_pushes, handle, &started);
recovery_ops_active++;
#ifdef DEBUG_RECOVERY_OIDS
- dout(20) << " active was " << recovery_oids[pg->get_pgid()] << dendl;
- assert(recovery_oids[pg->get_pgid()].count(soid) == 0);
- recovery_oids[pg->get_pgid()].insert(soid);
+ dout(20) << " active was " << recovery_oids[pg->pg_id] << dendl;
+ assert(recovery_oids[pg->pg_id].count(soid) == 0);
+ recovery_oids[pg->pg_id].insert(soid);
#endif
}
recovery_ops_active--;
#ifdef DEBUG_RECOVERY_OIDS
- dout(20) << " active oids was " << recovery_oids[pg->get_pgid()] << dendl;
- assert(recovery_oids[pg->get_pgid()].count(soid));
- recovery_oids[pg->get_pgid()].erase(soid);
+ dout(20) << " active oids was " << recovery_oids[pg->pg_id] << dendl;
+ assert(recovery_oids[pg->pg_id].count(soid));
+ recovery_oids[pg->pg_id].erase(soid);
#endif
_maybe_queue_recovery();