[정의] 시스템에서 생성하는 고유 번호인 시간 스탬프를 트랜잭션에 부여하는 것으로 트랜잭션간의 순서를 미리 선택하는 방법

 

[종류] 시스템 시계, 논리적 계수기


[구성]
1) read_TS(X): 항목 X 의 읽기 타임스탬프(read timestamp)로서 항목 X 를 성공적으로 읽은 트랜잭션들의 타임스탬프 중 가장 큰 값. 즉, read_TS(X) = TS(T)이고 여기서 T 는 X 를 성공적으로 읽은 가장 최근의(youngest) 트랜잭션.
2) write_TS(X): 항목 X 의 쓰기 타임스탬프(write timestamp)로서 항목 X 를 성공적으로 기록한 트랜잭션들의 타임스탬프 중 가장 큰 값. 즉, write_TS(X) = TS(T)이고 여기서 T 는 X 를 성공적으로 기록한 가장 최근의 트랜잭션.

 

 

 

 

 

 

 


[기본적 타임스탬프 순서(Basic Timestamp Ordering)]
- 트랜잭션 T 가 write_item(X) 연산을 수행하려고 할경우:
1) read_TS(X) > TS(T) 또는 write_TS(X) > TS(T)이면 T 를 철회하고 복귀시키고 그 연산을 거부(reject)한다. => 해당 트랜잭션 순서가 이미 지남
2) a 의 조건이 발생하지 않으면 T 는 write_item(X) 연산을 수행하고 write_TS(X)를 TS(T)로 설정한다.
- 트랜잭션 T 가 read_item(X) 연산을 수행하려고 할 경우:
1) write_TS(X) > TS(T)이면 T 를 철회하고 복귀시키고 그 연산을 거부한다. => 해당 트랜잭션 순서가 이미 지나서 다른 값이 있을수도 있음.
2) write_TS(X) ≤ TS(T)이면 T 의 read_item(X) 연산을 수행하고 read_TS(X)를 TS(T)와 현재의 read_TS(X) 중 큰 값으로 설정한다. => read_TS(X)는 가장 큰값.
※ Cascade rollback이 발생할 수 있음. ==> Strict timestamp(해당 순번TS(T)까지 Read_TS, Write_TS가 올때까지 대기하는 방식)

 

 

 

 

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

데이터 모델링  (0) 2021.03.06
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)  (0) 2021.03.06
MVCC (MultiVersion concurrency control)  (0) 2021.03.06
낙관적 검증(Validation)  (0) 2021.03.06
무결성  (0) 2018.03.03

+ Recent posts