はじめに

Couchbase ServerはインタラクティブWebアプリケーション向けのNoSQLドキュメントデータベースです。 柔軟なデータモデルをもち、容易スケールし、一貫した高性能を提供し、アプリケーションデータを24時間365日サービスできる"always-on"なデータベースです。

Couchbaseの利点

Couchbase Serverでは、アプリケーションオブジェクトやオブジェクト間の関連をJSONドキュメントにより表現します。 このドキュエントモデルは非常に柔軟で、アプリケーションオブジェクトをデータベースのスキーマ移行なしに変更することができ、 影響の大きなアプリケーションダウンタイムを計画する必要もありません。 アプリケーション内の同一のオブジェクトタイプですら、異なるデータ構造を持つことができます。 例えば、はじめはユーザ名を単一の項目としたJSONドキュメントで表現していたとします。 その後、ユーザドキュメントで姓と名を別々の項目として、JSONドキュメントを表現することもできます、 この際、ダウンタイムは発生しませんし、システム内のすべてのユーザドキュメントを更新する必要もありません。

  • 柔軟なデータモデル

    柔軟なドキュメントベースのデータモデルのその他の利点として、 現実世界の事象を表現するのに適しているということがあります。 JSONドキュメントは入れ子構造を利用でき、アプリケーション内のアイテム間の関連を、フィールドにより表現することもできます。

  • 容易にスケール

    Couchbase Serverを利用すると、クラスタ内の複数台のサーバ、 または複数のデータセンタで稼働する複数のクラスタを利用して、アプリケーションを簡単にスケールすることができます。 ユーザ数やアプリケーションデータの増加に対応するために、アプリケーションコードの変更やアプリケーションの停止なしに、 Couchbase Serverのインスタンスを追加できます。 ボタンを数回クリックするだけで、迅速にCouchbase Serverクラスタを拡張し、負荷の増加に対応し、データを均等に分散し続けることができます。

    Couchbase Serverはデータの自動シャーディングと、実行中のデータの再配置を提供します。 これにより、サーバクラスタをオンデマンドでリサイズすることが可能となります。 クロスデータセンタレプリケーションは、ユーザにより近いデータセンタへとデータを移動することができます。

  • 一貫した高性能

    Couchbase Sererは膨大な数の同時接続データアクセスと、一貫した高スループット用にデザインされています。 一貫して1ミリ秒未満の応答時間を提供し、アプリケーションのユーザに快適なユーザ体験を実現します。 一貫して高いデータスループットを提供することで、Couchbase Serverを利用すると、 より少ないサーバでより多くのユーザをサポートできます。 サーバはまた、自動的にワークロードをすべてのサーバに分散し、安定した性能を保持し、クラスタ内のサーバ単位のボトルネックを軽減します。

  • "常にオンライン"

    Couchbase Serverは一貫した1ミリ秒未満の応答時間を提供し、アプリケーションのユーザに快適なユーザ体験を実現します。 Couchbase Serverを利用すると、より少ないサーバでより多くのユーザをサポートできます。 サーバはまた、自動的にワークロードをすべてのサーバに分散し、安定した性能を保持し、クラスタ内のサーバ単位のボトルネックを軽減します。

    クロスデータセンタレプリケーション、フェイルオーバ、バックアップ、リストアなどの機能を利用して、 サーバやデータセンタ単位の障害から、データの可用性を確保することができます。

これらすべてのCouchbase Serverが、エンドユーザのアクセスに対し、 低レイテンシかつ高スループットが求められるWebアプリケーション開発を可能とします。 Webアプリケーションは即座にCouchbaseクラスタ内の正しい情報にアクセスでき、 開発者はサーバの追加により、迅速にWebアプリケーションをスケールアウトすることができます。

Couchbase ServerとNoSQL

NoSQLデータベースは、データベーススキーマを事前に定義する必要なく、データの保存が可能な点が特徴的です。 Couchbase Serverでは、データをKey-Valueのペアや、JSONドキュメントとして保存できます。 データはデータベース管理システム側の観点による、決まりきった、事前に定義されたスキーマに一致する必要はありません。 このスキーマレスな性質により、Couchbase Serverは成長に応じて、クラスタにサーバをさらに追加することで、 データ容量とI/Oのキャパシティを増加しスケールアウトするアプローチを可能としています。 この際、アプリケーションの変更は全く必要ありません。 一方、リレーショナルデータベース管理システムは成長に対応するために、 CPU、メモリ、ディスクなどのキャパシティを追加することでスケールアップします。

リレーショナルデータベースは情報を関連として保存しますが、これはデータを保存する前に定義または変更する必要があります。 関連とは単純にテーブル内の行であり、ある関連内の各行は、決められた列の集合を保持します。 これらの列は関連内のすべての行で一貫して同一となります。 テーブルはまた、テーブル間の参照を利用して結合することができます。 一つのテーブルがある都市に住むすべての市民を行として保持する例を見てみましょう。 もう一つのテーブルで、親、子、関連のフィールドで構成される行を保持するとします。 この親、子の二つのフィールドは市民テーブルの行への参照として利用し、三つ目のフィールドは、 父や母といった、最初の二つのフィールドに保存された市民間の親子関係を表すことに利用できます。