[데이터베이스] 11. Database recovery techniques (Ch. 22)
Reference - Fundamentals of Database Systems 7th edition
Recovery techniques
system log를 통해 모든 transaction과 commit point를 기록하고, failure가 나면 그 위치로 가서 recovery 시도.
지연 갱신(Deferred update) - 캐시가 남아있기 때문에 Undo가 아닌 redo를 하게 됨.
즉시 갱신 - failure가 나면 Undo를 해서 처음부터.
Recovery는 undo와 redo의 조합. 이 조합은 idempotent(10번 수행한것과 1번 수행한 것을 동치되게) 해야한다.
buffer에 있는걸 disk에 flush. cache 복원을 어떻게 할 것인가가 중요하다.
Pin-unpin bit = 캐시를 사용중인지 사용중이지 않은지 확인
updating strategy
In-place updating : buffer를 같은 disk 위치에 쓰는 것
shadowing : 다른 disk 위치에 write 하는 것. multiversion 필요. 따라서 disk 낭비 심함 - before image와 after image로 관리
recovery strategy - 캐시에 남아있는 데이터를 어떻게 처리할것이냐
- write-ahead logging
- UNDO type log entries
- REDO type log entreis
steal은 transaction 미완료 시에도 기록을 하는것, no-steal은 기록을 안하는 것
force는 transaction 완료 후 바로 기록 하는것, no-force는 바로하지 않는것.
일반적으로 DBMS는 no-force/steal을 사용한다.