Size: a a a

pgsql – PostgreSQL

2021 February 26

VY

Victor Yegorov in pgsql – PostgreSQL
Dmitriy
А где про это можно почитать подробнее?
про грязное чтение: https://www.postgresql.org/docs/current/transaction-iso.html
про хинты:
- физический формат записи: https://www.postgresql.org/docs/current/storage-page-layout.html#STORAGE-TUPLE-LAYOUT
- хинты в исходниках: https://github.com/postgres/postgres/blob/master/src/include/access/htup_details.h#L203
- описание в вики проекта: https://wiki.postgresql.org/wiki/Hint_Bits
- зачем Хинты вообще? http://rhaas.blogspot.com/2011/11/hint-bits.html
источник

D

Dmitriy in pgsql – PostgreSQL
Спасибо
источник

W

Warstone in pgsql – PostgreSQL
ммм.... Окей... А к чему это приводит?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Warstone
ммм.... Окей... А к чему это приводит?
что к чему приводит?
источник

W

Warstone in pgsql – PostgreSQL
Ну получается что SELECT будет долгий после транзакции или еще что, что надо учитывать?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Warstone
Ну получается что SELECT будет долгий после транзакции или еще что, что надо учитывать?
кто первый обратиться к записям без Хинтов, тот и сделает эту отложенную работу. это может быть и вакуум.
источник

W

Warstone in pgsql – PostgreSQL
гонки, атомарность, медленный запрос... Что тут может взорваться? Мне прост оне нравится идея когда читающая транзакция вызывает запись. Это как-то неправильно...
источник

W

Warstone in pgsql – PostgreSQL
Более того... Получается что читающая транзакция может заблокировать пишущую (ну на уровне БД, не на уровне доступа к данным)
источник

VY

Victor Yegorov in pgsql – PostgreSQL
тут нечего особо учитывать, это внутренний механизм (оптимиация), которая имеет такой эффект.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
не фантазируйте и не разводите FUD. почитайте ссылки.
источник

W

Warstone in pgsql – PostgreSQL
Так читаю. Пока ответа не вижу
источник

VY

Victor Yegorov in pgsql – PostgreSQL
вы понимаете как физически идёт работа с блоками и записями (физическими) в блоке?
источник

W

Warstone in pgsql – PostgreSQL
Имею смутное представление.
источник

W

Warstone in pgsql – PostgreSQL
Кстати там-же про clog интересно... Что там могут быть пики из-за аллоцирования 8Кб, которые должны сидеть за мьютексом как минимум.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
когда любая, хм… операция: SELECT, DML, VACUUM — приходят в блок и смотрят в запись, они должны проверить видимость этой записи для себя
для этого используются xmin/xmax. если при этом в записи нету хинтов о состоянии xmin/xmax, то надо идти в CLOG и выяснять статус этих транзакций.
если они в процессее — игнорируем (или получится грязное чтение), если же завершены — выставляем соответствующие Хинт-Биты, ибо мы и так залезли в этот блок и эту запись уже.
какие там блокировки я не скажу, долго исходники курить, но полагаю, что лок берётся не на запись, а на буффер в памяти — взяли лок, изменили хинты (записав в WAL), отпустили.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Warstone
Кстати там-же про clog интересно... Что там могут быть пики из-за аллоцирования 8Кб, которые должны сидеть за мьютексом как минимум.
пост Роберта не самый свежий, за столько лет сделано куча изменений. я её дал, чтобы показать как влияют Хинты на производительность
источник

R

Riclud in pgsql – PostgreSQL
[{id: 1}, {id: 2}, {id: 3}]

Как в pq перебрать массив и достать объект где id совпадает 3 ?
источник

ВК

Василий Коротких... in pgsql – PostgreSQL
Riclud
[{id: 1}, {id: 2}, {id: 3}]

Как в pq перебрать массив и достать объект где id совпадает 3 ?
источник

VF

Vladimir Fomin in pgsql – PostgreSQL
Коллеги, всех приветствую!
Есть пользователь wwwBot и он постоянно блокирует сам себя двумя одинаковыми запросами, что тут можно сделать?
источник

DO

Do c Tor O r` Ry in pgsql – PostgreSQL
Vladimir Fomin
Коллеги, всех приветствую!
Есть пользователь wwwBot и он постоянно блокирует сам себя двумя одинаковыми запросами, что тут можно сделать?
Дедлок возникает?
источник