Как стать автором
Обновить

Комментарии 10

«А нужен ли Redis или хватит PostgreSQL»
сразу отвечу да, попробуйте из kafka апдейтить редис и постгри, сразу всё встанет на свои места

Да — нужен, или да — хватит?!

Да.

Маятник снова качнулся. Ждем.

Слушайте, я честно не специально к вам цепляюсь, но вот уже второй ваш перевод, который можно было бы сделать немного лучше, если полистать комментарии к оригиналу на HN. А там между прочим первым комментарием chx (небезызвестный Károly Négyesi) даёт простейший, 100% рабочий вариант реализации очереди на SQL.


Безо всяких FOR UPDATE SKIP LOCKED. Просто и со вкусом.

Спасибо за уточнение!

Довольно часто и на Хабре появляются такие хорошие комментарии и тогда говорят: «комменты оказались интереснее самого поста». Но без поста не было бы и комментов. Пост — это приглашение к обсуждению.

Я, может быть, слишком поздно ворвался в этот тред, но разве транзакции тут не будут проблемой?
Во-первых, каждый клиент должен каждый раз выполнять этот запрос в новой транзакции.
Во-вторых, если клиентов много и блокировки берутся часто — то из-за MVCC таблица будет раздуваться (bloating).
Открытие-закрытие транзакций с блокировками — недешевая операция, учитывая многопоточность постгреса. У Redis — все в памяти, он однопоточный и операции, например, incr/decr — атомарные.
Как академический пример — очень интересно что можно такое реализовать на SQL. На практике — не надо, пожалуйста. Как и бизнес-логику в базе хранить тоже.

редис хорош для хранения данных с TTL (токены авторизации например). в постгресе такого вроде до сих пор нет. или есть?
О чём, собственно, и написано в заключительной части статьи.
Redis принципиально занимает другую нишу, чем PostgreSQL, и выделяется в том, к чему PostgreSQL не стремится. Примеры включают кэширование данных с TTL, а также хранение и обработку эфемерных данных.


P.S. Возможно этот абзац был добавлен после Вашего комментария, в таком случае, прошу прощения.

С первым сценарием на самом деле постгрес справляется плохо. Если активный поток фоновых задач, то таблица с задачами очень часто обновляется, и на больших нагрузках встаёт всё колом в блокировках. Когда мы переехали в редис с его BLPOP то всё стало просто прекрасно.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.