로그 선행 기입
보이기
로그 선행 기입(write-ahead logging, WAL)은 데이터베이스 시스템에서 ACID의 특성 가운데 원자성과 내구성을 제공하는 기술의 한 계열이다.
WAL을 사용하는 시스템에서 모든 수정은 적용 이전에 로그에 기록된다. 일반적으로 redo 및 undo 정보는 둘 다 로그에 저장된다.
한 예로 어느 프로그램이 특정 작업을 수행하는 동안 컴퓨터에 정전이 일어났다고 하자. 다시 시작할 때 프로그램은 어느 작업이 수행을 성공적으로 마쳤는지, 절반 성공했는지, 아니면 실패했는지를 잘 알고 있어야 한다. 로그 선행 기입이 사용된다면 프로그램은 이러한 로그를 검사하여 예기치 않은 정전 시 해야할 일과 실제로 했던 일을 비교하게 된다.
WAL은 데이터베이스 업데이트가 인 플레이스 알고리즘을 사용할 수 있게 한다. 원자적 업데이트를 구현하는 또다른 방법은 인 플레이스 알고리즘이 아닌 그림자 페이징 기법을 사용하는 것이다. 인 플레이스로 업데이트할 때의 주된 이점은 색인과 블록 목록의 수정 필요성을 줄인다는 점이다.
ARIES는 WAL 계열 중 잘 알려진 알고리즘이다.
사용 제품
[편집]- PostgreSQL 데이터베이스 시스템은 WAL을 사용하여 포인트 인 타임 복구와 데이터베이스 복제 기능을 제공한다.[1]
- SQLite 데이터베이스도 WAL을 지원한다.[2]
- 몽고DB는 로그 선행 기입을 사용하여 일관성과 충돌 안전을 제공한다.
- 아파치 HBase는 WAL을 사용하여 재난 후 복구를 제공한다.
각주
[편집]- ↑ “Reliability and the Write-Ahead Log”. www.postgresql.org. 2011년 4월 15일에 확인함.
- ↑ [1]
이 글은 컴퓨터 과학에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |