Study

병행제어 (병행제어의 문제점, 병행제어 기법)

배고픈꼬마 2024. 9. 16. 21:19

병행제어

여러 트랜잭션이 동시에 실행되면서 데이터베이스의 일관성이 유지되도록 제어하는 방법


병행제어의 문제점

갱신손실 (Lost Update) 트랜잭션이 같은 데이터를 공유하여 갱신할때 일부 갱신결과과 손실됨
비완료 의존성
(Uncommitted Dependency)
실패한 트랜잭션이 회복도 안됬는데 다른 트랜잭션이 그 결과를 참조함
모순성 (Inconsistency) 병행수행중인데 원하지 않는 자료를 사용해서 데이터의 일관성 결여
연쇄복귀 ( Cascading Rollback) 트랜잭션이 실패해 롤백되면 다른 트랜잭션도 함께 롤백되는 현상

 


병행제어 기법

로킹 (Locking) 로킹된 데이터에 다른 트랜젝션이 접근할 수 없게 해주는 기법
 - 로킹단위가 크면 로크수 적어짐/병행성 낮아짐/오버헤드 감소
 - 로킹단위가 작으면 로크수 많아짐/병행성 높아짐/오버헤드 증가
2단계 로킹 기법
(Two-Phase Locking Protocol)
확장단계: 새로운 락 획득, 보유한 락 해제불가
축소단계: 새로운 락 획득불가, 보유한 락 해제가능
타임스탬프(Time Stamp) 데이터에 접근하는 시간을 미리 정해 순서대로 접근하는 기법
낙관적 병행제어 종료 시 일괄적으로 검사 후 검증시 DB반영
다중 버전 병행제어 직렬가능성이 보장되는 타임스탬프를 비교하여 선택

 

반응형