기본 콘텐츠로 건너뛰기

2017의 게시물 표시

공부

last writed  : 2017. 02. 19 병행제어 기법의 종류  - 로킹(Locking) : 한 트랜잭션이 어떤 데이터에 대해서 액세스하는 동안 다른 트랜잭션 역시 이 데이터에 접근하기 위해서는 lock을 소유하고 있어야만 액세스할 수 있도록 하는 방법    * 주요 데이터에 대한 액세스를 상호배타적으로 동작하게 만듬    * 로크를 소유하고 해제하는 규칙을 정하여 동시에 여러 트랜잭션이 하나의 데이터를 갱신하는 문제를 해결 - 로킹 단위(Locking Granularity) : 병행제어에서 한번에 로킹할 수 있는 단위    * DB, 파일, 레코드, 필드 등    * 작을수록 병행수준은 뛰어나지만 DB 전체를 수많은 작은 단위로 나누어서 관리-> 관리할 로크 수가 많아짐 -> 관리가 어렵다. => 로킹 오버헤드가 증가한다,    * 클수록 병행수준은 낮아지지만 더 큰단위를 묶어 관리 -> 관리할 로크가 적다 -> 관리가 쉽다. => 데이터베이스 공유도가 감소한다. - 로크의 종류    * 공유 로크(S, Shared)    * 배타 로크(X, Exclusive)    * 의도 로크(I, Intention)    * 의도 공유 로크(IS, Intention-Shared)    * 배타 의도 로크(IX, Intention-Exclusive)    * 공유 의도 독점 로크(SIX, Shared-Intention-Exclusive)    * 공유 형태로 로킹을 하면, 읽기 권한은 가지지만 쓰기 권한은 갖지 못한다. 동시에 여러 트랜잭션이 해당 로크를 획득하여 데이터를 읽어들일 수 있다.    * 독점 형태(배타)로 로킹을 하면, 읽기와 쓰기 권한을 모두 갖게된다. 또한, 하나의 트랜잭션이 독점 로크를 획득한 상태이면 다른 트랜잭션은 해당 데이터에 대한 접근이 불가능하게 된다. - 2단계 로킹 규약 : 각 트랜잭션의 로크 요청과 해제 요청을 2단계로 실시한다. 직렬성을 보장하는 대표