Подготовка к интервью

Вопросы о транзакциях, ACID и согласованности данных

24 вопроса с ответами по теме «Транзакции и ACID в базах данных»

24 вопроса

Что проверяют на интервью

Как устроена подборка

Подборка о том, где начинаются и заканчиваются гарантии транзакции. Базовые свойства ACID и SQL-команды дополнены вопросами о внутреннем устройстве PostgreSQL, восстановлении после сбоев, конкурентных изменениях и взаимодействии БД с внешними системами.

Каталог

Вопросы по теме

Найдено: 24
Теория

Какими способами можно предотвратить разделение транзакций при использовании шардирования базы данных?

При шардировании базы данных транзакции, охватывающие несколько шардов, могут быть сложными для поддержки из-за распределённости данных. Чтобы предотвратить разделение транзакций, можно использовать следующие подходы:

Читать ответ
Теория

В чем заключается принцип атомарности транзакции в базе данных?

Принцип атомарности транзакции в базе данных означает, что транзакция рассматривается как неделимая единица работы: либо все операции внутри транзакции выполняются успешно, либо ни одна из них не применяется.

Читать ответ
Теория

Каким образом транзакции могут приводить к взаимным блокировкам в базе данных?

Взаимные блокировки (deadlocks) в базе данных возникают, когда две или более транзакций блокируют ресурсы, которые нужны друг другу для продолжения работы, и ни одна из них не может продолжить выполнение.

Читать ответ
Теория

Расскажи про концепцию MVCC в PostgreSQL: как работает, bloat, vacuum, связь с уровнями изоляции транзакций.

MVCC (Multi-Version Concurrency Control) в PostgreSQL — это механизм управления параллелизмом, который позволяет транзакциям видеть согласованное состояние данных без блокировок на чтение.

Читать ответ
Теория

Как определить зависшие транзакции в PostgreSQL?

В PostgreSQL зависшие транзакции — это те, которые долгое время находятся в состоянии активной или idle in transaction, не завершаясь. Чтобы их определить, можно использовать запрос к системному каталогу pgstatactivity.

Читать ответ
Теория

В PostgreSQL заголовок версии строки включает параметр xmax. Какова его роль в управлении транзакциями?

Параметр xmax в заголовке версии строки PostgreSQL указывает номер транзакции, которая удалила или обновила эту строку. Это используется для управления видимостью строк в MVCC (многоверсионном контроле параллелизма).

Читать ответ
Лайвкодинг

Есть задача: атомарно записать событие в брокер (Kafka/RabbitMQ) и в базу данных. Как обеспечить транзакционность?

Обеспечить транзакционность при записи события одновременно в брокер сообщений (Kafka/RabbitMQ) и базу данных — нетривиальная задача, так как это две разные системы с разными транзакционными моделями.

Читать ответ