독학사/데이터베이스
교착상태 처리
개발자 입니다
2022. 10. 17. 21:29
평가영역
- 교착상태 탐지
- 교착상태 검출과 회복
교착상태란
두개의 트랙잭션이 잠금상태인 데이터에 대하여 서로 사용요청을 하면서 대기하고 있는 상태이다. 이를 해결하기 위해선
- 순환상태인 트랜잭션중 하나의 실행을 철회 해야한다.
- 가장 대표적인 것이
또타임스탬프 기법이다.- 타임스탬프: 어떤 트랜잭션이 너무 오래 대기하게 되면 교착상태에 빠진것으로 보고 철회하는 방법
- 교착상태는 임의의 시간을 기다렸다 다시 실행하면 다시 발생할 확률은 거의 없다.
교착상태 탐지
교착상태 탐지 알고리즘을 사용한다. 최악의 경우 할당요구가 즉시 이루어지지 않을때 마다 실행시켜야 한다.
교착상태 검출과 회복
가장 일반적인 방법은 교착상태를 깨기위하여 트랜잭션을 복귀시키는 방법이다
- 희생자 선정: 가장 적은비용(남은시간, 사용한 데이터의 양, 앞으로 필요한 데이터의 양, 복귀될 트랜잭션 수)이 드는 트랜잭션을 복귀
- 복귀: 어디까지 복귀시킬것인가 정해야됨
- 가장 간단한 방법은 전부 복귀
- 필요한 부분만 복귀(효과적)하려면 추가적인 트랜잭션 상태에 대한 추가적인 정보가 필요
- 기아: 같은 기준으로 희생자를 선정하면 특정 트랜잭션이 계속 선택되어 영원히 완료될수 없으므로 특정 횟수 이상 희생시 실행보장