【コックローチディービー】

CockroachDB とは?

💡 ゴキブリの生命力!どこが落ちても生き残る分散データベース
📌 このページのポイント
CockroachDB → マルチリージョン分散構成 US リージョン Node 1 Node 2 Node 3 Raft レプリカ EU リージョン Node 4 Node 5 Node 6 Raft レプリカ Asia リージョン Node 7 Node 8 Node 9 Raft レプリカ 自動データ分散・レプリケーション ACID保証 分散トランザクション 自動復旧 ノード障害を自動検知 PostgreSQL互換 既存ツールがそのまま 水平スケール ノード追加で拡張
CockroachDB のマルチリージョン分散構成イメージ
ひよこ ひよこ

CockroachDBって名前すごいね…ゴキブリ?

ペンギン先生 ペンギン先生

そう、ゴキブリの「何があっても生き残る」タフさにちなんだ名前だよ。サーバーが何台落ちても、データセンターが丸ごと消えても、システムが止まらないことを目指しているんだ

ひよこ ひよこ

すごい!でもどうやってそんなことを実現してるの?

ペンギン先生 ペンギン先生

データを自動的に複数のノードにコピー(レプリカ)して、Raftという合意アルゴリズムで整合性を保つんだ。あるノードが落ちても、残りのレプリカが自動的に引き継いでくれるよ

ひよこ ひよこ

PostgreSQL互換ってことは、普通のSQLが使えるの?

ペンギン先生 ペンギン先生

そうだよ。PostgreSQLのドライバやORMがそのまま使えるから、既存アプリの移行がかなり楽なんだ。「psql」コマンドで接続することもできるよ

ひよこ ひよこ

Google Spannerとは何が違うの?

ペンギン先生 ペンギン先生

Spannerは専用ハードウェア(原子時計やGPS)を使った時刻同期が特徴だけど、CockroachDBは汎用サーバーで動くんだ。AWSGCPAzureどれでも動くし、オンプレミスでもOK。マルチクラウド対応は大きな強みだよ

ひよこ ひよこ

デメリットはないの?

ペンギン先生 ペンギン先生

分散トランザクションオーバーヘッドがあるから、単一ノードのPostgreSQLよりレイテンシは大きくなる。あと学習コストも少しある。でも「グローバル展開で止まらないDB」が必要なら、今最も現実的な選択肢の一つだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CockroachDB」って出てきたら「PostgreSQL互換で落ちないグローバル分散DB」と思えればだいたいOK!
📖 おまけ:英語の意味
「CockroachDB」 = ゴキブリデータベース
💬 Cockroach(ゴキブリ)は核戦争でも生き残ると言われるほどタフな生き物。どのノードが落ちてもシステムが生き残るという意味が込められているよ
← 用語集にもどる