관리 메뉴

DevBlackCat

정보처리기사 필수 학습: 병행제어와회복 완전정복!! 본문

정보처리기사/데이터베이스 구축

정보처리기사 필수 학습: 병행제어와회복 완전정복!!

DevBlackCat 2024. 12. 13. 15:42
728x90

병행제어

  • 여러 트랜잭션이 동시에 실행되도 일관성을 유지하는 기법

1) 목적

  • 데이터베이스 공유 최대화
  • 활용도 최대화,일관성

2) 병행제어 미수행시 문제점

① 갱신 분실(Lost Update)

  • 여러 트랜잭션이 같은 데이터를 공유하여 갱신할떄 일부 갱신결고가 손실되는 현상

② 비완료 의존성(Uncommitted Dependency)

  • 완료되지않은 결과를 가져가 사용해 쓰는 현상

③ 모순성(Inconsistency)

  • 갱신분실 + 여러데이터

④ 연쇄복귀 (Cascading Rollback)

  • 하나의 트랜잭션이 롤백되면 다른 트랜잭션도 함께 롤백 되는 현상

 

3) 병행제어 기법

1. 로킹(Locking)

  • 정의: 트랜잭션이 데이터에 접근하려면 반드시 락(Lock)을 수행해야 함.
  • 특징:
    • 로킹된 데이터는 다른 트랜잭션이 접근할 수 없음.
    • 로킹 단위: 필드, 레코드, 파일, 데이터베이스 전체 등 다양한 단위를 지정할 수 있음.

로킹 단위에 따른 구분★

구분  로크수  병행성 오버헤드
로킹 단위가 크면 적어짐 낮아짐 감소
로킹 단위가 작으면 많아짐 높아짐 증가

1) 로킹 단위가 크면 (예: 건물 전체를 잠금)

  • 예시: 건물 전체 화장실을 잠그는 경우
    • 로크 수가 적음: 건물의 화장실 전체를 하나의 단위로 잠가버리기 때문에 잠금 횟수가 적음.
    • 병행성 낮음: 한 사람이 사용하면 다른 모든 사람들이 대기해야 함.
    • 오버헤드 감소: 잠금 관리가 간단함. 하나의 문만 잠그면 되기 때문.

 2) 로킹 단위가 작으면 (예: 화장실 칸별로 잠금)

  • 예시: 화장실 내부에 있는 개별 칸(레코드)을 잠그는 경우
    • 로크 수가 많음: 각 칸마다 잠금이 필요하므로 잠금 횟수가 많아짐.
    • 병행성 높음: 한 칸이 사용 중이어도 다른 칸은 사용 가능하여 병행성이 높아짐.
    • 오버헤드 증가: 각 칸에 대한 잠금 상태를 관리해야 하므로 관리 비용이 증가.

로킹 단위가 크면 (모두 낮거나 작음)

로킹 단위가 작으면(모두 크거나 많음)


2. 2단계 로킹 규약(Two-Phase Locking Protocol)

  • 트랜잭션의 락을 관리하는 확장 단계와 축소 단계로 나뉘는 방법
  • 확장 단계: 새로운 Lock은 가능하나 Unlock은 불가능합니다.
  • 축소 단계: Unlock은 가능하나 새로운 Lock은 불가능합니다.
  • 교착상태가 발생할수있다.

확장 - lock만가능 축소- unlock만가능


3. 타임 스탬프(Time Stamp)

  • 정의: 데이터에 접근하는 순서를 미리 정의하고 시간 순서대로 접근하는 방법.
  • 특징:
    • 직렬 가능성 보장.
    • 교착 상태(Deadlock) 방지.
    • 연쇄 복귀(Cascading Rollback)를 예방할 수 있음.

4. 낙관적 병행제어(Optimistic Concurrency Control)

  • 정의: 트랜잭션 수행 도중에는 검사를 하지 않고, 종료 시 직렬 가능성을 검증하여 반영하는 방식.
  • 특징:
    • 트랜잭션 도중 검사가 없으므로 오버헤드가 적음.
    • 트랜잭션 종료 후 직렬 가능성이 검증되면 데이터베이스에 반영.

5. 다중 버전 병행제어(Multi-Version Concurrency Control)

  • 정의: 여러 버전의 타임 스탬프를 비교하여 충돌 없이 직렬 가능성을 보장.
  • 특징:
    • 직렬 가능성이 보장되는 타임 스탬프를 선택.
    • 충돌 발생 시 복귀 수행 및 연쇄 복귀 처리 가능.

 

 

회복

  • 손상된 데이터베이스 복구
  • Undo : 모든 변경을 취고
  • Redo:트랜잭션을 재실행

 

로그파일

- 트랜잭션의 데이터 변경사항을 데이터베이스에 기록하기 전에 먼저 기록하는 별도의 파일
- 이를 이용하여 트랜잭션의 시작과 종료 여부에 따라 REDO 또는 UNDO 수행

 

 

 

   
지연갱신 회복 기법 (Deferred Update) - 트랜잭션이 커밋되기 전까지 저장
- 중간에 장애가 발생해도 커밋되지않았으므로, Undo 할필요가 없음
즉시갱신 회복 기법 (Immediate Update)  - 변경내용을 즉시 시록
- 장애발생시 UNDO 필요

 

그외

미디어 회복 기법 :백업,미러링,RAID를 통해 별도 저장 장치에 덤프

ARIES 회복기법: 알고리즘으로 회복한다.(분석단계 , REDO 단계 , UNDO 단계)

검사적 회복기법

그림자 페이징 회복기법(복사 테이블을 만들어 반영하고, 장애가 없으면 복사테이블 삭제, 장애발생시 복사 테이블  사용한다.)

 

 

 

728x90