장애 후 복구
ARIES는 같은 로그를 세 번 다른 목적으로 읽어 최종 일관성을 되찾습니다.

핵심 순서는 복구 범위 결정 → 장애 직전 상태 재현 → 미완료 변경 제거입니다. 마지막에는 커밋된 결과만 남아야 합니다.

1 Analysis

어디부터 복구할지 정한다

마지막 체크포인트 이후 로그를 읽어 Active Tx와 Dirty Page Table을 복원합니다. 이 결과로 Redo 시작점과 Undo 대상을 확정합니다.

2 Redo

장애 직전 상태를 다시 만든다

커밋 여부와 무관하게 필요한 로그를 다시 적용해 실제로 있었던 마지막 상태를 재현합니다. 그래서 ARIES를 Repeating History라고 부릅니다.

3 Undo

미완료 트랜잭션만 거꾸로 지운다

loser Tx만 PrevLSN 체인으로 역추적해 제거합니다. Redo가 잠시 되살린 미완료 변경만 걷어내므로, 최종 상태에는 커밋 결과만 남습니다.

CLR을 함께 기록해 Undo 도중 다시 장애가 나도 같은 지점부터 안전하게 이어서 복구합니다.
최종 결과

winner Tx의 커밋 결과는 유지되고, loser Tx의 미완료 변경은 제거됩니다. 즉, ARIES는 로그를 단순 재생하지 않고 정확히 되돌릴 수 있는 상태를 먼저 만든 뒤 필요한 부분만 취소합니다.

공유 기준

체크포인트는 시작 범위를 좁히고, LSN / PrevLSN / CLR은 각 단계가 어디까지 진행됐는지 이어 붙이는 기준이 됩니다.