]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: remove num_kb from object_stat_sum_t stats
authorSage Weil <sage.weil@dreamhost.com>
Wed, 25 Jan 2012 20:38:06 +0000 (12:38 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Wed, 25 Jan 2012 20:40:49 +0000 (12:40 -0800)
This is redundant--we can just use num_bytes.  If we're worried about the
per-object overhead or rounding, we can factor in some overhead based on
num_objects.

And, the kb accounting has a bug (#1988).

Avoid changing the encoding at all for now.  Next time the encoding changes
we'll drop the old field.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/librados.cc
src/mon/PGMap.cc
src/mon/PGMonitor.cc
src/osd/OSD.cc
src/osd/ReplicatedPG.cc
src/osd/osd_types.h
src/tools/gui.cc

index 28c43bf1b4c02e4135f28b303d1f09f0cc864277..d9cd8adb38c3af577c45157295d7d979dff80896 100644 (file)
@@ -3315,7 +3315,7 @@ int librados::Rados::get_pool_stats(std::list<string>& v, string& category,
       }
       
       pool_stat_t& pv = c[cur_category];
-      pv.num_kb = sum->num_kb;
+      pv.num_kb = SHIFT_ROUND_UP(sum->num_bytes, 10);
       pv.num_bytes = sum->num_bytes;
       pv.num_objects = sum->num_objects;
       pv.num_object_clones = sum->num_object_clones;
@@ -3569,7 +3569,7 @@ extern "C" int rados_ioctx_pool_stat(rados_ioctx_t io, struct rados_pool_stat_t
     return err;
 
   ::pool_stat_t& r = rawresult[io_ctx_impl->pool_name];
-  stats->num_kb = r.stats.sum.num_kb;
+  stats->num_kb = SHIFT_ROUND_UP(r.stats.sum.num_bytes, 10);
   stats->num_bytes = r.stats.sum.num_bytes;
   stats->num_objects = r.stats.sum.num_objects;
   stats->num_object_clones = r.stats.sum.num_object_clones;
index e29cf544248239334fbe9eec853ec65922d21343..1acc0e43fd2ed83992e455d24cc3fa6188693a1d 100644 (file)
@@ -304,7 +304,6 @@ void PGMap::dump(ostream& ss) const
        << "\t" << st.stats.sum.num_objects_missing_on_primary
        << "\t" << st.stats.sum.num_objects_degraded
        << "\t" << st.stats.sum.num_objects_unfound
-       << "\t" << st.stats.sum.num_kb
        << "\t" << st.stats.sum.num_bytes
        << "\t" << st.log_size
        << "\t" << st.ondisk_log_size
@@ -325,7 +324,6 @@ void PGMap::dump(ostream& ss) const
        << "\t" << p->second.stats.sum.num_objects_missing_on_primary
        << "\t" << p->second.stats.sum.num_objects_degraded
        << "\t" << p->second.stats.sum.num_objects_unfound
-       << "\t" << p->second.stats.sum.num_kb
        << "\t" << p->second.stats.sum.num_bytes
        << "\t" << p->second.log_size
        << "\t" << p->second.ondisk_log_size
@@ -335,7 +333,6 @@ void PGMap::dump(ostream& ss) const
      << "\t" << pg_sum.stats.sum.num_objects_missing_on_primary
      << "\t" << pg_sum.stats.sum.num_objects_degraded
      << "\t" << pg_sum.stats.sum.num_objects_unfound
-     << "\t" << pg_sum.stats.sum.num_kb
      << "\t" << pg_sum.stats.sum.num_bytes
      << "\t" << pg_sum.log_size
      << "\t" << pg_sum.ondisk_log_size
@@ -399,7 +396,7 @@ void PGMap::print_summary(ostream& out) const
   out << "v" << version << ": "
       << pg_stat.size() << " pgs: "
       << states << "; "
-      << kb_t(pg_sum.stats.sum.num_kb) << " data, " 
+      << prettybyte_t(pg_sum.stats.sum.num_bytes) << " data, " 
       << kb_t(osd_sum.kb_used) << " used, "
       << kb_t(osd_sum.kb_avail) << " / "
       << kb_t(osd_sum.kb) << " avail";
index 1deb37336ba1cad28380545398f40d0d43dcd71b..073f73a14c410fe536ba492bb4b7e2991ba73208 100644 (file)
@@ -134,7 +134,7 @@ void PGMonitor::update_logger()
   mon->cluster_logger->set(l_cluster_num_object, pg_map.pg_sum.stats.sum.num_objects);
   mon->cluster_logger->set(l_cluster_num_object_degraded, pg_map.pg_sum.stats.sum.num_objects_degraded);
   mon->cluster_logger->set(l_cluster_num_object_unfound, pg_map.pg_sum.stats.sum.num_objects_unfound);
-  mon->cluster_logger->set(l_cluster_num_kb, pg_map.pg_sum.stats.sum.num_kb);
+  mon->cluster_logger->set(l_cluster_num_kb, SHIFT_ROUND_UP(pg_map.pg_sum.stats.sum.num_bytes, 10));
 }
 
 void PGMonitor::update_full_ratios(float full_ratio, float nearfull_ratio)
index 4c7efcda9620732240fcaa0bf332f0dbcbcab0f2..6c719dcccf6ac2e59717f3e4f96d4e4835218c3e 100644 (file)
@@ -4086,7 +4086,6 @@ void OSD::split_pg(PG *parent, map<pg_t,PG*>& children, ObjectStore::Transaction
 
       // add to child stats
       child->info.stats.stats.sum.num_bytes += st.st_size;
-      child->info.stats.stats.sum.num_kb += SHIFT_ROUND_UP(st.st_size, 10);
       child->info.stats.stats.sum.num_objects++;
       if (poid.snap && poid.snap != CEPH_NOSNAP)
        child->info.stats.stats.sum.num_object_clones++;
index d2185fee5b663f7b78a68247dae6d0a7adb06086..9ce9d6b4a5e92f75ab2421d4a4e14b63d1c912d0 100644 (file)
@@ -1114,7 +1114,6 @@ ReplicatedPG::RepGather *ReplicatedPG::trim_object(const hobject_t &coid,
     delta.num_objects--;
     delta.num_object_clones--;
     delta.num_bytes -= snapset.clone_size[last];
-    delta.num_kb -= SHIFT_ROUND_UP(snapset.clone_size[last], 10);
     info.stats.stats.add(delta, obc->obs.oi.category);
 
     snapset.clones.erase(p);
@@ -1770,10 +1769,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
          oi.truncate_size = op.extent.truncate_size;
          if (op.extent.truncate_size != oi.size) {
            ctx->delta_stats.num_bytes -= oi.size;
-           ctx->delta_stats.num_kb -= SHIFT_ROUND_UP(oi.size, 10);
            ctx->delta_stats.num_bytes += op.extent.truncate_size;
-           ctx->delta_stats.num_kb +=
-             SHIFT_ROUND_UP(op.extent.truncate_size, 10);
            oi.size = op.extent.truncate_size;
          }
        }
@@ -1806,10 +1802,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
        ctx->modified_ranges.union_of(ch);
        if (op.extent.length + op.extent.offset != oi.size) {
          ctx->delta_stats.num_bytes -= oi.size;
-         ctx->delta_stats.num_kb -= SHIFT_ROUND_UP(oi.size, 10);
          oi.size = op.extent.length + op.extent.offset;
          ctx->delta_stats.num_bytes += oi.size;
-         ctx->delta_stats.num_kb += SHIFT_ROUND_UP(oi.size, 10);
        }
        ctx->delta_stats.num_wr++;
        ctx->delta_stats.num_wr_kb += SHIFT_ROUND_UP(op.extent.length, 10);
@@ -1895,9 +1889,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
        }
        if (op.extent.offset != oi.size) {
          ctx->delta_stats.num_bytes -= oi.size;
-         ctx->delta_stats.num_kb -= SHIFT_ROUND_UP(oi.size, 10);
          ctx->delta_stats.num_bytes += op.extent.offset;
-         ctx->delta_stats.num_kb += SHIFT_ROUND_UP(op.extent.offset, 10);
          oi.size = op.extent.offset;
        }
        ctx->delta_stats.num_wr++;
@@ -2267,7 +2259,6 @@ inline int ReplicatedPG::_delete_head(OpContext *ctx)
 
   ctx->delta_stats.num_objects--;
   ctx->delta_stats.num_bytes -= oi.size;
-  ctx->delta_stats.num_kb -= SHIFT_ROUND_UP(oi.size, 10);
 
   oi.size = 0;
   snapset.head_exists = false;
@@ -2366,9 +2357,7 @@ int ReplicatedPG::_rollback_to(OpContext *ctx, ceph_osd_op& op)
        ctx->delta_stats.num_objects++;
       }
       ctx->delta_stats.num_bytes -= obs.oi.size;
-      ctx->delta_stats.num_kb -= SHIFT_ROUND_UP(obs.oi.size, 10);
       ctx->delta_stats.num_bytes += rollback_to->obs.oi.size;
-      ctx->delta_stats.num_kb += SHIFT_ROUND_UP(rollback_to->obs.oi.size, 10);
       obs.oi.size = rollback_to->obs.oi.size;
       snapset.head_exists = true;
     }
