MXS-1845 Find strongly connected components with multiple slave connections

Rewrote the algorithm for clarity.
This commit is contained in:
Esa Korhonen
2018-05-22 14:17:39 +03:00
parent 32c7ae2f9f
commit 4d7aff4ab9
5 changed files with 201 additions and 143 deletions

View File

@ -43,7 +43,6 @@ MariaDBServer::MariaDBServer(MXS_MONITORED_SERVER* monitored_server)
, m_print_update_errormsg(true)
, m_version(version::UNKNOWN)
, m_server_id(SERVER_ID_UNKNOWN)
, m_group(0)
, m_read_only(false)
, m_n_slaves_running(0)
, m_n_slave_heartbeats(0)
@ -54,6 +53,24 @@ MariaDBServer::MariaDBServer(MXS_MONITORED_SERVER* monitored_server)
ss_dassert(monitored_server);
}
NodeData::NodeData()
: index(INDEX_NOT_VISITED)
, lowest_index(INDEX_NOT_VISITED)
, cycle(INDEX_NOT_VISITED)
, in_stack(false)
{}
void NodeData::reset()
{
index = INDEX_NOT_VISITED;
lowest_index = INDEX_NOT_VISITED;
cycle = INDEX_NOT_VISITED;
in_stack = false;
parents.clear();
children.clear();
external_masters.clear();
}
int64_t MariaDBServer::relay_log_events()
{
/* The events_ahead-call below ignores domains where current_pos is ahead of io_pos. This situation is
@ -452,7 +469,7 @@ string MariaDBServer::diagnostics(bool multimaster) const
}
if (multimaster)
{
ss << "Master group: " << m_group << "\n";
ss << "Master group: " << m_node.cycle << "\n";
}
return ss.str();
}
@ -486,7 +503,7 @@ json_t* MariaDBServer::diagnostics_json(bool multimaster) const
}
if (multimaster)
{
json_object_set_new(srv, "master_group", json_integer(m_group));
json_object_set_new(srv, "master_group", json_integer(m_node.cycle));
}
return srv;
}