pg_log.get_missing().num_missing();
degraded += pg_log.get_missing().num_missing();
+ // num_objects_missing on each peer
+ for (map<pg_shard_t, pg_info_t>::iterator pi =
+ peer_info.begin();
+ pi != peer_info.end();
+ ++pi) {
+ map<pg_shard_t, pg_missing_t>::const_iterator pm =
+ peer_missing.find(pi->first);
+ if (pm != peer_missing.end()) {
+ pi->second.stats.stats.sum.num_objects_missing =
+ pm->second.num_missing();
+ }
+ }
+
assert(!acting.empty());
for (set<pg_shard_t>::iterator i = actingset.begin();
i != actingset.end();
f->dump_int("num_object_clones", num_object_clones);
f->dump_int("num_object_copies", num_object_copies);
f->dump_int("num_objects_missing_on_primary", num_objects_missing_on_primary);
+ f->dump_int("num_objects_missing", num_objects_missing);
f->dump_int("num_objects_degraded", num_objects_degraded);
f->dump_int("num_objects_misplaced", num_objects_misplaced);
f->dump_int("num_objects_unfound", num_objects_unfound);
void object_stat_sum_t::encode(bufferlist& bl) const
{
- ENCODE_START(14, 3, bl);
+ ENCODE_START(15, 3, bl);
::encode(num_bytes, bl);
::encode(num_objects, bl);
::encode(num_object_clones, bl);
::encode(num_evict_mode_some, bl);
::encode(num_evict_mode_full, bl);
::encode(num_objects_pinned, bl);
+ ::encode(num_objects_missing, bl);
ENCODE_FINISH(bl);
}
} else {
num_objects_pinned = 0;
}
+ if (struct_v >= 15) {
+ ::decode(num_objects_missing, bl);
+ } else {
+ num_objects_missing = 0;
+ }
DECODE_FINISH(bl);
}
a.num_object_clones = 4;
a.num_object_copies = 5;
a.num_objects_missing_on_primary = 6;
+ a.num_objects_missing = 123;
a.num_objects_degraded = 7;
a.num_objects_unfound = 8;
a.num_rd = 9; a.num_rd_kb = 10;
num_object_clones += o.num_object_clones;
num_object_copies += o.num_object_copies;
num_objects_missing_on_primary += o.num_objects_missing_on_primary;
+ num_objects_missing += o.num_objects_missing;
num_objects_degraded += o.num_objects_degraded;
num_objects_misplaced += o.num_objects_misplaced;
num_rd += o.num_rd;
num_object_clones -= o.num_object_clones;
num_object_copies -= o.num_object_copies;
num_objects_missing_on_primary -= o.num_objects_missing_on_primary;
+ num_objects_missing -= o.num_objects_missing;
num_objects_degraded -= o.num_objects_degraded;
num_objects_misplaced -= o.num_objects_misplaced;
num_rd -= o.num_rd;
l.num_object_clones == r.num_object_clones &&
l.num_object_copies == r.num_object_copies &&
l.num_objects_missing_on_primary == r.num_objects_missing_on_primary &&
+ l.num_objects_missing == r.num_objects_missing &&
l.num_objects_degraded == r.num_objects_degraded &&
l.num_objects_misplaced == r.num_objects_misplaced &&
l.num_objects_unfound == r.num_objects_unfound &&
int64_t num_object_clones;
int64_t num_object_copies; // num_objects * num_replicas
int64_t num_objects_missing_on_primary;
+ int64_t num_objects_missing;
int64_t num_objects_degraded;
int64_t num_objects_misplaced;
int64_t num_objects_unfound;
object_stat_sum_t()
: num_bytes(0),
num_objects(0), num_object_clones(0), num_object_copies(0),
- num_objects_missing_on_primary(0), num_objects_degraded(0),
+ num_objects_missing_on_primary(0), num_objects_missing(0),
+ num_objects_degraded(0),
num_objects_misplaced(0),
num_objects_unfound(0),
num_rd(0), num_rd_kb(0), num_wr(0), num_wr_kb(0),
FLOOR(num_object_clones);
FLOOR(num_object_copies);
FLOOR(num_objects_missing_on_primary);
+ FLOOR(num_objects_missing);
FLOOR(num_objects_degraded);
FLOOR(num_objects_misplaced);
FLOOR(num_objects_unfound);
SPLIT(num_object_clones);
SPLIT(num_object_copies);
SPLIT(num_objects_missing_on_primary);
+ SPLIT(num_objects_missing);
SPLIT(num_objects_degraded);
SPLIT(num_objects_misplaced);
SPLIT(num_objects_unfound);