동시성 제어(serializability)
JeongSeulho
2025년 01월 13일
준비중...
클립보드로 복사
목표
여러 트랜잭션을 빠르게 처리하면서도 올바르게 처리하도록 하자(lost update 방지)
K의 계좌에서H의 계좌로 돈을 송금하는 트랜잭션 1개H의 계좌에서 돈을 출금하는 트랜잭션 1개
2개의 트랜잭션을 예시로 설명
트랙잭션 상세 분석
두 트랜잭션은 다음과 같이 68의 operation으로 구성되고 이를 다음과 같이 축약
r1(k) : 트랜잭션1의
K의 계좌 잔액 읽기
w1(k) : 트랜잭션1의K의 계좌에 100원 출금
r1(h) : 트랜잭션1의H의 계좌 잔액 읽기
w1(h) : 트랜잭션1의H의 계좌에 100원 입금
c1 : 트랜잭션1 커밋 r2(h) : 트랜잭션2의H의 계좌 잔액 읽기
w2(h) : 트랜잭션2의H의 계좌에 100원 출금
c2 : 트랜잭션2 커밋
serial schedule
- 두 트랜잭션이 겹치지 않도록 실행하는 상황
- 단점 : 한 트랜잭션에서 읽고 쓰는
I/O작업에서 CPU가 아무것도 안하고 다음 작업을 기다림 => 느린 처리 - 장점 : 항상 올바른 결과 보장
non-serial schedule
- 두 트랜잭션이 겹치도록 실행하는 상황
- 장점 : 트랜잭션 1의 읽고 쓰는
I/O작업에서 CPU는 트랜잭션 2의 연산을 진행 => 빠른 처리 - 단점 : 올바른 결과를 보장하지 않음
conflict of operations
- 다음 3가지 조건을 만족하면
conflict of (two) operations라고 함
- 두
operation이 다른 트랜잭션 소속 - 두
operation이 같은 데이터에 접근 - 두
operation중 최소 하나는write
conflict of operations는 순서가 바뀌면 결과도 바뀐다
즉, 빠른 처리를 위해 non-serial schedule를 사용하면서도 올바른 결과를 보장하기 위해서는 serial schedule과의 같은
conflict of operations를 가져야 함
conflict equivalent
- 다음 2가지 조건을 만족하면
conflict equivalent라고 함
- 두 스케줄이 같은 트랜잭션을 포함
- 어떤
conflict of operations의 순서도 양쪽 스케줄에서 동일하다
conflict serializable
- 어떤 스케줄이
serial schedule과conflict equivalent이면conflict serializable이라고 함
즉, 스케줄이
serial schedule과 같은 결과를 낸다고 보장할 수 있는 것
결론
non-serial schedule 중에서 conflict serializable인 스케줄을 찾으면 빠르고 올바른 결과를 보장할 수 있음