@@ -2508,7 +2497,6 @@ void ReplicatedPG::write_update_size_and_usage(object_stat_sum_t& delta_stats, o
   if (length && (offset + length > oi.size)) {
     uint64_t new_size = offset + length;
     delta_stats.num_bytes += new_size - oi.size;
-    delta_stats.num_kb += SHIFT_ROUND_UP(new_size, 10) - SHIFT_ROUND_UP(oi.size, 10);
     oi.size = new_size;
   }
   delta_stats.num_wr++;
@@ -2520,7 +2508,6 @@ void ReplicatedPG::add_interval_usage(interval_set<uint64_t>& s, object_stat_sum
 {
   for (interval_set<uint64_t>::const_iterator p = s.begin(); p != s.end(); ++p) {
     delta_stats.num_bytes += p.get_len();
-    delta_stats.num_kb += SHIFT_ROUND_UP(p.get_start() + p.get_len(), 10) - (p.get_start() >> 10);
   }
 }
 
@@ -3498,7 +3485,6 @@ void ReplicatedPG::add_object_context_to_pg_stat(ObjectContext *obc, pg_stat_t *
     stat.num_objects++;
 
   stat.num_bytes += oi.size;
-  stat.num_kb += SHIFT_ROUND_UP(oi.size, 10);
 
   if (oi.soid.snap && oi.soid.snap != CEPH_NOSNAP) {
     stat.num_object_clones++;
@@ -3516,7 +3502,6 @@ void ReplicatedPG::add_object_context_to_pg_stat(ObjectContext *obc, pg_stat_t *
           r != o.end();
           ++r) {
        stat.num_bytes -= r.get_len();
-       stat.num_kb -= SHIFT_ROUND_UP(r.get_start()+r.get_len(), 10) - (r.get_start() >> 10);
       }          
     }
   }
@@ -5791,7 +5776,6 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
             r != q->second.end();
             ++r) {
          stat.num_bytes -= r.get_len();
-         stat.num_kb -= SHIFT_ROUND_UP(r.get_start()+r.get_len(), 10) - (r.get_start() >> 10);
        }         
       }
     }
