Comments 4
Ну достаточно поверхностная статья, непонятно почему вы решили перевести ее. В Клеппмане 2PL получше описали.
Матрица совместимости
Приведённая таблица и, главное, пояснения вокруг неё, упорно толкают читателя к выводу, что запрет/блокирование действия и запрет на блокирование этого действия есть одно и то же. Нехорошо...
Блокировка на запись ... запрещает как операции чтения, так и операции записи в данный ресурс.
MySQL, между прочим, вполне себе разрешает раздельное, независимое и неинтерферирующее блокирование чтения и блокирование записи. Чему в рамках написанного в статье места как не находится... а зря.
Для транзакции базы данных фаза расширения начинается с момента начала транзакции и продолжается до ее окончания, а фаза сокращения выполняется в момент фиксации или отката, так что в конце транзакции все полученные блокировки освобождаются.
Эммм.. а как же вложенные транзакции? Ну и до кучи - транзакции без явных фиксации/отката?
На следующем рисунке показано, как 2PL координирует чередование выполнения транзакций
Кабы не знал, вряд ли что понял бы. Совершенно невменяемый рисунок, да и пояснения - вообще ни о чём.
ИТОГО: имхо статья не заслуживала того, чтобы её переводить.
Двухфазная блокировка