반응형
타임스탬프(Timestamp)
데이터베이스 병행제어를 위해 데이터 항목에 타임스탬프를 부여하여 직렬가능성을 보장하는 기법
- 트랜잭션에서 읽기 또는 쓰기 작업이 정상적으로 완료되면 타임스탬프를 기록한다.
- 트랜잭션에서 읽기 또는 쓰기 작업을 수행하려고 하는 경우 타임스탬프를 확인한다.
- 트랜잭션 수행 도중에 타임스탬프가 갱신된 경우 트랜잭션 작업을 중단한다.
- 데이터에 접근하는 시간을 미리 정하여서 정해진 시간(Time Stamp)의 순서대로 데이터에 접근 하여 수행
- 직렬가능성을 보장한다.
- 교착상태가 발생하지 않는다.
- 연쇄복귀(Cascading Rollback)를 초래할 수 있음
예시
- 데이터 항목 x에 대하여
- read_TS(x): x에 대한 읽기 작업이 최종적으로 성공한 시간
- write_TS(x): x에 대한 쓰기 작업이 최종적으로 성공한 시간
- 데이터 항목 x를 읽으려 하는 경우
- read(x) 보다 write_TS(x)가 더 최신인 경우, 읽기 작업을 포함한 트랜잭션 ROLLBACK
- 데이터 항목 x에 쓰려고 하는 경우
- wrtie(x) 보다 read_TS(x)가 더 최신인 경우, 쓰기 작업을 포함한 트랜잭션 ROLLBACK
ex) T1이 11분11초에 시작되어 11분 13초에 a 데이터를 업데이트 하려고 하는데,
a 데이터의 타임스탬프가 11분 12초인 경우 a 데이터는 다른 트랜잭션에 의해 읽히거나 쓰인 상태이므로
현재 트랜잭션을 계속 실행하면 모순이 생기므로 ROLLBACK한다.
참고 자료
데이터베이스 병행제어 - IT위키 (itwiki.kr)
데이터베이스 동시성 제어 > 도리의 디지털라이프 (skby.net)
동시성 제어( Concurrency Control ) (velog.io)
반응형
'정보관리기술사 > 데이터베이스' 카테고리의 다른 글
병행 제어 기법 - 다중 버전 병행 제어(MVCC) (0) | 2022.08.23 |
---|---|
병행 제어 기법 - 낙관적 병행 제어 (0) | 2022.08.23 |
병행 제어 기법 - 2PL(2Phase Locking) (0) | 2022.08.22 |
병행 제어 기법 - Locking (1) | 2022.08.22 |
데이터 무결성 유형 - "개참속사키" (0) | 2022.08.11 |
댓글