From: | Carlos Alves <carlos(dot)alves(at)tecnisys(dot)com(dot)br> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Question about tuple´s lock |
Date: | 2023-10-24 16:27:35 |
Message-ID: | 2fa29bee5e4a7c369f54f02198423814@tecnisys.com.br |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi!
I need some help to understand why a transaction wiht a row delete
aquire a AccessExclusiveLock and a row update a ExclusiveLock.
To ilustrate, a made this scenario:
create table tblock
(
id int primary key,
value text
);
insert into tblock values (1, 'somevalue');
First start Transaction 1:
begin;
update tblock set value = 'othervalue' where id = 1;
-- keep this transaction opened
After, start Transaction 2:
begin;
update tblock set value = 'onemorevalue' where id = 1;
-- at this point, this transaction assumes a ExclusiveLock in the tuple;
-- keep this transaction opend
Then, start Transaction 3:
begin;
update tblock set value = 'lastofthevalues' where id = 1;
-- here i can see this transaction trying to aquire a
AccessExclusiveLock in this tuple
So, my question is: why a delete row requires a AccessExclusiveLock in
the tuple insteead of ExclusiveLock?
Bellow, a image of a query over pg_locks:
PostgreSQL version: 13
OS: Centos 7
Thanks in advance.
--
Carlos Alves
Especialista
Sia Trecho 08, lotes 245 / 255 / 265 || +55 (61) 3039-9700
71205-080 || Guará || Brasília, DF 0800-6020097
Links:
------
[1] http://www.tecnisys.com.br
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos Alves | 2023-10-24 16:33:10 | Re: Question about tuple´s lock |
Previous Message | Ron | 2023-10-24 13:52:35 | Re: setting up streaming replication |