diff options
-rw-r--r-- | ctdb/include/ctdb_protocol.h | 3 | ||||
-rw-r--r-- | ctdb/server/ctdb_vacuum.c | 1 | ||||
-rw-r--r-- | ctdb/tools/ctdb.c | 8 |
3 files changed, 12 insertions, 0 deletions
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; i<dbstat->num_hot_keys; i++) { if (dbstat->hot_keys[i].count > 0) { |