Size: a a a

pgsql – PostgreSQL

2020 May 19

YS

Yaroslav Schekin in pgsql – PostgreSQL
Andrey Lepekha
Skip locked кстати не подходит, он наоборот пропускает заблокированные строки(что логично из названия). Мне нужно сделать очередь транзакций, что бы одна ждала завершение другой. По сути сейчас так и есть, но оооочень странно работает. Бывает что 5 записей нормально обновляются, и потом пару записей вообще не обновляются
> Skip locked кстати не подходит, он наоборот пропускает заблокированные строки(что логично из названия).

А я подумал, что Вам это и было нужно (как это обычно бывает в очередях, чтобы несколько клиентов обрабатывали "задания" одновременно, выбирая разные / не блокируя друг друга).

> Бывает что 5 записей нормально обновляются, и потом пару записей вообще не обновляются

Хмм... тут нужно конкретный код и схему таблиц смотреть, я думаю ("вслепую" вряд ли кто-то скажет, в чём именно ошибка).
источник

AL

Andrey Lepekha in pgsql – PostgreSQL
Сейчас опишу задачу вкратце, и сброшу код. Задача следующая:
Есть таблица tasks в которой есть поля input_rows_count и processed_rows_count. Поле input_rows_count обновляется каждый раз, когда задача отправляется в реббит(в консьюмер), processed_rows_count соответственно обновляется когда задача консьюмиться. Поле input_rows_count обновляется последовательно в цикле, ну а processed_rows_count обновляется как только лиснер констюмит таску. И получается так, что input_rows_count != processed_rows_count, так как в один момент времени код пытается обновить processed_rows_count
источник

AL

Andrey Lepekha in pgsql – PostgreSQL
SELECT * FROM "tasks" WHERE id=2 FOR UPDATE
UPDATE tasks SET processed_rows_count =+ 1 WHERE id = 2
источник

AL

Andrey Lepekha in pgsql – PostgreSQL
Вот весь код
источник

AL

Andrey Lepekha in pgsql – PostgreSQL
да, еще это все происходит посредством AR модели, но это не столько важно, так как на выходе получается вот тот код
источник

МИ

Максим Исаев... in pgsql – PostgreSQL
Всем привет! Как организовать сортировку таким образом чтоб название были группами по имени производителя а цена от меньшей к большей.
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
order by "название производителя" asc, "цена" desc не канает?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Andrey Lepekha
Сейчас опишу задачу вкратце, и сброшу код. Задача следующая:
Есть таблица tasks в которой есть поля input_rows_count и processed_rows_count. Поле input_rows_count обновляется каждый раз, когда задача отправляется в реббит(в консьюмер), processed_rows_count соответственно обновляется когда задача консьюмиться. Поле input_rows_count обновляется последовательно в цикле, ну а processed_rows_count обновляется как только лиснер констюмит таску. И получается так, что input_rows_count != processed_rows_count, так как в один момент времени код пытается обновить processed_rows_count
А используемый уровень изоляции — Read Committed, я так понимаю... извините, я в подобном копаться не люблю. ;)
Но, чтобы Вам кто-то ответил по существу, лучше всё-таки показать \d tasks (или CREATE TABLE + CREATE INDEX), и как-то описать, что за проблемы Вы видите, IMHO.
источник

AL

Andrey Lepekha in pgsql – PostgreSQL
Уже решил, проблема была в самом реббите, из за обрыва сети консьюмеры отключались и код не успевал отработать
источник

AL

Andrey Lepekha in pgsql – PostgreSQL
Спасибо за помощь👍
источник

AK

Aleksey Kovalenko in pgsql – PostgreSQL
всем доброго дня, подскажите пожалуйста тип данных для отслеживания изменений данных в таблице, в postgres по аналогии timestamp(MSSQL) - типа row_version, есть такое?
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Aleksey Kovalenko
всем доброго дня, подскажите пожалуйста тип данных для отслеживания изменений данных в таблице, в postgres по аналогии timestamp(MSSQL) - типа row_version, есть такое?
https://postgrespro.ru/docs/postgresql/11/storage-page-layout Компоновка строки таблицы
источник

AK

Aleksey Kovalenko in pgsql – PostgreSQL
как то сложно
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
чтите документацию, ибо рулез она!
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
"Из коробки" — нет. Некоторые ORM-ы используют xmin (и у этого подхода есть как чисто "теоретические" (xmin-ы, формально, могут повторяться, но это практически невероятно), так и практические проблемы — см. https://www.postgresql.org/message-id/16446-2011a4b103fc5fd1%40postgresql.org , автор bug report показал это сначала прямо тут :) ).

Если нужно — можно просто использовать sequence + trigger, например.
источник

ПЕ

Петр Егоров... in pgsql – PostgreSQL
источник

AK

Aleksey Kovalenko in pgsql – PostgreSQL
спасибо всем за ответы, буду читать, сложновато немного - точнее не привычно
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
#PostgresPro #Patroni

Получил запрос на добавление поддержки СУБД PostgresPro Standard в автоматизации по развёртыванию кластеров на базе patroni.
С первого взгляда ничего сложного, если не говорить об отсутствии официальной поддержки со стороны patroni...

Если найдутся желающие хорошенько погонять тесты деплоя PostgresPro в кластере patroni, буду благодарен (пишите в личку).

Issue:
https://github.com/vitabaks/postgresql_cluster/issues/38
источник

MM

Maksim Milyutin in pgsql – PostgreSQL
Виталий Кухарик
#PostgresPro #Patroni

Получил запрос на добавление поддержки СУБД PostgresPro Standard в автоматизации по развёртыванию кластеров на базе patroni.
С первого взгляда ничего сложного, если не говорить об отсутствии официальной поддержки со стороны patroni...

Если найдутся желающие хорошенько погонять тесты деплоя PostgresPro в кластере patroni, буду благодарен (пишите в личку).

Issue:
https://github.com/vitabaks/postgresql_cluster/issues/38
а что там сложного? Пакеты пгпро даже больше приспособлены для патрони - там можно установить бинари без активации сервисов
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Maksim Milyutin
а что там сложного? Пакеты пгпро даже больше приспособлены для патрони - там можно установить бинари без активации сервисов
Я ведь и написал что с первого взгляда ничего сложного. Вопрос в тестах.
источник