Question about tuple´s lock

Поиск
Список
Период
Сортировка
От Carlos Alves
Тема Question about tuple´s lock
Дата
Msg-id 2fa29bee5e4a7c369f54f02198423814@tecnisys.com.br
обсуждение исходный текст
Ответы Re: Question about tuple´s lock
Re: Question about tuple´s lock
Список 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

Logo
Tecnisys

Sia Trecho 08, lotes 245 / 255 / 265 || +55 (61) 3039-9700
71205-080 || Guará || Brasília, DF 0800-6020097

www.tecnisys.com.br
Вложения

В списке pgsql-general по дате отправления:

Предыдущее
От: Ron
Дата:
Сообщение: Re: setting up streaming replication
Следующее
От: Carlos Alves
Дата:
Сообщение: Re: Question about tuple´s lock