Что нужно знать про MVCC?

Ответ

Каждая строка: xmin (создавшая транзакция), xmax (удалившая/обновившая). Читатели не блокируют писателей. Snapshot isolation. Старые версии чистит VACUUM (autovacuum). Проблема: table bloat если VACUUM не успевает.

Разбор: В MVCC каждая строка помечена xmin (создавшая транзакция) и xmax (удалившая/обновившая), читатели видят согласованный snapshot и не блокируют писателей, а писатели не блокируют читателей. Мёртвые версии чистит VACUUM/autovacuum, и при его отставании возникает table bloat. Ловушки в дистракторах — выдумать взаимные блокировки читателей и писателей, отрицать необходимость VACUUM или подменить транзакционные id таймстампами блокировок.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться