Multiple Granularity Locking1 [Concurrency Control]Multiple Granularity Locking 락을 거는 단위에 대해서 살펴보자. 아이템에 락을 걸 때 단위가 다양하다. 즉, DB가 계층적으로 구성되어 있다고 하면 락을 걸게 되었을 때 노드의 자식 노드에 대해서도 동일한 락을 건다는 뜻을 담는다. 계층적 구조에서 root에 X락을 걸었다면 모든 하위 노드에도 X락을 걸게된다. 또한 root가 아닌 하위 노드에서 X락을 걸려면 부모부터 root까지 IX락이 걸려있어야 한다. 학생 테이블에서 평균값을 구하는 상황을 생각해보자. 단위를 레코드 처럼 작게 설정하면 트랜잭션에서 락을 걸 때 concurrency가 높다. 하지만 모든 학생 레코드를 읽으려면 오버헤드가 크다. 단위를 테이블 처럼 크게 설정하면 락을 걸 때 테이블에 대해서만 락을 걸면 된다. 학생들의 평균 값을 구할 때 테이블에 락을 걸면 오버.. 2020. 6. 1. 이전 1 다음