MXS-1446: Add heartbeat conversion macros
The macros make the conversion from heartbeats to seconds more convenient and consistent.
This commit is contained in:
@ -23,4 +23,14 @@ MXS_BEGIN_DECLS
|
|||||||
|
|
||||||
extern int64_t hkheartbeat;
|
extern int64_t hkheartbeat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert heartbeats to seconds
|
||||||
|
*/
|
||||||
|
#define HB_TO_SEC(a) ((int64_t)a / 10)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert seconds to heartbeats
|
||||||
|
*/
|
||||||
|
#define SEC_TO_HB(a) ((int64_t)a * 10)
|
||||||
|
|
||||||
MXS_END_DECLS
|
MXS_END_DECLS
|
||||||
|
@ -3953,7 +3953,7 @@ json_t* config_maxscale_to_json(const char* host)
|
|||||||
|
|
||||||
json_t* attr = json_object();
|
json_t* attr = json_object();
|
||||||
time_t started = maxscale_started();
|
time_t started = maxscale_started();
|
||||||
time_t activated = started + (cnf->promoted_at / 10);
|
time_t activated = started + HB_TO_SEC(cnf->promoted_at);
|
||||||
json_object_set_new(attr, CN_PARAMETERS, param);
|
json_object_set_new(attr, CN_PARAMETERS, param);
|
||||||
json_object_set_new(attr, "version", json_string(MAXSCALE_VERSION));
|
json_object_set_new(attr, "version", json_string(MAXSCALE_VERSION));
|
||||||
json_object_set_new(attr, "commit", json_string(MAXSCALE_COMMIT));
|
json_object_set_new(attr, "commit", json_string(MAXSCALE_COMMIT));
|
||||||
|
@ -1784,8 +1784,7 @@ void mon_process_state_changes(MXS_MONITOR *monitor, const char *script, uint64_
|
|||||||
ptr->new_event && // Event has not yet been processed
|
ptr->new_event && // Event has not yet been processed
|
||||||
monitor->last_master_down > monitor->last_master_up) // Latest relevant event
|
monitor->last_master_down > monitor->last_master_up) // Latest relevant event
|
||||||
{
|
{
|
||||||
// Scale the timeout to heartbeat resolution which is 1/10th of a second
|
int64_t timeout = SEC_TO_HB(monitor->failover_timeout);
|
||||||
int64_t timeout = (int64_t)monitor->failover_timeout * 10;
|
|
||||||
int64_t t = hkheartbeat - ptr->server->triggered_at;
|
int64_t t = hkheartbeat - ptr->server->triggered_at;
|
||||||
|
|
||||||
if (t > timeout)
|
if (t > timeout)
|
||||||
|
@ -505,7 +505,7 @@ dprintServer(DCB *dcb, const SERVER *server)
|
|||||||
dcb_printf(dcb, "\tMaster Id: %ld\n", server->master_id);
|
dcb_printf(dcb, "\tMaster Id: %ld\n", server->master_id);
|
||||||
dcb_printf(dcb, "\tLast event: %s\n",
|
dcb_printf(dcb, "\tLast event: %s\n",
|
||||||
mon_get_event_name((mxs_monitor_event_t)server->last_event));
|
mon_get_event_name((mxs_monitor_event_t)server->last_event));
|
||||||
time_t t = maxscale_started() + (server->triggered_at / 10);
|
time_t t = maxscale_started() + HB_TO_SEC(server->triggered_at);
|
||||||
dcb_printf(dcb, "\tTriggered at: %s\n", http_to_date(t).c_str());
|
dcb_printf(dcb, "\tTriggered at: %s\n", http_to_date(t).c_str());
|
||||||
|
|
||||||
if (server->slaves)
|
if (server->slaves)
|
||||||
@ -1464,7 +1464,7 @@ static json_t* server_json_attributes(const SERVER* server)
|
|||||||
json_object_set_new(attr, "replication_depth", json_integer(server->depth));
|
json_object_set_new(attr, "replication_depth", json_integer(server->depth));
|
||||||
|
|
||||||
const char* event_name = mon_get_event_name((mxs_monitor_event_t)server->last_event);
|
const char* event_name = mon_get_event_name((mxs_monitor_event_t)server->last_event);
|
||||||
time_t t = maxscale_started() + (server->triggered_at / 10);
|
time_t t = maxscale_started() + HB_TO_SEC(server->triggered_at);
|
||||||
json_object_set_new(attr, "last_event", json_string(event_name));
|
json_object_set_new(attr, "last_event", json_string(event_name));
|
||||||
json_object_set_new(attr, "triggered_at", json_string(http_to_date(t).c_str()));
|
json_object_set_new(attr, "triggered_at", json_string(http_to_date(t).c_str()));
|
||||||
|
|
||||||
|
@ -82,8 +82,8 @@ void handle_connection_keepalive(RWSplit *inst, RWSplitSession *rses,
|
|||||||
|
|
||||||
if (diff > keepalive)
|
if (diff > keepalive)
|
||||||
{
|
{
|
||||||
MXS_INFO("Pinging %s, idle for %d seconds",
|
MXS_INFO("Pinging %s, idle for %ld seconds",
|
||||||
backend->name(), diff / 10);
|
backend->name(), HB_TO_SEC(diff));
|
||||||
modutil_ignorable_ping(backend->dcb());
|
modutil_ignorable_ping(backend->dcb());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user