Какво е протокол за двуфазно заключване (2PL)?
A transaction is two-phase locked if:
before reading x, it sets a read lock on x
before writing x, it sets a write lock on x
it holds each lock until after it executes the corresponding operation
after its first unlock operation, it requests no new locks
Сега какво е строго фазово заключване?
Тук една транзакция трябва да държи всички свои изключителни заключвания, докато не извърши/прекъсне.
Но какво е строг 2PL?
Строгото двуфазно заключване е още по-строго:тук всички заключвания се задържат до извършване/прекратяване. В този протокол транзакциите могат да се сериализират в реда, в който се извършват.
Много по-дълбоко :
Строго 2PL:
Същото като 2PL, но задръжте всички изключителни заключвания, докато транзакцията вече не бъде успешно ангажирана или прекратена. – Гарантира безкаскадно възстановяване
Стига 2PL :
Същото като Strict 2PL, но задръжте всички заключвания, докато транзакцията вече не бъде успешно ангажирана или прекъсната. – Използва се в динамични среди, където моделите за достъп до данни не са известни предварително.
Няма задънена улица. Също така, по-млада транзакция, изискваща елемент, държан от по-стара транзакция, се прекратява и рестартира със същото времеви печат, като се избягва гладуването.
Надявам се, че горните ясни обяснения с диаграмата трябва да са ви разяснили за концепцията и предимствата на стриктното пред другото.
Благодаря