From: | Andrei Zhidenkov <andrei(dot)zhidenkov(at)n26(dot)com> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Race condition while creating a new partition |
Date: | 2019-12-16 10:32:11 |
Message-ID: | 728B91DD-5A10-4F46-89BF-B14DED93A7FD@n26.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I think that I’ve got a deadlock (which is handled by `exception when others` statements). But the problem is it occurs too fast. Is it possible to get a deadlock faster than deadlock_timeout? It’s set to 1s (default value) but it looks like I get it immidiately. Error message I’m getting after removing the second exception handling is the following:
psycopg2.errors.DeadlockDetected: deadlock detected
DETAIL: Process 33 waits for AccessExclusiveLock on relation 16453 of database 16384; blocked by process 37.
Process 37 waits for AccessExclusiveLock on relation 16453 of database 16384; blocked by process 33.
HINT: See server log for query details.
CONTEXT: SQL statement "
CREATE TABLE IF NOT EXISTS prov_level_1.log_*__2019_12_16_10_25_46 PARTITION OF prov_level_1.log_*
FOR VALUES FROM ('2019-12-16 10:25:46+00') TO ('2019-12-16 10:25:47+00');
"
> On 15. Nov 2019, at 11:49, Andrei Zhidenkov <andrei(dot)zhidenkov(at)n26(dot)com> wrote:
>
> We use this code in order to automatically create new partitions for a partitioned table (Postgres 10.6):
>
> begin
> insert into <partitioned_table>;
> exception when undefined_table then
> begin
> <create_unexistent_partition>
> -- A concurrent txn has created the new partition
> exception when others then end;
> -- Insert data into the new partition
> insert into <partitioned_table>;
> end;
> end;
>
> As far as I understand we should always have a new partition created either in current or in concurrent transaction but today we faced the problem when we failed to insert data due to a partition nonexistence for a small period of time. Have I missed something?
>
> Thank you.
>
> —
>
> With best regards, Andrei Zhidenkov.
From | Date | Subject | |
---|---|---|---|
Next Message | chikolette-postgresql@yahoo.com | 2019-12-16 10:52:50 | Re: Event Triggers and Dropping Objects |
Previous Message | Daulat Ram | 2019-12-16 10:23:36 | Access privileges |