diff --git a/include/MySQL_HostGroups_Manager.h b/include/MySQL_HostGroups_Manager.h index 3dee9a2e9..befed7d21 100644 --- a/include/MySQL_HostGroups_Manager.h +++ b/include/MySQL_HostGroups_Manager.h @@ -2,6 +2,7 @@ #define __CLASS_MYSQL_HOSTGROUPS_MANAGER_H #include "proxysql.h" #include "cpp.h" +#include "proxysql_gtid.h" #include @@ -183,6 +184,9 @@ class MySQL_HostGroups_Manager { std::thread *HGCU_thread; + std::unordered_map gtid_map; + pthread_rwlock_t gtid_rwlock; + public: struct { unsigned int servers_table_version; diff --git a/include/proxysql_gtid.h b/include/proxysql_gtid.h new file mode 100644 index 000000000..bace8aaef --- /dev/null +++ b/include/proxysql_gtid.h @@ -0,0 +1,21 @@ +#ifndef PROXYSQL_GTID +#define PROXYSQL_GTID +// highly inspired by libslave +// https://github.com/vozbu/libslave/ +#include +#include +#include + +typedef std::pair gtid_t; +typedef std::pair gtid_interval_t; +typedef std::unordered_map> gtid_set_t; + +class Gtid_Server_Info { + gtid_set_t executed_gtid_set; + char *address; + uint16_t mysql_port; + uint16_t gtid_port; + bool active; +}; + +#endif /* PROXYSQL_GTID */