#database #concurrency #locking #acid
#База данных #параллелизм #блокировка #acid
Вопрос:
Я просмотрел несколько источников, но недавно наткнулся на один, в котором говорится, что даже общие блокировки чтения не разрешены в strict 2PL. Это правда? Также, пожалуйста, подтвердите, что совместное использование разрешено с консервативным и базовым 2PL?
Ответ №1:
Матрица совместимости блокировок отвечает на ваш вопрос
Lock-Type Read-Lock write-Lock
Read-Lock X
Write-Lock X X
Здесь X обозначает, что два типа блокировки несовместимы, а пробел обозначает, что блокировка совместима.Общая блокировка (блокировка чтения) разрешена, только если для этого элемента установлена общая блокировка.
Что касается строгого и строгого 2PL, разница заключается только в порядке снятия блокировки по сравнению с базовым 2PL.
В strict 2PL все блокировки записи снимаются только после операции фиксации / прерывания.
В строгом 2PL все блокировки снимаются только после операции фиксации / прерывания.