From 4aea19ee60fbe1106bdd71de2d172aa2941e8aab Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 25 Jan 2013 19:06:52 -0800 Subject: [PATCH] osd_types: add recovery counts to object_sum_stats_t Signed-off-by: Sage Weil --- src/osd/osd_types.cc | 28 ++++++++++++++++++++++++++-- src/osd/osd_types.h | 8 +++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index 55e420d6e742a..c626880e8fe53 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -861,11 +861,14 @@ void object_stat_sum_t::dump(Formatter *f) const f->dump_int("num_write", num_wr); f->dump_int("num_write_kb", num_wr_kb); f->dump_int("num_scrub_errors", num_scrub_errors); + f->dump_int("num_objects_recovered", num_objects_recovered); + f->dump_int("num_bytes_recovered", num_bytes_recovered); + f->dump_int("num_keys_recovered", num_keys_recovered); } void object_stat_sum_t::encode(bufferlist& bl) const { - ENCODE_START(4, 3, bl); + ENCODE_START(5, 3, bl); ::encode(num_bytes, bl); ::encode(num_objects, bl); ::encode(num_object_clones, bl); @@ -878,12 +881,15 @@ void object_stat_sum_t::encode(bufferlist& bl) const ::encode(num_wr, bl); ::encode(num_wr_kb, bl); ::encode(num_scrub_errors, bl); + ::encode(num_objects_recovered, bl); + ::encode(num_bytes_recovered, bl); + ::encode(num_keys_recovered, bl); ENCODE_FINISH(bl); } void object_stat_sum_t::decode(bufferlist::iterator& bl) { - DECODE_START_LEGACY_COMPAT_LEN(4, 3, 3, bl); + DECODE_START_LEGACY_COMPAT_LEN(5, 3, 3, bl); ::decode(num_bytes, bl); if (struct_v < 3) { uint64_t num_kb; @@ -904,6 +910,15 @@ void object_stat_sum_t::decode(bufferlist::iterator& bl) ::decode(num_scrub_errors, bl); else num_scrub_errors = 0; + if (struct_v >= 5) { + ::decode(num_objects_recovered, bl); + ::decode(num_bytes_recovered, bl); + ::decode(num_keys_recovered, bl); + } else { + num_objects_recovered = 0; + num_bytes_recovered = 0; + num_keys_recovered = 0; + } DECODE_FINISH(bl); } @@ -922,6 +937,9 @@ void object_stat_sum_t::generate_test_instances(list& o) a.num_rd = 9; a.num_rd_kb = 10; a.num_wr = 11; a.num_wr_kb = 12; a.num_scrub_errors = 13; + a.num_objects_recovered = 14; + a.num_bytes_recovered = 15; + a.num_keys_recovered = 16; o.push_back(new object_stat_sum_t(a)); } @@ -939,6 +957,9 @@ void object_stat_sum_t::add(const object_stat_sum_t& o) num_wr_kb += o.num_wr_kb; num_objects_unfound += o.num_objects_unfound; num_scrub_errors += o.num_scrub_errors; + num_objects_recovered += o.num_objects_recovered; + num_bytes_recovered += o.num_bytes_recovered; + num_keys_recovered += o.num_keys_recovered; } void object_stat_sum_t::sub(const object_stat_sum_t& o) @@ -955,6 +976,9 @@ void object_stat_sum_t::sub(const object_stat_sum_t& o) num_wr_kb -= o.num_wr_kb; num_objects_unfound -= o.num_objects_unfound; num_scrub_errors -= o.num_scrub_errors; + num_objects_recovered -= o.num_objects_recovered; + num_bytes_recovered -= o.num_bytes_recovered; + num_keys_recovered -= o.num_keys_recovered; } diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 5fc9e83912fa8..e068057405754 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -775,13 +775,19 @@ struct object_stat_sum_t { int64_t num_rd, num_rd_kb; int64_t num_wr, num_wr_kb; int64_t num_scrub_errors; + int64_t num_objects_recovered; + int64_t num_bytes_recovered; + int64_t num_keys_recovered; 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_rd(0), num_rd_kb(0), num_wr(0), num_wr_kb(0), - num_scrub_errors(0) + num_scrub_errors(0), + num_objects_recovered(0), + num_bytes_recovered(0), + num_keys_recovered(0) {} void clear() { -- 2.39.5