1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

locking: Do not use RECLOCK for tracking DB locks and latencies

RECLOCK is for recovery lock in CTDB. Do not override the meaning for
tracking locks on databases.  Database lock latency has nothing to do
with recovery lock latency.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>

(This used to be ctdb commit 54e24a151d2163954e5a2a1c0f41a2b5c19ae44b)
This commit is contained in:
Amitay Isaacs 2012-11-14 15:51:59 +11:00
parent 56ee668a51
commit 442d9905fe
2 changed files with 12 additions and 6 deletions

View File

@ -365,7 +365,7 @@ struct ctdb_daemon_data {
} \
}
#define CTDB_UPDATE_DB_RECLOCK_LATENCY(ctdb_db, name, counter, value) \
#define CTDB_UPDATE_DB_LATENCY(ctdb_db, operation, counter, value) \
{ \
if (value > ctdb_db->statistics.counter.max) \
ctdb_db->statistics.counter.max = value; \
@ -377,10 +377,10 @@ struct ctdb_daemon_data {
ctdb_db->statistics.counter.num++; \
\
if (ctdb_db->ctdb->tunable.reclock_latency_ms != 0) { \
if (value*1000 > ctdb_db->ctdb->tunable.reclock_latency_ms) { \
if (value*1000 > ctdb_db->ctdb->tunable.log_latency_ms) { \
DEBUG(DEBUG_ERR, \
("High RECLOCK latency %fs for operation %s\n", \
value, name)); \
("High latency %.6fs for operation %s on database %s\n",\
value, operation, ctdb_db->db_name)); \
} \
} \
}

View File

@ -53,6 +53,13 @@ enum lock_type {
LOCK_ALLDB,
};
static const char * const lock_type_str[] = {
"lock_record",
"lock_db",
"lock_alldb_prio",
"lock_db",
};
struct lock_request;
/* lock_context is the common part for a lock request */
@ -567,11 +574,10 @@ static void ctdb_lock_handler(struct tevent_context *ev,
if (locked) {
CTDB_INCREMENT_STAT(lock_ctx->ctdb, locks.num_current);
CTDB_UPDATE_RECLOCK_LATENCY(lock_ctx->ctdb, "lock()", locks.latency, t);
CTDB_INCREMENT_STAT(lock_ctx->ctdb, locks.buckets[id]);
if (lock_ctx->ctdb_db) {
CTDB_INCREMENT_DB_STAT(lock_ctx->ctdb_db, locks.num_current);
CTDB_UPDATE_DB_RECLOCK_LATENCY(lock_ctx->ctdb_db, "lock()", locks.latency, t);
CTDB_UPDATE_DB_LATENCY(lock_ctx->ctdb_db, lock_type_str[lock_ctx->type], locks.latency, t);
CTDB_INCREMENT_DB_STAT(lock_ctx->ctdb_db, locks.buckets[id]);
}
} else {