From e51cb81a08a4e5ed3113840f5ed261b963dc624e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Sun, 14 Jan 2018 23:31:42 +0100 Subject: [PATCH] Drafting tracking of GTID --- include/MySQL_HostGroups_Manager.h | 4 ++++ include/proxysql_gtid.h | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 include/proxysql_gtid.h 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 */