Featured image of post [Database] 07. 격리 수준 검증: 재현 테스트, Hermitage, Elle

[Database] 07. 격리 수준 검증: 재현 테스트, Hermitage, Elle

문서와 블로그의 격리 수준 주장을 직접 확인하는 방법을 다룹니다. 두 세션의 인터리빙을 결정론적으로 재현하는 테스트 하네스를 SQLite로 실행해 보고, Hermitage와 Elle 같은 도구와 DBMS 이전 점검표를 정리합니다.

Featured image of post [Database] 06. 분산 트랜잭션: 2PC, 사가, 아웃박스, 스패너

[Database] 06. 분산 트랜잭션: 2PC, 사가, 아웃박스, 스패너

트랜잭션이 여러 데이터베이스와 서비스에 걸칠 때의 비용을 다룹니다. 2단계 커밋이 코디네이터 장애에서 막히는 과정, 사가와 아웃박스 패턴, 퍼컬레이터와 스패너가 분산 스냅샷을 만드는 방식을 실행 가능한 모델로 정리합니다.

Featured image of post [Database] 05. 설계 패턴: 원자적 UPDATE, 낙관적 락, SKIP LOCKED

[Database] 05. 설계 패턴: 원자적 UPDATE, 낙관적 락, SKIP LOCKED

격리 수준을 올리기 전에 쓸 수 있는 도구들을 정리합니다. 원자적 UPDATE, SELECT FOR UPDATE와 SKIP LOCKED, 버전 컬럼 낙관적 락, 제약조건, 어드바이저리 락, 멱등성 키와 재시도를 문제 유형별로 고르는 법을 다룹니다.

Featured image of post [Database] 04. Serializable의 구현: SSI와 위험한 구조

[Database] 04. Serializable의 구현: SSI와 위험한 구조

락 없이 직렬 가능성을 보장하는 SSI가 연속한 두 읽기-쓰기 반의존성을 위험한 구조로 감지하는 원리, PostgreSQL의 SIREAD 락과 false positive, 읽기 전용 최적화와 재시도 설계를 실행 가능한 모델로 정리합니다.

Featured image of post [Database] 03. 락 기반 격리: 2PL, next-key lock, 데드락

[Database] 03. 락 기반 격리: 2PL, next-key lock, 데드락

2단계 락킹이 직렬 가능성을 보장하는 원리, 팬텀을 막는 범위 락과 InnoDB의 gap·next-key lock, 락이 write skew를 데드락으로 바꾸는 과정, 데드락 탐지와 재시도 설계를 실행 가능한 모델로 정리합니다.

Featured image of post [Database] 02. 스냅샷 격리와 MVCC 구현: PostgreSQL vs InnoDB

[Database] 02. 스냅샷 격리와 MVCC 구현: PostgreSQL vs InnoDB

스냅샷은 데이터 복사본이 아니라 가시성 규칙입니다. PostgreSQL의 xmin·xmax 튜플 버전과 InnoDB의 undo 체인이 같은 약속을 지키는 방식, write skew가 허용되는 구조적 이유, 장기 트랜잭션의 비용을 비교합니다.