0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Couchbase Server アーキテクチャ解説: Dataサービス

Last updated at Posted at 2021-02-25

はじめに

本記事では、Couchbase Serverの各種サービスの中から、Dataサービス(Data Service)について解説します。

Dataサービスの役割を理解することは、Couchbase Server管理者にとって必要であるばかりでなく、分散データプラットフォームの検討において、適切なテクノロジーを選択する上でも重要です。

本記事を読むことによって、Couchbase Serverが、ドキュメント指向型に分類されるNoSQLでありながら、その最も基本的な部分で(つまりDataサービスは)、純粋なKVS(キーバリューストア)として、設計されていることが理解しやすいのではないかと考えます(バリューとしてJSONドキュメントを格納することによって、Queryサービス等のJSON関連機能を活用することができますが、バリューには、バイナリデータを格納することも可能です)。

Dataサービスとは

Dataサービスは、Couchbase Serverの管理するデータへのアクセスを提供します。ここで扱われるデータは、メモリ、あるいはディスク上に存在します。Dataサービスへのメモリの割り当ては設定により調整することが可能です。
Dataサービスは、全てのCouchbaseサービスにおいて、最も基本的なものです。Dataサービスは、クラスターを構成する全てのノードのうち、少なくとも1つのノードで実行される必要があります。

Dataサービスのコンポーネント概要図を下に示します。

image.png

Dataサービスの構成要素

Dataサービスは、以下の3つのコンポーネント(とデータ)からなります。

  • ディスパッチャ(Dispatcher)
  • KV(キーバリュー)エンジン(KV Engine)
  • スケジューラー(Scheduler)

ディスパッチャー

  • Dataサービスへのリクエストを受けとり、応答を提供します。
  • DCP(Database Change Protocol)を使用して、クラスター内の他のノードおよび他のクラスターにデータをストリーミングします。
  • 認証を処理します。

KVエンジン

バケットに関する以下の機能を提供します。

マネージドキャッシュ

マネージドキャッシュは、設定されたクォータに従って、バケットに割り当てられたメモリです。これには、パーティションハッシュテーブルが含まれています。これにより、メモリ内およびディスク上の、クラスター全体のさまざまなノード上のバケットアイテムの場所が記録されます。アイテムが書き込まれると、アイテムはまずキャッシュに入り、その後、1つ以上の他のノードに複製するために、複製キューに配置されます。さらに(揮発性のエフェメラル型バケットではなく、デフォルトのCouchbase型バケットの場合)ディスクキューを介して、ディスクに書き込まれます。

チェックポイントマネージャ

チェックポイントマネージャは、チェックポイント(checkpoint)という名称のデータ(構造)を使用して、アイテムの変更を追跡します。チェックポイントには、メモリ内のアイテムとして加えられ、まだレプリケーションキューとディスクキューに配置されていない変更が記録されます。

アイテムページャー

必要に応じてスペースを解放するために、最近使用されていないアイテムをメモリから取り除きます。

フラッシャー

バケット内のすべてのアイテムを一括削除します。バケットのデフォルト設定では、フラッシュ処理は無効になっています。 。

有効期限(Expiry)ページャー

期限切れのアイテムをスキャンし、メモリとディスクから消去します。その後、トゥームストーンは、デフォルトの3日間残ります。有効期限ページャーは、デフォルトで60分ごとに実行されます。

バッチリーダー

ディスクキューに溜まっている複数のアイテムに加えられた変更を、ディスクに書き込むために、バッチとして結合することにより、パフォーマンスを向上させます。

スケジューラー

主にI/Oを処理するためのスレッドのプールです。スレッドは4種類に分けられ、互いに独立して、影響を与えずに実行されます。

Non IO

ディスクアクセスを必要としないスケジューラー専用のタスクです。接続通知、チェックポイントの削除、ハッシュテーブルのサイズ変更などが含まれます。

Aux IO (補助 auxiliary IO)

フェッチ、スキャン、およびバックフィルタスク等、補助的な処理を担います。

Reader IO

ディスクから情報を読み取るスレッドです。

Writer IO

ディスクに情報を書き込むスレッドです。

最後に

本記事の内容が、Couchbase Server管理者の方だけでなく、分散データプラットフォームを検討されている方にも、活用いただけるようであれば幸いです。

一つの記事で、全体を敷衍することは不可能であるため、分からない用語などが登場しているかもしれませんが、その際には、下記の関連情報を参考としていただきますよう、お願いします。

関連情報

NoSQL/JSONデータベースCouchbase理解・活用へのロードマップ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?