programing

2PL, 엄격 모델 대 엄격 모델, 혜택이 있습니까?

jooyons 2023. 9. 17. 13:04
반응형

2PL, 엄격 모델 대 엄격 모델, 혜택이 있습니까?

2PL(이상 잠금)에서 엄격한 모델이 엄격한 모델에 비해 어떤 이점이 있습니까?

I) 엄격한 모델보다 유리한 점은 없습니다.

II) 엄격한 모델과는 반대로 기아가 발생할 수 없다는 것을 보장합니다.

III) 엄격한 모델과는 대조적으로 교착 상태가 발생하지 않도록 보장합니다.

IV) 엄격한 모델과는 달리 미래에 필요한 데이터를 예측할 필요가 없습니다.

제 노트에는 위의 내용이 모두 거짓이라고 나와 있습니다.저는 좀 혼란스럽습니다.누가 왜 이 모든 것이 거짓인지 설명해 줄 수 있나요?

2상 잠금(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입니까?

엄격한 2단계 잠금은 더욱 엄격합니다. 여기서는 모든 잠금을 커밋/중단할 때까지 유지합니다.이 프로토콜에서 트랜잭션은 커밋하는 순서대로 직렬화될 수 있습니다.

훨씬 더 깊음:

엄격한 2PL:

enter image description here

2PL과 동일하지만 트랜잭션이 이미 성공적으로 커밋되거나 중단될 때까지 모든 배타적 잠금을 유지합니다.–캐스케이드 없는 복구 가능성을 보장

엄격한 2PL:

enter image description here

Strict 2PL과 동일하지만 트랜잭션이 이미 성공적으로 커밋되거나 중단될 때까지 모든 잠금을 유지합니다.–데이터 액세스 패턴을 사전에 알 수 없는 동적 환경에서 사용됩니다.

교착 상태는 없습니다.또한 이전 트랜잭션에 의해 보유된 항목을 요청한 이전 트랜잭션은 중단되고 동일한 타임스탬프로 다시 시작되므로 기아가 방지됩니다.

도표를 포함한 위의 명확한 설명이 당신에게 엄격함의 개념과 장점에 대해 분명하게 해주었을 것이라 기대합니다.

감사해요.

I - 이점이 있습니다.

UCLA에서 온 강의 노트를 보세요.

엄격한 2상 잠금은 엄격한 2PL의 장점을 가지고 있습니다.또한 두 개의 상충되는 트랜잭션에 대해 커밋 순서가 직렬화 가능 순서라는 속성이 있습니다.일부 시스템에서는 사용자가 이 동작을 예상할 수 있습니다.

다음 강의 노트에는 다음과 같은 예가 있습니다(예문의 모델은 엄격하지만 엄격하지는 않습니다).

x를 쓰는 짧은 트랜잭션 T2보다 먼저 x를 읽는 긴 트랜잭션 T1이 주문되는 동일한 사이트에서 수행된 두 개의 트랜잭션을 생각해 보십시오. T2가 먼저 반환되며, T1이 이전 버전을 기반으로 완료되기 훨씬 전에 x의 업데이트 버전을 보여줍니다.

II 및 III - 데드락/기아에 영향을 미치지 않음

엄격한 2PL은 읽기 전용 잠금이 이전에 해제될 수 있는 엄격한 경우와 달리 트랜잭션이 종료된 후 모든 잠금이 해제됨을 의미합니다.이는 확장 단계에서 발생하기 때문에 데드락이나 기아에는 영향을 미치지 않습니다(거래는 필요한 잠금을 획득할 수 없음).교착 상태에서는 두 프로세스 모두 항상 확장 단계에 있습니다.

IV - 확장 단계에서 잠금에 필요한 데이터를 알아야 합니다. 축소 단계가 다릅니다.

Strict: Strict 2PL의 일반적인 구현 세부 사항은 모르지만, 거래가 끝나기 전에 읽기 잠금이 해제되면 나중에 거래에서 잠금이 필요하지 않다는 것을 알아야 합니다(원한다면 100% 확실한 예측).
엄격:모든 읽기 잠금은 트랜잭션이 끝날 때 해제되며 트랜잭션은 읽기 잠금을 해제해야 하는지 또는 트랜잭션의 나중 읽기를 위해 보관해야 하는지를 평가할 필요가 없습니다.


엄격하거나 엄격한 것이 더 사용/선호됩니까?

이 두 모델 중 어떤 모델을 사용할지는 상황에 따라 달라집니다.현대의 DBMS는 단순 엄격하거나 엄격한 2PL보다 복잡한 동시 처리를 사용합니다.2단계 잠금에 대한 위키피디아 기사로 판단하면 엄격한(SS2PL) 모델이 더 널리 사용된다고 합니다.

SS2PL [rigorous]는 1970년대 초기부터 대부분의 데이터베이스 시스템에서 선택된 동시성 제어 프로토콜로 사용되어 왔습니다. [...]

2PL은 일반적인 형태뿐만 아니라 Strictness, 즉 Strict 2PL(S2PL)과 결합하는 경우에도 실제로는 사용되지 않는 것으로 알려져 있습니다.대중적인 SS2PL은 2PL과 S2PL처럼 "1단계 종료"를 표시할 필요가 없으므로 구현이 더 간단합니다.또한 일반적인 2PL과 달리 SS2PL은 위에서 언급한 바와 같이 유용한 Strictness and Commitment Ordering 속성을 제공합니다. [...]

SS2PL 대 S2PL: 둘 다 직렬화 가능성과 엄격성을 제공합니다.S2PL은 SS2PL의 슈퍼 클래스이므로 원칙적으로 더 많은 동시성을 제공할 수 있습니다.그러나 일반적으로 동시성의 이점이 실질적으로 나타나지 않으며(S2PL의 경우 사실상 이전 잠금 해제가 많지 않으며 둘 모두에 대해 정확히 동일한 잠금이 존재), 트랜잭션-엔드와는 별도로 S2PL에서 단계 종료 메커니즘을 처리하는 오버헤드는 정당화되지 않습니다.또한 SS2PL은 Commitment Ordering을 제공하지만 S2PL은 제공하지 않습니다.이것은 SS2PL이 S2PL보다 선호하는 것을 설명합니다. [...]

위 예에서의 트랜잭션 T2는 잠금 해제 해제(A) 이후에 잠금 요청(lock B)이 이루어짐에 따라 2PL 및 S2PL을 따르지 않으므로 프로토콜을 위반합니다.

엄격한 2상 잠금은 엄격한 2상 잠금과 유사하며 크게 두 가지 차이점이 있습니다.

  1. 엄격한 2단계 잠금에서는 공유 잠금이 축소 단계로 해제되지만 엄격한 2단계 잠금에서는 모든 공유 잠금 및 독점 잠금이 거래가 끝날 때까지 유지됩니다.
  2. 엄격한 2단계 잠금에서는 데이터 항목에 대한 잠금의 액세스 패턴을 사전에 알 필요가 없으므로 동적 환경에 더 적합한 반면 엄격한 2단계 잠금에서는 잠금의 액세스 패턴을 트랜잭션 시작 시 지정해야 합니다.

그래서 네 번째 옵션이 맞는 것입니다.

언급URL : https://stackoverflow.com/questions/29722886/2pl-rigorous-vs-strict-model-is-there-any-benefit

반응형