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

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(ゴキブリ)は核戦争でも生き残ると言われるほどタフな生き物。どのノードが落ちてもシステムが生き残るという意味が込められているよ
← 用語集にもどる