Concurrency Control (동시성 제어)
여러 트랜잭션이 동시에 데이터에 접근할 때 데이터의 일관성을 유지하는 기법
목적
- 데이터 무결성 유지
- 트랜잭션 간 충돌 방지
- 데이터베이스 일관성 보장
발생 가능한 문제
Lost Update
두 트랜잭션이 같은 데이터를 수정하여 한쪽 결과가 사라짐
T1 : A = A + 100
T2 : A = A - 50
최종 결과가 잘못될 수 있음.
Dirty Read
아직 Commit되지 않은 데이터를 읽음
T1 : UPDATE
T2 : READ
T1 : ROLLBACK
T2는 잘못된 데이터를 읽게 됨.
Non-Repeatable Read
같은 데이터를 두 번 읽었는데 값이 달라짐
T1 : SELECT
T2 : UPDATE + COMMIT
T1 : SELECT
대표 기법
Locking
데이터 사용 전에 잠금 설정
- Shared Lock (읽기)
- Exclusive Lock (쓰기)
Timestamp Ordering
트랜잭션에 시간 정보를 부여하여 순서를 보장
MVCC (Multi Version Concurrency Control)
데이터의 여러 버전을 유지
- 읽기와 쓰기의 충돌 감소
- PostgreSQL, Oracle 등에서 사용
'study' 카테고리의 다른 글
| [Ubuntu] 04. 홈 서버 배포 - EF Core Migration과 MSSQL 문제 해결 (0) | 2026.07.04 |
|---|---|
| [Ubuntu] 03. 홈 서버 배포 - ASP.NET Core 서버를 Docker와 Nginx로 올리기 (0) | 2026.07.01 |
| [Ubuntu] 02. 홈 서버 구축 - Docker Compose 기반 개발 환경 구성과 DB 보안 (0) | 2026.06.28 |
| [Ubuntu] 01. 홈 서버 구축 - 원격 접속 환경과 기본 보안 설정 (0) | 2026.06.26 |
| github actions auto deploy workflow (0) | 2026.06.25 |