✅ Block 과 Redo 로그의 속도 차이
- Block은 Random Access 방식으로 쓰기(Write)를 진행하므로 상대적으로 느리다.
- Redo 로그는 Append 방식(뒤로 바로 덧붙이는 방식)으로 쓰기(Write)를 진행하므로 상대적으로 빠르다.
✅ 블록 클린아웃이란?
- 트랜잭션에 의해 설정된 로우 Lock을 해제하고 블록 헤더(캐시 체인)에 커밋 정보를 기록하는 오퍼레이션이다.
- 블록에 설정된 로우 레벨 락을 해제(Cleanout)한 후 ITL 정보(SCN, Flag, Lock Byte 등)가 갱신된다.
✅ 블록을 읽는 과정에서 Active 상태의 블록을 만났을 때
- Active 상태의 블록을 만난 경우 해당 블록은 다른 트랜잭션이 발생시킨 변경사항에 대한 커밋 정보가 ITL에 기록되지 않은 상태이다.
- Delayed Block Cleanout 과정
① 블록 클린아웃을 먼저 시도한다.
② ITL 슬롯에 기록된 트랜잭션 ID를 확인 한다.
③ 확인한 ID를 이용해 Undo 세그먼트 헤더에 있는 트랜잭션 테이블 슬롯을 탐색한다.
④ 트랜잭션의 현재 상태가 커밋이라면 ITL 슬롯에 반영한다.
⑤ 로우 Lock 정보를 해제한다.