From: Sage Weil Date: Sat, 14 Jun 2014 16:21:52 +0000 (-0700) Subject: osd: num_objects_misplaced X-Git-Tag: v0.85~20^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a3149994e8a30051dcb193828478fc8a35e6922d;p=ceph.git osd: num_objects_misplaced Signed-off-by: Sage Weil --- diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 84ceb8a34f74..ca3c0e412f5c 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -1379,6 +1379,7 @@ void object_stat_sum_t::dump(Formatter *f) const 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_degraded", num_objects_degraded); + f->dump_int("num_objects_misplaced", num_objects_misplaced); f->dump_int("num_objects_unfound", num_objects_unfound); f->dump_int("num_objects_dirty", num_objects_dirty); f->dump_int("num_whiteouts", num_whiteouts); @@ -1398,7 +1399,7 @@ void object_stat_sum_t::dump(Formatter *f) const void object_stat_sum_t::encode(bufferlist& bl) const { - ENCODE_START(9, 3, bl); + ENCODE_START(10, 3, bl); ::encode(num_bytes, bl); ::encode(num_objects, bl); ::encode(num_object_clones, bl); @@ -1420,12 +1421,13 @@ void object_stat_sum_t::encode(bufferlist& bl) const ::encode(num_whiteouts, bl); ::encode(num_objects_omap, bl); ::encode(num_objects_hit_set_archive, bl); + ::encode(num_objects_misplaced, bl); ENCODE_FINISH(bl); } void object_stat_sum_t::decode(bufferlist::iterator& bl) { - DECODE_START_LEGACY_COMPAT_LEN(9, 3, 3, bl); + DECODE_START_LEGACY_COMPAT_LEN(10, 3, 3, bl); ::decode(num_bytes, bl); if (struct_v < 3) { uint64_t num_kb; @@ -1479,6 +1481,11 @@ void object_stat_sum_t::decode(bufferlist::iterator& bl) } else { num_objects_hit_set_archive = 0; } + if (struct_v >= 10) { + ::decode(num_objects_misplaced, bl); + } else { + num_objects_misplaced = 0; + } DECODE_FINISH(bl); } @@ -1504,6 +1511,7 @@ void object_stat_sum_t::generate_test_instances(list& o) a.num_scrub_errors = a.num_deep_scrub_errors + a.num_shallow_scrub_errors; a.num_objects_dirty = 21; a.num_whiteouts = 22; + a.num_objects_misplaced = 1232; o.push_back(new object_stat_sum_t(a)); } @@ -1515,6 +1523,7 @@ void object_stat_sum_t::add(const object_stat_sum_t& o) num_object_copies += o.num_object_copies; num_objects_missing_on_primary += o.num_objects_missing_on_primary; num_objects_degraded += o.num_objects_degraded; + num_objects_misplaced += o.num_objects_misplaced; num_rd += o.num_rd; num_rd_kb += o.num_rd_kb; num_wr += o.num_wr; @@ -1540,6 +1549,7 @@ void object_stat_sum_t::sub(const object_stat_sum_t& o) num_object_copies -= o.num_object_copies; num_objects_missing_on_primary -= o.num_objects_missing_on_primary; num_objects_degraded -= o.num_objects_degraded; + num_objects_misplaced -= o.num_objects_misplaced; num_rd -= o.num_rd; num_rd_kb -= o.num_rd_kb; num_wr -= o.num_wr; diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index b97a7a7a2f08..e03aac7c0c4d 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -1165,6 +1165,7 @@ struct object_stat_sum_t { int64_t num_object_copies; // num_objects * num_replicas int64_t num_objects_missing_on_primary; int64_t num_objects_degraded; + int64_t num_objects_misplaced; int64_t num_objects_unfound; int64_t num_rd, num_rd_kb; int64_t num_wr, num_wr_kb; @@ -1182,7 +1183,9 @@ struct object_stat_sum_t { 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_unfound(0), + num_objects_missing_on_primary(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), num_scrub_errors(0), num_shallow_scrub_errors(0), num_deep_scrub_errors(0), @@ -1203,6 +1206,7 @@ struct object_stat_sum_t { FLOOR(num_object_copies); FLOOR(num_objects_missing_on_primary); FLOOR(num_objects_degraded); + FLOOR(num_objects_misplaced); FLOOR(num_objects_unfound); FLOOR(num_rd); FLOOR(num_rd_kb); @@ -1236,6 +1240,7 @@ struct object_stat_sum_t { SPLIT(num_object_copies); SPLIT(num_objects_missing_on_primary); SPLIT(num_objects_degraded); + SPLIT(num_objects_misplaced); SPLIT(num_objects_unfound); SPLIT(num_rd); SPLIT(num_rd_kb);