CS/Database

[데이터베이스] 11. Database recovery techniques (Ch. 22)

공영재 2023. 12. 10. 00:44

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을 사용한다.