본문 바로가기
IT기술노트/데이터베이스

DB 교착상태(Deadlock)

by 비트코기 2021. 3. 7.

I. 교착상태의 개요

가. 교착상태(Deadlock)의 정의

   - 다수의 트랜잭션이 특정 자원의 할당을 무한정 기다리고 있는 무한 대기 상태

나. 교착상태의 개념도


II. 교착상태의 발생조건 및 예방활동

가. 교착상태의 발생조건

조건

설명

상호배재

- 트랜잭션이 자원을 배타적으로 점유하여 다른 트랜잭션이 그 자원을 사용 못함

점유와대기

- 트랜잭션은 자원을 점유하고 있고, 다른 자원을 요구

비선점

- 트랜잭션에 할당된 자원은 점유한 트랜잭션에 의해 해제 될 때 까지 다른 트랜잭션에 의해 해제될 수 없음

순환대기

- 트랜잭션 간 자원 요청이 하나의 원형 체인으로 구성

나. 교착상태의 예방활동

구분

설명

단점

상호배재 부정

- 공유할 수 없는 자원을 사용

 

점유와대기 부정

- 트랜잭션이 자원을 요청할 때 다른 자원들을 점유하지 않을 것을 보장

- 불가능, Starvation 발생가능

비선점 부정

- 자원을 점유한 트랜잭션이 다른 자원의 할당 요구가 받아들여지지 않으면 점유 자원 반납

- 비용증가, Starvation 발생가능

- 일부 자원은 안전하게 선점불가

순환대기 조건의 부정

- 모든 트랜잭션에게 각 자원의 유형별로 할당순서 부여

- 새로운 자원 추가 시 재구성 필요


III. 교착상태 해결방안

해결방안

설명

트랜잭션

- 같은 순서의 액세스, 처리 시간 감소, 적은 수의 행에 대한 질의

- Wait-die Wound-Wait

DBMS

- 인덱스 설정, 테이블 정규화, Isolation Level 조정, Lock Timeout 설정

- 프로시저 우선순위 설정

 

반응형

'IT기술노트 > 데이터베이스' 카테고리의 다른 글

체크포인트(Checkpoint) 회복기법  (0) 2021.03.07
로그기반 회복기법  (0) 2021.03.07
REDO, UNDO  (0) 2021.03.07
데이터회복(Data Recovery)  (0) 2021.03.07
낙관적 검증(Validation) 기법  (0) 2021.03.07
타임스탬프 순서(Timestamp Ordering) 기법  (0) 2021.03.07
2PL (2Phase Locking)  (0) 2021.03.07
Locking  (0) 2021.03.07

댓글