-
다중 버전 동시성 제어(MVCC)생각 2023. 3. 17. 03:16
원자성
: 어떤 것이 더 이상 쪼개질 수 없는 성질. atomic, 어떠한 작업이 실행될 때 언제나 완전하게 진행되어 종료되거나, 그럴 수 없는 경우 실행을 하지 않는 경우에 원자적이라고 말한다.
다중 버전 동시성 제어(multiversion concurrency control, MCC, MVCC)
MVCC는 데이터베이스 관리 시스템이 사용하는 동시성 제어 방식으로 데이터베이스로의 동시 접근을 제공하고 프로그래밍 언어에서 트랜젝셔널 메모리를 구현한다.
MVCC 데이터베이스가 데이터의 업데이트가 필요할 때, 기존 데이터 항목을 새로운 데이터가 덮어쓰는 대신 데이터 항목의 새로운 버전을 만든다. 즉, 여러 버전이 저장된다. 각 트랜잭션이 주시하는 버전은 구현된 격리 레벨에 따른다.
-> Git 버전 처럼 여러 버전(multiversion)으로 데이터를 관리한다.
MVCC 상태에서 읽기 트랜잭션은 일반적으로 타임스탬프나 트랜잭션 ID를 사용하여 읽을 DB의 상태를 결정하고 데이터의 버전들을 읽는다. 그러므로 읽기, 쓰기 트랜잭션은 락(lock)의 필요 없이 다른 트랜잭션과 격리된다.
트랜젝셔널 메모리
불러오기와 저장하기 명령의 집합이 원자적 방법으로 실행할 수 있게 함으로써 병행성 프로그래밍(여러 개의 일이 종료되지 않고 동시에 다음 일을 진행)을 단순하게 하는 방식
[참고 자료]