핵심 구조

읽기는 최신값을 쫓지 않고, 자기 snapshot이 허용하는 버전에서 멈춥니다.

하나의 행이 여러 버전을 남기면 쓰기 중에도 읽기는 대기하지 않습니다. 대신 각 읽기는 같은 체인을 따라가다가 자기 시작 시점에 맞는 버전을 결과로 선택합니다.

과거 버전 최신 커밋 버전
v1
100
이전 상태
v2
200
중간 버전
v3
300
현재 값
읽기 A 먼저 시작
v2에서 멈춤
200
읽기 B 나중에 시작
v3까지 보임
300
해석: 읽기 A는 v3가 생기기 전에 시작했으므로 200에서 멈추고, 읽기 B는 더 늦게 시작해 300까지 봅니다. 같은 행이라도 snapshot이 다르면 읽기 결과가 달라집니다.