]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: actually adjust rd/wr accounting values
authorSage Weil <sage@newdream.net>
Wed, 22 Jul 2009 23:22:45 +0000 (16:22 -0700)
committerSage Weil <sage@newdream.net>
Thu, 23 Jul 2009 18:50:35 +0000 (11:50 -0700)
src/osd/ReplicatedPG.cc

index 05e98034d8c92432683d06dc77d9c51539c63fd7..7e25415455441a4208fa99c96987a4f23665f8fe 100644 (file)
@@ -932,6 +932,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          result = r;
          op.length = 0;
        }
+       info.stats.num_rd_kb += SHIFT_ROUND_UP(op.length, 10);
+       info.stats.num_rd++;
        dout(10) << " read got " << r << " / " << op.length << " bytes from obj " << soid << dendl;
       }
       break;
@@ -976,6 +978,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          ::encode(size, odata);
          ::encode(oi.mtime, odata);
        }
+       info.stats.num_rd++;
       }
       break;
 
@@ -990,6 +993,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          result = 0;
        } else
          result = r;
+       info.stats.num_rd++;
       }
       break;
 
@@ -1083,6 +1087,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          info.stats.num_kb += SHIFT_ROUND_UP(new_size, 10) - SHIFT_ROUND_UP(oi.size, 10);
          oi.size = new_size;
        }
+       info.stats.num_wr++;
+       info.stats.num_wr_kb += SHIFT_ROUND_UP(op.length, 10);
        ssc->snapset.head_exists = true;
       }
       break;
@@ -1105,6 +1111,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          info.stats.num_kb += SHIFT_ROUND_UP(op.length, 10);
          oi.size = op.length;
        }
+       info.stats.num_wr++;
+       info.stats.num_wr_kb += SHIFT_ROUND_UP(op.length, 10);
        ssc->snapset.head_exists = true;
       }
       break;
@@ -1123,6 +1131,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          ssc->snapset.clone_overlap[newest].subtract(ch);
          add_interval_usage(ch, info.stats);
        }
+       info.stats.num_wr++;
        ssc->snapset.head_exists = true;
       }
       break;
@@ -1152,6 +1161,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          info.stats.num_kb += SHIFT_ROUND_UP(op.offset, 10);
          oi.size = op.offset;
        }
+       info.stats.num_wr++;
        // do no set head_exists, or we will break above DELETE -> TRUNCATE munging.
       }
       break;
@@ -1172,6 +1182,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          ssc->snapset.head_exists = false;
          ctx->obs->exists = false;
        }      
+       info.stats.num_wr++;
       }
       break;
     
@@ -1191,6 +1202,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
          t.touch(info.pgid.to_coll(), soid);
        t.setattr(info.pgid.to_coll(), soid, name, bl);
        ssc->snapset.head_exists = true;
+       info.stats.num_wr++;
       }
       break;
 
@@ -1200,6 +1212,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops,
        name[0] = '_';
        bp.copy(op.name_len, name.data()+1);
        t.rmattr(info.pgid.to_coll(), soid, name);
+       info.stats.num_wr++;
       }
       break;