Apache Cassandra 10周年: コミュニティにNoSQLを信頼してもらう

Table of Contents

Apache Cassandra 10周年: コミュニティにNoSQLを信頼してもらう

10年前の今月、リーマン・ブラザーズがまだ事業を始めたばかりで、NoSQL という言葉があまり知られておらず、ましてや迷惑なものでもなかった頃、Facebook のエンジニアたちは Cassandra という分散データベース システムをオープンソース化しました。

当時、膨大な数の企業がスケーラブルなデータベースを必要とするという考えは、ほとんど笑いものだった。そして、従来のリレーショナル データベース システムの支配力は、マシンのクラスターで動作するように設計された多くのデータベースの最初の 1 つに与えられた神話的な愛称に反映されている。

真実を語る呪いをかけられたが決して信じられなかったギリシャの人物にちなんで名付けられた Cassandra は、信頼性が存在理由であるシステムとしては奇妙な選択に思えるかもしれませんが、RDBMS 界の忠実な支持者たちと、彼らが偽の Oracle を信頼していることを巧みに批判しています。

現在、Apache Software Foundation (ASF) の傘下にある Cassandra は、DB-Engines のトップ 10 に定期的にランクインしており、Uber、Twitter、Netflix などの有名企業で使用されています。

このプロジェクトは、その存続期間の大部分を Cassandra ベースの企業である Datastax によって推進されてきましたが、最近、同社と ASF の不和により転換点を迎えました。

現在、プロジェクトは単一のベンダーの主導なしに再調整を進めており、新たな競争に直面し、急速に変化する技術環境に適応しています。

スケーラブルなデータベースが必要なのは誰でしょうか?

2008 年を振り返ると、Facebook のエンジニアである Avinash Lakshman 氏と Prashant Mallik 氏は、受信トレイの検索問題を解決し、ユーザーが送受信したすべての Facebook メッセージの逆インデックスを保存する方法を模索していました。

「保存するデータの量、データの増加率、そして厳格なSLA内でデータを提供するという要件を考えると、新しいストレージソリューションが絶対に必要であることは明らかだ」とラクシュマン氏は当時書いている。

「ソリューションは段階的に、そして費用対効果の高い方法で拡張する必要がありました。従来のデータストレージソリューションでは、この要件を満たすことができませんでした。」

目標は、スケーラブルで高性能、高可用性のデータベース システムを開発することでした。Facebook 内での Cassandra の最初の導入は、600 個を超えるコアと 120 TB のディスク領域を持つクラスター全体にテラバイト単位のインデックスを保存する受信トレイ検索システム用でした。

同じ頃、後にDatastaxの共同創業者となるジョナサン・エリスは、当時勤務していたRackspace社のために、スケーラブルなストレージの問題に対処するため、スケーラブルなデータベース技術を評価していました。HBase、CouchDB、MongoDBを却下した後、彼はCassandraに着目し、Datastaxを設立するまで約18ヶ月間Cassandraの開発に取り組みました。

「アプリケーション開発がクラウドアプリケーションの世界へと移行していく中で、誰もがニーズに合わせて拡張する必要に迫られる中で、この問題に直面するだろうと気づきました」と彼はThe Regに語った。「これはeBayやFacebookだけが直面する例外的なものではなく、主流の開発に影響を及ぼし始めるだろうと。」

しかし、全員が同意したわけではないと彼は述べた。「Datastaxの資金調達を始めた頃、ベンチャーキャピタリストから最も多く受けた反発は、『スケーラブルなデータベースを必要とする企業は世界中に5社ある。GoogleとAmazonが既に持っている。では、あなたの市場はどこになるんだ?』というものでした。時の流れが、私たちのビジョンの正しさを証明してくれたと思います。」

深く関与するコミュニティ

Cassandra が ASF に導入される前から取り組んでいた Ellis 氏は、ASF に導入された際にコミッターに任命されるよう要請できる立場にありました。1 年後、彼は最初のプロジェクト チェアとなり、2016 年までその役職を務めました。

当時、Cassandraコミュニティはあまり存在していませんでした。エリス氏は、Facebookがこの技術を公開した理由をこう説明しています。「彼らはデータベースベンダーを目指していませんでした。オープンソース化するには有効な手段ですが、コミュニティがあまり存在しなかったのです。」

Datastax の初期に採用された人の 1 人は Patrick McFadin でした。彼はすぐにコミュニティ ビルダーの役割に落ち着き、その後の数年でメンバー数が増え、成功が目前に迫りました。Cassandra は実質的にバージョン 1.0 から書き直され、プロジェクトは数多くの技術的な高みを誇っています。

