문제
데이터베이스에서 동시성 제어를 위한 타임스탬프 순서 프로토콜(Timestamp Ordering Protocol)의 기본 원리를 설명하고, 늦은 읽기(Late Read)와 늦은 쓰기(Late Write) 상황에서의 처리 방법을 각각 서술하시오.
정답
타임스탬프 순서 프로토콜은 각 트랜잭션에 고유한 타임스탬프를 부여하고, 이 순서대로 실행된 것과 같은 결과가 나오도록 읽기·쓰기 연산을 제어하는 방법이다. 늦은 읽기는 트랜잭션의 타임스탬프가 해당 데이터의 W-timestamp보다 작을 때 발생하며, 해당 트랜잭션을 철회한다. 늦은 쓰기는 트랜잭션의 타임스탬프가 해당 데이터의 R-timestamp 또는 W-timestamp보다 작을 때 발생하며, 해당 트랜잭션을 철회한다.
타임스탬프늦은 읽기늦은 쓰기철회순서
해설
타임스탬프 순서 프로토콜은 각 트랜잭션 Ti에 TS(Ti)를 부여하고, 각 데이터 항목 X에 대해 R-timestamp(X), W-timestamp(X)를 유지한다. 읽기 시 TS(Ti) < W-timestamp(X)이면 늦은 읽기이므로 트랜잭션을 철회한다. 쓰기 시 TS(Ti) < R-timestamp(X) 또는 TS(Ti) < W-timestamp(X)이면 늦은 쓰기이므로 트랜잭션을 철회한다.