Google Spannerクローンを目指した「CockroachDB」正式版リリース。クラウド上にグローバル展開することで大規模障害からも生き残れる分散型SQLデータベース
オープンソースで開発されているスケーラブルな分散SQLデータベース「CockroachDB」がバージョン1.0に到達し、正式版としてリリースされました。
CockroachDBは、GoogleのSpannerに触発されて開発が始まったオープンソースソフトウェアです。
GoogleのSpannerは地球規模の大規模分散データベースで、NoSQLの非常に高いスケーラビリティと高い可用性、そして高速な処理を実現しつつ、SQLに対応。強い一貫性を持つトランザクション処理も実現しています。
Googleはこれらを実現するために、独自の分散データベースソフトウェアを開発しただけでなく、同社の全データセンター間を高速な光ファイバー回線で接続し、GPSと原子時計を用いてすべてのトランザクションに厳密なタイムスタンプを付けるなどハードウェア面でも高度な技術を駆使しています。
CockroachDBは、一般的な(つまりサーバが原子時計などを備えないような)パブリッククラウド環境において、このSpannerのようにグローバルに分散してデプロイすることでデータセンター規模の障害が発生しても継続して稼働し、しかもスケーラブルな性能を実現できて、強い一貫性を実現するトランザクション処理とSQLをサポートするデータベースの実現を目指して開発が始まりました。
CockroachDBの名前は、コックローチ(=ゴキブリ)のしぶとさを象徴して付けられたようです。もうちょっといい名前はなかったのでしょうか……。
CockroachDBのアーキテクチャは、スケーラブルなNoSQLをデータベース基盤とし、その上にSQLのレイヤを載せています。具体的にはデータベース基盤にキーバリューストアの「RocksDB」を採用。64MBのチャンクごとに「Range」と呼ばれるレプリケーションユニットを構成し、「Raft」分散合意アルゴリズムを用いて分散環境での一貫性などを実現。
分散されたデータベース間でのデータレプリケーションによるデータ保護と障害が発生した際の自動修復機能などによって、強い一貫性を維持しつつもスケーラビリティと高度な耐障害性を実現していると説明されています。
FAQによると、CockroachDBn得意分野は分散環境でのトランザクション処理や、クラウドネイティブな環境での展開、複数のデータセンターに対する展開など。一方、複雑なジョインなどのSQL処理、あるいはヘビーな分析処理やOLAP処理などは得意分野ではないとしています。
商用版のCockroachDB Enterpriseも登場
CockroachDBの開発元であるCockroach Labsは、CockroachDB商用版となる「CockroachDB Enterprise」もあわせて発表しました。CockroachDB Enterpriseでは商用サポートに加え、インクリメンタルバックアップとリストア機能など運用を容易にする機能が追加されています。
タグ : NoSQL , SQL , リレーショナルデータベース
≪前の記事
Web APIをRDBにモデル化。RESTfulもSOAPもODBC/JDBC経由で簡単にアクセス可能にする、CDataのドライバ群[PR]