장애 분류
DBMS은 세 가지 장애에 대하여 복구 기능을 제공해야 한다.
- Transaction Failure
- Logical Errors : 내부 오류로 인해서 트랜잭션이 실패
- System Errors : 실행 중인 트랜잭션을 에러(deadlock)으로 인해 종료
- System Failure
- 휘발성 저장장치의 정보 소실
- 하드웨어/소프트웨어 or 정전으로 발생
- Fail-stop 가정 : 비 휘발성 저장장치는 시스템 다운에 의해 소멸되지 않는다는 가정
- Disk Failure
- 하드웨어/소프트웨어 결함으로 디스크 내용 소실
- 디스크 드라이버는 감지를 위해 checksums을 이용
복구 알고리즘
- 정상상태에서 시스템 복구를 대비하기 위하여 수행하는 연산
- 장애가 발생하였을 때 복구하기 위하여 수행하는 연산
저장장치 분류
- Volatile Storage (휘발성)
- Nonvolatiel Storage (비휘발성)
- Stable Storage
- 어떠한 장애가 발생하여도 저장 내용이 상실되지 않는 가상 저장매체
- 현실적으론 중복 분산 복사 및 유지로 구현
안전 저장 매체 구현
- 디스크 오류가 발생하지 않는 저장 장치
- 동일 블록을 중복적으로 저장/관리하는 방식 사용
- 중복 장소에 동일 블록 쓰기 연산이 성공적으로 종료 : 쓰기 연산 완료
- 현실적으로 → RAID 저장 시스템
- Redundant Arrays of Independent Disks
다수의 디스크 → 단일 디스크
처럼 보이도록 하는 디스크 구성 기술
- I : Inexpensiv(저렴한) → Independent(독립적인)
Disk I/O should be Atomic
- 복구 관점에서 Disk I/O 는 원자성을 가져야 한다.
- Disk I/O : 페이지 단위로 이루어진다.