문제
데이터베이스 트랜잭션의 ACID 특성 중 **지속성(Durability)**을 보장하기 위한 로그 기반 회복 기법에서 WAL(Write-Ahead Logging) 프로토콜의 2가지 규칙을 설명하고, 교착상태(Deadlock) 해결을 위한 탐지 및 회복 방법에서 대기 그래프(Wait-for Graph)의 사용 원리를 서술하시오.
정답
WAL 프로토콜의 첫 번째 규칙은 데이터 페이지가 디스크에 쓰이기 전에 해당 로그 레코드가 먼저 디스크에 기록되어야 한다는 것이고, 두 번째 규칙은 트랜잭션이 커밋되기 전에 모든 로그 레코드가 디스크에 강제로 기록되어야 한다는 것이다. 대기 그래프는 트랜잭션을 노드로, 대기 관계를 간선으로 표현한 방향 그래프로, 그래프에 사이클이 존재하면 교착상태가 발생한 것으로 탐지하고, 사이클에 포함된 트랜잭션 중 하나를 희생자로 선택하여 철회시킨다.
해설
WAL 프로토콜은 시스템 장애 시 회복을 위해 모든 변경사항이 로그에 먼저 기록되도록 보장한다. 첫 번째 규칙(UNDO 로그 규칙)은 변경된 데이터 페이지가 디스크에 쓰이기 전에 해당 로그가 먼저 기록되어야 함을 의미하고, 두 번째 규칙(REDO 로그 규칙)은 트랜잭션 커밋 전에 모든 로그가 안전하게 저장되어야 함을 의미한다. 교착상태 탐지에서 대기 그래프는 Ti → Tj 간선으로 Ti가 Tj를 기다리는 상황을 표현하며, 그래프에서 사이클을 발견하면 교착상태로 판단하여 최소 비용의 트랜잭션을 선택해 철회한다.