From: Petr Jelinek Date: Wed, 4 Sep 2013 12:55:29 +0000 (+0200) Subject: Add timeout for add-table operation to avoid possible locking issues. X-Git-Tag: 3.1.5.4~1^2 X-Git-Url: http://waps.l3s.uni-hannover.de/gitweb/?a=commitdiff_plain;h=47cfed289d0f5b46e7bf39a1f1b4b46d26ff126a;p=skytools.git Add timeout for add-table operation to avoid possible locking issues. --- diff --git a/python/londiste/setup.py b/python/londiste/setup.py index 20d3f5c0..1ce79598 100644 --- a/python/londiste/setup.py +++ b/python/londiste/setup.py @@ -40,6 +40,8 @@ class LondisteSetup(CascadeAdmin): self.set_name = self.queue_name + self.lock_timeout = self.cf.getfloat('lock_timeout', 10) + londiste.handler.load_handler_modules(self.cf) def init_optparse(self, parser=None): @@ -117,6 +119,13 @@ class LondisteSetup(CascadeAdmin): def is_root(self): return self.queue_info.local_node.type == 'root' + def set_lock_timeout(self, curs): + ms = int(1000 * self.lock_timeout) + if ms > 0: + q = "SET LOCAL statement_timeout = %d" % ms + self.log.debug(q) + curs.execute(q) + def cmd_add_table(self, *args): """Attach table(s) to local node.""" @@ -198,6 +207,8 @@ class LondisteSetup(CascadeAdmin): tbl_exists = skytools.exists_table(dst_curs, dest_table) dst_db.commit() + self.set_lock_timeout(dst_curs) + if dest_table == tbl: desc = tbl else: