Блокировки и взаимоблокировки.

Блокировка — запрет другим транзакциям доступа к объекту для предотвращения коллизий и обеспечения целостности данных.

По области действия

По строгости

Intent Lock (Блокировка намерений)

По логике реализации

Двухфазные блокировки (2PL)

  1. Growing (Фаза захвата) — берутся блокировки.
  2. Shrinking (Фаза освобождения) — отпускаются блокировки.

Гарантирует сериализуемость транзакций.

Взаимоблокировки (Deadlock)

Условия:

  1. Mutual Exclusion — ресурс эксклюзивен
  2. Hold and Wait — держит ресурс и ждёт другой
  3. No Preemption — нельзя отобрать ресурс
  4. Circular Wait — замкнутый круг ожиданий

Решения:

Эскалация блокировок

Если слишком много мелких блокировок (строки), СУБД заменяет их на блокировку таблицы для экономии памяти.


Revision #1
Created 2026-01-15 15:41:55 UTC by Fedmog1lnkv
Updated 2026-01-15 15:45:45 UTC by Fedmog1lnkv