IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許7485590制御装置、情報処理システム、制御方法及びコンピュータプログラム
<>
  • 特許-制御装置、情報処理システム、制御方法及びコンピュータプログラム 図1
  • 特許-制御装置、情報処理システム、制御方法及びコンピュータプログラム 図2
  • 特許-制御装置、情報処理システム、制御方法及びコンピュータプログラム 図3
  • 特許-制御装置、情報処理システム、制御方法及びコンピュータプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-08
(45)【発行日】2024-05-16
(54)【発明の名称】制御装置、情報処理システム、制御方法及びコンピュータプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240509BHJP
【FI】
G06F9/50 120A
【請求項の数】 13
(21)【出願番号】P 2020197240
(22)【出願日】2020-11-27
(65)【公開番号】P2022085510
(43)【公開日】2022-06-08
【審査請求日】2023-02-22
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100114937
【弁理士】
【氏名又は名称】松本 裕幸
(72)【発明者】
【氏名】森澤 雄太
【審査官】田中 幸雄
(56)【参考文献】
【文献】特表2017-533502(JP,A)
【文献】特開2017-107274(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、
アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、
複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プール部の所要のプールサイズを算出する所要プールサイズ算出部と、を備え、
前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに基づいて、自己のプールサイズを変え、
前記所要プールサイズ算出部は、前記複数のアプリケーションを対象にして、要求遅延を満たすことができないデータ量の総和の期待値が予めユーザによって設定された閾値を下回るように、前記プール部の所要のプールサイズを算出する、
制御装置。
【請求項2】
前記所要プールサイズ算出部は、プールサイズ候補毎に、各トラヒック増加パターンについて要求遅延を満たすことができないデータ量の総和を算出し、当該算出された総和から前記期待値を算出し、当該算出された前記期待値が前記閾値を下回るプールサイズ候補を前記プール部の所要のプールサイズに決定する、
請求項に記載の制御装置。
【請求項3】
コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、
アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、
複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プール部の所要のプールサイズを算出する所要プールサイズ算出部と、を備え、
前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに基づいて、自己のプールサイズを変え、
前記所要プールサイズ算出部は、前記複数のアプリケーション毎に、前記プール部の所要のプールサイズの算出対象の時間幅に少なくとも1回は突発的にトラヒックの増加が発生する確率と追加の計算リソース量の平均値とに基づいて追加の計算リソース量の期待値を算出し、当該算出された各アプリケーションの期待値のうち最大の期待値から前記プール部の所要のプールサイズを決定する、
制御装置。
【請求項4】
コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、
アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、
複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プール部の所要のプールサイズを算出する所要プールサイズ算出部と、を備え、
前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに基づいて、自己のプールサイズを変え、
前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに対して現在のプールサイズが不足する場合に、コンピュータ上で起動された状態なっている実行ノードを追加してプールする、
制御装置。
【請求項5】
コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、
アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、
を備え、
前記割当部は、アプリケーションからの要求において、
至急フラグがオンされている場合に、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる、
一方、至急フラグがオフされている場合には、前記プール部にプールされている実行ノード以外の他の実行ノードを前記アプリケーションに割り当てる、
制御装置。
【請求項6】
前記割当部は、要求遅延を満たせないデータ量が少なくなるように、実行ノードの割り当てを行う、
請求項1からのいずれか1項に記載の制御装置。
【請求項7】
前記割当部は、要求遅延を満たせないアプリケーションの個数最も少なくなるように、実行ノードの割り当てを行う、
請求項1からのいずれか1項に記載の制御装置。
【請求項8】
コンピュータ上で起動された状態になっている実行ノードと、
請求項1からのいずれか1項に記載の制御装置と、
を備える情報処理システム。
【請求項9】
制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、
前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、
前記制御装置が、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プールステップの所要のプールサイズを算出する所要プールサイズ算出ステップと、を含み、
前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに基づいて、自己のプールサイズを変え、
前記所要プールサイズ算出ステップは、前記複数のアプリケーションを対象にして、要求遅延を満たすことができないデータ量の総和の期待値が予めユーザによって設定された閾値を下回るように、前記プールステップの所要のプールサイズを算出する、
制御方法。
【請求項10】
制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、
前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、
前記制御装置が、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プールステップの所要のプールサイズを算出する所要プールサイズ算出ステップと、を含み、
前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに基づいて、自己のプールサイズを変え、
前記所要プールサイズ算出ステップは、前記複数のアプリケーション毎に、前記プールステップの所要のプールサイズの算出対象の時間幅に少なくとも1回は突発的にトラヒックの増加が発生する確率と追加の計算リソース量の平均値とに基づいて追加の計算リソース量の期待値を算出し、当該算出された各アプリケーションの期待値のうち最大の期待値から前記プールステップの所要のプールサイズを決定する、
制御方法。
【請求項11】
制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、
前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、
前記制御装置が、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プールステップの所要のプールサイズを算出する所要プールサイズ算出ステップと、を含み、
前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに基づいて、自己のプールサイズを変え、
前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに対して現在のプールサイズが不足する場合に、コンピュータ上で起動された状態なっている実行ノードを追加してプールする、
制御方法。
【請求項12】
制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、
前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、を含み、
前記割当ステップは、アプリケーションからの要求において、
至急フラグがオンされている場合に、前記プールステップにプールされている実行ノードを前記アプリケーションに割り当てる、
一方、至急フラグがオフされている場合には、前記プールステップにプールされている実行ノード以外の他の実行ノードを前記アプリケーションに割り当てる、
制御方法。
【請求項13】
請求項9から12のいずれか1項に記載の制御方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、情報処理システム、制御方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、データが発生した時に所定のアプリケーションにより逐次にデータ処理を実行するストリーム処理が知られている。ストリーム処理によれば、逐次に発生するデータに対してリアルタイムに集計や分析等の処理を行うことができる。ストリーム処理を実行する情報処理技術として例えば特許文献1や非特許文献1に記載の技術が知られている。特許文献1に記載の従来技術では、スイッチがデータの一次処理を実行し、その実行結果をストリームクラスタへ転送している。スイッチはサーバから受領した記述子に基づいてストリームの処理を実行する。非特許文献1には、アプリケーションによるストリーム処理を実行する「Worker Node」と、アプリケーションのジョブのスケジューリングを行う「Driver Program」と、リソースを管理する「Cluster Manager」とを備える分散ストリーム処理システムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第5802215号公報
【非特許文献】
【0004】
【文献】Apache Spark、“Cluster Mode Overview”、インターネット<URL:https://spark.apache.org/docs/latest/cluster-overview.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した分散ストリーム処理システムでは、同じストリーム処理を実行する複数の「Worker Node」に負荷を分散して大量のデータをリアルタイムに処理することが可能である。ここで、ストリーム処理への将来の入力データ量が現在の処理能力を超えると予測された場合、新規に「Worker Node」を起動して追加することが考えられる。しかしながら、将来の入力データ量が突発的に増大する場合には、新規に「Worker Node」を起動して追加するだけの時間的余裕がない可能性がある。そして、新規に「Worker Node」を起動して追加することが時間的に間に合わないと、突発的に増大した入力データを処理することができない。
【0006】
本発明は、このような事情を考慮してなされたものであり、その目的は、ストリーム処理への入力データ量が突発的に増大することに対処することを図ることにある。
【課題を解決するための手段】
【0007】
(1)本発明の一態様は、コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プール部の所要のプールサイズを算出する所要プールサイズ算出部と、を備え、前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに基づいて、自己のプールサイズを変え、前記所要プールサイズ算出部は、前記複数のアプリケーションを対象にして、要求遅延を満たすことができないデータ量の総和の期待値が予めユーザによって設定された閾値を下回るように、前記プール部の所要のプールサイズを算出する、制御装置である。
)本発明の一態様は、前記所要プールサイズ算出部は、プールサイズ候補毎に、各トラヒック増加パターンについて要求遅延を満たすことができないデータ量の総和を算出し、当該算出された総和から前記期待値を算出し、当該算出された前記期待値が前記閾値を下回るプールサイズ候補を前記プール部の所要のプールサイズに決定する、上記()の制御装置である。
(3)本発明の一態様は、コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プール部の所要のプールサイズを算出する所要プールサイズ算出部と、を備え、前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに基づいて、自己のプールサイズを変え、前記所要プールサイズ算出部は、前記複数のアプリケーション毎に、前記プール部の所要のプールサイズの算出対象の時間幅に少なくとも1回は突発的にトラヒックの増加が発生する確率と追加の計算リソース量の平均値とに基づいて追加の計算リソース量の期待値を算出し、当該算出された各アプリケーションの期待値のうち最大の期待値から前記プール部の所要のプールサイズを決定する、制御装置である。
(4)本発明の一態様は、コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プール部の所要のプールサイズを算出する所要プールサイズ算出部と、を備え、前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに基づいて、自己のプールサイズを変え、前記プール部は、前記所要プールサイズ算出部が算出した結果のプールサイズに対して現在のプールサイズが不足する場合に、コンピュータ上で起動された状態なっている実行ノードを追加してプールする、制御装置である。
(5)本発明の一態様は、コンピュータ上で起動された状態になっている実行ノードをプールするプール部と、アプリケーションからの要求に応じて、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる割当部と、を備え、前記割当部は、アプリケーションからの要求において、至急フラグがオンされている場合に、前記プール部にプールされている実行ノードを前記アプリケーションに割り当てる、一方、至急フラグがオフされている場合には、前記プール部にプールされている実行ノード以外の他の実行ノードを前記アプリケーションに割り当てる、制御装置である。
)本発明の一態様は、前記割当部は、要求遅延を満たせないデータ量が少なくなるように、実行ノードの割り当てを行う、上記(1)から()のいずれかの制御装置である。
)本発明の一態様は、前記割当部は、要求遅延を満たせないアプリケーションの個数最も少なくなるように、実行ノードの割り当てを行う、上記(1)から()のいずれかの制御装置である。
【0008】
)本発明の一態様は、コンピュータ上で起動された状態になっている実行ノードと、上記(1)から()のいずれかの制御装置と、を備える情報処理システムである。
【0009】
)本発明の一態様は、制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、前記制御装置が、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プールステップの所要のプールサイズを算出する所要プールサイズ算出ステップと、を含み、前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに基づいて、自己のプールサイズを変え、前記所要プールサイズ算出ステップは、前記複数のアプリケーションを対象にして、要求遅延を満たすことができないデータ量の総和の期待値が予めユーザによって設定された閾値を下回るように、前記プールステップの所要のプールサイズを算出する、制御方法である。
(10)本発明の一態様は、制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、前記制御装置が、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プールステップの所要のプールサイズを算出する所要プールサイズ算出ステップと、を含み、前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに基づいて、自己のプールサイズを変え、前記所要プールサイズ算出ステップは、前記複数のアプリケーション毎に、前記プールステップの所要のプールサイズの算出対象の時間幅に少なくとも1回は突発的にトラヒックの増加が発生する確率と追加の計算リソース量の平均値とに基づいて追加の計算リソース量の期待値を算出し、当該算出された各アプリケーションの期待値のうち最大の期待値から前記プールステップの所要のプールサイズを決定する、制御方法である。
(11)本発明の一態様は、制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、前記制御装置が、複数のアプリケーションについての過去に突発的に発生したトラヒックの増加に関する統計情報に基づいて、前記プールステップの所要のプールサイズを算出する所要プールサイズ算出ステップと、を含み、前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに基づいて、自己のプールサイズを変え、前記プールステップは、前記所要プールサイズ算出ステップが算出した結果のプールサイズに対して現在のプールサイズが不足する場合に、コンピュータ上で起動された状態なっている実行ノードを追加してプールする、制御方法である。
(12)本発明の一態様は、制御装置が、コンピュータ上で起動された状態になっている実行ノードをプールするプールステップと、前記制御装置が、アプリケーションからの要求に応じて、前記プールステップでプールされている実行ノードを前記アプリケーションに割り当てる割当ステップと、を含み、前記割当ステップは、アプリケーションからの要求において、至急フラグがオンされている場合に、前記プールステップにプールされている実行ノードを前記アプリケーションに割り当てる、一方、至急フラグがオフされている場合には、前記プールステップにプールされている実行ノード以外の他の実行ノードを前記アプリケーションに割り当てる、制御方法である。
【0010】
13)本発明の一態様は、上記(9)から(12)のいずれかの制御方法をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【0011】
本発明によれば、ストリーム処理への入力データ量が突発的に増大することに対処することができるという効果が得られる。
【図面の簡単な説明】
【0012】
図1】一実施形態に係る情報処理システムの構成例を示す図である。
図2】一実施形態に係る実行ノードプール管理テーブルの構成例を示す図である。
図3】一実施形態に係る制御方法の手順の例を示すシーケンス図である。
図4】一実施形態に係る実行ノード割当方法の手順の例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、一実施形態に係る情報処理システム1の構成例を示す図である。図1において、情報処理システム1は、制御装置10と、アプリケーションクラスタ(アプリケーション群)100と、サーバシステム200とを備える。これらは通信により情報を送受する。
【0014】
制御装置10は、アプリケーションクラスタ100に対する計算リソース(計算資源)の割り当てに関する制御を行う。アプリケーションクラスタ100は、複数のアプリケーションapp1,app2,app3,・・・が属するクラスタである。以下、アプリケーションapp1,app2,app3,・・・を特に区別しないときはアプリケーションappと称する。
【0015】
アプリケーションappは、ストリーム処理を行うアプリケーションである。本実施形態では、各アプリケーションappは、異なるデータに対して異なるストリーム処理を実行する。言い換えると、同一データに対してストリーム処理を行うアプリケーションappは全て同一のものとみなす。また、各アプリケーションappには、それぞれ許容されるストリーム処理の上限遅延が要求遅延として設定される。そして、情報処理システム1において、その要求遅延を超過するデータの割合が一定の閾値を下回ることが要求される。
【0016】
サーバシステム200は、一又は複数のサーバコンピュータ210と、サーバ管理装置220とを備える。サーバシステム200は、例えば、クラウドコンピューティングを実現するシステムであってもよい。また、制御装置10が、サーバシステム200によるクラウドコンピューティングによって実現されてもよい。
【0017】
一のサーバコンピュータ210において、一又は複数の実行ノード230が存在し得る。実行ノード230は、サーバコンピュータ210上で起動された状態になっているノードである。実行ノード230には、自己が存在するサーバコンピュータ210の計算リソースが割り当てられている。計算リソースとして、CPU(Central Processing Unit:中央演算処理装置)やメモリやストレージやネットワークなどがある。本実施形態では、各実行ノード230に割り当てられる計算リソース量は同一である。実行ノード230は、自己に割り当てられている計算リソースを使用して情報処理を実行することができる状態(起動された状態)にある。
【0018】
サーバ管理装置220は、各サーバコンピュータ210の計算リソースを管理する。サーバ管理装置220は、各サーバコンピュータ210に対して、実行ノード230の起動及び解放を制御する。サーバコンピュータ210は、サーバ管理装置220から実行ノード230の起動命令を受けると、新規に起動する実行ノード230のために自己の計算リソースを確保して新規に実行ノード230を起動する。サーバコンピュータ210は、サーバ管理装置220から実行ノード230の解放命令を受けると、解放対象の実行ノード230に割り当てていた計算リソースを解放して当該実行ノード230の起動を停止する。
【0019】
制御装置10は、プール部11と、割当部12と、所要プールサイズ算出部13と、メトリスク収集部14とを備える。プール部11は、実行ノードプール管理テーブル20を備える。
【0020】
制御装置10の機能は、制御装置10がCPU及びメモリ等のコンピュータハードウェアを備え、CPUがメモリに格納されたコンピュータプログラムを実行することにより実現される。なお、制御装置10として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。例えば、制御装置10は、インターネット等の通信ネットワークに接続されるサーバコンピュータを使用して構成されてもよい。また、制御装置10の各機能はクラウドコンピューティングにより実現されてもよい。また、制御装置10は、単独のコンピュータにより実現するものであってもよく、又は制御装置10の機能を複数のコンピュータに分散させて実現するものであってもよい。
【0021】
プール部11は、サーバコンピュータ210上で起動された状態になっている実行ノード230をプールする機能を有する。プール部11は、所定のプールサイズを満たす量の実行ノード230をプールする。
【0022】
プール部11は、実行ノードプール管理テーブル20を使用して、プール対象の実行ノード230を管理する。プール部11は、プールサイズ分の実行ノード230を実行ノードプール管理テーブル20に登録する。
【0023】
実行ノード230には、サーバコンピュータ210の一定量の計算リソースが割り当てられている。したがって、プール部11は、サーバコンピュータ210上で情報処理を実行することができる状態(起動された状態)になっている一定量の計算リソースを割り当て単位としてプールサイズ分をアプリケーションクラスタ100に対して予め確保していると言える。
【0024】
割当部12は、アプリケーションappからの要求に応じて、実行ノード230の割り当てを行う。割当部12がアプリケーションappに割り当てる実行ノード230として、プール部11にプールされている実行ノード230(実行ノードプール管理テーブル20に登録されている実行ノード230)と、プール部11にプールされている実行ノード230以外の実行ノード230(実行ノードプール管理テーブル20に登録されていない実行ノード230)とがある。
【0025】
所要プールサイズ算出部13は、プール部11の所要のプールサイズを算出する。
【0026】
メトリスク収集部14は、メトリクスを収集する。メトリスク収集部14は収集したメトリクスを定期的に所要プールサイズ算出部13へ通知する。メトリスク収集部14が収集するメトリスクは、アプリケーションappに割り当てられた実行ノード230におけるメトリスクであって、CPUやメモリやストレージやネットワーク等の計算リソースの利用率、処理時間、入力データ量などを示す情報である。また、メトリスク収集部14は、アプリケーションappに割り当てられた実行ノード230へ入力される入力データの突発的なトラヒックの増加を記録し所要プールサイズ算出部13へ通知する。
【0027】
図2は、本実施形態に係る実行ノードプール管理テーブル20の構成例を示す図である。実行ノードプール管理テーブル20には、サーバコンピュータ210上で起動された状態になっている実行ノード230がプールサイズ分だけ登録される。図2の例では、プールサイズは「5」であって、5個の実行ノード230(実行ノード識別子(実行ノードID)がID1,ID2,ID3,ID4,ID5)が実行ノードプール管理テーブル20に登録されている。そのうち、実行ノードID「ID1」の実行ノード230は、アプリケーション識別子(アプリケーションID)「appid1」のアプリケーションappに割り当てられている。また、実行ノードID「ID2」の実行ノード230は、アプリケーションID「appid3」のアプリケーションappに割り当てられている。一方、実行ノードID「ID3」,「ID4」,「ID5」の実行ノード230は、アプリケーションappに割り当てられていない「未割当」の状態である。
【0028】
次に、図3を参照して本実施形態に係る制御方法を説明する。図3は、本実施形態に係る制御方法の手順の例を示すシーケンス図である。
【0029】
(ステップS1) 制御装置10は、サーバ管理装置220に対して、プールサイズ分の実行ノード230を要求する。
【0030】
(ステップS2) サーバ管理装置220は、制御装置10からの要求に応じて、一又は複数のサーバコンピュータ210に対して、プールサイズ分の実行ノード230の起動命令を出す。サーバコンピュータ210は、サーバ管理装置220からの起動命令に応じて、新規に実行ノード230を起動する。
【0031】
(ステップS3) 制御装置10においてプール部11は、サーバコンピュータ210上で起動されたプールサイズ分の実行ノード230を実行ノードプール管理テーブル20に登録する。これにより、プール部11は、プールサイズ分の実行ノード230をプールしていることになる。
【0032】
(ステップS4) アプリケーションappは、必要に応じて、制御装置10に対して、計算リソースの割り当てを要求する。アプリケーションappは、例えば、自己のストリーム処理の対象である入力データについてトラヒックの将来の動向(増加又は減少)を予測し、予測結果がトラヒックの増加である場合に、計算リソースの割り当てを要求する。アプリケーションappは、トラヒックの将来の動向として、短期的な動向と中長期的な動向とを予測する。アプリケーションappは、トラヒックの将来の動向の予測結果が短期的な増加である場合に、制御装置10への計算リソース割り当て要求において至急フラグをオンにする。
【0033】
(ステップS5) 制御装置10は、アプリケーションappからの計算リソース割り当て要求に応じて、実行ノード230の割当を行う。このとき、制御装置10は、アプリケーションappからの計算リソース割り当て要求において至急フラグがオンされているか否かで、当該アプリケーションappに対して、プールしている実行ノード230を割り当てるか否かを決定する。
【0034】
ここで、図4を参照して、本実施形態に係る実行ノード割当方法を説明する。図4は、本実施形態に係る実行ノード割当方法の手順の例を示すフローチャートである。
【0035】
(ステップS11) 制御装置10は、アプリケーションappから計算リソース割り当て要求を受信する。
【0036】
(ステップS12) 制御装置10において割当部12は、アプリケーションappから受信した計算リソース割り当て要求において至急フラグがオンされているか否かを確認する。この確認の結果、至急フラグがオンされている場合にはステップS13に進み、至急フラグがオンされていない場合にはステップS14に進む。
【0037】
(ステップS13) 割当部12は、アプリケーションappからの計算リソース割り当て要求において至急フラグがオンされていると、プール部11にプールされている実行ノード230(実行ノードプール管理テーブル20に登録されている実行ノード230)のうち「未割当」の状態の実行ノード230を当該アプリケーションappに割り当てる。この割り当て処理では、割当部12は、プール部11に対して実行ノード230の割り当て要求を行う。プール部11は、割当部12からの実行ノード230の割り当て要求に応じて、実行ノードプール管理テーブル20において、当該割り当て対象の「未割当」の状態の実行ノード230の実行ノードIDに関連付けて当該割当先のアプリケーションappのアプリケーションIDを記録する。プール部11は、当該割り当て対象の実行ノード230の実行ノードIDを割当部12へ応答する。割当部12は、当該割り当て対象の実行ノード230の実行ノードIDを当該割当先のアプリケーションappへ応答する。アプリケーションappは、当該応答された実行ノードIDによって、自己に割り当てられた実行ノード230を認識する。
【0038】
(ステップS14) 割当部12は、アプリケーションappからの計算リソース割り当て要求において至急フラグがオフされていると、プール部11にプールされている実行ノード230以外の実行ノード230(実行ノードプール管理テーブル20に登録されていない実行ノード230)を当該アプリケーションappに割り当てる。この割り当て処理では、割当部12は、サーバ管理装置220に対して実行ノード230を要求する。割当部12は、サーバ管理装置220によって新規に起動された実行ノード230の実行ノードIDを当該割当先のアプリケーションappへ応答する。アプリケーションappは、当該応答された実行ノードIDによって、自己に割り当てられた実行ノード230を認識する。
【0039】
説明を図3に戻す。
(ステップS6) アプリケーションappは、制御装置10により割り当てられた実行ノード230を、自己のストリーム処理を実行するノードとして組み込む。これにより、当該実行ノードIDは、当該アプリケーションappのストリーム処理を開始する。
【0040】
[所望プールサイズ算出方法]
次に、所要プールサイズ算出部13がプール部11の所要のプールサイズを算出する方法について説明する。
【0041】
本実施形態に係る所望プールサイズ算出方法におけるパラメータを以下に説明する。
・P:プールサイズ
・W:プールサイズPを算出する対象の時間幅。一の時間幅Wにおいて、プールサイズPは一定である。
・An,n=[1,2,・・・,N]:アプリケーションapp
・En:アプリケーションapp(An)に対して時間幅Wにおいてトラヒックの突発的な増加が発生する期待値
・Rn:アプリケーションapp(An)に対して時間幅Wにおいてトラヒックの突発的な増加が発生したときに、アプリケーションapp(An)のストリーム処理に要求される遅延時間条件(要求遅延)を満たすために必要になる追加の計算リソース量の平均値
・Tn:アプリケーションapp(An)に対して時間幅Wにおいてトラヒックの突発的な増加が発生したときに、追加の計算リソースが必要になる期間
・rn:アプリケーションapp(An)が有する計算リソース量
・Dn:アプリケーションapp(An)が単位時間あたりにストリーム処理可能なデータ量
・「Dn=Xn(rn)」:計算リソース量rnとデータ量Dnとの間の関係式
【0042】
ここでは、本実施形態に係る所望プールサイズ算出方法の簡単化のために以下の前提条件を用いる。
・期間Tnはアプリケーションapp(An)の種類によらず等しい値Tである(つまり、期間Tn=T)。そして、時間幅Wには「W/T」個の時間スロットを設ける。その「W/T」個の時間スロットにおいて各アプリケーションapp(An)の突発的なトラヒックの増加がランダムに期待値En回発生する。
・各時間スロットにおける各アプリケーションapp(An)の突発的なトラヒックの増加が発生する確率は一定である。
・隣接した時間スロット間で連続して突発的なトラヒックの増加が発生した場合、時間的に前の時間スロットでプール部11から割り当てられた計算リソース(実行ノード230)が、当該時間スロットの終了時にプール部11へ返却されて、後の時間スロットですぐに割り当て可能になる。
・同一アプリケーションapp(An)の突発的なトラヒックの増加は同時に重複して発生することがあり得る。例えば、「期待値En=2」である場合、同じ時間スロットで2つのトラヒック増加が発生すると、2×Rnの追加の計算リソースが必要になる。
・複数のアプリケーションapp(An)が入力データ提供元として同一のデータソースを参照している場合、それらの複数のアプリケーションapp(An)を単一のものとして扱い(統合して)計算する。例えば、アプリケーションapp(A1)とアプリケーションapp(A2)とが入力データ提供元として同一のデータソースを参照している場合、「統合後の期待値E12’=E1+E2」であり、また「統合後の追加の計算リソース量の平均値R12’=R1+R2」である。
【0043】
所要プールサイズ算出部13は、過去に突発的に発生したトラヒックの増加に関する統計情報をメトリスク収集部14から取得し、当該統計情報に基づいて期待値En、期間T及び追加の計算リソース量の平均値Rnを計算する。期待値Enの計算では、現在の算出対象の時間幅Wを含む期間で過去に発生した突発的なトラヒックの増加の回数を計数し、当該計数結果の回数を当該期間の日数で除算し、当該除算の結果の商が期待値Enである。期間Tの計算では、期間Tnの統計情報から所定の計算式により期間Tを求める。追加の計算リソース量の平均値Rnの計算では、統計情報からトラヒックの増加量の平均値を求め、求められたトラヒックの増加量の平均値から所定の変換式により追加の計算リソース量の平均値Rnに変換する。また、関係式「Dn=Xn(rn)」が統計情報から直接求められてもよい。なお、関係式「Dn=Xn(rn)」については、一般に線形の関係を有するので、理論的な計算式により算出されてもよい。
【0044】
また、ここでの割当部12によるプール部11からの計算リソースの割当の方法として以下の計算リソース割当方法の例1を適用する。
【0045】
(計算リソース割当方法の例1)
割当部12は、同一の時間スロットで異なる複数のアプリケーションapp(An)の突発的なトラヒックの増加が発生し、且つ現在のプールサイズPがそれら複数のアプリケーションapp(An)の追加の計算リソース量の平均値Rnの和に満たない場合、要求遅延を満たせないデータ量が最も少なくなるように、プール部11からの計算リソースの割り当てを行う。例えば、アプリケーションapp(A1)とアプリケーションapp(A2)とに対して突発的なトラヒックの増加が同時に発生するときに、「追加の計算リソース量の平均値R1=10」、「追加の計算リソース量の平均値R2=5」、「現在のプールサイズP=10<「R1「10」+R2「5」」、「アプリケーションapp(A1)の追加のデータ量D1=1」、「アプリケーションapp(A2)の追加のデータ量D2=2」であるとする。この場合、現在のプールサイズP「10」であるので、アプリケーションapp(A1)の追加の計算リソース量の平均値R1「10」とアプリケーションapp(A2)の追加の計算リソース量の平均値R2「5」との両方(R1とR2の和「15」)を満たすことができない。ここで、アプリケーションapp(A2)は、「追加の計算リソース量の平均値R2=5」で「追加のデータ量D2=2」をさらにストリーム処理することができる。一方、アプリケーションapp(A1)は、「追加の計算リソース量の平均値R1=10」でも「追加のデータ量D1=1」しか追加でストリーム処理することができない。このため、割当部12は、アプリケーションapp(A2)に対して優先的にプール部11からの計算リソースの割り当てを行う。
【0046】
以下、具体的な所要プールサイズ算出方法の例1,例2を説明する。
【0047】
(所要プールサイズ算出方法の例1)
所要プールサイズ算出部13は、プールサイズ算出対象の時間幅Wにおいて、次の所要プールサイズ算出条件を満たすプールサイズPを求める。
【0048】
(所要プールサイズ算出条件)
全てのアプリケーションapp(An)を対象にして、要求遅延を満たすことができないデータ量の総和VDの期待値E(VD)が予めユーザによって設定された閾値ThDを下回ることである。
【0049】
所要プールサイズ算出部13は、予めプールサイズPの候補のセット「Ps=[P1,P2,・・・,Pm]を有する(mは2以上の自然数)。なお、P1,P2,・・・,Pmは、プールサイズの大きさの昇順であるとする。したがって、P1が最も小さいプールサイズの候補であり、次いでP2が次に小さいプールサイズの候補であるというように、順次大きいプールサイズの候補になっていき、最後にPmが最も大きいプールサイズの候補である。
【0050】
ここで、各時間スロットでランダムに発生する突発的なトラヒックの増加は、各トラヒック増加パターンごとに発生確率が一定である。このため、プールサイズPを「Pz、zは1からmまでのいずれかの自然数」にしたときの「要求遅延を満たすことができないデータ量の総和VD」を計算することができる。そして、各トラヒック増加パターンの「要求遅延を満たすことができないデータ量の総和VD」から、期待値E(VD)を計算することができる。そして、例えばプールサイズP1が「E(VD)<ThD」を満たす場合、プールサイズP1が算出結果の所要プールサイズである。一方、プールサイズP1が「E(VD)<ThD」を満たさなければ、順次、次のプールサイズPzで「要求遅延を満たすことができないデータ量の総和VD」及び期待値E(VD)を計算して「E(VD)<ThD」の判定を繰り返す。
【0051】
以下、所要プールサイズ算出方法の例1の詳細を説明する。
プールサイズ算出対象の時間幅Wの「W/T」個の時間スロットに対して、全てのアプリケーションapp(An;A1,A2,・・・,AN)の突発的なトラヒックの増加の期待値(En;E1,E2,・・・,EN)が等しい確率で発生する。ここで、「W/T=S」とする。すると、アプリケーションapp(A1)に対して、期待値E1回の突発的なトラヒックの増加をS個の時間スロットで発生させる場合、重複して発生する事象が起こり得ることから、その突発的なトラヒックの増加の発生パターンは、重複組合せの公式により「E1」通りが存在する。そして、全てのアプリケーションapp(An)に対してその突発的なトラヒックの増加の発生パターンを求めると、総パターン数は「Π n=1E1)」通りが存在する。
【0052】
所要プールサイズ算出部13は、突発的なトラヒックの増加のある発生パターンにおいて、各時間スロットで発生する突発的なトラヒックの増加に対応するために必要な計算リソース量を求める。この計算リソース量は、各時間スロットで発生する突発的なトラヒックの増加が所属するアプリケーションapp(An)の追加の計算リソース量の平均値Rnの総和「ΣRn」である。さらに、所要プールサイズ算出部13は、プールサイズ候補セット「Ps=[P1,P2,・・・,Pm]から、あるプールサイズ候補Pz(zは1からmまでのいずれかの自然数)を取得し、各時間スロットにおいて要求遅延を満たさないデータ量を計算する。ここで、ある時間スロットにおいて「Pz」<「ΣRn」であれば、当該時間スロットにおいて、上述した計算リソース割当方法の例1によって計算リソースの割り当てが行われる。このとき、所要プールサイズ算出部13は、当該時間スロットにおいて要求遅延を満たさないデータ量Vt(t=1,2,・・・,S)を求める。一方、ある時間スロットにおいて「「Pz」≧「Rn」」であれば、当該時間スロットにおいて要求遅延を満たさないデータ量Vtは0であるとする。
【0053】
次いで、所要プールサイズ算出部13は、当該トラヒック増加パターンの「要求遅延を満たすことができないデータ量の総和VD」を、各時間スロットの「要求遅延を満たさないデータ量Vt」の総和として求める。所要プールサイズ算出部13は、プールサイズを「Pz」としたときの全てのトラヒック増加パターンに対して、上述の「要求遅延を満たすことができないデータ量の総和VD」を算出する。そして、所要プールサイズ算出部13は、プールサイズを「Pz」としたときの、全てのトラヒック増加パターンの「要求遅延を満たすことができないデータ量の総和VD」から、期待値E(VD)を算出する。この期待値E(VD)の算出では、各トラヒック増加パターンの発生確率が等しいことから、期待値E(VD)は、全てのトラヒック増加パターンの「要求遅延を満たすことができないデータ量の総和VD」の平均値である。
【0054】
そして、所要プールサイズ算出部13は、「Pz」が「E(VD)<ThD」を満たせば、「Pz」を所要プールサイズに決定し、そうでない場合は、「z=z+1」に更新した新たな候補「Pz」に対して上記の計算を繰り返す。この繰り返しは、zの初期値「1」(つまりP1)からzの最終値「m」(つまりPm)までの範囲で、「Pz」が「E(VD)<ThD」を満たすまで実行される。これにより、所要プールサイズ算出部13は、プールサイズPの候補のセット「Ps=[P1,P2,・・・,Pm]の中から、「E(VD)<ThD」を満たす最小のプールサイズ候補「Pz」を、当該プールサイズ算出対象の時間幅Wにおける所要プールサイズに決定する。
【0055】
(所要プールサイズ算出方法の例2)
所要プールサイズ算出方法の例2は、次の前提条件が満たされる場合に適用することができる方法である。
【0056】
前提条件:時間幅Wが突発的なトラヒックの増加が発生している時間よりも十分に長く、且つ突発的なトラヒックの増加が発生する頻度が十分に少ないことから、同じ時間スロットで2つ以上の突発的なトラヒックの増加が起こらないことである。
【0057】
所要プールサイズ算出部13は、各アプリケーションapp(An)について、過去に突発的にトラヒックの増加が発生した頻度を取得する。そして、所要プールサイズ算出部13は、その取得した頻度に基づいて、アプリケーションapp(An)毎に、時間幅W内に少なくとも1回は突発的にトラヒックの増加が発生する確率Qを計算する。この確率Qの計算方法として、例えば、過去の期間における同時間帯において突発的にトラヒックの増加が発生した日数を当該期間の日数で除算し、当該除算の結果の商を確率Qにする方法が挙げられる。
【0058】
所要プールサイズ算出部13は、アプリケーションapp(An)毎に、確率Qと追加の計算リソース量の平均値Rnとを乗算し、当該乗算の結果の積を必要な追加計算リソース量の期待値E(Rn)にする。そして、所要プールサイズ算出部13は、各アプリケーションapp(An)の期待値E(Rn)のうち、最大値(小数点以下は切り上げ)を所要プールサイズに決定する。この所要プールサイズによれば、全てのアプリケーションapp(An)に対して、突発的なトラヒックの増加に対処することができる。
【0059】
以上が本実施形態に係る所望プールサイズ算出方法の説明である。
【0060】
所要プールサイズ算出部13は、時間幅W毎に所要プールサイズを算出する。プール部11は、所要プールサイズ算出部13が算出した結果の所要プールサイズに基づいて、自己のプールサイズを変える。所要プールサイズ算出部13は、第1時間幅Wの期間に次の第2時間幅Wの期間の所要プールサイズを算出する。そして、プール部11は、第1時間幅Wの期間において、その算出結果の第2時間幅Wの期間の所要プールサイズに基づいて第2時間幅Wの期間に適用するプールサイズの変更を行う。
【0061】
このプールサイズの変更では、プール部11は、所要プールサイズ算出部13が算出した結果の所要プールサイズに対して現在のプールサイズが不足する場合、サーバ管理装置220に対して、不足分の実行ノード230を要求する。そして、プール部11は、当該要求の結果、得られた実行ノード230を実行ノードプール管理テーブル20に登録する。これにより、プール部11は、不足分の実行ノード230を追加してプールすることになる。
【0062】
一方、プール部11は、所要プールサイズ算出部13が算出した結果の所要プールサイズに対して現在のプールサイズが超過する場合、サーバ管理装置220に対して、超過分の実行ノード230の解放を要求する。サーバ管理装置220は、当該解放要求に応じて、当該超過分の実行ノード230の解放を行う。これにより、プール部11は、超過分の実行ノード230をプールから削減することになる。
【0063】
上述した実施形態によれば、制御装置10がコンピュータ上で起動された状態になっている実行ノード230をプールしておくことによって、アプリケーションappに対して、ストリーム処理への入力データ量が突発的に増大することが予測されたときに、迅速に実行ノード230を割り当てることができる。これにより、ストリーム処理への入力データ量が突発的に増大することに対処することができるという効果が得られる。
【0064】
なお、割当部12は、プール部11からの計算リソースの割当の方法として、以下の計算リソース割当方法の例2を適用してもよい。
【0065】
(計算リソース割当方法の例2)
割当部12は、同一の時間スロットで異なる複数のアプリケーションapp(An)の突発的なトラヒックの増加が発生し、且つ現在のプールサイズPがそれら複数のアプリケーションapp(An)の平均値Rnの和に満たない場合、要求遅延を満たせないアプリケーションapp(An)の量が最も少なくなるように、プール部11からの計算リソースの割り当てを行う。
【0066】
この計算リソース割当方法の例2が適用される場合、上述した所要プールサイズ算出方法の例1において、所要プールサイズ算出条件を、「全てのアプリケーションapp(An)を対象にして、要求遅延を満たすことができないアプリケーションapp(An)の量の総和の期待値が予めユーザによって設定された閾値を下回ることである。」に変更すればよい。
【0067】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0068】
また、上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0069】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0070】
1…情報処理システム、10…制御装置、11…プール部、12…割当部、13…所要プールサイズ算出部、14…メトリスク収集部、20…実行ノードプール管理テーブル、100…アプリケーションクラスタ、app(app1,app2,app3)…アプリケーション、200…サーバシステム、210…サーバコンピュータ、220…サーバ管理装置、230…実行ノード
図1
図2
図3
図4