CockroachDB
CockroachDB
Google Spanner에서 영감을 받아 개발된 오픈소스 분산 SQL 데이터베이스로, PostgreSQL 호환 인터페이스를 제공하고 수평 확장, 강한 일관성, 자동 복제, 장애 허용을 지원하는 NewSQL 데이터베이스
목적: 분산 SQL, 수평 확장, 강한 일관성, 고가용성, PostgreSQL 호환
특징: 분산 아키텍처, Raft 합의, Range 기반 샤딩, 다중 활성(Multi-Active), ACID 트랜잭션
구성요소: SQL Layer, Transaction Layer, Distribution Layer, Replication Layer(Raft), Storage Layer(RocksDB)
Range: 64MB 단위 데이터 분할, 3개 이상 복제본(Raft 그룹), 자동 리밸런싱
Raft 합의 알고리즘: 강한 일관성 보장, 리더 선출, 로그 복제, 장애 허용(과반수 생존 시)
트랜잭션: Serializable 격리 수준, 분산 2PC(Two-Phase Commit), 낙관적 동시성 제어
시간 복잡도: SELECT/INSERT O(log n), 분산 트랜잭션 오버헤드
장점: 수평 확장, 강한 일관성, 자동 장애 복구, 지리적 분산, PostgreSQL 호환
단점: 쓰기 성능(합의 오버헤드), 복잡한 운영, 분산 트랜잭션 지연
적용사례: 글로벌 금융 서비스, SaaS 플랫폼, 멀티 리전 애플리케이션
비교: CockroachDB(CP/Raft/강일관성) vs Cassandra(AP/최종일관성) vs PostgreSQL(단일노드)
연관: NewSQL, Raft, Spanner, 분산 데이터베이스, PostgreSQL