Re: Horizontal scalability/sharding - Mailing list pgsql-hackers

From Amit Langote
Subject Re: Horizontal scalability/sharding
Date
Msg-id 55E6CE91.5040800@lab.ntt.co.jp
Whole thread Raw
In response to Re: Horizontal scalability/sharding  (Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>)
Responses Re: Horizontal scalability/sharding  (Pavan Deolasee <pavan.deolasee@gmail.com>)
List pgsql-hackers
On 2015-09-02 PM 06:41, Amit Langote wrote:
> 
> I think Albe may have a point here...
> 
> Even inherited updates case appears to cause a deadlock if they are in
> different queries. Demonstrated below:
> 
> -- setup
> CREATE TABLE t(a int);
> CREATE TABLE t1() INHERITS(t);
> CREATE TABLE t2() INHERITS(t);
> 
> INSERT INTO t1 VALUES (1);
> INSERT INTO t2 VALUES (2);
> 
> -- in session 1
> BEGIN;
> UPDATE t SET a = a + 1 WHERE a = 1;
> <ok>
> 
> -- in session 2
> BEGIN;
> UPDATE t SET a = a + 1 WHERE a = 2;
> <ok>
> 
> -- back in session 1
> UPDATE t SET a = a + 1 WHERE a = 2;
> <waits>
> 
> -- back in session 2
> UPDATE t SET a = a + 1 WHERE a = 1;
> <deadlock is detected>
> 

Which, I now realize, is not the worry Amit Kapila's expresses.

The deadlock was *indeed detected* in this case, with all the locks in the
same PG instance. In a sharded environment with multiple PG instances,
that becomes tricky. DLM (distributed lock manager/deadlock detector)
seems indeed necessary as Amit K. suspects.

Thanks,
Amit




pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: Horizontal scalability/sharding
Next
From: "Shulgin, Oleksandr"
Date:
Subject: Re: On-demand running query plans using auto_explain and signals