Durability


title: 2025-11-04 author: 강병호 date: 2025-11-04 category: TIL/강병호/2025/11 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —

ACID 원칙 중, Durability를 DBMS는 어떻게 보장하나요?

  • Atomicity(원자성) : 트랜잭션을 모두 실행하거나 실행하지 않은 두 상태
  • Consistency (일관성) :
  • Durability (지속성) : 데이터베이스에서 지속성과 일관성을 보장하기 위한 성질로 트랜잭션이 성공적으로 완료되면 변경내용이 영구적으로 저장되어야 한다. 예를 들어, 시스템 장애 같은 예상하지 못한 상황이 발생해도 데이터베이스는 영구적으로 변경된 그 상태를 유지해야한다.

이러한 개념에서 지속성을 보장하기 위해서 DBMS는 Write-Ahead Logging 정책을 적용합니다.

이는 실제 데이터를 변경하기 전에 변경 정 사항을 로그에 먼저 기록하는 것이다.

  1. DML 요청 (UPDATE , DELETE , INSERT )
  2. DBMS는 실제 데이터를 수정하기 전에 REDO 로그에 변경 내용을 먼저 기록한다.
  3. 로그가 디스크에 저장된 후 실제 테이블에 반영
  4. 트랜잭션이 COMMIT 되면 REDO 로그에 Commit 레코드를 추가하고 이 시점에서 트랜잭션의 영구성이 보장된다.

이 과정에서 시스템의 장애로 인한 메모리 데이터 버퍼가 손실되어도 DBMS의 디스크, WAL로인해 남아 있는 REDO 로그를 순차적으로 다시 적용해 커밋된 변경 사항을 복원할 수 있다.

반대로 커밋되지 않은 변경 사항은 UNDO 로그를 통해 복구 이전 상태로 되돌린다.

이러한 로그가 왜 효과가 있는지??

이것은 데이터가 어디에 저장되는지를 확인해야한다.

  • 실제 데이터 : 메모리에 머물러 있다가 사용된다. 메모리에 있기에 휘발성
  • 로그 파일 : 디스크에 기록되기에 복구용 정보로 사용될 수 있다.

결국 로그를 먼저 기록 → 디스크에 있기에 시스템 장애가 있어도 메모리 상에서 변경 내용이 없어져도 다시 읽어서 재적용하는 REDO 과정을 적용하여 DBMS에서의 Durabilityfmf qhwkd.

results matching ""

    No results matching ""