summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage.weil@dreamhost.com>2012-01-25 12:38:06 -0800
committerSage Weil <sage.weil@dreamhost.com>2012-01-25 12:40:49 -0800
commit625b0b0291543baf424fb3bae4c7a36d280df91e (patch)
treeea8fd844195562a96c53a1f368c5143fd75d51d1
parentacb164c81e8142d5489585a124a38347ad192e35 (diff)
downloadceph-625b0b0291543baf424fb3bae4c7a36d280df91e.tar.gz
osd: remove num_kb from object_stat_sum_t stats
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>
-rw-r--r--src/librados.cc4
-rw-r--r--src/mon/PGMap.cc5
-rw-r--r--src/mon/PGMonitor.cc2
-rw-r--r--src/osd/OSD.cc1
-rw-r--r--src/osd/ReplicatedPG.cc32
-rw-r--r--src/osd/osd_types.h14
-rw-r--r--src/tools/gui.cc6
7 files changed, 20 insertions, 44 deletions
diff --git a/src/librados.cc b/src/librados.cc
index 28c43bf1b4c..d9cd8adb38c 100644
--- a/src/librados.cc
+++ b/src/librados.cc
@@ -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;
diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc
index e29cf544248..1acc0e43fd2 100644
--- a/src/mon/PGMap.cc
+++ b/src/mon/PGMap.cc
@@ -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";
diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc
index 1deb37336ba..073f73a14c4 100644
--- a/src/mon/PGMonitor.cc
+++ b/src/mon/PGMonitor.cc
@@ -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)
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 4c7efcda962..6c719dcccf6 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -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++;
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index d2185fee5b6..9ce9d6b4a5e 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -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) {
diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h
index 1c8a17bac54..4090aa7a0ff 100644
--- a/src/osd/osd_types.h
+++ b/src/osd/osd_types.h
@@ -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);
diff --git a/src/tools/gui.cc b/src/tools/gui.cc
index dcf62e7ae79..b24a5de2951 100644
--- a/src/tools/gui.cc
+++ b/src/tools/gui.cc
@@ -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") %