목록MVCC (2)
변수의 기록
MVCC와 Isolation Level – Oracle 예제1. MVCC란?**MVCC (다중 버전 동시성 제어)**는 동시성을 높이기 위해 트랜잭션마다 **자신만의 일관된 데이터 시점(snapshot)**을 제공하는 방식이다.MVCC를 사용하는 데이터베이스는 읽기와 쓰기 간의 충돌(Blocking)을 제거하고, 성능과 일관성을 동시에 추구한다.2. MVCC의 핵심 개념 구분설명읽기(read)특정 트랜잭션이 시작될 때의 "시점" 기준으로 commit된 데이터만 읽는다쓰기(write)기존 데이터를 직접 수정하지 않고, 새로운 버전의 데이터를 생성커밋 후 노출다른 트랜잭션은 오직 commit된 버전만 읽을 수 있다비차단 (non-blocking)읽기와 쓰기 작업은 서로 Lock을 걸지 않음 3. MVCC와..
데이터베이스 Lock과 2PL, 데드락까지 완벽 정리동시성을 제어하는 건 단순히 commit을 잘하는 걸 넘어서, **일관성, 격리성(ACID 중 I)**을 유지하는 핵심 기술입니다. 이 포스팅에선 Read/Write Lock, 2PL, 데드락, 그리고 MVCC까지 단계적으로 정리해봅니다.📌 1. Lock 호환성 (Lock Compatibility)DB는 트랜잭션 간의 충돌을 막기 위해 Lock을 사용합니다. read-lockwrite-lockread-lock✅ 가능❌ 불가능write-lock❌ 불가능❌ 불가능 read-lock (공유 잠금):다른 트랜잭션이 읽는 것은 가능, 쓰는 것은 불가여러 트랜잭션이 동시에 읽는 것 가능write-lock (배타 잠금):읽기/쓰기 둘 다 막음오직 단일 트랜잭션만..