Получить доступ

Транзакции и изоляция

Основа с Junior

ACID, уровни изоляции, аномалии, блокировки и MVCC.

Что важно знать

  • ACID: атомарность, согласованность, изоляция, долговечность.
  • Уровни: Read Committed (по умолчанию в PostgreSQL), Repeatable Read, Serializable — чем строже, тем меньше аномалий и больше конфликтов.
  • Аномалии: грязное и неповторяющееся чтение, фантомы, потерянное обновление, write skew.
  • Оптимистическая блокировка — версия строки; пессимистическая — SELECT … FOR UPDATE.
  • MVCC — читатели не блокируют писателей, у каждой транзакции свой снимок.
  • Длинные транзакции держат блокировки и мешают очистке старых версий.

Критерии освоения

Junior ≈ 4 ч

  • Объясняет ACID и использует транзакцию для связанных изменений

Практика. Реализовать перевод денег между счетами в транзакции и показать, что происходит без неё.

Middle ≈ 8 ч

  • Объясняет уровни изоляции и аномалии на примерах и выбирает уровень под задачу
  • Решает конкурентное обновление оптимистической блокировкой или SELECT FOR UPDATE
  • Объясняет MVCC в PostgreSQL

Практика. Воспроизвести потерянное обновление в двух сессиях psql и исправить двумя способами.

Senior ≈ 4 ч

  • Разбирает взаимные блокировки в базе по логам и устраняет причину

Практика. Смоделировать взаимную блокировку в базе под нагрузкой, найти её в логах и устранить порядком обновлений.

Вопросы с собеседований

Разборы темы

← Вся карта «Backend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем