728x90
반응형
SMALL
1) 즉시 갱신 기법 (Immediate Update)
- 개념: 트랜잭션이 실행 도중 변경 내용을 즉시 DB에 반영.
- 로그: 모든 변경(이전값/이후값)을 로그에 기록.
- 회복: Redo + Undo 모두 수행
- 장애 시점 전에 끝난(커밋된) 트랜잭션 → Redo
- 장애 시점에 미완료(미커밋) 트랜잭션 → Undo
- 장점: 커밋 지연 없음, 빠른 가시성
- 단점: Undo 필요 → 복잡도↑, 동시성/락 정책 주의

2) 지연 갱신 기법 (Deferred Update)
- 개념: 트랜잭션이 부분완료/커밋될 때까지 DB에 반영 지연. 커밋 시점에 모아서 반영.
- 로그: 변경 내역을 로그에만 누적하다가 커밋 시 반영.
- 회복: Redo만 수행 (Undo 불필요: 미커밋은 반영 자체가 안 됨)
- 장애 시점 전에 끝난(커밋된) 트랜잭션 → Redo
- 장애 시점에 미완료 트랜잭션 → 무시
- 장점: Undo 불필요 → 단순, 안전
- 단점: 커밋 전까지 결과 미가시, 커밋 지연 시 지연 시간 발생

3) 검사 시점 기법 (Check Pointing)
- 개념: 실행 중 검사 시점(Check Point) 을 주기적으로 기록. 그 시점까지의 완료분을 DB와 로그에 동기화.
- 목적: 회복 시 스캔 범위를 체크포인트 이후로 축소 → 복구 시간 단축.
- 회복:
- 최근 체크포인트를 찾음
- 이후 로그만 스캔 → 커밋된 트랜잭션 Redo, 미커밋 Undo
- 장점: 복구시간 대폭 감소
- 단점: 체크포인트 수행 시 일시적인 I/O 부하
4) 그림자 페이징 (Shadow Paging)
- 개념: 로그 없이 페이지 단위 복사본(그림자 페이지) 유지
- 변경은 현재(원본) 페이지에만 적용,
- 커밋 시 페이지 맵을 새 버전으로 스위치
- 장애 시 그림자 페이지로 복구(원자적 스위치)
- 회복: 로그 미사용, 스위칭으로 원자성 보장
- 장점: 로그 관리 불필요, 간결
- 단점: 페이지 복사/맵 관리 비용, 프래그멘테이션 문제, 대규모 업데이트 비효율
Redo / Undo 요약표
| 기법 | 커밋된 트랜잭션 | 미커밋 트랜잭션 |
| 즉시 갱신 | Redo | Undo |
| 지연 갱신 | Redo | 무시 |
| 검사 시점 | Redo(체크포인트 이후만) | Undo(체크포인트 이후만) |
| 그림자 페이징 | 페이지 맵 스위치로 반영 | 그림자 페이지로 롤백 |
728x90
반응형
LIST