본문 바로가기

DBMS기초17

17. MVCC MVCC 는 MultiVersion Concurrency Control의 약자로 DBMS에서 Lock을 사용하지 않고, 데이터의 읽기 일관성을 보장해주는 내부 기법이다. DB는 Lock을 기본으로 하여 데이터 파일에 작성된 데이터의 일관성을 보장하는 것을 기본으로 하지만, 이것은 쓰기가 발생하는 경우에는 대기에 빠지게 하기 때문에, 쓰기가 많이 발생하는 서버에서의 동시성을 크게 떨어뜨린다. 이러한 문제를 해결하기 위해 David P. Reed 는 특정 논문을 통해 새로운 아이디어를 제안했는데, 그것이 바로 MVCC의 기본이 된다. 즉, 객체의 변경사항을 모두 버젼을 나누어 저장하고, 데이터 객체는 이 버젼을 모두 연속체로서 정의하여 관리하게 하여 락을 사용하지 않고 일관된 읽기를 보장해 주는 아이디어를 .. 2019. 5. 24.
16. Isolation Level에 따른 트랜잭션 처리 방법 트랜잭션을 지원하는 DBMS는 Isolation Level에 따라 트랜잭션을 실행할 수 있게 처리한다. 다음은 RDBMS가 지원하는 트랜잭션의 Isolation Level과 그 특징을 설명한 것이다. Isolation Level 설명 Dirty Read Non-Repeatable Read Phantom Read 고립성(안정성) 동시성 Read Uncommitted 커밋되지 않은 데이터도 읽을 수 있다. O O O 낮다 높다 Read Committed 커밋된 정보만 읽는다. X O O 중간 중간 Repeatable Read 하나의 트랜잭션에서는 하나의 스냅샷만 사용한다. X X O 중간 중간 Serializable Read 시에 DML 작업이 동시에 진행될 수 없다. X X X 높다 낮다 Serializa.. 2019. 5. 23.
15. Lock 기법 Lock 기법은 Lock 방법에 따라 다음과 같이 나눌 수 있다. 1. Shared Lock Read Lock 이라고도 한다. 특정 데이터 블럭을 읽기 위해 획득해야 하는 Lock이라고도 한다. Shared Lock 끼리는 동시 접근이 가능하다. 2. Exclusive Lock Write Lock 이라고도 한다. 특정 데이터 블럭을 쓰기 위해 획득해야 하는 Lock이라고도 한다. Exclusive Lock은 다른 Lock과 동시에 접근하는 것이 불가능 하다. Lock 은 Lock이 행해지는 범위에 따라 다음과 같이 나눌 수 있다. 1. table level lock 테이블 전체에 대해서 lock 이 행해지는 lock을 의미한다. 전체 테이블에 대해 lock이 발생하기 때문에 exclusive lock이 .. 2009. 8. 17.
14. 트랜잭션의 동시성 트랜잭션을 지원하는 DBMS는 처리율과 자원 이용률을 향상시키고 대기시간을 감소시키 위해 동시에 여러 트랜잭션을 수행할 수 있도록 지원한다. 하지만, 트랜잭션의 ACID를 보장하면서 동시성을 확보하는 것은 쉬운일이 아니다. DBMS에서는 트랜잭션의 ACID를 보장하면서 동시성을 확보하기 위해 여러가지 동시성 제어 기법을 사용한다. 동시성 제어 기법으로는 다음과 같은 기법이 존재한다. 1. Lock 기법 2. Timestamp-Ordering 기법 3. Multi-Versioning 기법 4. Dead-lock 처리 기법 인덱스 구조에서의 동시성 제어 기법으로는 다음과 같은 기법이 존재한다. 1. Crabbing protocol 2. B-link tree locking protocol 2009. 5. 25.