Tech

Diary

Lecture

About Me

개발중

동시성 제어(serializability)

JeongSeulho

2025년 01월 13일

준비중...
클립보드로 복사

목표

여러 트랜잭션을 빠르게 처리하면서도 올바르게 처리하도록 하자(lost update 방지)

  • K의 계좌에서 H의 계좌로 돈을 송금하는 트랜잭션 1개
  • H의 계좌에서 돈을 출금하는 트랜잭션 1개

2개의 트랜잭션을 예시로 설명

트랙잭션 상세 분석

두 트랜잭션은 다음과 같이 68의 operation으로 구성되고 이를 다음과 같이 축약 Image

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

  • 두 트랜잭션이 겹치지 않도록 실행하는 상황

Image

  • 단점 : 한 트랜잭션에서 읽고 쓰는 I/O 작업에서 CPU가 아무것도 안하고 다음 작업을 기다림 => 느린 처리
  • 장점 : 항상 올바른 결과 보장

non-serial schedule

  • 두 트랜잭션이 겹치도록 실행하는 상황

Image

  • 장점 : 트랜잭션 1의 읽고 쓰는 I/O 작업에서 CPU는 트랜잭션 2의 연산을 진행 => 빠른 처리
  • 단점 : 올바른 결과를 보장하지 않음

conflict of operations

  • 다음 3가지 조건을 만족하면 conflict of (two) operations라고 함
  1. operation이 다른 트랜잭션 소속
  2. operation이 같은 데이터에 접근
  3. operation 중 최소 하나는 write

Image

conflict of operations는 순서가 바뀌면 결과도 바뀐다

즉, 빠른 처리를 위해 non-serial schedule를 사용하면서도 올바른 결과를 보장하기 위해서는 serial schedule과의 같은 conflict of operations를 가져야 함

conflict equivalent

  • 다음 2가지 조건을 만족하면 conflict equivalent라고 함
  1. 두 스케줄이 같은 트랜잭션을 포함
  2. 어떤 conflict of operations의 순서도 양쪽 스케줄에서 동일하다

Image

conflict serializable

  • 어떤 스케줄이 serial scheduleconflict equivalent이면 conflict serializable이라고 함

즉, 스케줄이 serial schedule과 같은 결과를 낸다고 보장할 수 있는 것

결론

non-serial schedule 중에서 conflict serializable인 스케줄을 찾으면 빠르고 올바른 결과를 보장할 수 있음