DataStax社による Apache Cassandraの紹介

Apache Cassandra概説

Facebookで生まれ、AmazonのDynamoとGoogleのBigTableをベースに作られたApache Cassandraは、Apacheのトップレベルプロジェクトであり、大量の構造化データを多数のコモディティサーバーに分散させて管理できる、高い可用性でサービスを提供する単一障害点のない分散ストレージシステムです。Cassandraは、何百ものノードで構成される(場合によっては地理的に複数の場所にある別々のデータセンターに分散された)インフラストラクチャの上で動作するように作られています。この規模になると、大小の構成要素がひっきりなしに故障します。Cassandraは、このような故障が起きたときにも運用を継続できることで、そのサービスに依存するソフトウェアシステムの信頼性とスケーラビリティを支えます。Cassandraは多くのデータベース的な側面を持っており、一般になじみのあるデータベース環境と同等の設計方式や実装方式を採用していますが、完全なリレーショナルデータモデルをサポートするものではありません。むしろ、データのレイアウトや形式を動的にコントロールできるシンプルなデータモデルをクライアントに対して提供します。Cassandraシステムは、安価なコモディティハードウェアの上で動作し、読み取り効率を犠牲にせずに高い書き込みスループットを実現することで、所有コストを下げながら、企業のビッグデータ環境の価値を大幅に高めるように設計されました。

これらの目標は大部分において達成され、Cassandraの利点はさまざまな業界で実感されています。Adobe、Comcast、 eBay、 Rackspace、 Netflix、 Twitter、Ciscoなどの大手を含む数多くの企業がApache Cassandraの導入に成功し、その恩恵にあずかっています。 規模の大きなプロダクション環境になると、300台を超えるサーバーから成るクラスタで数百テラバイトのデータを扱っています。なお、Cassandraは最新のApacheライセンスに基づいて利用できます。

Apache Cassandraの主要機能

  • エラスティックなスケーラビリティ ― 顧客やデータの増加に対応して、いつでも必要に応じて容量を簡単に追加できます。
  • 「Always on」(常時オン)のアーキテクチャ ― (従来のマスタ/スレーブ型のRDBMSやその他のNoSQLソリューションと異なり)単一障害点がないため、ビジネスに不可欠な、決して停止できないアプリケーションに対し継続的運用を提供します。
  • 高速でリニアなパフォーマンス ― 秒単位以下の応答時間とリニアなスケーラビリティ(例えば、スループットをノード2つで2倍に、ノード4つで4倍にするなど)を可能にすることで、利用者が当たり前のように期待する応答性能を提供します。
  • 柔軟なデータストレージ ― 今日のアプリケーションを駆動する、構造化、準構造化、あるいは非構造化データ形式を含むあらゆるデータ形式を容易にサポートします。また、データに対するニーズの変化に応じて、データ構造の変更にも動的に対応します。
  • 容易なデータの分散 ― 複数データセンター、クラウド、またクラウドとオンプレミスとの混合環境など、近年ますます一般的になりつつあるデプロイ環境をまたいでデータをレプリケートすることで、データを好きな場所に分散できる最大限の自由を備えます。任意のノードの読み取り、書き込みが可能で、すべての変更がクラスタ全体で自動的に同期化されます。
  • シンプルな運用 ― クラスタのすべてのノードが同等であるため、複雑な設定を管理する必要がなく、運用管理の作業が非常に簡素化されます。
  • トランザクションのサポート ― すべての書き込みをコミットログで捕捉し、その冗長性によってハードウェア故障時のデータの永続性を保証するとともに、トランザクションの独立性と原子性を保つことでACIDに準じた原子性、独立性、永続性を提供するほか、一貫性のレベルを調節することができます。

PlanetCassandraコミュニティサイトの日本語のページによる解説はこちら