[DB] 2PL

이름이름·2022년 12월 11일
0

DB

목록 보기
6/7

공용 로킹 규약 (shared locking protocol)

공용 lock 허용 시 따라야 하는 규약

① 트랜잭션 T가 데이타 아이템 x에 대해 read(x) 연산을 실행하려면 먼저 lock-S(x)나lock-X(x) 연산을 실행해야 함

② 트랜잭션 T가 데이타 아이템 x에 대해 write(x) 연산을 실행하려면 먼저 lock-X(x) 연산을 실행해야 함

③ 트랜잭션 T가 lock-S(x)나 lock-X(x) 연산을 하려 할 때 x가 이미 다른 트랜잭션에 의해 양립될 수 없는 타입으로 lock이 걸려 있다면 그것이 모두 풀릴 때까지 기다려야 함

④ 트랜잭션 T가 모든 실행을 종료하기 전에는 T가 실행한 모든 lock(x)에 대해 반드시 unlock(x)를 실행해야 함

⑤ 트랜잭션 T는 자기가 lock을 걸지 않은 데이타 아이템에 대해 unlock을 실행할 수 없음

2PL (2단계 locking 규약)

  1. 확장단계 : 트랜잭션은 lock만 수행하고 unlock은 수행할 수 없는 단계
  2. 축소단계 : 트랜잭션은 unlock만 수행하고 lock은 수행할 수 없는 단계

트랜잭션은 확장단계로 시작하여 축소단계로 끝남
즉, 모든 lock 연산들이 unlock 연산보다 먼저 실행되어야 함을 의미한다
(2PL이면 Serializable하다 / 역은 성립X)


트랜잭션끼리 로킹규약을 지키고 있지만 (한 친구가 lock하고 사용중이면 건드리지 않고있는)
트랜잭션 T1만 봤을때 lock 이전에 unlock이 먼저 있다 -> 2PL을 지키지 못함


트랜잭션끼리 로킹규약을 지키고 있고( 한 친구가 lock하고 사용중이면 건드리지 않음)
각 트랜잭션도 모든 lock( lock(x)든 lock(y)든지) 이 unlock보다 이전에 명령됨

아래는 로킹규약과 관련X

CAP 이론

아래과 같은 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템이 존재하지 않는다는 것을 증명한 이론

일관성(Consistency) : 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다.
가용성(Availability) : 모든 요청이 성공 또는 실패 결과를 반환할 수 있다.
분할 내성(Partition tolerance) : 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다.

빅테이터의 속성

3V : volume(데이터 크기), variety(다양성), velocity(처리 속도)
4V : 3V + veracity(정확성)
5V : 4V + value(가치)

profile
공부 정리

0개의 댓글