pg_stats_publish_valid = true;
pg_stats_publish = info.stats;
+ pg_stats_publish.stats.add(unstable_stats);
// calc copies, degraded
unsigned target = MAX(get_osdmap()->get_pg_size(info.pgid), acting.size());
void PG::write_info(ObjectStore::Transaction& t)
{
+ info.stats.stats.add(unstable_stats);
+ unstable_stats.clear();
+
int ret = _write_info(t, get_osdmap()->get_epoch(), info, coll,
past_intervals, snap_collections, osd->infos_oid,
info_struct_v, dirty_big_info);
void requeue_object_waiters(map<hobject_t, list<OpRequestRef> >& m);
void requeue_ops(list<OpRequestRef> &l);
+ // stats that persist lazily
+ object_stat_collection_t unstable_stats;
+
// publish stats
Mutex pg_stats_publish_lock;
bool pg_stats_publish_valid;
// read-op? done?
if (ctx->op_t.empty() && !ctx->modify) {
ctx->reply_version = ctx->obs->oi.user_version;
+ unstable_stats.add(ctx->delta_stats, ctx->obc->obs.oi.category);
return result;
}
snap_trimmer_machine.process_event(Reset());
debug_op_order.clear();
+ unstable_stats.clear();
}
void ReplicatedPG::on_role_change()