코딩요
쉬운코드 기술 블로그
코딩요
전체 방문자
오늘
어제
  • 분류 전체보기 (54)
    • 개발자로 성장하기 (11)
    • 컴공 (25)
      • 운영체제 (12)
      • 알고리즘 (1)
      • 데이터베이스 (11)
      • 네트워크 (1)
    • 쉬운코드 (15)
      • 쉬운코드 소개 (6)
      • 쉬운코드 영상 보는 법 (3)
      • 쉬운코드 정정 보고서 (1)
      • 쉬운코드 스토리 (4)
      • 기타 이것저것 (1)
    • 면접 tip (3)

공지사항

  • 아이폰 앱에서는 슈퍼땡스 보내지 말아주세요ㅠㅠ
  • 쉬운코드 멤버십을 소개합니다
  • 쉬운코드 운영 철학

인기 글

hELLO · Designed By 정상우.
글쓰기 / 관리자
코딩요

쉬운코드 기술 블로그

DB 트랜잭션의 conflict serializable 이해를 위한 선수 개념
컴공/데이터베이스

DB 트랜잭션의 conflict serializable 이해를 위한 선수 개념

2022. 10. 2. 18:09

conflict serializable 이해를 위한 선수 개념

 

 

왼쪽이 선수 개념이다

 

scheudle   ->   conflict operations  ->   conflict equivalent  ->   conflict serializable

 

즉,

 

conflict serializable를 이해하기 위해서는 conflict equivalent이 무엇인지 먼저 알아야 하고

 

conflict equivalent를 이해하기 위해서는 conflict operations가 무엇인지 먼저 알아야 하고

 

conflict operations를 이해하기 위해서는 scheudle이 무엇인지 먼저 알아야 한다

 

 

 

 

 

 

 

 

 

각각의 개념들을 매우 간단하게 정리해 보면,

 

 

 

 

schedule ?

 

여러 transaction들이 동시에 실행될 때 각 transaction에 속한 operation들이 실행되는 순서를 의미한다

 

 

 

예를 들어,

transaction1이 데이터 x를 read 하고 그 뒤에 x에 write 하고

transaction2도 데이터 x를 read 하고 그 뒤에 x에 write 한다면

 

transaction1과 2가 실행되는 schedule은 아래처럼 다양할 수 있다

 

 

 

(1)   r1(x) w1(x) r2(x) w2(x)

(2)   r1(x) r2(x) w1(x) w2(x)

(3)   r1(x) r2(x) w2(x) w1(x) 

(4)   r2(x) w2(x) r1(x) w1(x) 

...

 

 

이 때 (1)과 (4)처럼 transaction이 하나 끝나면 다른 하나가 시작되는 형태의 schedule을 serial schedule이라고 한다

 

 

 

 

 

 

conflict operations ?

 

하나의 schedule에 존재하는 두 operations에 대해서 사용할 수 있는 개념이다

 

한 schedule 내에 있는 두 operations가 아래 세 가지 조건을 만족하면 '두 operations는 conflict하다'라고 말할 수 있다

 

 


1. 두 operation이 서로 다른 transaction에 속해 있다

2. 두 operation이 같은 데이터에 접근한다

3. 두 operation 중에 적어도 하나는 데이터를 쓴다(write)

 

 

 

 

 

 

 

 

conflict equivalent

 

두 개의 schedule에 대해서 사용될 수 있는 개념이다

 

두 개의 schedule이 아래의 두 가지 조건을 만족하면 '두 schedule은 conflict equivalent하다'라고 말할 수 있다

 

 

1. 두 schedule은 같은 transaction들을 가진다


2. 어떤(any) conflict operations의 순서도 양쪽 schedule이 모두 동일하다

 

 

 

 

 

 

conflict serializable

 

어느 한 schedule이 serial schedule과 conflict equivalent하다면, '이 schedule은 conflict serializable하다'라고 말할 수 있다

 

다르게 표현하자면,

 

두 개의 schedule이 conflict equivalent 할 때, 한 schedule이 serial schedule이라면, '다른 한 schedule은 conflict serializable하다'라고 말할 수 있다

 

 

 


 

 

 

보다 더 자세한 내용은 쉬운코드 영상으로 만나실 수 있습니다

 

 

 

이미지 클릭하면 영상으로 이동

 

 

 

저작자표시 비영리 변경금지 (새창열림)
    '컴공/데이터베이스' 카테고리의 다른 글
    • DB 트랜잭션 isolation 속성과 lost update
    • MySQL 트랜잭션 serializable 격리 레벨은 MVCC인가?
    • 트랜잭션 ACID 속성 간단히 정리
    • char varchar 차이
    코딩요
    코딩요
    8년차 백엔드 개발자가 이해하기 쉽게 설명합니다. 배워서 남주는 블로그! 이해하기 쉬운 기술 블로그! 쉬운코드입니다 :)

    티스토리툴바