즉, “무엇을 바꿨는가”만 적는 게 아니라 Redo와 Undo가 바로 판단할 수 있는 맥락까지 한 줄에 모읍니다.
Redo는 로그를 앞에서 뒤로 읽습니다. 페이지의 pageLSN과 비교하면 이미 반영된 변경은 건너뛸 수 있습니다.
같은 트랜잭션의 로그를 연결 리스트처럼 이어서, Undo가 마지막 변경부터 거꾸로 따라갈 수 있게 만듭니다.
UPDATE B.bal처럼 무엇을 바꿨는지 기록해야 Redo가 다시 적용할 위치와 Undo가 되돌릴 위치가 분명해집니다.
Before는 롤백용, After는 재적용용입니다. 한 레코드만 봐도 Undo와 Redo가 참조할 값이 갈립니다.