TAG

#Transaction

6 posts

여럿에 걸친 일을 잇는다 - 사가: 코레오그래피

Event-Driven · Saga

여럿에 걸친 일을 잇는다 - 사가: 코레오그래피

주문 하나가 결제·재고·배송을 건드리는데, 서비스가 갈려 한 트랜잭션으로 못 묶는다. 여러 로컬 트랜잭션을 이벤트로 잇고 실패하면 보상으로 되돌리는 사가, 그중 코디네이터 없이 서로 반응하는 코레오그래피.

느슨하게 잇는다 4편

저장과 발행을 한 묶음으로 - 아웃박스

Event-Driven · Outbox

저장과 발행을 한 묶음으로 - 아웃박스

DB에 저장하고 이벤트를 발행하는 사이에 프로세스가 죽으면, 저장은 됐는데 발행은 안 된 어중간한 상태가 남는다. 두 시스템을 한 트랜잭션으로 못 묶는 문제를, 발행을 DB에 먼저 적어 푼다.

느슨하게 잇는다 3편

MVCC - 잠그는 대신 버전을 쌓는다

Database · Transaction

MVCC - 잠그는 대신 버전을 쌓는다

읽기가 쓰기를 막지 않게 만든 대가로 무엇을 떠안게 되는가. 버전 체인, 스냅샷, 그리고 청소 문제.

데이터베이스 공통 개념 4편

락과 데드락 - 잠가서 지키는 방식의 대가

Database · Transaction

락과 데드락 - 잠가서 지키는 방식의 대가

공유락·배타락에서 2단계 잠금까지, 그리고 두 트랜잭션이 서로를 영원히 기다리게 되는 과정.

데이터베이스 공통 개념 3편

격리 수준 - 같이 읽고 쓰면 무엇이 깨지는가

Database · Transaction

격리 수준 - 같이 읽고 쓰면 무엇이 깨지는가

더티 리드·반복 불가능 읽기·팬텀 리드가 언제 생기는지, 그리고 격리 수준이라는 이름이 왜 믿을 게 못 되는지.

데이터베이스 공통 개념 2편

트랜잭션과 ACID - 네 글자의 무게가 다르다

Database · Transaction

트랜잭션과 ACID - 네 글자의 무게가 다르다

원자성·일관성·격리성·지속성이 각각 무엇을 보장하는지, 그리고 왜 넷 중 하나만 협상 대상인지.

데이터베이스 공통 개념 1편