summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2011-12-09 07:02:37 +0000
committerMarko Kreen2011-12-09 07:02:37 +0000
commit17c92fba298477e619c57a971708edbea76ddf06 (patch)
tree3aafe334a9e6bd255e9e4162ecca88b26dde5232
parentb1e3350a364282b22c69236af6a2b5654cae8b28 (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.py6
-rw-r--r--python/londiste/table_copy.py4
-rwxr-xr-xpython/skytools/checker.py4
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()