Почему MySQL не использует повторные входные блокировки? - PullRequest
0 голосов
/ 30 июня 2018

На мой вопрос я ссылаюсь на пример тупика в официальных документах на https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlock-example.html.

Мне любопытно, почему разработчики MySQL решили не разрешать повторное поступление блокировок, то есть разрешить транзакции использовать блокировку, которую она уже удерживает, пропуская перед очередью.

В примере, когда написано Finally, client A also attempts to delete the row from the table:, почему А не может просто пропустить очередь, так как она уже удерживает блокировку, и продолжить удаление строки? Затем клиент B выполняет свою транзакцию, не находит ни одной строки, которая соответствует i=1, и успешно завершается. Неужели нельзя так полностью избежать тупика?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...