Дедлок — цикл ожидания ресурсов: каждый участник держит ресурс, нужный другому, и ждёт освобождения следующего. В БД система обычно прерывает одну из транзакций, чтобы разорвать цикл.
Что такое дедлок и как его избежать?
Дедлок — цикл ожидания ресурсов: каждый участник держит ресурс, нужный другому, и ждёт освобождения следующего. В БД система обычно прерывает одну из транзакций, чтобы разорвать цикл.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Дедлок — цикл ожидания ресурсов: каждый участник держит ресурс, нужный другому, и ждёт освобождения следующего. В БД система обычно прерывает одну из транзакций, чтобы разорвать цикл.
Снижайте риск единым порядком захвата блокировок, короткими транзакциями и подходящими индексами. При обнаруженном дедлоке повторяют всю транзакцию с ограничением попыток, если операция допускает безопасный повтор. Увеличение timeout само по себе цикл ожидания не устраняет.