From a0628e317df76c7c38a7cca9c3090077fa352899 Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Tue, 11 Feb 2014 14:23:28 +1100 Subject: ctdb-vacuum: Track time for vacuuming in database statistics Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- ctdb/include/ctdb_protocol.h | 3 +++ ctdb/server/ctdb_vacuum.c | 1 + ctdb/tools/ctdb.c | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/ctdb/include/ctdb_protocol.h b/ctdb/include/ctdb_protocol.h index 725e426230..15d9fc5f65 100644 --- a/ctdb/include/ctdb_protocol.h +++ b/ctdb/include/ctdb_protocol.h @@ -717,6 +717,9 @@ struct ctdb_db_statistics { struct latency_counter latency; uint32_t buckets[MAX_COUNT_BUCKETS]; } locks; + struct { + struct latency_counter latency; + } vacuum; uint32_t db_ro_delegations; uint32_t db_ro_revokes; uint32_t hop_count_bucket[MAX_COUNT_BUCKETS]; diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c index 35f1fe1bfb..8cd37aa831 100644 --- a/ctdb/server/ctdb_vacuum.c +++ b/ctdb/server/ctdb_vacuum.c @@ -1364,6 +1364,7 @@ static int vacuum_child_destructor(struct ctdb_vacuum_child_context *child_ctx) struct ctdb_db_context *ctdb_db = child_ctx->vacuum_handle->ctdb_db; struct ctdb_context *ctdb = ctdb_db->ctdb; + CTDB_UPDATE_DB_LATENCY(ctdb_db, "vacuum", vacuum.latency, l); DEBUG(DEBUG_INFO,("Vacuuming took %.3f seconds for database %s\n", l, ctdb_db->db_name)); if (child_ctx->child_pid != -1) { diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c index 5d5ce3cc9e..f0c87d91e5 100644 --- a/ctdb/tools/ctdb.c +++ b/ctdb/tools/ctdb.c @@ -725,6 +725,14 @@ static int control_dbstatistics(struct ctdb_context *ctdb, int argc, const char 0.0), dbstat->locks.latency.max, dbstat->locks.latency.num); + printf(" %-30s %.6f/%.6f/%.6f sec out of %d\n", + "vacuum_latency MIN/AVG/MAX", + dbstat->vacuum.latency.min, + (dbstat->vacuum.latency.num ? + dbstat->vacuum.latency.total /dbstat->vacuum.latency.num : + 0.0), + dbstat->vacuum.latency.max, + dbstat->vacuum.latency.num); num_hot_keys = 0; for (i=0; inum_hot_keys; i++) { if (dbstat->hot_keys[i].count > 0) { -- cgit