ARIES의 핵심

먼저 실제로 벌어졌던 이력을 다시 재생하고, 그 뒤에 끝나지 않은 트랜잭션만 골라 되돌리는 순서라서 장애 직전 상태와 최종 일관성을 모두 맞출 수 있습니다.

1단계 Analysis

어디서 다시 시작할지 찾는다

마지막 체크포인트부터 읽어 Dirty Page활성 트랜잭션을 정리합니다.

결과: Redo 시작 LSN과 Undo 대상 목록이 잡힙니다.

2단계 Redo

커밋 여부를 묻지 않고 다시 적용한다

체크포인트 이후 로그를 앞방향으로 재실행해 장애 직전의 페이지 상태를 그대로 복원합니다.

핵심: Repeating History로 먼저 "직전 상태"를 되살립니다.

3단계 Undo

미커밋만 역방향으로 취소한다

활성 트랜잭션의 PrevLSN 체인을 따라 되돌려 커밋된 결과만 남깁니다.

결과: 장애 직전 이력은 보존되고, 미완료 작업만 제거됩니다.

하나의 로그를 두 방향으로 해석한다

체크포인트 → 장애
체크포인트
장애 발생
Redo → 전체 로그 구간

커밋 여부와 무관하게 재적용해서 장애 직전 상태를 다시 만듭니다.

Undo ← 미커밋 체인만

활성 트랜잭션만 골라 역방향으로 취소하므로 최종 상태가 정확해집니다.

먼저 이력을 복원해야 무엇을 지워야 하는지 정확히 구분할 수 있기 때문에, ARIES는 Redo 후 Undo 순서를 고수합니다.