체크포인트 완료 시점에 메모리의 변경을 디스크와 맞춰서 기준점을 단순하게 만듭니다.
체크포인트를 끝내기 전에 변경된 페이지를 디스크로 밀어 넣어 버퍼와 디스크를 맞춥니다.
체크포인트가 끝났다면 그 이전 변경은 이미 디스크에 있다고 가정할 수 있습니다.
Redo는 주로 체크포인트 이후 구간을 보면 되므로 복구 해석이 쉽습니다.
복구 시 별도 상태표보다 디스크가 이미 최신이라는 사실이 핵심 근거가 됩니다.
두 방식 모두 복구 범위를 줄이려는 목적은 같지만, Sharp Checkpoint는 체크포인트 시점의 디스크 상태를 확정하고, Fuzzy Checkpoint는 DPT/ATT를 남겨 나중에 Redo 시작점을 계산합니다.
체크포인트 완료 시점에 메모리의 변경을 디스크와 맞춰서 기준점을 단순하게 만듭니다.
체크포인트를 끝내기 전에 변경된 페이지를 디스크로 밀어 넣어 버퍼와 디스크를 맞춥니다.
체크포인트가 끝났다면 그 이전 변경은 이미 디스크에 있다고 가정할 수 있습니다.
Redo는 주로 체크포인트 이후 구간을 보면 되므로 복구 해석이 쉽습니다.
복구 시 별도 상태표보다 디스크가 이미 최신이라는 사실이 핵심 근거가 됩니다.
운영을 멈추지 않고 현재 상태를 기록한 뒤, Dirty 페이지는 백그라운드에서 점진적으로 반영합니다.
어떤 페이지가 아직 더럽고, 어떤 트랜잭션이 진행 중인지 체크포인트 로그에 기록합니다.
체크포인트 시점에도 모든 Dirty 페이지가 디스크에 기록되는 것은 아니며, 플러시는 나중에 이어집니다.
디스크가 완전히 맞춰져 있지 않으므로 가장 오래된 recLSN부터 다시 적용해야 합니다.
복구는 디스크 상태만 보지 않고 체크포인트에 기록된 DPT를 함께 읽어 시작 위치를 잡습니다.
체크포인트 시점에 디스크 동기화를 강하게 요구하므로 실서비스에는 비실용적입니다.
그래서 상용 DBMS는 보통 Fuzzy Checkpoint를 쓰고, 복구 시 DPT를 참조합니다.