7. Lock과 트랜잭션 동시성제어

 

. Read Committed

– 기본 트랜잭션 격리성 수준(Transaction Isolation Level)

 

. 트랜잭션 동시성 제어

– 비관적 동시성 제어(Pessimistic Concurrency Control)는 두 트랜잭션이 같은 데이터를 동시에 수정할 것이라고 가정하고 데이터를 읽는 시점에 Lock을 설정하는 방식을 말한다.

– 낙관적 동시성 제어(Optimistic Concurrency Control)는 두 트랜잭션이 같은 데이터를 동시에 수정하지 않을 것이라고 가정하고 데이터를 읽는 시점에 Lock을 설정하지 않는 방식을 말한다. 이 방식에선 데이터를 수정하는 시점에 앞서 읽은 데이터가 다른 트랜잭션에 의해 변경되었는지 반드시 확인해야 데이터 정합성을 유지할 수 있다.

– 트랜잭션 격리성 수준(Transaction Isolation Level)을 Serializable로 상향 조정하면 프로그램에서 별도의 동시성 제어를 하지 않아도 DBMS가 트랜잭션 단위 일관성을 보장해 준다.

 

. 다중버전 동시성 제어(Multiversion Concurrency Control, MVCC) 

– 읽기 일관성을 위해 Undo 세그먼트(또는 버전 저장소)에 저장된 Undo(또는 Snapshot) 데이터를 활용한다.

– MVCC 모델은 기본적으로 완벽한 문장 수준 읽기 일관성을 보장한다.

– 트랜잭션 수준 읽기 일관성이란, 트랜잭션이 시작된 시점을 기준으로 일관성 있게 데이터를 읽어들이는 것을 말한다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다