diff --git a/include/MySQL_HostGroups_Manager.h b/include/MySQL_HostGroups_Manager.h index 5ac1cc833..36f128202 100644 --- a/include/MySQL_HostGroups_Manager.h +++ b/include/MySQL_HostGroups_Manager.h @@ -378,6 +378,25 @@ struct hg_metrics_map_idx { }; }; + +/** + * @brief Required server info for the replication_lag Monitoring actions. + */ +using hostgroupid_t = int; +using address_t = std::string; +using port_t = unsigned int; +using current_replication_lag = int; + +using replication_lag_server_t = std::tuple; + +enum REPLICATION_LAG_SERVER_T { + HOSTGROUP_ID = 0, + ADDRESS, + PORT, + CURRENT_REPLICATION_LAG, + __SIZE +}; + class MySQL_HostGroups_Manager { private: SQLite3DB *admindb; @@ -734,7 +753,7 @@ class MySQL_HostGroups_Manager { void destroy_MyConn_from_pool(MySQL_Connection *, bool _lock=true); void replication_lag_action_inner(MyHGC *, const char*, unsigned int, int); - void replication_lag_action(const std::list>& mysql_servers); + void replication_lag_action(const std::list& mysql_servers); void read_only_action(char *hostname, int port, int read_only); void read_only_action_v2(const std::list>& mysql_servers); unsigned int get_servers_table_version(); diff --git a/lib/MySQL_HostGroups_Manager.cpp b/lib/MySQL_HostGroups_Manager.cpp index b06e11629..e96f380f5 100644 --- a/lib/MySQL_HostGroups_Manager.cpp +++ b/lib/MySQL_HostGroups_Manager.cpp @@ -3476,22 +3476,19 @@ void MySQL_HostGroups_Manager::replication_lag_action_inner(MyHGC *myhgc, const } } -void MySQL_HostGroups_Manager::replication_lag_action(const std::list>& mysql_servers) { +void MySQL_HostGroups_Manager::replication_lag_action(const std::list& mysql_servers) { //this method does not use admin table, so this lock is not needed. //GloAdmin->mysql_servers_wrlock(); - - int hid = -1; - std::string address; - unsigned int port = 0; - int current_replication_lag = -1; - unsigned long long curtime1 = monotonic_time(); wrlock(); for (const auto& server : mysql_servers) { - std::tie(hid, address, port, current_replication_lag) = server; + const int hid = std::get(server); + const std::string& address = std::get(server); + const unsigned int port = std::get(server); + const int current_replication_lag = std::get(server); if (mysql_thread___monitor_replication_lag_group_by_host == false) { // legacy check. 1 check per server per hostgroup