목차

1. 동시성 제어란 무엇인가?

1. 동시성 제어란 무엇인가?

  • 동시성 제어(concurrency control)는 많은 사람이 동시에 데이터를 액세스하고 변경할 수 있도록, 데이터베이스가 제공하는 기능들을 통칭함.
  • 락(LOCK)은 오라클이 공유 데이터베이스 자원에 대한 동시 액세스를 조절하고, 동시 데이터베이스 트랜잭션 간에 간섭을 막는 핵심 메커니즘.
  • 오라클에서 지원하는 락은 아래와 같음.
구분설명
TX(Transaction) 락트랜잭션이 데이터를 변경하는 동안 획득하는 락.
TM(DML Enqueue)과 DDL 락객체의 내용(TM 락) 또는 객체 자체(DDL 락)을 변경하는 동안, 객체 구조가 바뀌지 않도록 보장하는 락.
래치와 뮤텍스오라클이 공유 데이터 구조에 대한 액세스를 조정하기 위해 사용하는 내부 락.
(이 책에서는 래치와 뮤텍스 두 용어는 같은 의미로 통칭함)
  • 오라클은 데이터 대한 액세스를 제어하면서도 높은 동시성을 제공하는 멀티버저닝(multi-versioning) 아키텍처를 구현함.
  • 이로 인해, 데이터를 읽는 사람이 데이터르 쓰는 사람에 의해 블로킹이 되지 않으며, 이것은 오라클이 다른 데이터베이스 간의 근본적인 차이 중 하나임.
  • 읽기 일관성을 위한 오라클의 멀티버저닝 모델은 문장 수준(statement level)에서 디폴트로 적용되지만, 트랜잭션 수준(transaction level)에 적용되게 할 수 있음.
  • 이것은 데이터베이스로 전송된 모든 SQL문은 적어도 읽기 일관성이 보장된 데이터베이스 뷰를 본다는 것을 의미함.

문서에 대하여