「私たちは初期から、この技術に興味を持ち、困難な問題の解決に活用している素晴らしいコミュニティを築き上げてきました」と、カサンドラのコンサルティング会社The Last PickleのCEO、アーロン・モートン氏は語る。彼はバージョン0.3頃からこのプロジェクトに関わってきた。「コミュニティは常にこの技術に深く関わってきました。」

当初、同グループは「分散データベースの欠点と利点を説明し、必ずしもアトミックトランザクションが必要ではない、あるいは第3正規形でデータを保存する必要はないという考え方に人々に慣れてもらう」ことに多大な労力を費やしたとモートン氏は語った。

モートン氏によると、この初期導入者のグループは非常に熱心だったため、バージョン 1.2 の Cassandra クエリ言語 (CQL) の作成によってもたらされた変更を支持するには、説得が必要だったという。

CQLは、この10年間のテクノロジーの最高潮として広く指摘されています。ダンディー大学の上級講師であるアンドリュー・コブリー氏は、学生にどのNoSQLデータベースを教えるか検討していた際にCassandraを発見し、これを「ゲームチェンジャー」と表現しています。

「これは本当にありがたい変化で、プログラミングが格段に楽になりました」と彼は語った。「データベースとテーブルを効率的に設計する必要はありましたが、クエリを実行する際にあの難解な方法に苦労する必要がなくなりました。SQLを理解していれば、その手間は省けます。Cassandraのルールを理解する必要はありましたが、一度理解してしまえば、インターフェースはSQLデータベースと同じような感覚で操作できました。」

コブリー氏は、もう一つのハイライトは、クラスターの管理を簡素化する仮想ノード(vnode)の導入だと述べた。一方、データスタックスのエリス氏は、Paxosコンセンサスモデルを使用した軽量トランザクションの実装を指摘し、これがPaxosの初めての製品対応オープンソース実装だと考えた。

コミュニティの独占

しかし、順風満帆とはいかないこともある。コブリー氏は「期待していたほどうまくいかなかった小さな問題」がいくつかあったと指摘したが、エリス氏は、適切な人材を投入すれば、技術的な問題のほとんどは「かなり対処可能」だと主張した。

物事が厄介になり始めるのは、技術的でない問題であり、Apache Cassandra にとって最も厄介なのは、2016 年に Datastax と財団の間で生じた亀裂です。

この論争の中心にあったのは、オープンソースの世界では珍しくない問題、つまり、単一のベンダーがプロジェクトの方向性をどの程度コントロールすべきか、そして財団はいつ関与すべきかという問題だった。

これは微妙な線であり、Datastax は意図的か誤りかを問わず、この線を何度も越えてしまったようです。

このプロジェクトに近い人物の一人は、匿名を条件にこう語った。「このプロジェクトを強引に進めているとの非難があまりにも多かったため、ASFの理事会はなんらかの措置を取らなかったのだ。」

一方、エリス氏は、ASFの取締役会は自社が「コミュニティを独占している」と感じており、「たとえDatastaxが不正行為を行っていなかったとしても、Datastaxの創設者をPMC(Cassandraプロジェクト管理委員会)の議長に据えることで、その可能性が生じる可能性がある」と述べた。

エリス氏は、政治的な課題についてかなり率直に語る。「当時の緊張関係を全く認識していなかったわけではありません…(そして)ただ、正しい側に留まれるよう祈っていました。そして、成功と失敗は混在していたと思います。」

いずれにせよ、彼は約7年を経て「プロジェクトに新たな血と多様性をもたらす時期が来た」と語り、「恨みはない」と付け加えた。

理論上は、Datastax の撤退により、別のベンダーが参入して主導権を握る可能性もあるが、観測筋はThe Registerに対し、その可能性は低そうだと語った。

Amazonデータセンター

はい、いいえ、3 袋です。NoSQL さん: すごいベンチマークですが、一体何を意味しているのですか?

続きを読む

「設計上、そして必然的に、Cassandraは非常に複雑なため、単に『誰かをチームに迎え入れる』だけでは、意味のあるサポートを提供することはできません」と情報筋は述べた。「たとえ優秀な新人開発者であっても、システムの主要コンポーネントに精通するには1年以上かかります。そのため、この市場に参入したい企業は、コミュニティから既存の優秀な人材を引き抜いて、金で参入しなければならないでしょう。」

マーケターなしでうまくやっていく

その結果、Cassandra はおそらく、コミュニティに組織的、財政的、技術的な問題を引き起こすベンダーが関与していない唯一の人気のビッグデータ プロジェクトになりました。

