From: | Artur Zając <azajac(at)ang(dot)com(dot)pl> |
---|---|
To: | <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Table locking during backup |
Date: | 2019-10-07 21:00:08 |
Message-ID: | 021f01d57d52$3397e300$9ac7a900$@ang.com.pl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I cannot reproduce some scenario I found in my PostgreSQL logs.
I have two connections/processes:
Process 24755 is standard pg_backup connection with:
.
BEGIN;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ ONLY
.
LOCK TABLE gm.tableabc;
.
COPY FROM gm.tableabc
Process 5969 is normal connection where I have:
LOG: proces 5969 still waiting for AccessExclusiveLock on relations
562888531 of database 16429 after 1000.066 ms
DETAILT: Process holding the lock: 24755. Wait queue: 5969
Query that is waiting (from proces 5969) is:
CREATE TEMP TABLE IF NOT EXISTS tableabc
(
Id BIGINT DEFAULT gm.top()
) INHERITS (gm.tableabc);
I cannot reproduce what pg_dump is doing that causes waiting on proces 5969
(which lock is acquired and why). When pg_dump ends lock is released and
proces 5969 continues.
I know that doing in two parallel connections:
BEGIN;
CREATE TEMP TABLE IF NOT EXISTS tableabc
(
Id BIGINT DEFAULT gm.top()
) INHERITS (gm.tableabc);
causes waiting state on second connection until the first finished, but
pg_dump connection is read only.
Could you suggest me which part of pg_dump (which query) might cause that
behaviour.
Artur Zając
From | Date | Subject | |
---|---|---|---|
Next Message | Tomas Vondra | 2019-10-07 21:09:33 | Re: temporary files |
Previous Message | dangal | 2019-10-07 20:52:41 | temporary files |