Add rolling statistics that are collected across 10 second intervals.
[metze/ctdb/wip.git] / server / ctdb_tunables.c
index 330ab1999c3ff635332c0194b02940a6d5786bd5..cca270b95c484970c2d76a0f5e52a851afab3383 100644 (file)
@@ -37,8 +37,9 @@ static const struct {
        { "TakeoverTimeout",      5,  offsetof(struct ctdb_tunable, takeover_timeout) },
        { "MonitorInterval",     15,  offsetof(struct ctdb_tunable, monitor_interval) },
        { "TickleUpdateInterval",20,  offsetof(struct ctdb_tunable, tickle_update_interval) },
-       { "EventScriptTimeout",  20,  offsetof(struct ctdb_tunable, script_timeout) },
-       { "EventScriptBanCount",  5,  offsetof(struct ctdb_tunable, script_ban_count) },
+       { "EventScriptTimeout",  30,  offsetof(struct ctdb_tunable, script_timeout) },
+       { "EventScriptTimeoutCount", 1,  offsetof(struct ctdb_tunable, script_timeout_count) },
+       { "EventScriptUnhealthyOnTimeout", 0, offsetof(struct ctdb_tunable, script_unhealthy_on_timeout) },/* OBSOLETE */
        { "RecoveryGracePeriod", 120,  offsetof(struct ctdb_tunable, recovery_grace_period) },
        { "RecoveryBanPeriod",  300,  offsetof(struct ctdb_tunable, recovery_ban_period) },
        { "DatabaseHashSize", 10000,  offsetof(struct ctdb_tunable, database_hash_size) },
@@ -46,13 +47,24 @@ static const struct {
        { "RerecoveryTimeout",   10,  offsetof(struct ctdb_tunable, rerecovery_timeout) },
        { "EnableBans",           1,  offsetof(struct ctdb_tunable, enable_bans) },
        { "DeterministicIPs",     1,  offsetof(struct ctdb_tunable, deterministic_public_ips) },
-       { "DisableWhenUnhealthy", 0,  offsetof(struct ctdb_tunable, disable_when_unhealthy) },
        { "ReclockPingPeriod",   60,  offsetof(struct ctdb_tunable,  reclock_ping_period) },
        { "NoIPFailback",         0,  offsetof(struct ctdb_tunable, no_ip_failback) },
        { "VerboseMemoryNames",   0,  offsetof(struct ctdb_tunable, verbose_memory_names) },
-       { "RecdPingTimeout",     20,  offsetof(struct ctdb_tunable, recd_ping_timeout) },
-       { "RecdFailCount",        3,  offsetof(struct ctdb_tunable, recd_ping_failcount) },
+       { "RecdPingTimeout",     60,  offsetof(struct ctdb_tunable, recd_ping_timeout) },
+       { "RecdFailCount",       10,  offsetof(struct ctdb_tunable, recd_ping_failcount) },
        { "LogLatencyMs",         0,  offsetof(struct ctdb_tunable, log_latency_ms) },
+       { "RecLockLatencyMs",  1000,  offsetof(struct ctdb_tunable, reclock_latency_ms) },
+       { "RecoveryDropAllIPs",  60,  offsetof(struct ctdb_tunable, recovery_drop_all_ips) },
+       { "VerifyRecoveryLock",   1,  offsetof(struct ctdb_tunable, verify_recovery_lock) },
+       { "VacuumDefaultInterval", 300,  offsetof(struct ctdb_tunable, vacuum_default_interval) },
+       { "VacuumMaxRunTime",     30,  offsetof(struct ctdb_tunable, vacuum_max_run_time) },
+       { "RepackLimit",      10000,  offsetof(struct ctdb_tunable, repack_limit) },
+       { "VacuumLimit",       5000,  offsetof(struct ctdb_tunable, vacuum_limit) },
+       { "VacuumMinInterval",   60,  offsetof(struct ctdb_tunable, vacuum_min_interval) },
+       { "VacuumMaxInterval",  600,  offsetof(struct ctdb_tunable, vacuum_max_interval) },
+       { "MaxQueueDropMsg",  1000000, offsetof(struct ctdb_tunable, max_queue_depth_drop_msg) },
+       { "UseStatusEvents",     0,  offsetof(struct ctdb_tunable, use_status_events_for_monitoring) },
+       { "AllowUnhealthyDBRead", 0,  offsetof(struct ctdb_tunable, allow_unhealthy_db_read) }
 };
 
 /*
@@ -132,12 +144,19 @@ int32_t ctdb_control_set_tunable(struct ctdb_context *ctdb, TDB_DATA indata)
                if (strcasecmp(name, tunable_map[i].name) == 0) break;
        }
 
+       if (!strcmp(name, "VerifyRecoveryLock") && t->value != 0
+       && ctdb->recovery_lock_file == NULL) {
+               DEBUG(DEBUG_ERR,("Can not activate tunable \"VerifyRecoveryLock\" since there is no recovery lock file set.\n"));
+               talloc_free(name);
+               return -1;
+       }
+
        talloc_free(name);
        
        if (i == ARRAY_SIZE(tunable_map)) {
                return -1;
        }
-       
+
        *(uint32_t *)(tunable_map[i].offset + (uint8_t*)&ctdb->tunable) = t->value;
 
        return 0;