Couchbase(先ごろMembaseとCouchOneの合併により設立された会社)は、Membase ServerとMobile Couchbaseに加えて、Couchbase Serverのリリースをアドバイザリー・メンバの紹介とともに発表した。
Couchbase Serverは、オープンソースのApache CouchDB(JSONをベースとしたドキュメント指向データベース)を基に作られており、Red Hat、Ubuntu Linux、Windows、Mac OS X向けのインストール用バイナリ・ファイルが提供されている。この製品には、様々なレベルのサポートや、製品アップデート、ホットフィックスが提供される3つの商用版のほかに、無償版(本番環境では2ノードに制限)も用意されている。
Couchbaseは、データベース・エキスパート、インターネットの先駆者、経営陣、投資家などで構成されるアドバイザリー・メンバを発表した。このメンバはCouchbaseの戦略と技術的な方向付けを決定するうえで重要な役割を果たすことになる。
-
Frank Artale氏(Ignition Partners社のジェネラル・パートナー)
-
Josh Berkus氏(PostgreSQL Experts社のCEO)
-
Roy Fielding氏(Web、オープンソース、ソフトウェア・アーキテクチャの先駆者)
-
Richard Hipp氏(SQLiteのアーキテクトであり開発者でもある)
-
Robert Johnson氏(Facebook社のインフラストラクチャ・ソフトウェア・エンジニアリング・ディレクタ)
-
Alan Kasindorf氏(memcached.orgを運営)
-
Cadir Lee氏(Zynga社のCTO)
-
Michael Lopp氏(シリコンバレーの経験豊かなエンジニアリング・マネージャ。著名なブロガであり著者でもある)
-
Matt Ocko氏(Sevin Rosenのパートナー。 投資家として、Zynga社、Facebook社、XenSource社、Fortinet社、Verisign社へ投資)
-
Michael Olson氏(Cloudera社のCEO)
-
In Sik Rhee氏(Rembrandt Venture Partnersのジェネラル・パートナー。 Opsware社およびKiva Software社の共同創設者)
-
Steve Souders氏(GoogleのWebパフォーマンスやオープンソースにおいてイニシアチブを取る)
-
Chris Wensel氏(Concurrent社のCTOであり創設者。オープンソース・プロジェクトCascadingデータ処理の創始者)
次に紹介するFrank Weigel氏(Couchbaseの製品管理ディレクタ)との短いインタビューでは、今後予定されているElastic Couchbase(CouchDBとMembaseの長所を組み合わせた製品)の情報をはじめ、Couchbase ServerとMembase Serverの特徴について説明してもらった。
FW: Couchbaseでは、この2つの製品の長所を組み合わせてElastic Couchbaseという1つの製品に統合するよう取り組んでいます。 この2つの製品を統合することで、Membaseの容易なクラスタリング機能を保持しながら、JSON形式のドキュメント・サポートの利点や、クエリ機能、インデックス作成機能を追加することが可能です。 このシステムでも引き続きmemcachedメモリ・キャッシュ・レイヤを使用する予定です。したがって、極めて少ない待ち時間でデータにアクセスすることができます。 クラスタ間の同期処理のサポートには、Couchbase Serverの同期処理を使用します。 この製品では、既存のmemcachedプロトコルやCouchDBプロトコルとの完全な互換性が保たれます。 結果として、個々の製品を合わせたよりも大きな効果が得られるというわけです。
InfoQ: Couchbase ServerとMembase Serverの違いは?
FW: Apache CouchDBのディストリビューションの1つであるCouchbase Serverは、Linux、Windows、MacOS向けに作られたインストール用バイナリ・パッケージが用意されています。また、このパッケージにはGeoCouchも含まれています(GeoCouchは、地理空間クエリに適しており、ロケーション対応アプリケーションに有効。Couchbase Inc.のエンジニアの1人によって開発された)。 CouchDB、Couchbase Serverは、JSONをベースとしたドキュメント指向データベースで、RESTful APIを使用します。 非常に柔軟性に優れた同期メカニズムを特徴としており、Map Reduceベースのビューによるインデックス作成機能とクエリ機能を備えています。 また、MVCCによってACIDセマンティクスや優れた並列処理を実現しています。 ディスクへの保存には追加専用のBツリーが採用されており、優れたデータ持続性を実現しています。 データの更新がないため、クラッシュが発生した場合でもすべてのレコード(障害発生時のレコードを除く)に完全にアクセスすることができ、障害による影響を受けません。
Membase Serverは、分散型のピュア・キー・バリュー・ストアです。管理されたメモリ・キャッシュ・レイヤによって、大容量のデータ・セットを扱う場合でも、大規模ユーザで使用する場合でも、少ない待ち時間でデータ・にアクセスできます。 Membase Serverは、LinuxとWindowsに対応しており、memcachedプロトコルとの完全な後方互換性があります。 しかし、ピュア・キー・バリュー・ストアということもあり、システムに対して値が不透明です。これは、Couchbase Server内のJSONオブジェクトがデータベースによって「認識されている」状態とは異なります。 また、クエリ機能は提供されていません。すべての検索は厳密にキーに基づいて行われます。 ノードに格納されているキーのメタデータはすべて、メモリに格納されています。これによりヒットやミスに関する情報を高速に(ほぼマイクロ秒の単位で)入手できるため、キーが使用可能かどうかを判断するために、データ構造に従ってディスクにアクセスする必要がありません。 メモリ・キャッシュ・レイヤは、通常、作業セットがクラスタのRAMに完全に適合するように構成されているため、値にアクセスする場合でも同様に待ち時間が極めて少なくなります。 当然ながらMembase Serverでもデータはディスクに保存されるので、全体のデータはメモリ・キャッシュよりも大きくなる可能性があります。 これ以外のMembase ServerとCouchbase Serverの主な違いは、CouchDBがシングルノード・システムであるのに対し、Membase Serverは、拡張が容易なクラスタ・システムである点です。 Membase Serverでは、クラスタ全体でデータが自動的に共有され、アプリケーションに対しては完全に透過的になります。 クラスタに対するノードの追加や削除はいつでも行うことができ、サービスを中断する必要はありません。 レプリケーション機能によって、クラスタ内でデータのコピーを複数作成できるので、故障ノードからレプリカへのフェイルオーバが可能です。 すべてのノードはクラスタ内で同一になります。レプリケーションはピアツーピアで行われます。単一障害点となるような特殊用途のノードはありません。どのノードも他のノードと置き換えることができます。 Couchbase Serverでは、ノード間のシャーディングをアプリケーション・レベルで行うことができます。CouchDBの同期処理は、他のマシンに対してデータ・セットの複製を明示的に作成する場合に使用します。
InfoQ: Couchbase ServerとMembase ServerはオリジナルDBとしてオープンソースによる提供が継続されますか? 2つのDBには無償バージョンがあるようですが、本番環境では2ノードに制限されています。 その理由について聞かせてください。
MembaseとApache CouchDBは、オープンソース・プロジェクトであり、Couchbase Incは、プロジェクトに対して積極的にコードを提供しています。
コミュニティへのサービスとして、オープンソース・ソフトウェアから作ったCommunity Editionバイナリ・パッケージを提供しています。このパッケージは、制約なしで自由に使用できますが、サポートやホットフィックスは利用できません。
この2つの製品にはEnterprise Editionパッケージも用意されています。 Enterprise Editionパッケージは、追加のテストを受けて、公式に動作保証されたバイナリです。 商用のソフトウェアとサポートのサブスクリプションには、最大で24時間365日のサポートとホットフィックスのリリースが含まれますが、EEパッケージでのみ利用可能です。 このような点から、EEパッケージは遅延が許されない本番環境で製品を使用し、サポート、バグ・フィックス、ホットフィックス・リリースへの直接的で迅速なアクセスを必要とするお客様に最も適していると言えます。
Couchbaseでは、製品を簡単に試していただけるように、Free Enterprise Editionパッケージを用意しています。このパッケージは、テスト環境、開発環境ではノード数に制限がありません。本番環境では最大2ノードまでデプロイ可能です。