Challenges/정보처리기사

[정보처리기사]3.데이터베이스 구축/SQL 활용/병행제어

뚱요 2022. 6. 19. 00:00
반응형

 병행 제어(Concurrency Control)

 1. 병행제어(Concurrency Control)

- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어

1.1 병행제어 목적 

- 데이터베이스의 공유 최대화

- 데이터베이스의 일관성 유지

-시스템 활용도 최대화

-사용자에 대한 응답 시간 최소화

 

1.2 병행수행의 문제점 

  • 갱신 분실(Lost Update) 두 개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상 덮어쓸 때
  • 비 완료 의존성(Uncommitted Dependency) 하나의 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상(임시 갱신)→ 현황파악 오류(Dirty Read)
  • 모순성(Inconsistency) 두 개의 트랜잭션이 병행수행될 때 원치 않는 자료를 이용함으로써 발생하는 문제(불일치 분석) - 일관성 결여
  • 연쇄 복귀(Cascading Rollback) 병행수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback 하는 경우 다른 트랜잭션도 함께 Rollback되는 현상 부분취소 불가)

 

1.3 병행 제어(Concurrency Control) 기법 4가지

(1) 로킹(Locking)  개정 전 기출 20년 1, 2, 3회 기출,21년 2회 실기

하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스 할 수 없도록 하는 병행 제어 기법

 로킹 단위 :한 번에 한 명만 사용할 수 있는 단위
eg. 데이터베이스, 

- 잠금(Lock)을 설정한 트랜잭션이 해제(Unlock)할 때까지 독점적으로 사용할 수 있게 상호 배제 기능을 제공

→ 로킹이 작을수록 관리가 어려움→ 로크수, 오버헤드, 공유도(병행 수준)증가

   (1.1) 2단계 로킹(2PL; 2 Phase Locking)

- 직렬성 보장

- 교착상태 예방하지 못함

  • 확장 단계: Lock 수행하면 , unlock 수행할 수 없는 확장
  • 수축 단계: unlock 수행하면 Lock 수행할 수 없는 확장

 

(2) 낙관적 검증(최적 병행 수행기법)

→ 트랜잭션이 어떠한 검증도 수행하지 않고, 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행하여 데이터베이스에 반영하는 기법

- 판독 전용(Read Only) 트랜잭션인 경우 충돌률이 낮아서 일관성 있게 유지 가능

 

(3) 타임스탬프 오더링(Timestamp Ordering)

→ 시스템에서 생성하는 고유 번호인 시간 스탬프를 트랜잭션에 부여하는 것으로 트랜잭션 간의 순서를 미리 선택하고 시성 제어의 기준으로 사용하는 기법(직렬화)

- 교착상태 발생하지 않음

교착상태(deadlock)
두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태

 

(4) 다중 버전 동시성 제어 (MVCC, Multi Version Concurrency Control)

 여러 버전 타임스탬프 비교하여, 현재 실행 중인 스케줄의 직렬 가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법

- 갱신 시에만 버전 부여, 관리

 

 

 

[정보처리기사 ] 정보처리기사 필기 목차

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 정처기 필기 100문제 중 각 챕터 당 20문제로 구성됩니다. 출판사 시나공의 정보처리기사 교재와 이전 기출문제들을 참고로 하여 간단히 키워드로요약하여 작성하였습니다. 각 중요도에 따라서

potato-potahto.tistory.com

 

반응형