スマートスタイル TECH BLOG

データベース&クラウド技術情報

Couchbase Serverのサービス

Couchbase Serverが提供するサービスについて以下をご説明します。

  • Couchbase Serverが提供する各サービスの概要
  • Dataサービス/Indexサービス/Queryサービスの説明

1.サービス

特定の機能に特化したプロセスをサービスと呼びます。
Couchbase Serverが提供する6つのサービスを大きく3つの機能に分けご説明いたします。

  1. データ操作とデータ管理
  2. .データ分析の機能
  3. .イベント機能

1. 1 データ操作とデータ管理

データ操作とデータ管理の機能として以下の4つのサービスを提供しています。

  • Dataサービス:データ登録、変更などのデータ管理
  • indexサービス:インデックスの作成、変更等のインデックス管理
  • Queryサービス:クエリの構文解析、実行プランを基にデータをインデックスから、あるいは、データから必要なデータを集め、データを加工しデータセットをクライアントへ戻します。
  • Searchサービス:全文検索インデックスを作成し、JSONドキュメントを高速に検索します。

1.2 データ分析の機能

  • Analyticsサービス
    データ分析用のデータを収集し、色々な視点から情報を捉えることができる機能を提供します。

1.3 イベント機能

  • Eventingサービス(イベントサービス)
    データ変更、クラスタ内のサーバのステータス変更をトリガとしてアプリケーションを実行することができる開発用のフレームワークを提供します。また、スケジューリングにそって定期的にアプリケーションを自動実行する機能を提供します。

2 Dataサービス/Indexサービス/Queryサービスのご説明

ここでは、基本となるData/Index/Queryサービスについてポイントを説明するとともに、サービス間の連携についてもご説明します。

2.1 Dataサービス

ドキュメントをバケットと呼ぶ領域で管理します。
ドキュメントを管理するバケットは、以下の3つの種類があり、各バケットで、データの管理方法などが異なります。

1.「Couchbase バケット」:RAM(メモリ、以後RAMを使用)とディスクにドキュメントを保存します。
2.「Ephemeral バケット」:RAMにドキュメントを保存します。ドキュメントを削除するとデータは消失します。
3.「Memcachedバケット」:RAMにバイナリデータを保存します。JSONドキュメントを管理する機能としては利用することができません。

登録されたドキュメンは必ずRAM上のバケット領域にドキュメントを保存します。常に最新のドキュメントをRAMに保存できるよに、定期的に古いドキュメントをRAMから削除し空き領域を用意します。

「Couchbase バケット」では、RAMから削除されたドキュメントはディスクへ書き込みます。問い合わせには、RAMから対象ドキュメントを探し見つからない時は、ディスクからドキュメントを探します。

レプリケーション環境の場合、登録されたドキュメントは、DCP(Database Change Protocol)プロトコルを使いデータをレプリケーション先に送信されます。

2.2 Indexサービス

インデックスは、RAMとディスクにBツリーインデックスを作成し、データを管理します。
インデックスタイプとして以下の2つのインデックスを管理します。

  • 「プライマリインデックス」
    ドキュメントのキーIDを主キーとした一意のキーを管理します。
  • 「セカンダリインデックス」
    クエリが利用する索引データのインデックスを管理します。

2.3 Queryサービス

Queryサービスは、クライアントから受け取ったクエリをもとに、以下の処理を行い、クライアントへ結果セットを戻すまでの処理を行います。

1.クエリの構文解析
2.統計情報を基に実行プランの作成
3.実行プランを基にデータを読み取り
4.集めたデータを編集しクライアントへ返します。

クライアントからのクエリを平行して処理するために、クライアントからの接続はリスナー機能を使い複数のポートを通じて対応します。
※デフォルトのポート範囲「ポート8093から18093で受信」

2.4 Query/Data/Indexサービスの連係

Queryサービス単体では、クライアントへ結果セットを返すことができません。実行プランを基に、Data/Indexサービスと連係し必要なデータを集め結果セットを作り、クライアントアプリケーションに返します。

以下の図をもとに、Queryサービスの処理をご説明します。
1.Queryサービスは、アプリケーションからのクエリを受信後
2.クエリの解析と実行プランを基に、適切なインデックスを選択します。
3.Indexサービスからデータを集め、Queryサービスにデータを渡します。
4.インデックスからデータを集めることができないときは、ドキュメントIDをQueryサービスに渡します。
5.QueryサービスからDataサービスに検索対象のドキュメントIDを渡します。
6.Dataサービスは受け取ったドキュメントIDを基に必要なデータを取得しQueryサービスに渡します。
7.Queryサービスは集めたデータを加工処理を行います。
8.結果セットをアプリケーションに送信します。


参考URL
https://blog.couchbase.com/index-advisor-service/

まとめ

それぞれ、異なる役割をもつ6つのサービスについて概要を確認しました。これらのサービスが連携してCouchbase Serverの利用者向け機能を提供しています。各サービスの詳細については、また別の機会に説明する予定です

Return Top