void ClusterState::ingest_pgstats(MPGStats *stats)
{
Mutex::Locker l(lock);
- PGMap::Incremental pending_inc;
- pending_inc.version = pg_map.version + 1; // to make apply_incremental happy
const int from = stats->get_orig_source().num();
bool is_in = false;
pending_inc.pg_stat_updates[pgid] = pg_stats;
}
+}
+void ClusterState::update_delta_stats()
+{
+ pending_inc.stamp = ceph_clock_now();
+ pending_inc.version = pg_map.version + 1; // to make apply_incremental happy
+ dout(10) << " v" << pending_inc.version << dendl;
pg_map.apply_incremental(g_ceph_context, pending_inc);
}
{
Mutex::Locker l(lock);
- PGMap::Incremental pending_inc;
+ pending_inc.stamp = ceph_clock_now();
pending_inc.version = pg_map.version + 1; // to make apply_incremental happy
+ dout(10) << " v" << pending_inc.version << dendl;
PGMapUpdater::check_osd_map(g_ceph_context, osd_map, pg_map, &pending_inc);
mutable Mutex lock;
PGMap pg_map;
+ PGMap::Incremental pending_inc;
bufferlist health_json;
bufferlist mon_status_json;
void load_digest(MMgrDigest *m);
void ingest_pgstats(MPGStats *stats);
+ void update_delta_stats();
+
const bufferlist &get_health() const {return health_json;}
const bufferlist &get_mon_status() const {return mon_status_json;}
{
auto m = new MMonMgrReport();
cluster_state.with_pgmap([&](const PGMap& pg_map) {
+ cluster_state.update_delta_stats();
+
// FIXME: no easy way to get mon features here. this will do for
// now, though, as long as we don't make a backward-incompat change.
pg_map.encode_digest(m->get_data(), CEPH_FEATURES_ALL);