Checkpoint 아키텍처
- 데이터베이스 시스템에서 장애 복구와 데이터 무결성을 보장하기 위해 사용되는 기술이다.
- 데이터베이스가 특정 시점의 상태를 저장하고, 장애 발생 시 해당 시점부터 복구를 시작할 수 있도록 한다.
- 디스크에 저장된 영구 데이터와 메모리에 캐싱된 임시 데이터를 동기화하는 과정
- Write-Ahead Logging(WAL) 메커니즘과 함께 사용된다.
Checkpoint 동작 방식
- 로그 작성(WAL)
- Checkpoint 생성
- 특정 시점에 메모리의 변경 사항을 디스크에 반영
- 이 때, Checkpoint 레코드가 로그에 추가
- 로그 제거
- Checkpoint 이전에 완료된 트랜잭션 로그는 삭제하거나 재사용
- 장애 복구
- 장애 발생 시 Checkpoint부터 로그 파일을 재처리하여 변경 사항 복구
Checkpoint 종류
- Sharp Checkpoint
- 트랜잭션 중단 후 모든 변경 사항을 디스크에 기록
- Fuzzy Checkpoint
- 실행 중인 트랜잭션이 있더라도 Checkpoint 생성
- 부분 데이터만 기록
- Consistent Checkpoint
Write-Ahead Logging(WAL)
- 데이터베이스 시스템에서 데이터 무결성과 장애 복구를 보장하기 위한 로깅 메커니즘
- 트랜잭션 로그를 먼저 기록한 후 실제 데이터를 저장하는 방식이다.
- 로그를 먼저 쓰고 나중에 데이터를 저장한다.
WAL 동작 방식
- 트랜잭션 시작
- 로그 작성
- 변경 사항을 WAL 로그 파일에 기록
- 로그는 Redo Log(재실행 로그), Undo Log(복구 로그)로 구성된다.
- 데이터 저장
- Checkpoint 또는 Commit 발생 시 메모리의 데이터를 디스크에 저장한다.
- 장애 발생 시 복구
- 장애 발생 후 WAL 로그를 통해 Checkpoint 이후의 트랜잭션을 재실행하여 데이터를 복구한다.
2025.02.28 - [공부/DB] - [DB] Undo Log & Redo Log