Встречается на собеседованиях • сегодня
Почему асинхронная очередь возникнет в БД
Асинхронная очередь в БД возникает из-за несоответствия скорости операций записи и чтения, а также из-за особенностей работы транзакций. Например, при высокой нагрузке:
- Запись в лог перед коммитом – СУБД сначала пишет в WAL (Write-Ahead Log), а затем применяет изменения. Если запись в лог завершена, но коммит ещё не подтверждён, читатели могут увидеть старые данные.
- Изоляция транзакций – Уровни изоляции вроде
READ COMMITTEDилиREPEATABLE READмогут задерживать видимость изменений для других транзакций.
Пример с PostgreSQL:
sql
-- Транзакция 1 (пишет данные)
BEGIN;
INSERT INTO users (name) VALUES ('Alice');
-- Запись уже в WAL, но не закоммичена
-- Транзакция 2 (читает данные)
BEGIN;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SELECT * FROM users; -- Alice ещё не видна
COMMIT;
-- Транзакция 1
COMMIT; -- Теперь Alice станет видна
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы