[BDR] Best practice to automatically abort a DDL operation when one node is down

From: Sylvain MARECHAL <marechal(dot)sylvain2(at)gmail(dot)com>
To: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: [BDR] Best practice to automatically abort a DDL operation when one node is down
Date: 2016-01-13 13:45:14
Message-ID: 569654EA.90602@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello all,

I am using BDR with two nodes 1 and 2.
If I issue a DDL operation in node 1 when node 2 is down, for example:
CREATE TABLE test (i int PRIMARY KEY); (1)

all other transactions fail with the following error:
Database is locked against DDL operations

The problem is that the (1) DDL request will wait indefinitely, meaning
all transactions will continue to fail until the DDL operation is
manually aborted (for example, doing CTRL C in psql to abort the "CREATE
TABLE").

What is the best practice to make sure the DDL operation will fail,
possibly after a timeout, if one of the node is down? I could check the
state of the node before issuing the DDL operation, but this solution is
far from being perfect as the node may fail right after this.

Thanks and Regards,
--
Sylvain

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Chris Travers 2016-01-13 13:55:20 Re: WIP: CoC V5
Previous Message Geoff Winkless 2016-01-13 13:29:33 Re: WIP: CoC V5