본문 바로가기
Computer Science

[Database] Conflicting Operations

by Henry Cho 2022. 5. 9.
728x90

Conflicting Operations


포스트 난이도: HOO_Middle

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Conflicting Operations

스케줄에 따라 작업이 이루어지다 보면 operations에 충돌이 발생할 수 있다.

따라서 충돌이 발생하지 않도록 스케줄 구성을 잘해주어야 한다.

충돌이 발생하는 이유는 Interleaved schedules 경우나 Parallel schedules 경우에 발생할 수 있다.

하지만 나눠서 하는 작업인, Interleaved processing에서 많이 발생하는 편이다.

각기 다른 Transactions에서 Operations가 이루어질 때 x라는 동일한 아이템을 가지고 접근하여 작업을 수행하다 발생하는 것을 Conflicting operations라고 부른다.

예를 들어 아래와 같은 경우가 Conflicting operations에 해당한다.


# Read-write Conflict

r1(x) and w2(x) conflinct

r2(x) and w1(x) conflict

예를 들어 read 하는 r이 존재하고 write 하는 w가 존재한다고 가정했을 때, r1(x)와 w2(x) 작업이 이루어지면, Read-write conflict가 발생한다.

왜냐하면 r1(x)과 w2(x)는 다른 opeations을 나타내고 있기 때문에 2개의 다른 결과가 산출된다.

r2(x)와 w1(x)도 순서만 다를 뿐 Read-write conflict에 해당한다.


 # Write-write Conflict

Write-write conflict도 RW conflict가 크게 개념은 다르지 않다.

두 개의 operations이 서로 다르기에 산출되는 결과도 다르다는 것이다.

한마디로 원하는 결과가 아닌 전혀 다른 결과가 산출된다.

예를 들어, w1(x) w2(x) 작업이 이루어지면 이것이 바로 Write-write conflict인 셈이다.


# Conflict 아닌 예시

r1(x)와 r2(x)의 경우에는 conflict가 발생하지 않는다.

둘 다 read이기 때문에 operations가 수행되어도 문제가 되지 않는다.

또한 w2(x),w1(y)가 operations 될 경우 x와 y로 operation 되는 데이터가 다르기 때문에 이 역시도 conflict가 발생하지 않는다.

물론 같은 x라는 데이터로 접근할 경우 overwritten이 발생하여 원하는 결과가 산출되지 않을 수 있다.

r1(x)와 w1(X)도 같은 transaction이며, read와 write가 이루어지기 때문에 conflict가 발생하지 않는다. 


 

728x90

댓글