본문 바로가기

Recovery4

[Recovery] Failure of Nonvolatile Storage disk는 stable storage인 log db와 non-stable storage 인 db 로 구분된다. memory = buffer disk = log용(stable) db용(non-stable) db 백업용(stable) stable storage를 추가적으로 두고 db disk 복사본을 저장해둔다. 덤프를 위해 트랜잭션을 중지하고 버퍼를 로그용 디스크와 db용 디스크에 업데이트 한다. db용 디스크의 카피를 추가한 stable storage에 저장한다. 이 때 stable storage에 표시를 남겨둔다. 이 작업을 dump라고 한다. dump한 것을 가지고 복구하게 되면 failure에 대해서도 consistency를 유지할 수 있게 된다. 2020. 6. 4.
[Recovery] Fuzzy checkpointing checkpoint를 만들 때 실행 중인 모든 트랜잭션을 중지하고 디스크에 버퍼의 값을 저장하게 된다. 트랜잭션을 중지하지 않고 checkpoint를 만드는 방법이 Fuzzy checkpointing이다. fuzzy checkpointing 1. 잠깐 모든 트랜잭션을 중지한다. 2. 을 log db 에 저장한다. 3. 업데이트된 버퍼 블락에 대해서 리스트 M을 만든다. dirty block에 대해 리스트를 만든 것이다. 4. 1에서 중지된 트랜잭션을 다시 시작한다. 5. M에 대해서 디비 스토리지에 저장을 한다. 이 때, 버퍼의 블락이 업데이트 되면 안되도록 latch같은 것을 쓴다. WAL 규칙을 만족해야 한다. 6. checkpoint를 가리키는 last_checkpoint 를 방금 수행한 로그 레코.. 2020. 6. 4.
[Recovery] Log 트랜잭션에 대한 정보를 로그로 남겨 두어야 failure에 대한 대비로 기록해둘 수 있다. 이 정보를 통해 복구할 수 있는 것이다. recovery approach 1. log-based recovery: write 연산을 수행하기 전에 로그를 stable storage에 남기는 방법이다. 2. shadow-paging: 데이터를 업데이트 하면 old page의 copy를 갖고 있는 것이다. 초기 db 에서 사용하였다. shadowing concurrent transaction 상황에서 쓰기 어렵다. seeking작업을 줄이기 위해서 이웃시키는게 좋은데 이 방법에서는 어렵다. 텍스트 에디터에서 사용한다. db 데이터를 업데이트하면 page를 추가하여 새로운 페이지에 업데이트하는 값을 쓰는 방식이다. be.. 2020. 6. 4.
[Recovery] Overview subtopic Failure and Recovery Logs : Failure에 대비하여 update에 대한 정보 남기는 것 Buffer Management Log-based Recovery ARIES Algorithm Remote Backup Systems Failure type Transaction failure: 내부적인 오류나 데드락이 발생할 경우 System failure(Crash): 컴퓨터가 꺼지거나 SW가 꺼지는 경우. 물리적인 페이지로 구성되는 시스템 버퍼에서 실제 DB를 업데이트 해주지 못한 상태로 손실이 되는 경우 Disk failure: disk 자체에 문제가 생기는 경우. consistency를 유지하고 atomicity와 Durability을 보장하기 위해서 Recoveory는.. 2020. 6. 3.