summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyen Thanh Cong <ntcong1705@gmail.com>2020-11-20 10:00:09 +0700
committerLingxian Kong <anlin.kong@gmail.com>2020-11-30 09:56:58 +0000
commit753252ab1c2248831403b04ebb4652d083c6278b (patch)
tree16a93348f8df48edcbf70ffa896a36b777c22788
parentd6b35435e0114c663ab481680371de45acd99c2e (diff)
downloadtrove-753252ab1c2248831403b04ebb4652d083c6278b.tar.gz
Get slave_pos to choose latest replica
Latest replica have slave_pos biggest, so we just need use slave_pos to compare replicas. Change-Id: Ic4e2c79f48bfcaea806babbf50d4757a9c153132 (cherry picked from commit df82af30f21b89097597bf471c2aa5a08d19386c)
-rw-r--r--trove/guestagent/datastore/mariadb/service.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/trove/guestagent/datastore/mariadb/service.py b/trove/guestagent/datastore/mariadb/service.py
index aa603d99..891e37fb 100644
--- a/trove/guestagent/datastore/mariadb/service.py
+++ b/trove/guestagent/datastore/mariadb/service.py
@@ -57,10 +57,14 @@ class MariaDBApp(mysql_service.BaseMySqlApp):
with mysql_util.SqlClient(self.get_engine()) as client:
return client.execute('SELECT @@global.gtid_binlog_pos').first()[0]
+ def _get_gtid_slave_executed(self):
+ with mysql_util.SqlClient(self.get_engine()) as client:
+ return client.execute('SELECT @@global.gtid_slave_pos').first()[0]
+
def get_last_txn(self):
master_UUID = self._get_master_UUID()
last_txn_id = '0'
- gtid_executed = self._get_gtid_executed()
+ gtid_executed = self._get_gtid_slave_executed()
for gtid_set in gtid_executed.split(','):
uuid_set = gtid_set.split('-')
if str(uuid_set[1]) == str(master_UUID):