diff options
author | Marko Kreen | 2011-12-09 07:02:37 +0000 |
---|---|---|
committer | Marko Kreen | 2011-12-09 07:02:37 +0000 |
commit | 17c92fba298477e619c57a971708edbea76ddf06 (patch) | |
tree | 3aafe334a9e6bd255e9e4162ecca88b26dde5232 | |
parent | b1e3350a364282b22c69236af6a2b5654cae8b28 (diff) |
londiste: replace SERIALIZABLE with REPEATABLE_READ
On < 9.1 they are same. On 9.1+ REPEATABLE_READ is
same as old SERIALIZABLE, but SERIALIZABLE is rather heavy.
-rw-r--r-- | python/londiste/syncer.py | 6 | ||||
-rw-r--r-- | python/londiste/table_copy.py | 4 | ||||
-rwxr-xr-x | python/skytools/checker.py | 4 |
3 files changed, 8 insertions, 6 deletions
diff --git a/python/londiste/syncer.py b/python/londiste/syncer.py index 02955f93..5d4716d2 100644 --- a/python/londiste/syncer.py +++ b/python/londiste/syncer.py @@ -88,14 +88,16 @@ class Syncer(skytools.DBScript): def work(self): """Syncer main function.""" - dst_db = self.get_database('db', isolation_level = skytools.I_SERIALIZABLE) + + # 'SELECT 1' and COPY must use same snapshot, so change isolation level. + dst_db = self.get_database('db', isolation_level = skytools.I_REPEATABLE_READ) provider_loc = self.get_provider_location(dst_db) lock_db = self.get_database('lock_db', connstr = provider_loc) setup_db = self.get_database('setup_db', autocommit = 1, connstr = provider_loc) src_db = self.get_database('provider_db', connstr = provider_loc, - isolation_level = skytools.I_SERIALIZABLE) + isolation_level = skytools.I_REPEATABLE_READ) setup_curs = setup_db.cursor() diff --git a/python/londiste/table_copy.py b/python/londiste/table_copy.py index 6ba0612e..ee035ef1 100644 --- a/python/londiste/table_copy.py +++ b/python/londiste/table_copy.py @@ -94,9 +94,9 @@ class CopyTable(Replicator): elif tbl_stat.copy_role: cmode = 0 - # change to SERIALIZABLE isolation level + # We need to see COPY snapshot from txid_current_snapshot() later. oldiso = src_db.isolation_level - src_db.set_isolation_level(skytools.I_SERIALIZABLE) + src_db.set_isolation_level(skytools.I_REPEATABLE_READ) src_db.commit() self.sync_database_encodings(src_db, dst_db) diff --git a/python/skytools/checker.py b/python/skytools/checker.py index cb9f9895..c49930b9 100755 --- a/python/skytools/checker.py +++ b/python/skytools/checker.py @@ -320,9 +320,9 @@ class Syncer(skytools.DBScript): lock_db = self.get_database('lock_db', connstr = cstr1) src_db = self.get_database('src_db', connstr = cstr1, - isolation_level = skytools.I_SERIALIZABLE) + isolation_level = skytools.I_REPEATABLE_READ) dst_db = self.get_database('dst_db', connstr = cstr2, - isolation_level = skytools.I_SERIALIZABLE) + isolation_level = skytools.I_REPEATABLE_READ) lock_curs = lock_db.cursor() setup_curs = setup_db.cursor() |