데이터베이스

회복과 동시성 제어_즉시갱신, 지연 갱신 회복 기법, 그림자 페이징 shadow

스윙스윙 2021. 8. 25. 09:24

▣ 회복과 동시성 제어_즉시갱신, 지연 갱신 회복 기법

 

구분 즉시 갱신 회복 기법
(Immediate update)
지연 갱신 회복 기법
(Deferred update)
회복방법 트랜잭션 수행 과정의 변경 결과를 데이터베이스에 즉시 반영하고 로그파일에도 기록하는 방법 데이터베이스 변경을 Log에 기록 했다가 한꺼번에 실행하고, 트랜잭션의 부분완료 상태 전까지 모든 output 연산을 지연시키는 회복 기법
알고리즘 Undo -> Redo 필요
(Undo / No-Redo 알고리즘)
Redo 연산만 필요
(No-Undo / Redo 알고리즘)
로그내용 Log Record : <트랙잭션ID, 데이터아이템, 변경전 값, 변경된 값> Log Record : <트랜잭션ID, 데이터아이템, 변경된 값>
특징 구현이 복잡함
로그에 변경 전 값도 관리함
구현이 단순함
로그에 변경된 값만 관리함

 

▣ 그림자 페이징(Shadow Paging)

  - Log를 이용하지 않고 데이터베이스 페이지 테이블 전체를 교체하는 기법

  - 현재 page테이블(주기억장치), 그림자 페이지 테이블(디스크)을 이용하여 트랜잭션 시작 시점에 현재 페이지 테이블의 내용과 동일한 그림자 페이지 테이블을 생성

  - 장점 : 연산이 간단, Undo 간단, Redo 불필요, 수행속도 빠르고 간편

  - 단점 : 물리적인 주소 변경으로 단편화 문제 내포

            페이지테이블이 크면 오버헤드가 커질 수 있다.

            여러 트랜잭션이 병행 환경에 단독 적용 어려움

            (Table 단위 lock -> 동시성 제약)

  - DW 시스템


2014년 52번

정답 : 2번

지연 갱신 회복 기법은 변경사항을 로그에만 기록했다가 한꺼번에 데이터베이스에 반영하는 방식임

No Undo / Redo 알고리즘임

구분 즉시 갱신 회복 기법
(Immediate update)
지연 갱신 회복 기법
(Deferred update)
회복방법 트랜잭션 수행 과정의 변경 결과를 데이터베이스에 즉시 반영하고 로그파일에도 기록하는 방법 데이터베이스 변경을 Log에 기록 했다가 한꺼번에 실행하고, 트랜잭션의 부분완료 상태 전까지 모든 output 연산을 지연시키는 회복 기법
알고리즘 Undo -> Redo 필요
(Undo / No-Redo 알고리즘)
Redo 연산만 필요
(No-Undo / Redo 알고리즘)
로그내용 Log Record : <트랙잭션ID, 데이터아이템, 변경전 값, 변경된 값> Log Record : <트랜잭션ID, 데이터아이템, 변경된 값>
특징 구현이 복잡함
로그에 변경 전 값도 관리함
구현이 단순함
로그에 변경된 값만 관리함

 


2012년 58번

정답 : 3번

 


2019년 74번

정답 : 2번

즉시 갱신 기법에서 회복 절차는 먼저 모든 UNDO연산을

로그에 기록된 순서의 역순으로 수행한 뒤에, 이어서 Redo연산을

로그에 기록된 순서대로 수행

 

트랜잭션 T1은 성공적으로 완료되었으므로 Redo연산을, T2는 실패했으므로 Undo 연산을 수행

먼저 트랜잭션 T2의 로그번호 6을 Undo하여 B를 10000으로 바꾸고, 그 다음에 트랜잭션 T1의 로그번호 2와 3을 차례대로 Redo하여 B를 10000으로, M을 2000으로 바꿈