[CMPT 454] Week11_1

June·2021년 3월 25일
0

CMPT 454

목록 보기
28/33

Day 1

맨 마지막 TT에 (T2, U, 160)이 들어갈 것이다. 만약 (150, T1, End)가 없다면 (140, T1, Commit)이 있을 것이다. 뒤뒤 transaction commits 참조.

Checkpoint: save TT and DPT to disk

Write LSN을 하는 이유는 crash 됐을 때 checkpoint 기록을 찾기 위해서이다.

Transaction Commits

Transaction Aborts

Example of Abort

  • 여기서 undonextLSN-nil은 undo all action of T1을 의미한다.
  • T1이 P5에 lock을 걸어서 다른 T들이 P5 못 건든다.
  • 45에서 CLR을 남기는 이유는 Undo를 여러번 하는 것을 방지하기 위해서다.

What can happen

Motivation

Crash Recovery: Big Picture

Analysis Phase

Example of Analysis Phase

end checkpoint로 가서 예전에 햇던 것처럼 하나씩 진행하면서 Xact Table과 Dirty Page Table을 채운다.

LSN 20까지 했을 때

LSN 30

Analysis phase 알고리증메 따르면 abort일떄 특별히 할 것은 없고 lasnLSN만 갱신해준다.

LSN 40

마찬가지로 "Other records"dlamfh lastLSN만 갱신해준다.

LSN 45

LSN 50

LSN 60

steal은 before crash write to the disk를 의미하지만, in terms of record this steal is not part of the record. This is only indicating what is actually happening. So cannot tell whether already write to disk or not. So we always assume not beting write to disk. 하지만 P5 alreay has oldest recLSN (10). 그래서 바꾸지 않는다.

steal 자체는 log record에 남지 않는듯하다? 강의 52분 부분부터.

마지막 테이블로 봤을 때, 크래쉬 당시에 active 한 것은 T2 T3였다.

analysis phase 알고리즘대로 end record가 아니면 그냥 다 TT에 갱신한다 (abort 같은 거일지라도). (아마 crash 직전이라 그런거 같다). steal이 발생해도 DPT에서 지우는 것이 아니라 그냥 오래된 것을 유지하면된다 (60이 disk에 쓰였는지 안쓰였는지 알 수 없기 때문이다). 물론 commit이 있으면 TT에서 status를 바꿔준다.

0개의 댓글