]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd_types: add recovery counts to object_sum_stats_t
authorSage Weil <sage@inktank.com>
Sat, 26 Jan 2013 03:06:52 +0000 (19:06 -0800)
committerSage Weil <sage@inktank.com>
Tue, 29 Jan 2013 02:50:03 +0000 (18:50 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index 55e420d6e742a6074fe5602ab0145f17f0b954ba..c626880e8fe53a4306d1517202f5ea943751eaa8 100644 (file)
@@ -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<object_stat_sum_t*>& 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;
 }
 
 
index 5fc9e83912fa879c810aa9674e63e8b0020e2766..e06805740575473c422306a3c23f9920c5460367 100644 (file)
@@ -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() {