투케이2K

102. (DB/데이터베이스) 데드 락 (Dead Lock) 교착 상태 설명 본문

DataBase

102. (DB/데이터베이스) 데드 락 (Dead Lock) 교착 상태 설명

투케이2K 2022. 12. 12. 10:31

[학습 구분]

과목 : Database / 데이터베이스

 

[설 명]

1. 데이터베이스에서 데드 락 이란 여러개의 트랜잭션들이 실행 되지 못하고 서로 무한정 기다리고 있는 교착 상태를 의미합니다

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

3. 로킹 (Locking) : [교착 상태 예방]

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

- 로킹은 사실상 필요한 데이터를 전부 로킹 해주어야 하므로 트랜잭션을 계속해서 처리하지 못하게 되는 기아 상태가 발생할 수 있습니다

4. Wait-Die 방식 : [교착 상태 회피]

- 다른 트랜잭션이 데이터를 점유하고 있을 때 기다리거나 (Wait) , 포기 (Die) 하는 방식 입니다

5. Wound-Wait 방식 : [교착 상태 회피]

- 다른 트랜잭션이 데이터를 점유하고 있을 때 빼앗거나 (Wound) , 기다리는 (Wait) 방식 입니다

6. 타임 스탬프 (Time Stamp)

- 교착 상태 회피 기법은 자원을 할당 할 때 타임 스탬프 (Time Stamp) 를 사용해 교착 상태가 일어나지 않도록 회피하는 방법입니다

- 타임 스탬프 기법은 트랜잭션을 기준으로 하는 것이 아니라 각 데이터를 기준으로 하여 시간 순서대로 제어하는 기법입니다

- 트랜잭션에서 데이터를 처리하는 읽기 (read) 와 쓰기 (write) 로 나누어 계산하는 방법으로, 처음부터 시간 순서대로 제어를 수행하며 먼저 처리 되고 있는 것이 있으면 자신이 양보하게 됩니다

7. 낙관적 병행 제어 기법 : 트랜잭션이 실행되는 동안에는 아무런 검사를 하지 않고, 트랜잭션이 다 실행 된 이후에 검사하여 문제가 있다면 되돌리는 방법 입니다


 

반응형
Comments