柔軟なデータモデル

JSONドキュメント

Couchbase Server 2.0はJSONドキュメントを標準でサポートしています。各ドキュメントは異なる構造を持ち、同じバケット*に格納されます。ドキュメントの構造は他のドキュメントに影響を与えることなくいつでも修正することができ、アプリケーションへ速やかに適用されます。
*バケット:RDBMSのデータベースに相当します。

インデックス作成とクエリ実行

Couchbase Server 2.0を利用することにより、JSONドキュメントにプライマリとセカンダリのインデックスを作成することが可能です。インデックスはViewで作成することができ、クエリを行うことも可能です。インデックス作成はクラスタ内の全てのノードに平等に分散配置され、各ノードは自身が持つデータのインデックスを作成します。クエリはリクエストに応じ最適なライブラリを使用して、Couchbase Serverからドキュメントを検索します。クエリのサポートはkey検索を含め、範囲検索やデータの集計にまで及びます。リバランシングやサーバ障害などのトポロジー変化が生じている場合でもクエリの結果を得ることができます。Couchbase Server 2.0の構造について更に詳細な情報をお求めの場合は、documentation.

インクリメンタルMap Reduce

インクリメンタルMap Reduceを用いることで、膨大なデータベースでもリアルタイムな分析をすることが可能です。データが修正される度にインデックスがアップデートされるため、全てのデータを対象としたバッチ処理の完了を待つ必要がありません。ViewのMap Reduceについての詳細はこちら よりご参照ください。


スケーラビリティー

自動シャーディング

Couchbase Serverをご利用頂くと、ワンクリックでクラスタにサーバを追加/削除することができ、既存のデータに影響を与えることなくアプリケーションのニーズに応えることが可能です。サーバを追加することによって、RAMやI/Oの容量を増やしアプリケーションを平行にスケールすることができます。

自動シャーディングはアプリケーションの変更をすることなくリクエストに最適なサーバを選択し、データを複数のサーバ間に均等に分散します。サーバの追加/削除をした場合、クラスタ間でデータのRebalanceを開始します。その際データへのアクセス制限が生じることなくI/Oが可能です。Rebalanceについての詳細はこちら をご参照ください。クラスタの管理は、Couchbase ServerのWebインターフェースまたはREST APIより可能です。

クロスデータセンタレプリケーション(XDCR)

異なるデータセンターに格納されている複数のクラスタ間に、データのレプリカを作成することができます。それにより、災害の際にはレプリカがアクティブデータへ切り替わり、またエンドユーザにとってより身近なデータへのアクセスできるという2つの利点があります。データは単方向または双方向に複製され、保存先のクラスタより読込み/書込みをすることができます。XDCRについての詳細はこちらをご参照ください。


安定したハイパフォーマンス

内臓されたオブジェクト向けのキャッシュ

Couchbase Server はデータのキャッシュ技術を立証したmemcachedを基本としたオブジェクトレベルのキャッシュを内臓しています。1ミリ秒以下のレイテンシで読込み/書込みの動作を可能とし、ハイスループットを維持します。OSのキャッシュ管理に依存しないため、アプリケーションに必要なだけ各データベースへキャッシュを割り当てることができます。

また、Couchbaseがmemcachedと置き換えられた場合、データの作成、回復、アップデートまた削除を同じクライアントのプロトコルでサポートします。memcachedを使用したアプリケーションはCouchbase Serverへアップグレードすることが可能で、UIやクラスタリング、データの複製、インデックス作成、クエリに至るまで広範囲でその優位性を発揮します。memcachedライブラリをこれからご利用の方は、開発キットをご参照ください。


Always On 24x365

ダウンタイムなしのメンテナンス

Couchbase Serverはリアルタイムでクラスタのメンテナンスが可能です。サーバの追加/削除の際にアプリケーションのダウンタイムがなく、システム稼働中でもソフトウェアのアップデートが可能です。リアルタイムでのモニタリングやメンテナンスについてはこちらをご参照ください。データのバックアップや修復についてもオンラインで行うことができます。データやインデックスのコンパクション(圧縮)、またインデックスの構築に至るまでオンラインでのオペレーションとなり、データベースがリクエストに応じている間も全て同時進行で行われます。

自動フェイルオーバー時のレプリカ

汎用または仮想サーバを使用した際の障害時に対応するため、Couchbase Serverのレプリケーションは1つのクラスタ内に複数のレプリカを保有しています。レプリカは1つのノードに障害が発生した際の影響を抑えるため、全てのノードに分散されます。Couchbase Serverは自動フェイルオーバーにも対応しており、レプリカが自動的にアクティブデータとなります。

UIモニタリングとマネージメント

Couchbase Serverはモニタリング機能と高度な管理用Webインターフェースを持っています。例えばクラスタ内全体の状況を示すチャートをリアルタイムで表示することが可能です。またトラブルシューティングを容易に行えるように、各サーバレベルの状況まで把握することが出来ます。モニタリングの詳細はこちらをご参照ください。

ユーザはCouchbase Server management REST APIを用いてクラスタをモニタリングすることもできます。このAPIを使うことによりCouchbase Server、そして例えばNagiosのような外部の管理システムも簡単に統合させることが可能です。

ストレージ構築

Couchbase Serverは全てのデータを非同期で永続化し、RAMよりも大量のデータを保存することが可能です。Couchbaseは自動的にRAMからディスクにデータを移行し、オブジェクトレベルのキャッシュをワーキングセットで維持します。更新内容はファイルの末尾へ連続して書き込まれるため、追加専用のストレージは、ディスクへの書込みパフォーマンスを向上させます。データの更新はまずRAMで行われ、次にディスクの書込みキューへ追加されます。その際ドキュメントごとに更新がなされます。ディスクの書込みキューについての詳細はこちらをご参照ください。


SDK

Couchbaseは、Java, C#, PHP, C, Python, Rubyなど、アプリケーションで使用する言語に応じた開発キットを提供しています。これまでにも多くのmemcachedライブラリが一般に提供されていますが、Couchbaseは新しくパッケージされたSDKをお勧めします。これらのSDKはクラスタのトポロジーに適したルーティングによりリクエストを正しいノードに対して直接送ります。SDKについての詳細は、ダウンロードをご参照ください。