Couchbase Serverは名前付きのバケットを使用して、データ管理サービスを提供しています。これらは、データ用に分離された仮想コンテナです。バケットは、Couchbase Serverのクラスタ内の物理的なリソースの論理グループです。これらは、クラスタを介して複数のクライアントアプリケーションで使用できます。バケットはデータストレージを構成、管理、分析するための安全な手段を提供します。
Couchbase Serverでは、2種類のバケットが利用できます。Couchbase Serverは、バケットの種類によって、実行時の統計を収集しレポートします。
表1.1 バケットの種類
{0}バケット型{/0} | 内容 |
---|---|
Couchbase | 高可用性があり動的に再構成可能な分散データストレージ、永続性とレプリケーションのサービスを提供します。 Couchbaseバケットはオープンソースのmemcachedプロトコルに100%互換性があり、分散ドキュメントキャッシュとしての理念が組み込まれています。 |
memcached | 直接アドレス指定による、分散(スケールアウト)、インメモリのドキュメントキャッシュを提供します。memcachedのバケットは、リレーショナルデータベース技術と一緒に使用するように設計されています。使用頻度の高いデータをキャッシュすることによって、Webアプリケーションを提供するWebサーバからデータベースサーバで実行しなければならないクエリの数を減らします。 |
これらのバケットタイプは異なる機能を持っています。Couchbaseタイプのバケットは、高可用性と動的再構成可能な分散データストアを提供します。Couchbaseタイプのバケットは、サービス要求を継続すると同時に、ノードの障害を存続し、クラスタの再構成を可能にします。Couchbaseタイプのバケットは、次のコア機能を提供します。
表1.2 Couchbaseバケット機能
機能 | 内容 |
---|---|
持続性 | データオブジェクトを、サーバの再起動または程度の軽い障害から保護するために、メモリからハードディスクリソースに非同期で永続化することができます。永続性の設定は、バケットレベルで行います。 |
{0}レプリケーション{/0} | Couchbaseタイプのバケットでは、全てのデータオブジェクトのコピーを受け取るレプリカサーバの数を設定できます。ホストマシンに障害が発生した場合、レプリカサーバがホストサーバに昇格し、フェイルオーバにより、継続的なクラスタオペレーション(HA)を可能とします。レプリケーションは、バケットレベルで設定されています。 |
リバランス | リバランスはリソースをクラスタ化することによる負荷分散と、クラスタへの動的なバケットおよびサーバの追加や削除を可能にします。 |
バケットタイプの詳細な設定とアクセシビリティについては、「バケット」 を参照してください。
Couchbase Serverはマルチテナント性をサポートする分離されたバケットを有効にするために、memcachedのストレージエンジンインタフェースとCouchbaseバケットエンジンを活用しています。
スマートクライアントは、Couchbase管理のREST APIを使用して、クラスタ内の変化を検知します。バケットはマルチテナント用に個々のアプリケーションを分離するため、あるいはデータタイプを分離し、パフォーマンス向上や可視性を制御するために利用できます。 Couchbase Serverは、異なるバケットにアクセスするために別のポートを設定することができます。そしてそれぞれのバケットにSASL認証を利用したバイナリプロトコルか、認証なしのASCIIプロトコルで接続するか選択することができます。
Couchbase Serverは、お使いの環境に応じて、異なるバケットタイプ(Couchbaseとmemcached)をミックスして使用してすることができます。異なるタイプのバケットであっても同じリソースプールとクラスタリソースを共有します。リソースの使用量がクラスタ全体で管理できるように、RAMとディスク使用量の割り当てはバケットごとに設定されています。時間が経ち、利用パターンや優先順位が変化した際に、管理者がリソースを再分配できるように稼動中のクラスタの割り当てを変更することができます。