▣ 2단계 로킹 규약(2 phase locking protocol)
- 직렬 가능성을 보장할 수 있는 규약으로 모든 트랜잭션들이 lock와 unlock연산을
다음과 같이 두 단계로 구분하여 실행해야 함
확장단계 (Growing Phase) |
트랜잭션은 새로운 lock 연산만 실행가능, unlock 연산 실행 불가 |
축소단계 (Shrinking Phase) |
트랜잭션은 새로운 unlock 연산만 실행 가능, 일단 unlock 연산을 실행하면 lock 연산 더 이상 실행 불가 |
- Read Lock(읽기 로크) : 항목 X에 ReadLock을 수행한 경우, 다른 트랜잭션의 ReadLock은 허용함, Shared Lock(공유 로크)라고도 하며, WriteLock은 허용하지 않음 / 다른 트랜잭션에서 ReadLock이 없는 경우에 한해서 WriteLock로 로크 상승 가능함
- Write Lock(쓰기 로크) : 항목 X에 WriteLock을 수행한 경우, 다른 트랙잭션의 ReadLock, WriteLock 모두 허용하지 않음. 그래서, Exclusive lock(배타적 로크)라고도 하며, 언제라도 ReadLock로 로크 하강 가능함
2012년 68번
정답 : 3번
엄격한(strict) 2PL과 엄밀(rigorous) 2PL은 모두 교착상태를 피할 수 없음
1) 항목 X에 read_lock(X)를 수행하여 공유 로크를 획득한 후 나중에 write_lock(X)를 수행하여 배타적 로크로 로크를 상승(upgrade)시킬 수 있다. (맞음)
2) 항목 X에 write_lock(X)를 수행하여 배타적 로크를 획득한 후 나중에 read_lock(X)를 수행하여 공유로크로 로크를 상승 시킬 수 있다.
-> write_lock(X)을 수행한 경우, 다른 트랜잭션의 readlock, writelock 모두 허용하지 않음 그래서, Exclusive lock(배타적 로크)라고도 하며, 언제라도 ReadLock로 로크 하강 가능함
3) 항목 X에 read_lock(X)를 수행하여 공유 로크를 획득한 후 나중에 write_lock(X)를 수행하여 배타적 로크로 로크를 하강(downgrade) 시킬 수 있다.
-> 다른 트랜잭션에서 ReadLock이 없는 경우에 한해서 WriteLock로 로크 상승 가능함
4) 항목 X에 read_lock(X)를 수행하여 배타적 로크를 획득한 후 나중에 write_lock(X)를 수행하여 공유로크로 로크를 하강시킬 수 있다.
-> 항목 X에 ReadLock을 수행한 경우, 다른 트랜잭션의 ReadLock은 허용함, Shared Lock(공유 로크)라고도 하며, WriteLock은 허용하지 않음. 다른 트랜잭션에서 ReadLock이 없는 경우에 한해서 WriteLock로 로크 상승 가능함
'데이터베이스' 카테고리의 다른 글
뷰(VIEW) 갱신 제약사항_함수가 사용된 산술식, 집계함수, 집합연산, DISTINCT, GROUP BY, HAVING, 조인 등 / 뷰 장점, 단점, WITH CHECK OPTION (0) | 2021.09.03 |
---|---|
타임스탬프 순서 기법, 토마스 기록규칙 (0) | 2021.09.03 |
오분류표 (confusion matrix), 정분류율, 오분류율, 재현율(민감도), 정밀도, 정확도, 특이도, F1 Score, 정보검색모델 (0) | 2021.08.29 |
데이터마이닝_연관규칙(Association)_지지도, 신뢰도, 향상도, Apriori, 빈발항목 (0) | 2021.08.29 |
정규화- BCNF 분해 (0) | 2021.08.29 |