본문 바로가기

cs(with 매일메일)

[251016목] 데이터베이스 시스템에서 동시성을 제어하는 방법에 대해 설명해주세요.

1. MVCC(Multi-Version Concurrency Control)

- 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식

- 각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향 받지 않음

- 읽기 작업 시 잠금을 사용하지 않아 높은 동시성을 제공(읽기 중심의 어플리케이션에서 높은 성능)

 

 

2. Lock-Based Concurrency Control

- 데이터에 접근할 때 잠금을 사용하여 동시성을 제어

- 즉, 잠금을 통해 데이터의 일관성과 무결성을 직접적으로 제어

- 읽기 작업은 공유 잠금, 쓰지 작업은 배타 잠금을 사용

 

 

어떻게 두가지 방법을 활용?

읽기 트랜잭션 > MVCC 사용 >  일관된 스냅샷을 기반으로 데이터 읽기, 잠금을 최소화, 높은 동시성 유지

쓰기 트랜잭션 > 락기법을 사용 > 데이터의 일관성과 무결성 유지, 데이터 충돌 방지