데이터베이스

Cache Recovery(회복)

  • Recovery는 다음의 트랜잭션 특징과 관계가 있다.
    ▶️ Atomicity
    트랜잭션의 Operation들이 실행 중에 장애 발생하면 실행된 operation들은 roll back 필요
    ▶️ Durability
    장애 후에도 commit된 트랜잭션의 데이터는 영원히 저장

Logging & Recovery

  • recovery algorithm은 장애 후 데이터베이스의 atomicity와 durability를 제공하는 기술
  • Log : 데이터베이스의 변경 내용을 저장하고 있는 파일

Aries Recovery Algorithm

  • Aries=Algorithms for recovery and Isolation Exploiting Semantics
    ▶️ Write-Ahead Log(WAL)
    디스크에 변경된 내용을 적기 전에 반드시 로그가 안전한 storage에 저장되야 한다.
    변경된 내용을 디스크에 log record를 먼저 기록해야 한다. - Atomicity 보장
    Commit전에 모든 log recorde들이 저장되어야 한다. - Durability 보장
    ▶️ UNDO log
    Crash 후에 commit되지 않은 사항들을 UNDO(원복)할 때 사용
    ▶️ REDO log
    Crash 후에 commit된 변경 사항들을 REDO(replay)할 때 사용

UNDO logging

  • 모든 액션은 undo log record 생성(old값을 포함)
  • Disk 업데이트 하기 전에 log record를 disk에 적는다(WAL)
  • commit로그가 flush되기 전 트랜잭션의 모든 체인지는 Disk에 반영

REDO logging

  • 모든 액션은 redo log record 생성(new 값을 포함)
  • Disk업데이트 하기전에 redo record를 Disk에 적는다(WAL)
  • 모든 log record를 commit할 때 flush 한다.
  • 체인지가 disk에 반영된 후에 END log record를 write

Checkpoint(스냅샷)

  • DBMS는 주기적으로 체크포인트를 생성하여 충돌 시 복구에 걸리는 시간을 최소화(여기까지는 REDO가 다 됐다) ▶️ Checkpoint log 작성
  • Fuzzy checkpoint
    ▶️ checkpoint 하는 긴 시간동안 다른 operation을 block 하는 걸 막기 위해 checkpoint하는 동안 update는 허용하는 checkpoint 기술


https://bit.ly/3FVdhDa
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

profile
Devops, AWS에 관심있어요.

0개의 댓글