전체 글291 [Storage Device]physical storage media 물리적인 저장 매체에 대해서 살펴보자. 관점에 따라 다음과 같다. speed cost reliability : volatile / non-volatile volatile storage 1. cache in cpu 2. main memory flash memory non-volatile read fast write slow erase very slow hard disk는 overwrite가 가능한 반면 flash는 불가능. flash는 erase하고 써야하는데 비용이 비싸서 out-of place를 한다. hard disk는 read, write 비용이 비슷함. 따라서, flash memory는 이런 특징에 맞게 최적화 되어 있다. write 단위는 page, erase 단위는 block block = m.. 2020. 6. 5. [Recovery]ARIES algorithm ARIES는 log-based recovery와 유사한 점이 많은 알고리즘이다. log-based algorithm을 리뷰해보자 우선 redo phase에서는 redo 작업과 undo-list를 만드는 작업을 하는 것이다. redo는 failure전에 했던 작업들을 다시 하는 것이다. 즉, repeating history라고도 한다. undo phase에서는 최대 checkpoint 까지 가면서 undo 작업을 한다. ARIES algorithm을 요약해보면 다음과 같다. checkpoint 당시에 dirty block table만을 stable storage에 저장한다. 그리고 버퍼의 update data block이나 log block을 그대로 둔다. 백그라운드에서 이 저장 작업을 한다. 이처럼 빠르.. 2020. 6. 5. [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. 이전 1 ··· 33 34 35 36 37 38 39 ··· 73 다음