&osd_tp),
map_lock("OSD::map_lock"),
pg_map_lock("OSD::pg_map_lock"),
+ last_pg_create_epoch(0),
debug_drop_pg_create_probability(cct->_conf->osd_debug_drop_pg_create_probability),
debug_drop_pg_create_duration(cct->_conf->osd_debug_drop_pg_create_duration),
debug_drop_pg_create_left(-1),
map_lock.put_read();
- monc->sub_want("osd_pg_creates", 0, CEPH_SUBSCRIBE_ONETIME);
+ monc->sub_want("osd_pg_creates", last_pg_create_epoch, 0);
monc->sub_want("osdmap", osdmap->get_epoch(), CEPH_SUBSCRIBE_ONETIME);
monc->renew_subs();
}
dispatch_context(rctx, pg, osdmap);
}
+ last_pg_create_epoch = m->epoch;
+
maybe_update_heartbeat_peers();
}
pg_t parent;
};
ceph::unordered_map<spg_t, create_pg_info> creating_pgs;
+ epoch_t last_pg_create_epoch;
double debug_drop_pg_create_probability;
int debug_drop_pg_create_duration;
int debug_drop_pg_create_left; // 0 if we just dropped the last one, -1 if we can drop more