(57)【特許請求の範囲】
【請求項１】
ストリーム計算システムにおけるデータ処理方法であって、前記ストリーム計算システムは、制御ノードと複数の作業ノードとを含み、前記方法は、
前記制御ノードによって、構成されたフローグラフに従って、前記複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すステップであって、前記フローグラフは、各作業ノードのために事前に設定された並行度を含み、各作業ノードの並行度は、前記作業ノードが前記データストリームを処理するために呼び出されている実行ユニットの数を示す、ステップと、
前記制御ノードによって、前記1つまたは複数の作業ノード間のデータトラフィックに関する情報と、前記1つまたは複数の作業ノードの各それぞれの作業ノードの処理速度情報とを収集するステップと、
前記制御ノードによって、前記収集されたデータトラフィック情報と処理速度情報とに従って、前記1つまたは複数の作業ノードの各それぞれの作業ノードの最適化並行度を決定するステップと、
前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度と同じでないとき、前記それぞれの作業ノードの前記最適化並行度に従って、前記制御ノードによって、前記それぞれの作業ノードの前記並行度を調整するステップと
を含む方法。
【請求項２】
前記それぞれの作業ノードの前記最適化並行度に従って、前記それぞれの作業ノードの前記並行度を調整する前記ステップは、
前記制御ノードによって、前記それぞれの作業ノードの前記最適化並行度に従って、少なくとも1つの実行ユニットを前記それぞれの作業ノードに追加するか、または、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除するステップであって、その結果、前記それぞれの作業ノード内に現在含まれている実行ユニットの数によって表される前記それぞれの作業ノードの並行度は、前記それぞれの作業ノードの前記最適化並行度と同じである、ステップ
を含む、請求項1に記載の方法。
【請求項３】
前記制御ノードによって、前記それぞれの作業ノードの前記最適化並行度に従って、少なくとも1つの実行ユニットを前記それぞれの作業ノードに追加するか、または、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除する前記ステップは、
前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度よりも大きいとき、
前記制御ノードによって、新しい実行ユニットを作成するために使用される第1の制御命令を生成し、前記第1の制御命令を前記それぞれの作業ノードに送信するステップであって、その結果、前記それぞれの作業ノードは、前記第1の制御命令を受信した後、少なくとも1つの新しい実行ユニットを作成するとともに前記新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成する、ステップと、
前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度よりも小さいとき、
前記制御ノードによって、前記それぞれの作業ノードの実行ユニットを削除するために使用される第2の制御命令を生成し、前記第2の制御命令を前記それぞれの作業ノードに送信するステップであって、その結果、前記それぞれの作業ノードは、前記第2の制御命令を受信した後、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除するとともに前記削除された実行ユニットに接続されたデータチャネルを削除する、ステップと
を含む、請求項2に記載の方法。
【請求項４】
前記それぞれの作業ノードの前記最適化並行度に従って、少なくとも1つの実行ユニットを前記それぞれの作業ノードに追加するか、または、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除する前記ステップの後、前記方法は、
前記制御ノードによって、前記追加または削除された少なくとも1つの実行ユニットに従って、前記それぞれの作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整するステップであって、前記データ配信ポリシーは、前記アップストリーム作業ノードがデータを配信するときの、ダウンストリームターゲット作業ノードと、データ受信時の前記ダウンストリームターゲット作業ノードのデータ量とを示すために使用される、ステップと、
前記制御ノードによって、調整されたデータ配信ポリシーを前記アップストリーム作業ノードに送信するステップであって、その結果、前記アップストリーム作業ノードは、前記ダウンストリームターゲット作業ノードを決定し、前記ダウンストリームターゲット作業ノードに対して構成された配信ポリシーに従って前記ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定し、かつデータパケットを前記ターゲット実行ユニットに配信する、ステップと
をさらに含む、請求項2または3に記載の方法。
【請求項５】
前記それぞれの作業ノードの前記最適化並行度に従って、少なくとも1つの実行ユニットを前記それぞれの作業ノードに追加するか、または、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除する前記ステップの後、前記方法は、
前記制御ノードによって、前記追加または削除された少なくとも1つの実行ユニットに従って、前記それぞれの作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整するステップと、
前記制御ノードによって、調整されたデータ配信ポリシーを前記アップストリーム作業ノードに送信するステップであって、その結果、前記アップストリーム作業ノードは、前記調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、前記作業ノードグループからダウンストリームターゲット作業ノードを決定し、前記ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットを前記ターゲット実行ユニットに対応して配信する、ステップと
をさらに含む、請求項2または3に記載の方法。
【請求項６】
ストリーム計算システムにおける制御ノードであって、前記ストリーム計算システムは、前記制御ノードと複数の作業ノードとを含み、前記制御ノードは、
構成されたフローグラフに従って、前記複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すように構成される呼び出しユニットであって、前記フローグラフは、各作業ノードのために事前に設定された並行度を含み、各作業ノードの並行度は、前記作業ノードが前記データストリームを処理するために呼び出されている実行ユニットの数を示す、呼び出しユニットと、
前記1つまたは複数の作業ノード間のデータトラフィックに関する情報と、前記1つまたは複数の作業ノードの各それぞれの作業ノードの処理速度情報とを収集するように構成される情報収集ユニットと、
前記情報収集ユニットによって収集された前記データトラフィック情報と前記処理速度情報とに従って、前記1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定するように構成される計算ユニットと、
前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度と同じでないとき、前記それぞれの作業ノードの前記最適化並行度に従って、前記それぞれの作業ノードの前記並行度を調整するように構成される調整ユニットと
を含む制御ノード。
【請求項７】
前記調整ユニットは、具体的には、
前記それぞれの作業ノードの前記最適化並行度に従って、少なくとも1つの実行ユニットを前記それぞれの作業ノードに追加するか、または、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除するように構成され、その結果、前記それぞれの作業ノード内に現在含まれている実行ユニットの数によって表される前記それぞれの作業ノードの並行度は、前記それぞれの作業ノードの前記最適化並行度と同じである、請求項6に記載の制御ノード。
【請求項８】
前記調整ユニットは、
前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度よりも大きいとき、実行ユニットを追加するために使用される第1の制御命令を生成し、前記第1の制御命令を前記それぞれの作業ノードに送信するように構成される第1の調整モジュールであって、その結果、前記それぞれの作業ノードは、前記第1の制御命令を受信した後、少なくとも1つの新しい実行ユニットを作成するとともに前記新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成し、前記それぞれの作業ノード内に現在含まれている実行ユニットの合計数によって表される前記それぞれの作業ノードの並行度は、前記それぞれの作業ノードの前記最適化並行度と同じである、第1の調整モジュールと、
前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度よりも小さいとき、前記それぞれの作業ノードの実行ユニットを削除するために使用される第2の制御命令を生成し、前記第2の制御命令を前記それぞれの作業ノードに送信するように構成される第2の調整モジュールであって、その結果、前記それぞれの作業ノードは、前記第2の制御命令を受信した後、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除するとともに前記削除された実行ユニットに接続されたデータチャネルを削除し、前記それぞれの作業ノード内に現在含まれている実行ユニットの合計数によって表される前記それぞれの作業ノードの並行度は、前記それぞれの作業ノードの前記最適化並行度と同じである、第2の調整モジュールと
を含む、請求項7に記載の制御ノード。
【請求項９】
前記制御ノードは、
前記追加または削除された少なくとも1つの実行ユニットに従って、前記それぞれの作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーを前記アップストリーム作業ノードに送信するように構成される第1の配信ポリシー調整ユニットであって、その結果、前記アップストリーム作業ノードは、ダウンストリームターゲット作業ノードを決定し、前記ダウンストリームターゲット作業ノードに対して構成された配信ポリシーに従って前記ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定し、データパケットを前記ターゲット実行ユニットに配信し、前記データ配信ポリシーは、前記アップストリーム作業ノードがデータを配信するときの、前記ダウンストリームターゲット作業ノードと、データ受信時の前記ダウンストリームターゲット作業ノードのデータ量とを示すために使用される、第1の配信ポリシー調整ユニットをさらに含む、請求項7または8に記載の制御ノード。
【請求項１０】
前記制御ノードは、
前記追加または削除された少なくとも1つの実行ユニットに従って、前記それぞれの作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーを前記アップストリーム作業ノードに送信するように構成される第2の配信ポリシー調整ユニットであって、その結果、前記アップストリーム作業ノードは、前記調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、前記作業ノードグループからダウンストリームターゲット作業ノードを決定し、前記ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットを前記ターゲット実行ユニットに対応して配信する、第2の配信ポリシー調整ユニットをさらに含む、請求項7または8に記載の制御ノード。
【請求項１１】
ストリーム計算システムであって、前記ストリーム計算システムは、制御ノードと複数の作業ノードとを含み、
前記制御ノードは、構成されたフローグラフに従って、前記複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すように構成され、前記フローグラフは、各作業ノードのために事前に設定された並行度を含み、各作業ノードの並行度は、前記作業ノードが前記データストリームを処理するために呼び出されている実行ユニットの数を示し、
前記1つまたは複数の作業ノードの各それぞれの作業ノードは、前記データストリームを処理するために、前記それぞれの作業ノードの前記並行度に従って、1つまたは複数の実行ユニットを呼び出すように構成され、
前記制御ノードは、前記1つまたは複数の作業ノード間のデータトラフィックに関する情報と、前記1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集し、前記収集されたデータトラフィック情報と処理速度情報とに従って、前記1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定し、前記それぞれの作業ノードの前記最適化並行度が前記それぞれの作業ノードの前記並行度と同じでないとき、前記それぞれの作業ノードの前記最適化並行度に従って、前記それぞれの作業ノードの前記並行度を調整するようにさらに構成される、ストリーム計算システム。
【請求項１２】
前記制御ノードは、具体的には、
前記それぞれの作業ノードの前記最適化並行度に従って、少なくとも1つの実行ユニットを前記それぞれの作業ノードに追加するか、または、前記それぞれの作業ノードの少なくとも1つの実行ユニットを削除するように構成され、その結果、前記それぞれの作業ノード内に現在含まれている実行ユニットの数によって表される前記それぞれの作業ノードの並行度は、前記それぞれの作業ノードの前記最適化並行度と同じである、請求項11に記載のストリーム計算システム。
【請求項１３】
前記制御ノードは、前記追加または削除された少なくとも1つの実行ユニットに従って、前記それぞれの作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーを前記アップストリーム作業ノードに送信するようにさらに構成され、その結果、前記アップストリーム作業ノードは、ダウンストリームターゲット作業ノードを決定し、前記ダウンストリームターゲット作業ノードに対して構成された配信ポリシーに従って前記ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定し、かつデータパケットを前記ターゲット実行ユニットに配信し、前記データ配信ポリシーは、前記アップストリーム作業ノードがデータを配信するときの、前記ダウンストリームターゲット作業ノードと、データ受信時の前記ダウンストリームターゲット作業ノードのデータ量とを示すために使用される、請求項12に記載のストリーム計算システム。
【請求項１４】
前記制御ノードは、前記追加または削除された少なくとも1つの実行ユニットに従って、前記それぞれの作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーを前記アップストリーム作業ノードに送信するようにさらに構成され、その結果、前記アップストリーム作業ノードは、前記調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、前記作業ノードグループからダウンストリームターゲット作業ノードを決定し、前記ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットを前記ターゲット実行ユニットに対応して配信する、請求項12に記載のストリーム計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術の分野に関し、詳細には、ストリーム計算システムにおけるデータ処理方法、制御ノードおよびストリーム計算システムに関する。
【背景技術】
【０００２】
現在、データ集中型サービスが広く適用されており、且つ、典型的なデータ集中型サービスは、金融サービス、ネットワーク監視、電気通信データ管理、Webアプリケーション等を含む。データ集中型サービスでは、データは大容量および高速によって特徴づけられ、且つ、時間変化する。従って、耐久性があり安定した関係モデルを使用してデータモデリングを実行するのには適さないが、一時的なデータストリームモデルを使用してデータモデリングを実行するのには適し、従って、データストリーム計算に対する研究が現れる。データストリーム計算は、パイプラインのようなデータ処理モードである。データストリーム計算は、データ値は時間が経過するにつれて減少するという概念から来る。従って、イベントがデータの生成をトリガした後、データはできるだけ早く処理される必要がある。データが生成されるやいなや直ちにデータが処理されること、すなわち、バッチ処理のためにデータをバッファリングする代わりに、1つのイベントが発生するやいなや直ちにデータ処理が一度に実行されることは最適である。
【０００３】
ストリーム計算システムでは、ストリーミングデータ処理モデルに基づいてデータストリーム計算が実行される。図1に示されるように、サービスデータ処理ロジックは一般に、有向非サイクルグラフ（Directed Acyclic Graph, DAG; またはフローグラフと呼ばれる）に示されるデータ処理モードに変換される必要があり、グラフ内のオペレータ（Operator）はデータの処理操作を担い、データストリーム（stream）はOperator間のデータ送信を表し、全てのOperatorは分散モードで実行されてよい。
【０００４】
従来技術では、データストリーム計算のためのストリーミングデータ処理モデルを設定するための解決手段は、物理装置（physical equipment, PE、または実行ユニットと呼ばれる）および論理ユニット（一般にDAGグラフ内のOperatorとして示されるか、または作業ノードと呼ばれる）が複数対一の関係であることである。Operatorの並行度の静的な構成は、この解決手段でサポートされる。すなわち、Operatorの、ユーザによって静的に構成される並行度に従って、各Operatorは、サービス実行プロセスにおいて、サービスによって生成されるデータストリームを処理するために、並行度に従って、対応する数の実行ユニットを呼び出す。
【０００５】
ストリーム計算システムは一般に、分散型のリアルタイムストリーム処理システムであるため、システム内のタスクの処理状態はリアルタイムで変化する。リアルタイムの変化状態のために、ユーザによって初期に設定される並行度は、多くの場合で最適でなく、従って、ユーザによって初期に設定される並行度に従って生成されるストリーミングデータ処理モデルは、システムのリアルタイムな変化に順応できず、それによって、ストリーム計算システムにおけるリソースの浪費を引き起こすとともに、ストリーム計算システムのデータ処理能力を大きく制限する。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明は、サービス処理状態に従って、リアルタイムでストリーム計算システムにおける作業ノードの並行度を調整するために、ストリーム計算システムにおけるデータ処理方法および制御ノード、ならびにストリーム計算システムを提供し、それによって、ストリーム計算システムのデータ処理能力およびリソース利用を改善する。
【０００７】
第1の態様によると、本発明はストリーム計算システムにおけるデータ処理方法を提供し、ここで、ストリーム計算システムは、制御ノードと複数の作業ノードとを含み、方法は、
制御ノードによって、構成された各作業ノードの並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すステップと、
制御ノードによって、1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集するステップと、
制御ノードによって、収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定するステップと、
制御ノードによって、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するステップと
を含む。
【０００８】
第1の態様を参照すると、第1の可能な実施方式では、各作業ノードは1つまたは複数の実行ユニットを含み、作業ノードがデータストリームを処理するために呼び出されたとき、具体的には、作業ノード内に含まれる実行ユニットはデータストリームを処理し、作業ノードの並行度は作業ノード内に含まれる実行ユニットの数を示し、制御ノードによって、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するステップは、
制御ノードによって、作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するステップであって、その結果、作業ノード内に現在含まれている実行ユニットの数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである、ステップを含む。
【０００９】
第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、制御ノードによって、作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するステップは、
作業ノードの最適化並行度が作業ノードの並行度よりも大きいとき、制御ノードによって、新しい実行ユニットを作成するために使用される第1の制御命令を生成し、第1の制御命令を作業ノードに送信するステップであって、その結果、作業ノードは、第1の制御命令を受信した後、少なくとも1つの新しい実行ユニットを作成するとともに新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成し、ここで、作業ノード内に現在含まれている実行ユニットの合計数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである、ステップと、
作業ノードの最適化並行度が作業ノードの並行度よりも小さいとき、制御ノードによって、作業ノードの実行ユニットを削除するために使用される第2の制御命令を生成し、第2の制御命令を作業ノードに送信するステップであって、その結果、作業ノードは、第2の制御命令を受信した後、作業ノードの少なくとも1つの実行ユニットを削除するとともに削除された実行ユニットに接続されたデータチャネルを削除し、ここで、作業ノード内に現在含まれている実行ユニットの合計数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである、ステップと
を含む。
【００１０】
第1の態様の第1または第2の可能な実施方式を参照すると、第3の可能な実施方式では、作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するステップの後、方法は、
制御ノードによって、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整するステップであって、ここで、データ配信ポリシーは、アップストリーム作業ノードがデータを配信するときの、データ受信デバイスと、データ受信時のデータ受信デバイスのデータ量とを示すために使用される、ステップと、
制御ノードによって、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するステップであって、その結果、ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定した後、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、データパケットをターゲット実行ユニットに対応して配信する、ステップと
をさらに含む。
【００１１】
第1の態様の第1または第2の可能な実施方式を参照すると、第4の可能な実施方式では、作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するステップの後、方法は、
制御ノードによって、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整するステップと、
制御ノードによって、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するステップであって、その結果、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、作業ノードグループからダウンストリームターゲット作業ノードを決定し、ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットをターゲット実行ユニットに対応して配信する、ステップと
をさらに含む。
【００１２】
第2の態様によると、本発明はストリーム計算システムにおける制御ノードを提供し、ここで、ストリーム計算システムは、制御ノードと複数の作業ノードとを含み、制御ノードは、
構成された各作業ノードの並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すように構成される呼び出しユニットと、
1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集するように構成される情報収集ユニットと、
情報収集ユニットによって収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定するように構成される計算ユニットと、
1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するように構成される調整ユニットと
を含む。
【００１３】
第2の態様を参照すると、第1の可能な実施方式では、各作業ノードは1つまたは複数の実行ユニットを含み、各作業ノードは、データストリームを処理するために作業ノード自身の実行ユニットを呼び出し、作業ノードの並行度は作業ノード内に含まれる実行ユニットの数を示し、作業ノードの最適化並行度に従って、作業ノードの並行度を調整する面では、調整ユニットは、具体的には、
作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するように構成され、その結果、作業ノード内に現在含まれている実行ユニットの数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである。
【００１４】
第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除する面では、調整ユニットは、
作業ノードの最適化並行度が作業ノードの並行度よりも大きいとき、実行ユニットを追加するために使用される第1の制御命令を生成し、第1の制御命令を作業ノードに送信するように構成される第1の調整モジュールであって、その結果、作業ノードは、第1の制御命令を受信した後、少なくとも1つの新しい実行ユニットを作成するとともに新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成し、ここで、作業ノード内に現在含まれている実行ユニットの合計数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである、第1の調整モジュールと、
作業ノードの最適化並行度が作業ノードの並行度よりも小さいとき、作業ノードの実行ユニットを削除するために使用される第2の制御命令を生成し、第2の制御命令を作業ノードに送信するように構成される第2の調整モジュールであって、その結果、作業ノードは、第2の制御命令を受信した後、作業ノードの少なくとも1つの実行ユニットを削除するとともに削除された実行ユニットに接続されたデータチャネルを削除し、ここで、作業ノード内に現在含まれている実行ユニットの合計数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである、第2の調整モジュールと
を含む。
【００１５】
第2の態様の第1または第2の可能な実施方式を参照すると、第3の可能な実施方式では、制御ノードは、
追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するように構成される第1の配信ポリシー調整ユニットであって、その結果、ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定した後、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、データパケットをターゲット実行ユニットに対応して配信し、ここで、データ配信ポリシーは、アップストリーム作業ノードがデータを配信するときの、データ受信デバイスと、データ受信時のデータ受信デバイスのデータ量とを示すために使用される、第1の配信ポリシー調整ユニットをさらに含む。
【００１６】
第2の態様の第1または第2の可能な実施方式を参照すると、第4の可能な実施方式では、制御ノードは、
追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するように構成される第2の配信ポリシー調整ユニットであって、その結果、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、作業ノードグループからダウンストリームターゲット作業ノードを決定し、ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットをターゲット実行ユニットに対応して配信する、第2の配信ポリシー調整ユニットをさらに含む。
【００１７】
第3の態様によると、本発明はストリーム計算システムを提供し、ここで、ストリーム計算システムは、制御ノードと複数の作業ノードとを含み、ここで、
制御ノードは、構成されたストリーム計算システムの各作業ノードの並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すように構成され、
作業ノードは、データストリームを処理するために、制御ノードによって呼び出されるように構成され、
制御ノードは、1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集し、収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するようにさらに構成される。
【００１８】
第3の態様を参照すると、第1の可能な実施方式では、作業ノードは1つまたは複数の実行ユニットを含み、作業ノードがデータストリームを処理するために呼び出されたとき、具体的には、作業ノード内に含まれる実行ユニットはデータストリームを処理し、作業ノードの並行度は作業ノード内に含まれる実行ユニットの数を示し、作業ノードの最適化並行度に従って、作業ノードの並行度を調整する面では、制御ノードは、具体的には、
作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するように構成され、その結果、作業ノード内に現在含まれている実行ユニットの数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである。
【００１９】
第3の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、制御ノードは、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するようにさらに構成され、その結果、ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定した後、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、データパケットをターゲット実行ユニットに対応して配信し、ここで、データ配信ポリシーは、アップストリーム作業ノードがデータを配信するときの、データ受信デバイスと、データ受信時のデータ受信デバイスのデータ量とを示すために使用される。
【００２０】
第3の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、制御ノードは、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するようにさらに構成され、その結果、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、作業ノードグループからダウンストリームターゲット作業ノードを決定し、ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットをターゲット実行ユニットに対応して配信する。
【００２１】
本発明の実施形態で提供される技術的解決手段では、各作業ノードの処理速度情報と作業ノード間のトラフィックに関する情報とがシステム操作プロセスにおいてリアルタイムで収集され、各作業ノードの並行度は、収集されたリアルタイムの情報に従って調整され、その結果、作業ノードの処理能力はサービス処理のリアルタイムの要件を満たすことができ、それによって、ストリーム計算システムのデータ処理能力およびリソース利用を動的に改善する。
【図面の簡単な説明】
【００２２】
本発明の実施形態における、または従来技術における技術的解決手段をより明確に説明するために、以下では、実施形態または従来技術を説明するために必要とされる添付図面を簡潔に導入する。明らかに、以下の説明における添付図面は単に、本発明のいくつかの実施形態を示し、当業者は、創造的努力なしにこれらの添付図面から他の図面をさらに導出することができる。
【００２３】
【図１】図1は、従来技術におけるDAGグラフの概略図である。
【図２】図2は、本発明の実施形態に係る、ストリーム計算システムにおけるデータ処理方法のフローチャートである。
【図３】図3は、本発明の実施形態に係る、タプル処理時間とタプル到着時間との間の対応関係の概略図である。
【図４】図4は、本発明の実施形態に係る、最適化並行度を計算することの概略図である。
【図５】図5は、本発明の実施形態に係る、DAGグラフの断片の概略図である。
【図６】図6は、本発明の実施形態に係る、ストリーム計算システムにおける別のデータ処理方法のフローチャートである。
【図７】図7は、本発明の実施形態に係る、ストリーム計算システムにおける制御ノードの概略構成図である。
【図８】図8は、本発明の実施形態に係る、ストリーム計算システムの概略図である。
【図９】図9は、本発明の実施形態に係る、ストリーム計算システムにおける別の制御ノードの概略構成図である。
【発明を実施するための形態】
【００２４】
本発明の目的、技術的解決手段および利点をより明確且つより理解し易くするために、以下では、添付図面および実施形態を参照して、本発明で提供される技術的解決手段を詳細にさらに説明する。明らかに、説明される実施形態は、本発明の実施形態の単に一部であるが全てではない。創造的努力なしに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
【００２５】
以下では、添付図面を参照して、本願の実施形態で提供される技術的解決手段の主な実施原理、具体的な実施方式および対応する達成可能な利益を説明する。
【００２６】
図2に示されるように、本発明の実施形態はストリーム計算システムにおけるデータ処理方法を提供する。本発明の本実施形態で提供される方法は、ストリーム計算システムで使用されてよく、ここで、ストリーム計算システムは一般に、制御ノードと複数の作業ノード（オペレータとも呼ばれる, Operator）とを含み、且つ、制御ノードは、対応する制御命令を劣位の作業ノードに送信してよく、その結果、作業ノードは、制御命令に従って、サービスによって生成されるデータストリームを処理するために実行ユニットを呼び出す。
【００２７】
本発明の本実施形態で提供されるデータ処理方法は、以下を含む：
【００２８】
ステップ201：制御ノードは、構成された各作業ノードの並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出す。
【００２９】
本発明で説明される作業ノードは一般に、ストリーム計算システムにおけるオペレータ（Operator）と呼ばれ、且つ、その2つは本発明の本実施形態で特に差別化されず、ストリーム計算システムの各作業ノードの並行度は、サービス処理ロジックを説明するためにフローグラフ（有向非サイクルグラフとも呼ばれる）内で構成され、サービスがストリーム計算システム内に配置されているとき、一般に、各作業ノードの並行度の初期値（初期並行度とも呼ばれる）はサービス要件に従って構成され、且つ、その後、制御ノードは、構成された各作業ノードの並行度に従って、サービスによって生成されるデータストリームを処理するために、1つまたは複数の作業ノードを呼び出し、ここで、フローグラフは、ストリーム計算システム内のサービスデータ処理ロジックの一般的な表示形式であることは、留意されるべきである。フローグラフに対する具体的な紹介については、背景における説明に対して参照が行われることができ、且つ、詳細はここでは再び説明されない。
【００３０】
各作業ノードは1つまたは複数の実行ユニットを含み、且つ、作業ノードがデータストリームを処理するために呼び出されるとき、具体的には、作業ノード内に含まれる実行ユニットがデータストリームを処理し、ここで、実行ユニットは、具体的には、スレッドまたはプロセスであってよく、作業ノードの並行度は、作業ノードと実行ユニットとの間の対応関係を表すために使用され、具体的には、作業ノードの並行度は、作業ノード内に含まれる実行ユニットの数を示し、例えば、作業ノードAの並行度が5であることは、作業ノードがデータストリームを処理するために、5つの実行ユニットを呼び出すことができることを示すことは、さらに留意されるべきである。このステップにおける作業ノードの並行度は、作業ノードのために初期に構成される並行度を指す。
【００３１】
ステップ202：制御ノードは、1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集する。
【００３２】
作業ノード間のトラフィックに関する情報は、フローグラフ内の、論理的なアップストリームとダウンストリームの関係を有する作業ノード間のデータトラフィックに関する情報を指し、作業ノードの速度情報は、作業ノードのデータ処理速度を表し、作業ノードのデータ処理速度は、作業ノードの並行度およびデータトラフィック等の要因によって決定されることは留意されるべきである。
【００３３】
ステップ203：制御ノードは、収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定する。
【００３４】
作業ノードの最適化並行度は、作業ノードの現在の負荷状態に見合う並行度を指す。従来技術では、実行ユニットは、初期に構成された並行度のみに従って、データストリームを処理するために呼び出されるが、具体的な処理状態は、データ処理が実行される前に推定されることはできないため、多くの場合では、初期並行度を使用することによって最適の効果は達成されることができない。従来技術における前述の問題について、本発明の本実施形態で提供される方法では、ストリーム計算システムの各作業ノードの負荷状態が収集され（すなわち、トラフィック情報および処理速度情報を収集する）、次いで、収集された負荷状態に従って、見合う最適化並行度が計算される。最適化並行度は、作業ノードのデータ処理状態に見合うことができ、それによって、リソースが浪費されるとともに実行ユニットがデータ処理要件を満たすことができないという問題を回避する。
【００３５】
ステップ204：制御ノードは、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整する。
【００３６】
作業ノードの最適化並行度が作業ノードの並行度と同じである場合、作業ノードの並行度を調整する必要はなく、且つ、作業ノードの現在の並行度が維持されることは理解されることができる。加えて、以下で具体的な例を使用することによって説明される、複数の実施方式が、収集されたリアルタイムのデータトラフィック情報および処理速度情報を使用することによって、各作業ノードの最適化並行度を決定するための特定のアルゴリズムに対して使用されてよいが、例は本発明を実施するための唯一の方式として理解されるべきではない。
【００３７】
ストリーム計算システムでは、作業ノードでのデータストリームにおけるタプル（またはデータパケットと呼ばれる）の到着時間が、その間に実行ユニットがタプルを処理している時間に一致するとき、システム内のリソース利用は最適であり、それによって、システムの処理能力を十分に使用することを支援する。タプル到着時間がタプル処理時間よりも短い場合、実行ユニットは負荷をかけられすぎており、タプルの蓄積がシステム内で発生し得ることを示す。
【００３８】
図3に示されるように、実行ユニットについて、実行ユニットでのタプルの到着時間1がその間にタプルサービスが処理される時間（すなわち、処理時間）よりも長い場合、実行ユニットは比較的アイドル状態であると示し（図3に示されるように、タプル到着時間1とタプル処理時間との間の関係）、タプル到着時間2がタプル処理時間よりも短い場合、実行ユニットは重負荷であると示す（図3に示されるように、タプル到着時間2とタプル処理時間との間の関係）。タプル到着時間は、タプルが実行ユニットに到着する平均時間間隔であり、タプルサービス処理時間は1つのタプルを処理するために実行ユニットによって必要とされる平均時間であり、タプル到着時間およびタプル処理時間は収集された作業ノード間のトラフィックに関する情報および収集された実行ユニットの処理速度情報に従って計算することによって得られる。
【００３９】
図3に示される2つのケースについて、タプル処理時間とタプル到着時間との間の一貫性を実現するために、作業ノードの並行度を調整する必要がある。タプル到着時間と作業ノードの並行度との間の操作関係は、より大きい並行度はより長いタプル到着時間を示すということである。
【００４０】
図4に示されるフローグラフは、本発明の本実施形態における最適化並行度を計算するための方法を詳細にさらに説明するための例として使用される。
【００４１】
各オペレータの並行度は、フローグラフ（すなわち、DAGグラフ）のソースから開始して一層ずつ計算され、計算順序はA、B、C、D、EおよびFである。Dopは並行度値を示し、ここで、計算式は、
【００４２】
【数１】
0006436594.tif 000002
【００４３】
である。タプル処理時間およびタプル到着はサービス処理中の統計情報に従って得られる。タプル到着時間は、アップストリームノードのタプルが送信されてからの時間に従って計算することによって得られる。例えば、図4では、作業ノードA（またはオペレータAと呼ばれる）はソースノードであり、タプル到着時間はスループットに従って得られ、すなわち、
【００４４】
【数２】
0006436594.tif 000003
【００４５】
である。図中のノードCでのタプル到着時間は、ノードAおよびノードBからのタプルの到着時間に従って計算される。ノードAの並行度は2であり、これは、ノードAが15ms内に2つのタプルを伝送することと同等であり、且つ、ノードBは15ms内に1つのタプルを送信する。従って、ノードCでのタプルの到着時間は、15ms/(1+2)=5msであり、且つ、
【００４６】
【数３】
0006436594.tif 000004
【００４７】
である。
【００４８】
最適化並行度を計算する前述の方式は、本発明の本実施形態における任意の実施方式であり、且つ、本発明の最適化並行度を計算する方式は、前述の方式に限定されない。具体的な適用環境では、異なるストリーム計算システムは異なる要件および異なる具体的なデバイスの性能を有するため、最適化並行度を計算する方式は異なる。本発明の本実施形態で提供される方法は、最適化並行度がリアルタイムの状態に従って計算された後の最適化並行度に従って、ストリーム計算システム内の処理ロジックが調整される任意のシナリオに適用可能である。
【００４９】
各作業ノードが1つまたは複数の実行ユニットを含み、作業ノードがデータストリームを処理するために呼び出されるとき、各作業ノードの最適化並行度が前述の方法に従って計算された後、各作業ノードの初期に設定された並行度が現在の処理状態に適っているかどうかが、計算された最適化並行度を使用することによって判定されてよい。各作業ノードの初期に設定された並行度が現在の処理状態に見合っていない場合、作業ノードの並行度は調整されてよく、最適化並行度に従って作業ノードのいずれかの並行度を調整することは、
作業ノードの、調整される必要がある最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除することであって、その結果、作業ノードの調整された並行度は、対応する最適化並行度と同じであることを含む。
【００５０】
最適な実施方式では、調整された並行度が最適化並行度と同じである。しかしながら、具体的な実施プロセスでは、他の客観的な条件の制約により、並行度は、従って調整されてよく、その結果、調整された並行度は、最適化並行度と関係するか、または最適化並行度に近い。調整後の具体的な効果は、作業ノードのデータ処理能力がシステム内の現在のデータ処理要件によりよく順応できることである。
【００５１】
実際に必要とされる並行度と比較すると、初期に設定される並行度は2つのケースに依存し、すなわち、初期に設定された並行度は極端に高いかまたは低い。これらの2つのケースについて、以下では、実行ユニットを削除または追加するための任意の実施方式を詳細に説明し、具体的には、以下を含む：
【００５２】
1. その実行ユニットが調整される必要がある作業ノードの最適化並行度が作業ノードの初期並行度よりも大きいとき、
制御ノードは新しい実行ユニットを作成するために使用される第1の制御命令を生成し、第1の制御命令を作業ノードに送信し、その結果、作業ノードは、第1の制御命令を受信した後、少なくとも1つの新しい実行ユニットを作成するとともに新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成し、調整の後、作業ノード内に現在含まれている実行ユニットの合計数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである。
【００５３】
新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成する具体的な実施は、
フローグラフ内の作業ノードの論理的な位置に従って、新しい実行ユニットに論理的に接続される第1のアップストリーム作業ノードと第1のダウンストリーム作業ノードとを決定することであって、ここで、第1のアップストリーム作業ノードは少なくとも1つの第1のアップストリーム実行ユニットに対応しており、且つ、第1のダウンストリーム作業ノードは、少なくとも1つの第1のダウンストリーム実行ユニットに対応している、決定することと、
第1の制御命令に従って、新しい実行ユニットと第1のアップストリーム実行ユニットとの間のデータチャネルと、新しい実行ユニットと第1のダウンストリーム実行ユニットとの間のデータチャネルとを作成することと、であってよい。
【００５４】
本実施形態では、新しい実行ユニットとアップストリーム実行ユニットとの間のデータチャネルと、新しい実行ユニットとダウンストリーム実行ユニットとの間のデータチャネルとが確立されているとき、データ欠落を回避するために、新しい実行ユニットとダウンストリーム実行ユニットとの間のデータチャネルが一般に最初に確立され、次いで、新しい実行ユニットとアップストリーム実行ユニットとの間のデータチャネルが対応して確立される。
【００５５】
2. 作業ノードの最適化並行度が作業ノードの初期並行度よりも小さいとき、
制御ノードは、作業ノードの実行ユニットを削除するために使用される第2の制御命令を生成し、第2の制御命令を作業ノードに送信し、その結果、作業ノードは、第2の制御命令を受信した後、作業ノードの少なくとも1つの実行ユニットを削除するとともに削除された実行ユニットに接続されたデータチャネルを削除し、調整の後、作業ノード内に現在含まれている実行ユニットの合計数によって表される作業ノードの並行度は、作業ノードの最適化並行度と同じである。
【００５６】
作業ノードによって実行ユニットを削除する具体的な実施ステップは、
フローグラフ内の作業ノードの論理的な位置に従って、削除されるべき実行ユニットに論理的に接続されている第2のアップストリーム作業ノードと第2のダウンストリーム作業ノードとを決定するステップであって、ここで、第2のアップストリーム作業ノードは少なくとも1つの第2のアップストリーム実行ユニットに対応しており、且つ、第2のダウンストリーム作業ノードは少なくとも1つの第2のダウンストリーム実行ユニットに対応している、ステップと、
第2のアップストリーム実行ユニットと削除されるべき実行ユニットとの間のデータチャネルと、第2のダウンストリーム実行ユニットと削除されるべき実行ユニットとの間のデータチャネルとを削除するステップと、
削除されるべき実行ユニットを削除するステップと
であってよい。
【００５７】
本実施形態では、1つまたは複数の実行ユニットが削除される必要がある。円滑なデータ処理を確実にするために、実行ユニット削除中の具体的な操作は、
削除されるべき実行ユニットとアップストリーム実行ユニットとの間のデータチャネルの接続を最初に断ち、次いで、削除されるべき実行ノードが完全に処理されていないデータを処理するのを待ち、データが完全に処理された後、削除されるべき実行ユニットとダウンストリーム実行ユニットとの間のデータチャネルを削除し、最後に、削除されるべき実行ユニットを削除することであってよい。
【００５８】
本発明の本実施形態では、実行ユニットが追加または削除されるため、その並行度が調整される作業ノードのアップストリーム作業ノードがデータを配信しているとき、データ配信ポリシーを対応して調整する必要がある。例えば、実行ユニットが追加され、処理のために追加された実行ユニットにデータを配信する必要がある。従って、ステップ204が実行された後、本発明の本実施形態で提供される方法は、
作業ノードが少なくとも1つの実行ユニットを対応して追加または削除した場合、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを対応して調整するステップ
をさらに含む。
【００５９】
本発明の本実施形態で提供される方法では、元の作業ノードと比較して、作業ノードの並行度が調整され、すなわち、実行ユニットの数を追加または削除する必要がある。実行ユニット調整の間、アップストリーム作業ノードのデータ配信ポリシーが調整されない場合、データ処理中に問題が発生し得る。
【００６０】
具体的な適用シナリオでは、ダウンストリーム実行ユニットの数および各実行ユニットの処理能力に従って、データ配信ポリシーを対応して生成する必要があり、従って、データ配信ポリシーの具体的な例は、データ配信パスと、データ配信に対応する具体的な実行コンポーネントとを含む。
【００６１】
本発明の本実施形態では、データ配信効率を改善するために、解決手段を計画する以下の2つの任意のデータ配信ポリシーが提供され、具体的には、以下を含む：
【００６２】
方式1: 2レベルのデータ配信
【００６３】
作業ノードのいずれかに対応するアップストリーム作業ノードのデータ配信ポリシーは、追加または削除された少なくとも1つの実行ユニットに従って調整される。
【００６４】
制御ノードは、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、ここで、データ配信ポリシーは、アップストリーム作業ノードがデータを配信するときの、データ受信デバイスとデータ受信時のデータ受信デバイスのデータ量とを示すために使用され、且つ、
制御ノードは、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信し、その結果、調整されたデータ配信ポリシーに従って、データパケットをダウンストリームターゲット作業ノードに配信するとき、アップストリーム作業ノードは、ターゲット作業ノードに対応するターゲット実行ユニットを決定するとともに、データパケットをターゲット実行ユニットに対応して配信する。
【００６５】
図5では、DAGグラフの断片が例として使用され、ここで、n0はアップストリームoperatorを表し、n1、n2およびn3はそれぞれ、n0のダウンストリームoperatorを表し、n0はs1およびs2の2つのストリームを送信し、ここで、n1およびn2はストリームs1にサブスクライブし、n3はストリームs2にサブスクライブする。n1の並行度は1であるとともにn1は1つのPEによって実行され、すなわち、n1はpe1によって実行され、n2の並行度は2であるとともにn2は2つのPEによって実行され、すなわち、n2はpe2およびpe3によって実行され、n3の並行度は3であるとともにn3は3つのPEによって実行され、すなわち、n3はpe4、pe5およびpe6によって実行される。
【００６６】
n0がストリームs1のtuple0（タプル）を送信するとき、第1レベルの配信が実行され、すなわち、ターゲットoperatorが選択される。図5に示されるように、本実施形態で選択され得るターゲットoperatorはn1およびn2である。次いで、第2レベルの配信がn1およびn2に対して別々に実行され、第2レベルの配信がn1に対して実行されるとき、n1の並行度は1であり、従って、tuple0はpe1に配信されると直接決定され、第2レベルの配信がn2に対して実行されるとき、n2の並行度は2であり、従って、n2に対して構成された配信ポリシーに従ってデータ配信を実行する必要がある。本実施形態ではハッシュ配信が構成されてよく、すなわち、第1の対応するハッシュ値は、tuple0のいくつかの属性フィールドに対してハッシュ計算を実行することによって得られ、次いで、並行度に従ってモジュロ演算が実行され、結果は、n2に対応するPEを選択するためにインデックス値として使用されてよい。多重同時並行がダウンストリームoperatorに対して設定され、ダウンストリームoperatorがアップストリームoperatorによって送信されるストリームにサブスクライブする場合、対応するデータ配信ポリシーが設定される必要がある。配信ポリシーは、特定の実施形態に従って拡張されてよく、例えば、対応する実施形態は、ランダムなデータ配信（すなわち、ストリームはダウンストリームoperatorに対応するPEにランダムに配信される）、全ての配信（すなわち、ストリームはダウンストリームoperatorに対応する全てのPEに配信される）およびハッシュ配信（すなわち、ストリームが配信されるべきPEが、ハッシュ値に従って、モジュロ演算を実行する方式で決定される）をサポートしてよい。
【００６７】
方式2: マルチレベルのデータ配信
【００６８】
制御ノードは、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、
制御ノードは、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信し、その結果、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、作業ノードグループからダウンストリームターゲット作業ノードを決定し、ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットをターゲット実行ユニットに対応して配信する。
【００６９】
オペレータの並行度の調整に基づいて、マルチレベルのデータ配信の解決手段が、本発明の本実施形態で提供される解決手段においてさらに提供され、このことは、オペレータの並行度を改善することができ、且つ、同時に、正確なデータ配信の効果をさらに確実にすることができる。
【００７０】
図6に示されるように、本発明で提供される方法をより詳細に説明するために、以下では、本発明における方法の適用可能な環境を参照して、本発明で提供される方法をさらに説明する。本発明の本実施形態で提供される方法は、ストリーム計算システムに適用される。ストリーム計算システムの制御ノードは、構成されたフローグラフに従って、サービスによって生成されるデータストリームを処理するために、1つまたは複数の作業ノードを呼び出し、ここで、フローグラフは各作業ノードのために事前に設定された初期並行度を含むとともに、具体的なステップは以下を含む：
【００７１】
ステップ601：作業ノードは作業ノードがデータストリームを処理する処理速度に関する情報と、作業ノードと他の作業ノードとの間のデータトラフィックに関する情報とを収集し、処理能力記述情報を生成するために、収集された処理速度情報とデータトラフィック情報とを結合し、処理能力記述情報を対応する制御ノードに送信する。
【００７２】
ステップ602：制御ノードは、各呼び出された作業ノードの処理能力記述情報を収集する。
【００７３】
ステップ603：制御ノードは、収集されたリアルタイム処理能力記述情報およびフローグラフに従って、各作業ノードの最適化並行度を決定する。
【００７４】
ステップ604：制御ノードは、各作業ノードの最適化並行度がフローグラフ内の作業ノードの初期並行度と同じであるかどうかを決定し、各作業ノードの最適化並行度がフローグラフ内の作業ノードの初期並行度と同じでない場合、最適化並行度に従って、制御命令を生成し、制御命令を作業ノードに送信する。
【００７５】
ステップ605：作業ノードは、制御命令を受信した後、制御命令に従って、作業ノード自身の並行度を調整する。
【００７６】
分散型のリアルタイムストリーム処理システムにおける各タスクの処理状態はリアルタイムで変化するという特徴について、本発明の本実施形態で提供される方法では、各作業ノードの処理状態がシステム操作プロセスにおいてリアルタイムで収集され、次いで、作業ノードの並行度は、リアルタイムの処理状態に従って調整され、その結果、作業ノードの処理能力はサービス処理のリアルタイムの要件を満たすことができ、それによって、ストリーム計算システムのデータ処理能力およびリソース利用を動的に改善するという効果を達成する。
【００７７】
図7に示されるように、本発明は、前述の方法に従って、ストリーム計算システムにおける制御ノード700をさらに提供し、ここで、ストリーム計算システムは、制御ノードと複数の作業ノードとを含み、制御ノードは、
構成された各作業ノードの並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出すように構成される呼び出しユニット701と、
1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集するように構成される情報収集ユニット702と、
情報収集ユニット702によって収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定するように構成される計算ユニット703と、
1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの初期並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの初期並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するように構成される調整ユニット704と
を含む。
【００７８】
任意で、各作業ノードは、1つまたは複数の実行ユニットを含むとともに、各作業ノードは、データストリームを処理するために作業ノード自身の実行ユニットを呼び出し、作業ノードの並行度は作業ノード内に含まれる実行ユニットの数を示し、作業ノードの最適化並行度に従って、作業ノードの並行度を調整する面では、調整ユニット704は、具体的には、
作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除するように構成され、その結果、作業ノードの調整された並行度は、対応する最適化並行度と一致する。
【００７９】
実際に必要とされる並行度と比較すると、初期に設定される並行度は、初期に設定された並行度は極端に高いかまたは低いという2つのケースに依存する。作業ノードの最適化並行度に従って、少なくとも1つの実行ユニットを作業ノードに追加するか、または、作業ノードの少なくとも1つの実行ユニットを削除する面では、調整ユニット704は、
作業ノードの最適化並行度が作業ノードの初期並行度よりも大きいとき、実行ユニットを追加するために使用される第1の制御命令を生成し、第1の制御命令を作業ノードに送信するように構成される第1の調整モジュールであって、その結果、作業ノードは、第1の制御命令を受信した後、少なくとも1つの新しい実行ユニットを作成するとともに新しい実行ユニットと別の実行ユニットとの間のデータチャネルを作成する、第1の調整モジュールと、
作業ノードの最適化並行度が作業ノードの初期並行度よりも小さいとき、作業ノードの実行ユニットを削除するために使用される第2の制御命令を生成し、第2の制御命令を作業ノードに送信するように構成される第2の調整モジュールであって、その結果、作業ノードは、第2の制御命令を受信した後、作業ノードの少なくとも1つの実行ユニットを削除するとともに削除された実行ユニットに接続されたデータチャネルを削除する、第2の調整モジュールと
を含む。
【００８０】
任意で、オペレータの並行度を改善することに加えて、本発明の本実施形態で提供される解決手段は正確なデータ配信を確実にする必要があり、従って、制御ノードは、
追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するように構成される第1の配信ポリシー調整ユニット705であって、その結果、ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定した後、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、データパケットをターゲット実行ユニットに対応して配信し、ここで、データ配信ポリシーは、アップストリーム作業ノードがデータを配信するときの、データ受信デバイスと、データ受信時のデータ受信デバイスのデータ量とを示すために使用される、第1の配信ポリシー調整ユニット705と、
追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するように構成される第2の配信ポリシー調整ユニット706であって、その結果、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、作業ノードグループからダウンストリームターゲット作業ノードを決定し、ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットをターゲット実行ユニットに対応して配信する、第2の配信ポリシー調整ユニット706とをさらに含む。
【００８１】
本発明の本実施形態で提供されるストリーム計算システムにおける制御ノード700は、前述の方法の実施形態で説明されるデータ処理方法を実施するために使用される。具体的な実施の詳細については、前述の方法の実施形態に対して参照が行われることができ、且つ、詳細はここでは再び説明されない。
【００８２】
本発明の本実施形態で提供されるストリーム計算システムにおける制御ノードは、リアルタイムの各作業ノードの処理状態をストリーム計算システムの操作プロセスにおいて収集し、次いで、リアルタイムの処理状態に従って作業ノードの並行度を調整し、その結果、作業ノードの処理能力はサービス処理のリアルタイムの要件を満たすことができ、それによって、ストリーム計算システムのデータ処理能力およびリソース利用を動的に改善するという効果を達成する。
【００８３】
図8に示されるように、前述の実施形態で提供されるデータ処理方法に基づくと、本発明の実施形態はストリーム計算システム800をさらに提供し、ここで、ストリーム計算システム800は制御ノード801と複数の作業ノード802とを含む。
【００８４】
制御ノード801は、構成されたストリーム計算システム内の各作業ノード802の並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、サービスによって生成されるデータストリームを処理するために呼び出すように構成される。
【００８５】
作業ノード802は、サービスによって生成されるデータストリームを処理するために、制御ノード801によって呼び出されるように構成される。
【００８６】
制御ノード801は、1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集し、収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するようにさらに構成される。
【００８７】
好ましくは、作業ノードは1つまたは複数の実行ユニットを含み、作業ノードがデータストリームを処理するために呼び出されたとき、具体的には、作業ノード内に含まれる実行ユニットはデータストリームを処理し、作業ノードの並行度は作業ノード内に含まれる実行ユニットの数を示し、作業ノードの最適化並行度に従って、作業ノードの並行度を調整する面では、制御ノード801は、具体的には、
制御命令を作業ノード802に送信するように構成され、ここで、制御命令は、作業ノード802の最適化並行度に従って生成される。
【００８８】
対応して、作業ノード802は、制御命令に従って、少なくとも1つの実行ユニットを追加するか、または、作業ノード802の少なくとも1つの実行ユニットを削除するようにさらに構成され、その結果、作業ノード802内に現在含まれている実行ユニットの数によって表される作業ノード802の並行度は、作業ノード802の最適化並行度と同じである。
【００８９】
好ましくは、制御ノード801は、追加または削除された少なくとも1つの実行ユニットに従って、作業ノード802に対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するようにさらに構成され、その結果、ダウンストリームターゲット作業ノードに対応するターゲット実行ユニットを決定した後、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、データパケットをターゲット実行ユニットに対応して配信し、ここで、データ配信ポリシーは、アップストリーム作業ノードがデータを配信するときの、データ受信デバイスと、データ受信時のデータ受信デバイスのデータ量とを示すために使用される。
【００９０】
好ましくは、制御ノード801は、追加または削除された少なくとも1つの実行ユニットに従って、作業ノードに対応するアップストリーム作業ノードのデータ配信ポリシーを調整し、調整されたデータ配信ポリシーをアップストリーム作業ノードに送信するようにさらに構成され、その結果、アップストリーム作業ノードは、調整されたデータ配信ポリシーに従って、ターゲット作業ノードが属する、少なくとも1つの作業ノードを含む作業ノードグループを決定し、作業ノードグループからダウンストリームターゲット作業ノードを決定し、ターゲット作業ノードに対応するターゲット実行ユニットを決定した後、データパケットをターゲット実行ユニットに対応して配信する。
【００９１】
本発明の本実施形態で提供されるストリーム計算システムによると、各作業ノードの処理速度情報と作業ノード間のトラフィックに関する情報とがシステム操作プロセスにおいてリアルタイムで収集され、作業ノードの並行度は、収集されたリアルタイムの情報に従って調整され、その結果、作業ノードの処理能力はサービス処理のリアルタイムの要件を満たすことができ、それによって、ストリーム計算システムのデータ処理能力およびリソース利用を動的に改善するという効果を達成する。
【００９２】
図9に示されるように、本発明は、前述の実施形態におけるデータ処理方法を実行するように構成される制御ノードをさらに提供し、ここで、制御ノードは少なくとも1つのプロセッサ901（例えば、CPU）、少なくとも1つのネットワークインタフェースまたは他の通信インタフェース902、メモリ903およびこれらの装置間の接続および通信を実施するように構成される少なくとも1つの通信バス904を含む。プロセッサ901は、メモリ903内に記憶される実行可能なモジュール、例えば、コンピュータプログラムを実行するように構成される。メモリ903は、高速ランダムアクセスメモリ（RAM: Random Access Memory）を含んでよいとともに、不揮発性メモリ（non-volatile memory）、例えば、少なくとも1つのディスクメモリをさらに含んでよい。少なくとも1つのネットワークインタフェース902（ケーブル付きまたはケーブル無し）を介して、制御ノードは少なくとも1つの他のネットワーク要素との通信および少なくとも1つの他のネットワーク要素への接続を実施し、ここで、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどが使用されてよい。
【００９３】
いくつかの実施方式では、メモリはプログラム9031を記憶し、ここで、プログラムは、構成された各作業ノードの並行度に従って、複数の作業ノードの1つまたは複数の作業ノードを、データストリームを処理するために呼び出し、1つまたは複数の作業ノードの各作業ノードと他の作業ノードとの間のデータトラフィックに関する情報と、1つまたは複数の作業ノードの各作業ノードの処理速度情報とを収集し、収集されたデータトラフィック情報と処理速度情報とに従って、1つまたは複数の作業ノードの各作業ノードの最適化並行度を決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じであるかどうかを別々に決定し、1つまたは複数の作業ノードの各作業ノードの最適化並行度が作業ノードの並行度と同じでない場合、作業ノードの最適化並行度に従って、作業ノードの並行度を調整するために、プロセッサによって実行されてよい。
【００９４】
本願の実施形態における1つまたは複数の前述の技術的解決手段は、少なくとも以下の技術的効果を有する：
【００９５】
分散型のリアルタイムストリーム処理システムにおける各タスクの処理状態はリアルタイムで変化するという特徴について、本発明の実施形態で提供される方法では、各作業ノードの処理状態がシステム操作プロセスにおいてリアルタイムで収集され、次いで、作業ノードの並行度は、リアルタイムの処理状態に従って調整され、その結果、作業ノードの処理能力はサービス処理のリアルタイムの要件を満たすことができ、それによって、ストリーム計算システムのデータ処理能力およびリソース利用を動的に改善するという効果を達成する。
【００９６】
本発明で説明される方法は、実施形態の説明で記載される実施形態に限定されない。本発明の技術的解決手段に従って当業者によって得られる他の実施方式は、本発明の技術革新範囲に依然として含まれる。
【００９７】
明らかに、当業者は、本発明の精神および範囲を逸脱することなく、本発明に対して様々な修正および変更を行うことができる。本発明は、それらが以下の請求項およびそれらの均等技術によって定義される保護範囲に包含される限り、これらの修正および変更を網羅することを意図される。
【符号の説明】
【００９８】
701  呼び出しユニット
702  情報収集ユニット
703  計算ユニット
704  調整ユニット
705  第1の配信ポリシー調整ユニット
706  第2の配信ポリシー調整ユニット
801  制御ノード
802  作業ノード1~4
90  制御ノード
901  プロセッサ
902  ネットワークインタフェース
903  メモリ
9031  プログラム
【図１】
0006436594.tif 000005
【図２】
0006436594.tif 000006
【図３】
0006436594.tif 000007
【図４】
0006436594.tif 000008
【図５】
0006436594.tif 000009
【図６】
0006436594.tif 000010
【図７】
0006436594.tif 000011
【図８】
0006436594.tif 000012
【図９】
0006436594.tif 000013