BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Cockroach DBが1.0に到達

Cockroach DBが1.0に到達

ブックマーク

原文(投稿日:2017/06/01)へのリンク

動物にちなんだソフトウェアの命名パターンに倣った分散SQLデータベースのCockroach DBが、今月初め、初の実用対応版となるバージョン1.0を発表した。

Cockroach DBは、Google Spannerに匹敵するオープンソースとして多くが認めている。Google Spannerは、Googleサービスに供用される社内プロジェクトの後にGoogle Cloudに展開された、強固な一貫性と水平拡張性を備えたRDMBSである。NuoDBも含めたこれらデータベースは、NoSQLが過去10年間で解決しようとしていた共通の問題に対して、異なる観点から解決を試みるものだ。高可用性、線形スケーラビリティ、強固な一貫性、そして継続的レプリケーションは、迅速な応答時間や指数関数的に増加するデータセットとともに、すべて、データベースベンダが何十年にもわたって解決を試みている問題である。

NoSQLベンダが採用するアプローチのひとつは、 CAP定理で述べられているように、リレーショナルデータベースによって課せられた制約である一貫性、可用性、分断耐性のいずれかの緩和を認めることだ。 SQLサポートは試験的にあったとしても、ほとんどが機能面で制限されている。

これと対極的で、時に“NewSQL”データベースとも呼ばれるアプローチでは、SQLに完全準拠し、上記のすべての要件を満たすデータベースシステムを基礎から設計することを目指している。
分散データベース開発における大きな課題のひとつは、イベントの順序付けである。トランザクション内の操作に順序を付けることによって、読み手と書き手に対して、データの一貫したビューを提供することが可能になるのだ。
公開されている論文によれば、Google Spannerでは、GPSと原子時計を使用したTrueTimeと呼ばれる概念によって、異なるノード間で数ミリ秒程度の同期を実現している。これに対して、Cockroach DBの順序付けに関するアプローチでは、Hybrid Logical Clockを使用していることがブログの記事に説明されている。いずれのアプローチにおいても、一貫性、高可用性、分断耐性の3つを分散システムで実現することは不可能であるとして、CAP定理の公理に対して否定的な主張をしている。

Cockroach DBでは初となる実用対応バージョンでは、ゼロダウンタイム(ライブ)スキーマ更新、セカンダリインデックス、外部キーのサポートも提供されている。高可用性については、データセット毎に3つ以上のアクティブなレプリカを使用して、同時に読み取り/書き込み可能とする方法を中心として提供されている。可用性の向上は別としても、この“マルチアクティブ・アベイラビリティ”は、地理的に分散したクライアントが最も近いサーバに接続して書き込みを行む場合においても、すべてのクライアントの状態が世界中で一貫していることを保証する上で有効である。Cockroach DBの主要ユーザの一社であるゲーム会社では、この機能を積極的に運用している。Baiduも主要ユーザの一社で、毎秒23,000を越える更新のためにCoakroach DBを積極的に利用している。

Cockroach DBの大きなセールスポイントのひとつが、Ruby on Rails、Hibernate、NodeのSequelizeといった、一般的なフレームワークのコードサンプルとコネクタが充実していることにより、MVCコードの書き換えや、中間層を使用したORMおよびデータベースクエリの変換が不要である点だ。詳細なアーキテクチャ図がGitHubにあり、企業ユーザには有償サポートも用意されている。複雑なSQL JOINは依然として最適ではなく、その名称に対する感想もユーザによってさまざまだが、それらはいずれも、Redpoint Venturesが主体となって今月実施された、シリーズBラウンドでの2,700万ドルに及ぶ資金調達の妨げとはなっていない。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT