전공/Database
데이터베이스 : 병행 제어(Concurrency Control) #2 (로킹, 2PLP, MVCC)
앞선 글에서 직렬 스케줄과 비직렬 스케줄에 대해 알아보면서 끝마쳤습니다. 그런데 모든 스케줄에 대하여 직렬 가능성 검사를 하는 것에는 한계가 있다고 했었죠? 이 때, 직렬 가능성을 검사하지 않고도 해당 스케줄의 직렬 가능성을 보장할 수 있는 방법을 바로 병행 제어(Concurrency Control)라고 합니다. 병행 제어에는 여러 가지 방법이 존재하는데, ① Locking, ② 2PL, ③ Timestamp, ④ MVCC, ⑤ 낙관적 검증 등 다섯가지 방법이 있습니다. 로킹(Locking)과 2PL(2 Phase Locking) 로킹은 트랜잭션을 잠궈서 접근을 막는 기법입니다. 로킹에는 다음과 같은 로킹 규약이 따라옵니다. 1. 트랜잭션 T가 read(x)나 write(x) 연산을 하려면 반드시 먼저 ..
2022. 12. 12. 07:54
최근댓글