Skip to content

Transactions

  • Published on
    2021년 CEP-15로 제안된 Cassandra의 범용 트랜잭션 프로토콜 Accord가 2026년 3~4월, 마침내 6.0-alpha1이라는 실행 가능한 릴리스에 실려 나왔습니다. 리더 없는 합의로 멀티 파티션 strict-serializable 트랜잭션을 정상 조건에서 WAN 왕복 1회에 처리한다는 것이 프로토콜의 약속이고, BEGIN TRANSACTION 구문과 테이블별 transactional_mode 설정까지 실제로 들어 있습니다. 다만 이 알파는 "분기별 알파"로 프로덕션은커녕 정식 알파 라이프사이클도 아니었고, 트랜잭션은 대화형이 아닌 원샷 모델이며, LOCAL_QUORUM 같은 DC 로컬 일관성 수준은 지원되지 않고, 기존 테이블 마이그레이션에는 풀 리페어가 필요합니다. 공식 벤치마크 수치는 아직 어디에도 없습니다. 이 글은 발표 자료가 아니라 아파치 저장소의 CHANGES.txt, 인트리 문서, dev 메일링 리스트를 직접 읽고 확인한 2026년 7월 중순 기준 현재 상태를 정리합니다 — 프로덕션은 여전히 5.0.8이고, SAI와 벡터 검색은 이미 5.x에서 쓸 수 있는 것과 함께요.
  • Published on
    ACID가 실제로 무엇을 보장하는지부터, 네 가지 격리 수준(read uncommitted → serializable), 각 수준이 허용하는 이상 현상(dirty·non-repeatable·phantom read, write skew), MVCC와 잠금·낙관적 동시성, SELECT FOR UPDATE, 그리고 PostgreSQL과 MySQL의 기본값 차이까지. 트랜잭션이 왜 어렵고 무엇을 지켜 주는지 실전 관점에서 정리합니다.
  • Published on
    한 데이터베이스 안에서는 쉬웠던 ACID가 왜 여러 서비스에 걸치면 무너지는지, 2단계 커밋(코디네이터, 블로킹, 실패 모드)의 원리와 한계, Saga 패턴(코레오그래피 vs 오케스트레이션, 보상 트랜잭션), 이중 쓰기 문제를 푸는 아웃박스 패턴, 그리고 결과적 일관성이 실무에서 뜻하는 바까지. 마이크로서비스 시대의 트랜잭션을 정리합니다.