diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h index e94d2c84f67..459e96d4ea0 100644 --- a/ctdb/include/ctdb_private.h +++ b/ctdb/include/ctdb_private.h @@ -127,6 +127,7 @@ struct ctdb_tunable { uint32_t no_ip_host_on_all_disabled; uint32_t samba3_hack; uint32_t mutex_enabled; + uint32_t lock_processes_per_db; }; /* diff --git a/ctdb/server/ctdb_lock.c b/ctdb/server/ctdb_lock.c index 4cdad18e500..3de85188b50 100644 --- a/ctdb/server/ctdb_lock.c +++ b/ctdb/server/ctdb_lock.c @@ -43,9 +43,6 @@ * auto_mark - whether to mark/unmark DBs in before/after callback */ -/* FIXME: Add a tunable max_lock_processes_per_db */ -#define MAX_LOCK_PROCESSES_PER_DB (100) - enum lock_type { LOCK_RECORD, LOCK_DB, @@ -700,7 +697,7 @@ static void ctdb_lock_schedule(struct ctdb_context *ctdb) talloc_free(lock_ctx); } else { if (lock_ctx->ctdb_db == NULL || - lock_ctx->ctdb_db->lock_num_current < MAX_LOCK_PROCESSES_PER_DB) { + lock_ctx->ctdb_db->lock_num_current < ctdb->tunable.lock_processes_per_db) { /* Found a lock context with lock requests */ break; } diff --git a/ctdb/server/ctdb_tunables.c b/ctdb/server/ctdb_tunables.c index 4a252b61ada..38e0bb2a63e 100644 --- a/ctdb/server/ctdb_tunables.c +++ b/ctdb/server/ctdb_tunables.c @@ -83,6 +83,7 @@ static const struct { { "NoIPHostOnAllDisabled", 0, offsetof(struct ctdb_tunable, no_ip_host_on_all_disabled), false }, { "Samba3AvoidDeadlocks", 0, offsetof(struct ctdb_tunable, samba3_hack), false }, { "TDBMutexEnabled", 0, offsetof(struct ctdb_tunable, mutex_enabled), false }, + { "LockProcessesPerDB", 100, offsetof(struct ctdb_tunable, lock_processes_per_db), false }, }; /*