본문 바로가기

컴퓨터공학62

[Concurrency Control]Graph-based protocol 2PL의 대안인 graph-based protocol을 알아보자. 모든 데이터 아이템에 대한 set D이 있다고 하면 접근하는 순서가 partial ordering 을 만족시키면 acyclic한 그래프가 된다. 트리의 인덱스의 경우에는 이런 특정한 상황이 만족된다. 즉, tree-based protocol이 한 예이다. tree-based protocol X락만 허용 Ti의 첫 번째 락은 어떤 아이템에 대한 것이든 상관없다. Ti가 데이터 Q에 락을 걸려면 Q의 부모에 락을 갖고 있어야 한다. 데이터는 언제든 언락 될수 있다. 같은 아이템에 대해서는 락을 걸고 풀었으면 락을 얻지 못한다. 참고적으로 이해하면 되겠다. graph-based protocol은 conflict serializability을 보.. 2020. 5. 31.
[ Concurrency Control] Automatic Acquisition of locks 데이터 베이스 내부에서 lock-S을 알아서 얻는 역할을 해준다. 위와 같은 로직으로 read할 때 충돌연산을 피해 락을 가져오게 된다. write를 할 때는 다음과 같이 락을 얻는다. 위와 같은 역할은 lock manager로 구현되어 있다. 락 메니저의 역할은 다음과 같다 요청에 대한 응답 메세지를 주거나 데드락을 유발할 경우 롤백을 하게 한다. 락을 위해 트랜잭션을 기다리게 해준다. 락에 대한 요청들을 락 테이블에 관리한다. 해시 테이블 형태로 구현되어 있다. 락테이블은 다음과 같이 해쉬 테이블로 관리된다. request of lock, request of unlock에 따라 테이블의 데이터별 큐를 관리를 하게 된다. 만약 트랜잭션에 abort가 발생하게 되면 어떻게 모든 트랜잭션을 테이블에서 지울.. 2020. 5. 31.
[Concurrency Control] 2PL ensure conflict serializability? Proof 2PL 이 serializabizable schedule을 보장하지 못한다고 가정해보자. precedence graph를 그려서 cycle이 생겨야한다. T0->T1-> ... -> Tn->T0 이라고 하자. ai는 Ti의 lock point라고 하자.(phase 1에서 2로 넘어가는 부분) 2PL은 lock을 얻는 단계와 lock을 푸는 단계로 나뉜다. lock lock lock unlock unlock 와 같은 방식이다. Ti Tj R(Q) unlock W(Q) ... unlock 와 같이 있으면 충돌연산이기 떄문에 Ti의 Q를 락 푸는 시점이 Tj의 Q를 락 푸는 시점보다 빠르다. 일반화 시키면 Ti->Tj이면 ai->aj인데 cycle이 있다고 했기 때문에 T0->T0 순서이기 때문에 .. 2020. 5. 31.
[Concurrency Control] Overview subtopic -lock-based protocols -multiple granularity locking -deadlock -insert and delete opertaions -transaction isolation in sql 2020. 5. 31.