transaction 5

[DB System 이론] Validation-based protocol(Optimistic Concurrency Control, OCC)

concurrency control을 위한 마지막 방법을 알아보자. Validation-based protocol(Optimistic Concurrency Control, OCC)이전까지는 한번에 올바른 스케줄을 생성하는 방식이다.하지만 이 방식은 일단 만들고 유효한지 확인해본다.기본적으로 잘 만들어졌을 거야 라는 낙관적인 생각을 기반으로 한다.그래서 이름에 optimistic이 들어가는 것이다. 이 방법은 read가 많을 때 많이 사용한다.read가 많으면 아무렇게나 스케줄을 만들어도 conflict가 적게 발생할 것이기 때문이다.이렇게 read가 많은 기능의 예시로는 현재 데이터를 읽어 통계 처리하는 OLAP(Online Analytical Processing)같은 것이 있다. 그러나 write가 약..

[DB System 이론] Multiple Granularity Locking Protocol, Timestamp-Ordering Protocol(TSO), Thomas’ Write Rule

이전글을 보고 오면 더 쉽게 글을 읽을 수 있다. [DB System] Two-Phase Locking(2PL) Protocol, Lock table이전 글에서 이어지는 내용이다.2025.11.21 - [데이터베이스 시스템] - [DB System 이론] Concurrency Control [DB System 이론] Concurrency Control이전 글을 보고 오면 아래 내용을 더 편하게 읽을 수 있다.2025.11.18 -april2901.tistory.com이전 글은 locking을 사용한 concurrency control 기법에 대해 알아봤었다.이번 글은 locking을 사용하는 방법을 조금 더 알아보고,locking을 사용하지 않는 방법도 알아보자.graph-based protocol역시 ..

[DB System 이론] Two-Phase Locking(2PL) Protocol, Lock table

이전 글에서 이어지는 내용이다.2025.11.21 - [데이터베이스 시스템] - [DB System 이론] Concurrency Control [DB System 이론] Concurrency Control이전 글을 보고 오면 아래 내용을 더 편하게 읽을 수 있다.2025.11.18 - [데이터베이스 시스템] - [DB System 이론] Transaction & Conflict Serializability [DB System 이론] Transaction & Conflict Serializabilitytransaction은 기april2901.tistory.com concurrent한 schedule이 좋다고는 했지만 serial schedule와 비교했을 때 명령어의 개수가 줄어들지 않는다.실제로 sch..

[DB System 이론] Concurrency Control

이전 글을 보고 오면 아래 내용을 더 편하게 읽을 수 있다.2025.11.18 - [데이터베이스 시스템] - [DB System 이론] Transaction & Conflict Serializability [DB System 이론] Transaction & Conflict Serializabilitytransaction은 기본적인 하나의 실행 단위이다.DB에서는 SQL문 하나라고 생각할 수 있다. 트랜잭션의 4가지 속성(ACID)아래의 예시를 생각해보자. 1.DB에서 A계좌 정보를 읽어온다.2.A잔액을 50달러를 뺀april2901.tistory.comTesting for Conflict Serializability어떤 schedule이 conflict serializable, 즉 안전한지 아닌지 알아보..

[DB System 이론] Transaction & Conflict Serializability

transaction은 기본적인 하나의 실행 단위이다.DB에서는 SQL문 하나라고 생각할 수 있다. 트랜잭션의 4가지 속성(ACID)아래의 예시를 생각해보자. 1.DB에서 A계좌 정보를 읽어온다.2.A잔액을 50달러를 뺀다.3.A계좌 정보를 DB에 업데이트한다.4.DB에서 B계좌 정보를 읽어온다.5.B잔액을 50달러 늘린다.6.B계좌 정보를 DB에 업데이트한다. atomicity만약 3번이후, 6번 이전과정 중에 시스템이 죽었다고 생각하면 DB의 상태는 데이터 무결성이 깨진(inconsistent)상태가 되버린다.시스템이 다시 재부팅 되더라도 A의 돈만 없어지고 B는 그대로가 된다.따라서 이런 경우에 아예 트랜잭션 이전 상태로 되돌리던지 다 실행된 상태로 만들던지 해야한다.다른말로 all or nothi..