기타정보

상호 배제(Lock, Unlock) 기능을 사용하는 동시성 제어 기법, Locking 기법 개요

쿠카곰돌이 2020. 1. 22. 00:35
반응형

토픽 이름

Locking

분류

DB > 동시성제어 > Locking

키워드(암기)

Shared lock, Exclusive lock직렬성(Serializability), 교착상태(Deadlock), 데이터 무결성

암기법(해당경우)

 

 

기출문제

번호

문제

회차

1

DB에서 동시성제어(concurrency control)방법중 Locking을 이용하는 방법에 대하여 설명

65.응용.4

 

 

 

 

I. 상호 배제(Lock, Unlock) 기능을 사용하는 동시성 제어 기법, Locking 기법 개요

나.   Locking 기법의 정의

- 트랜잭션이 사용하는 자원(데이터 항목)에 대하여 상호 배제(Mutual Exclusive) 기능을 제공하는 기법

- 상호 배제는 특정 트랜잭션이 데이터 항목에 대하여 잠금 (Lock) 을 설정하면, 잠금을 설정한 트랜잭션이 해제 (Unlock) 할 때까지 데이터를 독점적으로 사용할 수 있는 기법

다.   Locking 연산의 종류

종류

주요개념

공유Lock

(Shared Lock)

- 데이터 항목에 대하여 읽기(read)만 가능

- 다른 트랜잭션도 읽기(Read) 만을 실행 할 수 있는 형태

전용Lock

(Exclusive Lock)

- 데이터 항목에 대해서 읽기(read)와 기록(write)가 모두 가능

- 다른 트랜잭션은 읽기(read)와 기록(write) 모두 할 수 없음

II. Locking 단위 및 기법

나.   Locking 단위

 

 

- Locking단위가 클수록 병행성 수준 떨어지고, 병행제어기법 간단해짐

- Locking단위가 작을수록 병행성 수준 높아지고, 관리 복잡해짐

다.   Locking 기법(규약 준수하였으나 모순발생 사례)

 

 

- Lock과 Unlock을 통한 트랜잭션 상호간섭 제어 

- Locking 규약을 준수 했음에도 모순성이 발생한 예

- T1, T2의 순서대로, 직렬성 있게 수행을 하면, A = 400, B는 600이 되는 것이 정상 값이나, 

위 순서대로 진행을 하면, A=400, B=500되는 모순이 발생하게 됨

- 직렬성을 보장하기 위하여 트랜잭션이 Lock과 unLock 연산을 하는 시점에 대한 규약이 필요 -> 2PL 개념 도입

 

반응형