Backport from compose/governor: compare xlog positions based on bytes since 0/000000 based on feedback

This commit is contained in:
Alexander Kukushkin
2015-05-11 10:06:18 +02:00
parent 2e3eb333cb
commit 6d17d39776
+2 -2
View File
@@ -146,7 +146,7 @@ class Postgresql:
member_conn.autocommit = True
member_cursor = member_conn.cursor()
member_cursor.execute(
'SELECT %s::pg_lsn - pg_last_xlog_replay_location() AS bytes', (self.xlog_position(), ))
"SELECT %s - (pg_last_xlog_replay_location() - '0/0000000'::pg_lsn)", (self.xlog_position(), ))
xlog_diff = member_cursor.fetchone()[0]
logger.info([self.name, member['hostname'], xlog_diff])
if xlog_diff < 0:
@@ -216,7 +216,7 @@ primary_conninfo = '{}'
self.replication['username']), self.replication['password'])
def xlog_position(self):
return self.query('SELECT pg_last_xlog_replay_location()').fetchone()[0]
return self.query("SELECT pg_last_xlog_replay_location() - '0/0000000'::pg_lsn").fetchone()[0]
def load_replication_slots(self):
cursor = self.query("SELECT slot_name FROM pg_replication_slots WHERE slot_type='physical'")