Какой механизм базы данных предотвращает создание дублей при конкурентных запросах с одним ключом идемпотентности?

Уникальное ограничение или уникальный индекс на область операции и Idempotency-Key. Оно атомарно не позволяет двум конкурентным транзакциям создать две записи с одним логическим ключом.

Короткий ответ

Что ответить на собеседовании

Уникальное ограничение или уникальный индекс на область операции и Idempotency-Key. Оно атомарно не позволяет двум конкурентным транзакциям создать две записи с одним логическим ключом.

Подробный разбор

Ответ с пояснениями

Уникальное ограничение или уникальный индекс на область операции и Idempotency-Key. Оно атомарно не позволяет двум конкурентным транзакциям создать две записи с одним логическим ключом.

Обычный SELECT, за которым следует INSERT, содержит окно гонки. Вместо этого используйте вставку с обработкой конфликта и храните результат операции вместе с отпечатком запроса. Уникальность должна учитывать пользователя или арендатора, чтобы чужие ключи не конфликтовали. Сам индекс защищает запись дедупликации, но не любой внешний эффект: его нужно согласовать с бизнес-транзакцией либо идемпотентным внешним вызовом.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее