Search:

Search all manuals
Search this manual
Manual
Couchbase Server マニュアル 2.0
Community Wiki and Resources
Couchbase Server 2.0をダウンロード
Couchbase 開発者ガイド 2.0
クライアントライブラリ
Couchbase Server フォーラム
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
1.2 アーキテクチャと概念
Chapter Sections
Chapters

1.2.3. データストレージ

Couchbase Serverは、 バケットを用いたデータ管理サービスを提供し、これらは仮想コンテナ単位にデータを分離しています。バケットは、Couchbase Serverのクラスタ内の物理的なリソースの論理グループです。これらは、クラスタを介して複数のクライアントアプリケーションで使用できます。バケットはデータストレージを構成、管理、分析するための安全な手段を提供します。

CouchbaseServerのバケットには、1)memcachedのバケットと、2)Couchbaseのバケットの二種類があります。これらは、インメモリのみのデータ保存か、より信頼性を高めるためにインメモリとディスクを併用してデータを保存するかの違いです。CouchbaseServerをセットアップするとき、どちらのタイプを利用するのか選択することができます。

表1.1 Couchbaseの紹介—バケットの種類

バケットタイプ説明
Couchbase高可用性があり動的に再構成可能な分散データストレージ、永続性とレプリケーションのサービスを提供します。 Couchbaseバケットはオープンソースのmemcachedプロトコルに100%互換性があり、分散キー/バリューキャッシュとしての理念が組み込まれています。
Memcached直接的なアドレス指定による、分散(スケールアウト)、インメモリのキー/バリューキャッシュを提供します。memcachedのバケットは、リレーショナルデータベース技術と一緒に使用するように設計されています。 – 使用頻度の高いデータをキャッシュすることによって、Webアプリケーションを提供するWebサーバからデータベースサーバで実行しなければならないクエリの数を減らします。

これらのバケットタイプは異なる機能を持っています。Couchbaseタイプのバケットは、高可用性と動的再構成可能な分散データストアを提供します。Couchbaseタイプのバケットは、サービス要求を継続すると同時に、ノードの障害時はクラスタの再構成を可能にします。Couchbaseタイプのバケットは、次の主要な機能を提供します。

表1.2 Couchbaseの紹介—バケット機能

機能説明
キャッシュCouchbaseのバケットは、RAMを介して動作します。データはRAMに保存され、ディスクに書き込むことで永続化されます。データがRAMから読み込まれた時も、設定値に達するまでデータはRAMにキャッシュし続けます。リクエストされたデータがRAM上にキャッシュされていなかった場合、自動的にディスクから読み込まれます。
永続性データオブジェクトを、サーバの再起動または程度の軽い障害から保護するために、メモリからハードディスクリソースに非同期で永続化することができます。永続性の設定は、バケットレベルで行います。
レプリケーションCouchbaseタイプのバケットでは、全てのデータオブジェクトのコピーを受け取るレプリカサーバの数を設定できます。ホストマシンに障害が発生した場合、レプリカ・サーバーはホストサーバーに昇格することができ、フェイルオーバー機能によってクラスタ全体として高可用性を実現します。レプリケーションは、バケットレベルで設定します。
リバランスリバランスはリソースをクラスタ化することによる負荷分散と、クラスタへの動的なバケットおよびサーバの追加や削除を可能にします。

表1.3 Couchbaseの概要 - バケットタイプによる比較

機能memcachedバケットCouchbaseバケット
アイテムのサイズ制限1Mバイト20Mバイト
永続性いいえ
レプリケーションいいえ
リバランスいいえ
統計メモリ上の情報のみ全ての情報
クライアントサポートKetama consistent hashingを使用フルスマートクライアントのサポート

設定することができる3つのバケットのインタフェースタイプがあります。

スマートクライアントは、Couchbase管理のREST APIを使用して、クラスタ内の変化を検知します。バケットはマルチテナント用に個々のアプリケーションを分離するため、あるいはデータタイプを分離し、パフォーマンス向上や可視性を制御するために利用できます。 Couchbase Serverは、異なるバケットにアクセスするために別のポートを設定することができます。そしてそれぞれのバケットにSASL認証を利用したバイナリプロトコルか、認証なしのASCIIプロトコルで接続するか選択することができます。

Couchbase Serverは、お使いの環境に応じて、異なるバケットタイプ(Couchbaseとmemcached)をミックスして使用してすることができます。異なるタイプのバケットであっても同じリソースプールとクラスタリソースを共有します。リソースの使用量がクラスタ全体で管理できるように、RAMとディスク使用量の割り当てはバケットごとに設定されています。時間が経ち、利用パターンや優先順位が変化した際に、管理者がリソースを再分配できるように稼動中のクラスタの割り当てを変更することができます。