Двухфазная блокировка
-
Основы двухфазной блокировки
- Двухфазная блокировка (2PL) обеспечивает сериализацию конфликтов в базах данных.
- Протокол 2PL включает фазы расширения и сжатия, где блокировки добавляются и удаляются соответственно.
- Используются два типа блокировок: общие (чтение) и эксклюзивные (запись).
-
Правила и варианты 2PL
- Транзакция может читать объект только при наличии блокировки на чтение.
- Транзакция может записывать объект только при наличии блокировки записи.
- Расписание транзакций может удерживать несколько блокировок одновременно, если они не являются блокировками на запись.
-
Консервативная и строгая двухфазная блокировки
- C2PL гарантирует отсутствие взаимоблокировок, блокируя все необходимые блокировки до начала транзакции.
- S2PL требует снятия блокировок на запись только после завершения транзакции, в то время как блокировки на чтение снимаются регулярно.
- SS2PL снимает блокировки на чтение и запись только после завершения транзакции, не имеет фазы сжатия и является строгим вариантом S2PL.
-
Дополнительные ресурсы
- Ссылки на сериализуемость, блокировки и тупики.