문제
트랜잭션 ACID 특성 중 원자성과 지속성을 보장하기 위한 Undo/Redo 로깅 기법의 동작 원리를 설명하고, **다중 버전 동시성 제어(MVCC)**에서 트랜잭션 격리성을 유지하면서 읽기 연산의 성능을 향상시키는 메커니즘을 서술하시오.
정답
Undo/Redo 로깅은 원자성을 위해 변경 전 값(Undo)과 후 값(Redo)을 모두 기록하여 롤백과 재실행을 모두 지원하고, 지속성을 위해 커밋 전 로그를 안정 저장소에 기록한다. MVCC는 각 데이터에 타임스탬프를 부여하여 다중 버전을 유지하고, 읽기 연산은 자신의 시작 시점에 맞는 스냅샷을 사용하여 락 없이 일관된 읽기를 제공함으로써 동시성을 극대화한다.
UndoRedo원자성지속성롤백재실행안정 저장소MVCC다중 버전타임스탬프스냅샷락 없는 읽기동시성
해설
Undo/Redo 로깅은 트랜잭션의 모든 변경사항에 대해 이전 값과 새로운 값을 함께 기록하는 방식으로, 장애 발생 시 Undo 정보로 롤백하고 Redo 정보로 재실행할 수 있어 원자성과 지속성을 보장한다. MVCC는 읽기 연산이 락을 획득하지 않고도 일관된 데이터를 읽을 수 있게 하여 읽기-쓰기 간의 충돌을 제거하고 전체 시스템의 동시성을 크게 향상시킨다.