# CockroachDB
[[Cockroach Labs]] が開発・運営する商用のスケーラブル SQL DBMS。地理分散 OLTP ワークロードを対象に、高可用性・強一貫性・地理分散パーティショニングを提供する。
## 概要
- **ライセンス**: Business Source License(コアは 3 年後に Apache 2.0 へ転換)
- **対応 SQL 方言**: PostgreSQL(PostgreSQL ワイヤープロトコルと SQL 方言を採用)
- **ストレージエンジン**: RocksDB(論文時点。後に Pebble に移行)
- **実装言語**: Go(ストレージ層以外)
- **コード**: https://github.com/cockroachdb/cockroach
- **マネージドサービス**: CockroachCloud(現 CockroachDB Serverless / Dedicated)
## 主要設計特性(SIGMOD 2020 時点)
- **直列化可能分離**: MVCC + 楽観的 Read Refresh で、専用ハードウェアなしに達成
- **Raft による合意**: Range 単位のレプリカグループで耐障害性を保証
- **Parallel Commits**: 2PC の追加ラウンドを staging ステートで回避
- **地理分散データ配置**: Geo-Partitioned Replicas / Leaseholders / Duplicated Indexes の 3 ポリシー
- **分散 SQL**: DAG 物理プランによるフィルタ・結合・集計のデータローカリティ最適化
- **Hybrid Logical Clock(HLC)**: 物理 + 論理時刻で因果関係を追跡し単一キー線形化可能性を保証
## 関連
- 所属: [[Cockroach Labs]]
- 論文: [[@2020__SIGMOD__CockroachDB - The Resilient Geo-Distributed SQL Database]]
- 概念: [[分散トランザクション]] / [[外部一貫性]] / [[ハイブリッド論理クロック]] / [[地理分散SQLデータベース]]
- 比較対象: [[Spanner]] / [[Amazon Aurora (Database)]]
## 出典
- [[@2020__SIGMOD__CockroachDB - The Resilient Geo-Distributed SQL Database]](SIGMOD 2020)