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

Всем привет! Товарищи, подскажи пожалуйста, как правильнее бороться с race

conditions?
Есть множество асинк процессов вставляющих документы в таблицу по уникальному ключу.
В разных процессах часто встречается один и тот-же документ.(Тут не избежать этого)
Перед вставкой документа проверяется наличие документа в таблице, если не находит, то создается запись.
Для того, чтобы избежать Unique violation при вставке, выборка и вставка оборачивается в транзакцию с пессимистичной блокировкой и несколькими ретраями при исключении.Такая схема работает, но просела неплохо так производительность. Htop показывает долгие idle.
Какие есть еще варианты решения?

7 ответов

8 просмотров

Можно upsertы попрбовать, у мускуля это ON DUPLICATE KAY UPDATE

Канат-Харасаев Автор вопроса
Anton
Можно upsertы попрбовать, у мускуля это ON DUPLICA...

не, апсерт не подходит, т.к. мне нужен объект из таблицы

мьютекс

Канат-Харасаев Автор вопроса
🇺🇦 | osumico | 🇺🇦
мьютекс

advisory locks? или на стороне редиса например?

Канат Харасаев
не, апсерт не подходит, т.к. мне нужен объект из т...

инсерт игнор и проверяй варнинг лог, если надо проверить что инсерт провел другой конкурентный запрос

Bobir
инсерт игнор и проверяй варнинг лог, если надо про...

Я уверен что у него просто нету лока там где он нужен 🗿

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

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

что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
А я же правильно понимаю, что инструкция AT в ld только сохраняет метаинформации о том, куда загрузить сегмент, которую далее из эльфика читает grub(ну если граб)? Но я тогда ...
Evg Resh
2
Господа, импользую кастомный загрузчик, ядро запускается сразу в длинном режиме, хочу узнать, сколько всего физической ОЗУ есть у машины. И, может, знаете какие-то подводные к...
Vi Chapmann 🪙
6
Карта сайта