170 похожих чатов

А если делать select for update? Плохо?

16 ответов

11 просмотров

Сама блокировка строки ничего плохого не несет, но будет нести дополнительный апдейт состояния этой строки(таска).

Sergey- Автор вопроса
Ilya Starchenko
Сама блокировка строки ничего плохого не несет, но...

вообщето после обработки строка либо удаляться будет, либо помечаться обработанной

Sergey
вообщето после обработки строка либо удаляться буд...

Это и есть апдейт состояния, который будет создавать новую версию строки, что будет провоцировать автовакуум, если у вас небольшая нагрузка, то это не проблема, в принципе.

Sergey- Автор вопроса
Sergey
что такое автовакуум?

Механизм очистки неактуальных версий строк в mvcc.

Sergey
2-5 тыс тасок в минуту где-то

Ну, я вам подсветил проблему, а там уж сами решайте:)

Sergey- Автор вопроса
Ilya Starchenko
Ну, я вам подсветил проблему, а там уж сами решайт...

а в чем проблема с автовакуумом - база нагнется если что?

Sergey
а в чем проблема с автовакуумом - база нагнется ес...

Автовакуум - это standalone процесс, который будет использовать ресурсы базы(и может даже нагнуть), большое количество версий строк делает visibility map неактуальной, так как страниц хипа становится больше, значит что и выборка по базе и индекс скан становится медленнее. Короче, проблем хватает.

Sergey- Автор вопроса

как воркеру себя идентифицировать? shed lock какой нибудь это делает?

Sergey
как воркеру себя идентифицировать? shed lock какой...

В случае подхода с «виртуальным партицированием»? Любой воркер захватывает лок на строку с партицией и читает нужный батч сообщений(в виде mod от номера текущей партиции). Плюс можно прикрутить какой-то механизм аффинити, мы для аутбокса как-то делали.

Sergey- Автор вопроса
Sergey
а есть примеры кода какие то в инете?

Не уверен, все-таки наиболее популярное решение для аутбокса - это чтение wal по средствам логической репликации, но у нас такой возможности не было.

Обычно так и делают

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Всем привет. Возможно ли выполнить код ahk без интерпритатора? Имея только скомпилированный ехе файл? Например как функция eval
proxy
6
Карта сайта