リクエストのロード・バランシングとルーティング

このトピックでは、Oracle Big Data DiscoveryにおけるStudioノードからDgraphノードへのリクエストのロード・バランシングおよびルーティングについて説明します。

リクエストのロード・バランシング

デプロイメント戦略に応じて、外部クライアントに対して、Big Data Discoveryクラスタのオンプレミス・デプロイメントとの通信エントリ・ポイントを、クラスタのStudioホスティング・ノードまたはStudioインスタンスの前に構成された外部ロード・バランサにすることができます。

Big Data Discoveryクラスタでは、リクエストのロード・バランシングにおいて次の2つのレベルに依存します。
  1. Studioの複数のインスタンスをホストしているノード間でのリクエストのロード・バランシング。デプロイメントで使用するように選択した場合、このタスクは外部ロード・バランサで実行する必要があります(外部ロード・バランサはBig Data Discoveryパッケージに含まれていません)。

    外部ロード・バランサを使用する場合、すべてのリクエストを受信して、StudioアプリケーションをホストするBig Data Discoveryクラスタ・デプロイメントにおけるすべてのノードに分散します。リクエストは、Studioノードから受信すると、BDDによって適切なDgraphノードにルーティングされます。

    外部ロード・バランサを使用しない場合、Studioノードに外部リクエストを送信できます。これらは、Dgraphをホストしているノード間でロード・バランシングされます。

  2. Dgraphノード間でのリクエストのロード・バランシング。このタスクは、BDDクラスタによって自動的に処理されます。Big Data Discoveryソフトウェアは、Dgraphをホストしているノード上のStudioおよびデータ処理コンポーネントからリクエストを受け入れ、他のDgraphホスティング・ノード間で内部ロード・バランシングを行います。

リクエストのルーティング

Big Data Discoveryクラスタは、Dgraphインスタンスをホストしているクラスタ・ノードのサブセットにリクエストを自動的に送信します。

次の記述では、DgraphノードへのリクエストのルーティングにおけるBDDクラスタの動作について説明します。
  • リクエストはStudioまたはデータ処理コンポーネントからBDDクラスタ内のDgraph Gatewayに送信でき、BDDクラスタはリクエストを適切なDgraphノードにルーティングします。

    たとえば、リクエストが更新リクエスト(データ・ロード・リクエストや構成更新など)の場合、クラスタのリーダーDgraphノードにルーティングされます。リクエストが更新でない(問合せ処理)リクエストを表す場合、リーダーDgraphノードまたは任意のフォロワDgraphノードにルーティングされます。BDDクラスタにDgraphをホストしているノードが1つのみある場合、このノードはリーダーとして機能します(フォロワはありません)。

  • 更新でないリクエストは、処理用にDgraphノード間でラウンドロビン・アルゴリズムを使用してロード・バランシングされます。
  • Big Data Discoveryクラスタは、各StudioリクエストのヘッダーにあるセッションIDに応じて、StudioからDgraphに届くすべてのリクエストに対してセッション・アフィニティを利用します。同じセッションIDのリクエストは、常にクラスタ内の同じDgraphノードにルーティングされます。これにより、効率的にDgraphキャッシュを利用することで、問合せ処理パフォーマンスが向上し、キャッシュ・エンティティ(Studioでビューと呼ばれる)のパフォーマンスが向上します。