エリス氏は、Datastax が Apache Cassandra コードの約 85 パーセントに貢献したと見積もっているが、同社がプライベートフォークとエンタープライズバージョンに再び焦点を当てているため、貢献度は低下していると内部関係者が語っているのも不思議ではない。

一方、Datastaxの幹部は、プロジェクトへのコミットメントは継続すると強調し、Ellis氏はデータベースの販売を継続していることを指摘した。「私たちはCassandraの成功を心から願っており、関係を悪化させたいわけではありません。DatastaxとCassandraコミュニティの間には、良好な相乗効果があります。」

しかし、PMC がインフラストラクチャとリソースを失っていることは疑いようがありません。テストと検証を行うために有給で雇われている人は一人もいません。全員が別の日常業務を持っており、異なる企業の異なるグループが作業を重複させないようにすることは困難です。

一方、以前はDatastaxが主催していたCassandra Summitは、過去2年間開催されていません。何らかの形でイベントを開催するための取り組みは進行中ですが、将来的には予算が削減される可能性があります。

「データスタックスが目立たないようにするのは確かに困難でした」とモートン氏は語った。「しかし最終的には、他社がその穴を埋めてくれたおかげで、より多様なコミュニティが生まれました。」

「The Last Pickleの共同創設者であるNate McCallがPMC議長に選出され、PMCの多大な支援を得てコミッターリストの拡大に​​尽力し、Cassandraを利用する企業にさらなる貢献を促しました。さらに、Netflix、Uber、Instagramといった大企業からも引き続き重要な貢献をいただいています。」

そのような顔ぶれとの論争には NDA や企業憲章が絡んでくるだろうことは想像に難くなく、各関係者の信頼を築くのには時間がかかる。

しかし、大手ブランドがこの技術に多大な投資をしているという利点を考えると、Cassandra が近いうちに無関係になる可能性は低いでしょう。

単一ベンダーの傘下から抜け出すことには他の利点もあり、私たちの内部関係者は、機能が「嫌なマーケター」によってプロジェクトに押し込まれるのではなく、コミュニティ主導で実現される可能性が高くなると述べています。

実際、次のリリースは、大規模な運用によって開発されたユーザー主導の機能のみで構成されることが予想されます。

「厳しい試験が行われます」と情報筋は語った。「リリースされる頃には、数週間は生産ラインで稼働していることになります。」

さらに10年?

2008 年当時、カサンドラが現在置かれている世界を想像するのは難しかったでしょう。

「状況は全く違います」とコブリー氏は語る。「当初は古いPCを用意し、あらゆる部品をインストールし、設定ファイルをすべて変更してインストールしようとしていました。今では、学生にクラウドでCassandraを実行させるときは、Dockerコマンドを1つ入力するだけで済みます。それだけですぐに使えるのです。」

エリス氏も同意見で、「2008年に『カサンドラは10年後どうなっているか』と聞かれたとしたら、今の状況に非常に近い答えを出せたかどうか分からない」と述べ、特にクラウドの影響を指摘した。

同氏によると、Cassandra は、クラウドへの移行が成熟しつつある現状を活用できる好位置にいるという。

「Cassandraは、クラスターの実行と複数のデータセンターにわたるクラスターの複製において、常にクラス最高レベルであると認識されてきました。現在データをデータセンターに保存していて、今後3年以内にクラウドに移行したい場合、Cassandraを使えばはるかに簡単に移行できます」と彼は述べた。

しかし Cassandra の人気は競争も生み、10 周年を迎えるちょうどその年に、より高速であるとされるこの技術の代替品として、ScyllaDB という新しい製品が市場に登場しました。

Cassandra の支持者は、現在の PMC の機能主導のアプローチがそのような競合相手に対抗するのに役立つと主張していますが、一方で Cassandra の成熟度、経験豊富なエンジニア、協力的なコミュニティを指摘する人もいます。

モートン氏は、これは市場の妥当性を示すものだと付け加えた。「Cassandraは他のプラットフォームを評価する基準です。長期的な視点で見ると、Apache Cassandraは分散型でフォールトトレラントなデータベースという概念を業界で普及させるのに貢献し、ScyllaDBなどの製品がそのカテゴリーを拡大しています。」

同時に、プロジェクトはより要求の厳しいユーザーベースに直面しており、それがプロジェクトの将来を形作ることになるでしょう。

「Apache Cassandraは初期の頃は最先端のプロジェクトでした」とモートン氏は述べた。「10年経った今、その期待はほぼ実現しました。Cassandraは確立された技術となり、分散データベースを運用するという考え方は今や一般的になりました。」

「以前は、コミュニティはそれがうまくいけば満足していました。しかし、私たちは進歩し、今では「うまくいく」以上のものを期待しています。」®

Discover More