문제
데이터베이스에서 트랜잭션의 지속성(Durability)을 보장하기 위한 체크포인트(Checkpoint) 기법의 동작 과정을 단계별로 설명하고, **퍼지 체크포인트(Fuzzy Checkpoint)**와 일반 체크포인트의 차이점을 서술하시오. 또한 체크포인트 이후 장애 발생 시 회복 과정에서 REDO/UNDO 대상을 결정하는 방법을 설명하시오.
정답
체크포인트는 1)활성 트랜잭션 목록을 로그에 기록, 2)모든 로그 레코드를 안정 저장소에 기록, 3)수정된 버퍼의 모든 데이터를 데이터베이스에 기록하는 과정이다. 퍼지 체크포인트는 체크포인트 실행 중에도 다른 트랜잭션의 실행을 허용하여 시스템 정지 시간을 최소화한다. 회복 시 체크포인트 이전에 커밋된 트랜잭션은 이미 반영되었으므로 처리 불요, 체크포인트 이후 커밋된 트랜잭션은 REDO, 체크포인트 이후 시작되어 커밋되지 않은 트랜잭션은 UNDO 대상이다.
체크포인트Checkpoint퍼지 체크포인트Fuzzy Checkpoint활성 트랜잭션안정 저장소REDOUNDO회복버퍼
해설
체크포인트는 주기적으로 일관된 상태를 저장하여 장애 시 회복 시간을 단축한다. 퍼지 체크포인트는 시스템 가용성을 높이는 개선된 방식이며, 장애 발생 시 체크포인트 시점을 기준으로 트랜잭션 상태에 따라 REDO/UNDO 대상을 효율적으로 결정할 수 있다.