2009-11-25 5 views
1

누구나 의도적 공유 잠금을 사용하여 DB 트랜잭션의 간단한 예제를 제공 할 수 있습니까? 그렇다면 의도적 인 독점적 인 잠금을 사용하는 것입니다.IS (Intentional Shared) 잠금

+0

이 숙제가 있습니까? –

+0

Nop. 단지 개념을 구현하는 방법을 이해하지 못합니다. 나는 공유 된 자물쇠와 독점적 인 자물쇠를 분명히 이해하고 있지만, 의도적 인 자물쇠가 필요하지는 않습니다. 예가 도움이 될 것입니다. – Sheldon

답변

3

잠금 관리자가 잠긴 엔터티의 물리적 구조를 이해하지 못하기 때문에 의도 잠금이 필요합니다. 한 트랜잭션이 레코드를 S- 잠금 (R1)하고 다른 트랜잭션이 페이지 (예 : P1)에서 X- 잠금을 요청하면 R1이 실제로 P1에 있으면 어떻게됩니까? 잠금 관리자는 R1이 해제 될 때까지 P1 요청을 존중해서는 안되며 R1은 P1에 포함되어 있음을 이해해야합니다.

잠금 관리자는 잠금 된 개체의 구조적 세부 사항을 명확하게 알 수 없으므로 의도 잠금이 도입되었습니다. 첫 번째 트랜잭션은 P1에 IS- 잠금을 배치 한 다음 R1에 S- 잠금을 배치합니다. 두 번째 트랜잭션이 P1에서 X- 잠금을 요청하면 첫 번째 트랜잭션에 의해 설정된 IS- 잠금과 충돌합니다.

+0

Remus 감사합니다! – Sheldon

+0

의도 잠금은 잠금이 아니지만 특정 데이터를 잠글 수 있는지 여부를 정의하는 방법과 가능한 경우 잠그는 방법은 무엇입니까? 하향식 나무로, 입체상 가운으로 3 대를 더 크게. – Sheldon

+1

잠금 관리자의 관점에서 볼 때 잠금 장치는 IS, IX, S, X (U 잠금 및 기타 유형 무시)의 네 가지 유형입니다. LM은 이들을 모두 잠금 장치로 인식하고 IS-IX 및 IX-IX와 호환되는 호환 매트릭스 (S-IX, X-IS 및 X-IX 제외)를 갖습니다. 계층 구조 트리의 구조를 이해하는 '접근 자'는 트리를 탐색하여 계층 적으로 내려갈 때 잠금을 요청하여 S 또는 X 잠금을 요청하는 실제 관심 항목을 찾습니다. –