@@ -5821,7 +5805,6 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
     dout(20) << mode << "  " << soid << " " << oi << dendl;
 
     stat.num_bytes += p->second.size;
-    stat.num_kb += SHIFT_ROUND_UP(p->second.size, 10);
 
     //bufferlist data;
     //osd->store->read(c, poid, 0, 0, data);
@@ -5864,20 +5847,17 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
   dout(10) << mode << " got "
           << cstat.sum.num_objects << "/" << info.stats.stats.sum.num_objects << " objects, "
           << cstat.sum.num_object_clones << "/" << info.stats.stats.sum.num_object_clones << " clones, "
-          << cstat.sum.num_bytes << "/" << info.stats.stats.sum.num_bytes << " bytes, "
-          << cstat.sum.num_kb << "/" << info.stats.stats.sum.num_kb << " kb."
+          << cstat.sum.num_bytes << "/" << info.stats.stats.sum.num_bytes << " bytes."
           << dendl;
 
   if (cstat.sum.num_objects != info.stats.stats.sum.num_objects ||
       cstat.sum.num_object_clones != info.stats.stats.sum.num_object_clones ||
-      cstat.sum.num_bytes != info.stats.stats.sum.num_bytes ||
-      cstat.sum.num_kb != info.stats.stats.sum.num_kb) {
+      cstat.sum.num_bytes != info.stats.stats.sum.num_bytes) {
     osd->clog.error() << info.pgid << " " << mode
-       << " stat mismatch, got "
-       << cstat.sum.num_objects << "/" << info.stats.stats.sum.num_objects << " objects, "
-       << cstat.sum.num_object_clones << "/" << info.stats.stats.sum.num_object_clones << " clones, "
-       << cstat.sum.num_bytes << "/" << info.stats.stats.sum.num_bytes << " bytes, "
-       << cstat.sum.num_kb << "/" << info.stats.stats.sum.num_kb << " kb.\n";
+                     << " stat mismatch, got "
+                     << cstat.sum.num_objects << "/" << info.stats.stats.sum.num_objects << " objects, "
+                     << cstat.sum.num_object_clones << "/" << info.stats.stats.sum.num_object_clones << " clones, "
+                     << cstat.sum.num_bytes << "/" << info.stats.stats.sum.num_bytes << " bytes.\n";
     errors++;
 
     if (repair) {
index 1c8a17bac5439088aed27377c27a00eb2c04cce3..4090aa7a0ffe35e73c43f599dca9d2d29e3e9c0a 100644 (file)
@@ -673,7 +673,6 @@ ostream& operator<<(ostream& out, const pg_pool_t& p);
  */
 struct object_stat_sum_t {
   int64_t num_bytes;    // in bytes
-  int64_t num_kb;       // in KB
   int64_t num_objects;
   int64_t num_object_clones;
   int64_t num_object_copies;  // num_objects * num_replicas
@@ -684,7 +683,7 @@ struct object_stat_sum_t {
   int64_t num_wr, num_wr_kb;
 
   object_stat_sum_t()
-    : num_bytes(0), num_kb(0),
+    : 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)
@@ -700,7 +699,6 @@ struct object_stat_sum_t {
 
   void dump(Formatter *f) const {
     f->dump_unsigned("num_bytes", num_bytes);
-    f->dump_unsigned("num_kb", num_kb);
     f->dump_unsigned("num_objects", num_objects);
     f->dump_unsigned("num_object_clones", num_object_clones);
     f->dump_unsigned("num_object_copies", num_object_copies);
@@ -716,6 +714,7 @@ struct object_stat_sum_t {
     __u8 v = 2;
     ::encode(v, bl);
     ::encode(num_bytes, bl);
+    uint64_t num_kb = SHIFT_ROUND_UP(num_bytes, 10);
     ::encode(num_kb, bl);
     ::encode(num_objects, bl);
     ::encode(num_object_clones, bl);
@@ -732,6 +731,7 @@ struct object_stat_sum_t {
     __u8 v;
     ::decode(v, bl);
     ::decode(num_bytes, bl);
+    uint64_t num_kb;
     ::decode(num_kb, bl);
     ::decode(num_objects, bl);
     ::decode(num_object_clones, bl);
@@ -747,7 +747,6 @@ struct object_stat_sum_t {
   }
   void add(const object_stat_sum_t& o) {
     num_bytes += o.num_bytes;
-    num_kb += o.num_kb;
     num_objects += o.num_objects;
     num_object_clones += o.num_object_clones;
     num_object_copies += o.num_object_copies;
@@ -761,7 +760,6 @@ struct object_stat_sum_t {
   }
   void sub(const object_stat_sum_t& o) {
     num_bytes -= o.num_bytes;
-    num_kb -= o.num_kb;
     num_objects -= o.num_objects;
     num_object_clones -= o.num_object_clones;
     num_object_copies -= o.num_object_copies;
@@ -945,7 +943,8 @@ struct pg_stat_t {
     ::decode(last_scrub_stamp, bl);
     if (v <= 4) {
       ::decode(stats.sum.num_bytes, bl);
-      ::decode(stats.sum.num_kb, bl);
+      uint64_t num_kb;
+      ::decode(num_kb, bl);
       ::decode(stats.sum.num_objects, bl);
       ::decode(stats.sum.num_object_clones, bl);
       ::decode(stats.sum.num_object_copies, bl);
@@ -1020,7 +1019,8 @@ struct pool_stat_t {
       ::decode(ondisk_log_size, bl);
     } else {
       ::decode(stats.sum.num_bytes, bl);
-      ::decode(stats.sum.num_kb, bl);
+      uint64_t num_kb;
+      ::decode(num_kb, bl);
       ::decode(stats.sum.num_objects, bl);
       ::decode(stats.sum.num_object_clones, bl);
       ::decode(stats.sum.num_object_copies, bl);
index dcf62e7ae79474620cfb83c18fedbcdec6ad5c2b..b24a5de295139d52ee61cb83f1017fce5d4c2029 100644 (file)
@@ -543,7 +543,7 @@ void GuiMonitor::update_pg_cluster_view()
 
   ostringstream oss;
   oss << ctx->pgmap.pg_stat.size() << " Placement Groups\n"
-      << kb_t(ctx->pgmap.pg_sum.stats.sum.num_kb) << " Data, "
+      << prettybyte_t(ctx->pgmap.pg_sum.stats.sum.num_bytes) << " Data, "
       << kb_t(ctx->pgmap.osd_sum.kb_used) << " Used, "
       << kb_t(ctx->pgmap.osd_sum.kb_avail) << " / "
       << kb_t(ctx->pgmap.osd_sum.kb) << " Available";
@@ -1544,7 +1544,7 @@ void GuiMonitor::StatsWindowInfo::gen_pg_cluster_columns()
 
   {
     ostringstream oss;
-    oss << kb_t(ctx->pgmap.pg_sum.stats.sum.num_kb);
+    oss << prettybyte_t(ctx->pgmap.pg_sum.stats.sum.num_bytes);
     insert_stats("Data ", oss.str());
   }
 
@@ -1662,7 +1662,7 @@ void GuiMonitor::StatsWindowInfo::gen_pg_node_columns()
     str(boost::format("%llu") % stat.stats.sum.num_objects_degraded));
   insert_stats("Number of Objects Unfound",
     str(boost::format("%llu") % stat.stats.sum.num_objects_unfound));
-  insert_stats("KB", str(boost::format("%llu") % stat.stats.sum.num_kb));
+  insert_stats("KB", str(boost::format("%llu") % SHIFT_ROUND_UP(stat.stats.sum.num_bytes, 10)));
   insert_stats("Bytes", str(boost::format("%llu") % stat.stats.sum.num_bytes));
   insert_stats("Log Size", str(boost::format("%llu") % stat.log_size));
   insert_stats("On-Disk Log Size", str(boost::format("%llu") %