트랜잭션 충돌 방지 전략: Pessimistic Lock과 Optimistic Lock 차이와 적용법
·
CS/데이터베이스
DBMS나 트랜잭션 시스템이 아닌 동시성 제어의 개념적인 패러다임에서 출발한 이론 다중 사용자/프로세스가 동일자원(DB row 등)을 동시에 읽고 쓰는 상황에서의 충돌을 방지하기 위해 등장해당 문제는 1970 ~ 1980년대 DBMS/OS 이론에서 활발히 논의됨비관적 락고전적인 RDBMS의 트랜잭션 동시성 제어 이론에서 등장했고 대표 기술로 2-Phase Locking(2PL)으로 트랜잭션이 자원을 모두 락으로 확보한 후 커밋합니다. 이 방식은 직렬화를 보장합니다.기본 아이디어는 “다른 놈이 반드시 충돌할 거야” → 그래서 미리 락을 걸고 진입을 통제합니다.적용방식으로 공유 자원(예: DB row)에 접근 전에 락을 선점합니다. 다른 트랜잭션은 대기하거나 실패합니다.주의 사항 & 병목 및 데드락 유..