공부/DB

[DB] Checkpoint 아키텍처

min1119 2025. 2. 28. 13:32
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

'공부 > DB' 카테고리의 다른 글

[DB] Undo Log & Redo Log  (0) 2025.02.28
[DB] VARCHAR와 TEXT  (0) 2023.11.22
[DB] Index  (2) 2023.11.14
[DB] Charset, Collation, utf8mb4  (0) 2023.11.09
[DB] CHAR과 VARCHAR  (0) 2023.11.07