병행제어 (Concurrency Control)
다중 프로그램의 이점을 활용하여 동시에 여러개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 것
병행제어 없이 트랜잭션들이 DB에 동시에 접근하도록 허용할 경우 갱신 분실, 비완료 의존성, 모순성, 연쇄복귀 등의 문제가 발생한다
* 로킹 (Locking)
- 트랜잭션들이 로킹 단위를 액세스 하기 전에 lock 을 요청해서 lock이 허락되어야만 그 locking 단위를 액세스 할 수 있도록 하는 기법
- 주요 데이터의 액세스를 상호 배타적으로 함
- 로킹 단위 : 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기. 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있음. 로킹 단위가 크면 lock 수가 작아 관리하기 쉽지만, 병행성 수준이 낮아진다. 로킹 단위가 작으면 lock 수가 많아 관리하기 복잡해서 오버헤드가 증가하지만 병행성 수준이 높아진다.
* 타임 스탬프 순서
- 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임스탬프를 부여하여 부여된 시간에 다라 트랜잭션 작업을 수행
* 최적 병행수행
- 병행 수행하고자 하는 대부분의 트랜잭션이 read-only 트랜잭션일 경우, 충돌률이 낮기 때문에 병행제어 기법을 사용하지 않고 실행해도 시스템의 상태를 일관성 있게 유지할 것이라는 점을 이용한 기법
* 다중 버전 기법
- 타임스탬프의 개념을 이용하는 기법
- 다중 버전 타임 스탬프 기법
'Computer Science > 정보처리기사' 카테고리의 다른 글
[정보처리기사/실기] 화이트박스 & 블랙박스 (1) | 2022.09.20 |
---|---|
[정보처리기사/실기] 서비스 공격 유형 (0) | 2022.09.19 |
[정보처리기사/실기] Routing (0) | 2022.09.18 |
[정보처리기사/실기] 네트워크 관련 신기술 (3) | 2022.09.18 |
[정보처리기사/실기] TCP/IP (0) | 2022.09.18 |