Lock은 동시성을 제한하기에 성능이 저하된다.
- 또한, conflict는 매우 드믈고, 대부분의 트랜잭션은 짧은 생명을 가져서 lock을 요청하는 것은 OS에 도움을 요청하는 것이라 값이 비싸다.
⇒ Timestamp 방식으로 성능을 향상시켜보자
Timestamp-Based Protocols

각 트랜잭션은 unique한 타임스탬프 TS(Ti)를 갖는다.
⭐ 타임스탬프 TS : logical counter로서, Tx시작 지점에 기반한 Txid(T1 → 1, T2 → 2)와 같은 값으로 사용
newer 트랜잭션은 older 트랜잭션보다 더 큰 값을 갖는다.
📌방법은 2가지가 존재한다.
- TimeStamp-Ordering(TSO) Protocol
- Validation-based Protocol OCC
TimeStamp-Ordering(TSO) Protocols

TS순서가 Serialize(직렬) 순서가 되는 것이다.
TS(T1) ≤ TS(T2) ⇒ T1 → T2 순으로 직렬화됨

- 모든 Object Q(테이블, 페이지, 튜플 등)는 read/write를 성공적으로 마친 가장 최근에 트랜잭션의 타임스탬프 값으로 업데이트 된다.
- W-timestamp(Q) : Q를 write하면 갱신
- R-timestamp(Q) : Q를 read하면 갱신
📌 Read/Write 규칙
- 충돌하는 작업은 타임스탬프 순서에 따라 실행된다.