JP7326234B2 - 情報処理装置、情報処理方法及びコンピュータプログラム - Google Patents

情報処理装置、情報処理方法及びコンピュータプログラム Download PDF

Info

Publication number
JP7326234B2
JP7326234B2 JP2020135943A JP2020135943A JP7326234B2 JP 7326234 B2 JP7326234 B2 JP 7326234B2 JP 2020135943 A JP2020135943 A JP 2020135943A JP 2020135943 A JP2020135943 A JP 2020135943A JP 7326234 B2 JP7326234 B2 JP 7326234B2
Authority
JP
Japan
Prior art keywords
actual
information processing
execution unit
preparatory operation
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020135943A
Other languages
English (en)
Other versions
JP2022032307A (ja
Inventor
雄太 森澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2020135943A priority Critical patent/JP7326234B2/ja
Publication of JP2022032307A publication Critical patent/JP2022032307A/ja
Application granted granted Critical
Publication of JP7326234B2 publication Critical patent/JP7326234B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、情報処理方法及びコンピュータプログラム
従来、データが発生した時に所定のアプリケーションにより逐次にデータ処理を実行するストリーム処理が知られている。ストリーム処理によれば、逐次に発生するデータに対してリアルタイムに集計や分析等の処理を行うことができる。ストリーム処理を実行する情報処理技術として例えば特許文献1や非特許文献1に記載の技術が知られている。特許文献1に記載の従来技術では、スイッチがデータの一次処理を実行し、その実行結果をストリームクラスタへ転送している。スイッチはサーバから受領した記述子に基づいてストリームの処理を実行する。非特許文献1には、アプリケーションによるストリーム処理を実行する「Worker Node」と、アプリケーションのジョブのスケジューリングを行う「Driver Program」と、リソースを管理する「Cluster Manager」とを備える分散ストリーム処理システムが記載されている。
特許第5802215号公報
Apache Spark、"Cluster Mode Overview"、インターネット<URL:https://spark.apache.org/docs/latest/cluster-overview.html>
上述した分散ストリーム処理システムでは、同じストリーム処理を実行する複数の実行部に負荷を分散して大量のデータをリアルタイムに処理することが可能である。ここで、アプリケーションサービスの伸展に合わせてストリーム処理の処理能力を増強するために実行部を追加する場合、追加した新規の実行部が十分な処理能力を発揮するまでに時間がかかっていた。これは、新規の実行部が最初にストリーム処理の初期化等の準備を行うために、新規の実行部が既存の実行部と同程度の処理能力を発揮するまでには少なくとも初期化等の準備の時間分はより多くの時間がかかるからである。このため、新規の実行部の立ち上げ時における処理能力が不十分となる場合があった。
本発明は、このような事情を考慮してなされたものであり、その目的は、特定の情報処理を実行する新規の実行部の立ち上げ時における処理能力の向上を図ることにある。
(1)本発明の一態様は、特定の情報処理を実行する実行部と、前記実行部に対して実際の情報処理の準備のために前記特定の情報処理を事前に実行させる準備運転部と、実際に情報処理を行う実処理状態の前記実行部である実処理実行部が登録される実処理実行部リストと、前記準備運転部により事前に情報処理を行う準備運転状態の前記実行部である準備運転実行部が登録される準備運転実行部リストと、前記準備運転実行部リストに登録されている準備運転実行部の事前の情報処理が完了した場合に、当該準備運転実行部を実処理実行部として前記実処理実行部リストへ登録を移行する状態管理部と、前記準備運転実行部リストから前記実処理実行部リストへ登録を移行された実処理実行部に対して実際の情報処理を実行させる実処理部と、準備運転実行部が実行する準備運転ジョブの失敗原因がリソース不足であると判断した場合に、準備運転ジョブに適用される実際の情報処理の対象の実入力データを調整することにより準備運転ジョブに適用する入力データ量を削減する準備運転管理部と、を備える情報処理装置である。
(2)本発明の一態様は、前記実処理実行部リストに登録されている実処理実行部が実行する実ジョブをスケジューリングする実処理スケジューラと、前記準備運転実行部リストに登録されている準備運転実行部が実行する準備運転ジョブをスケジューリングする準備運転スケジューラとをさらに備える、上記(1)の情報処理装置である。
(3)本発明の一態様は、前記準備運転部は、現在の前記準備運転実行部リストに登録されている各準備運転実行部に対する新規の準備運転ジョブを前記準備運転スケジューラにより開始させる、上記(2)の情報処理装置である。
(4)本発明の一態様は、前記状態管理部は、現在の前記準備運転実行部リストに登録されている準備運転実行部のうち、準備運転ジョブが完了した準備運転実行部のみを実処理実行部として前記実処理実行部リストへ移行する、上記(3)の情報処理装置である。
(5)本発明の一態様は、実処理実行部が実際の情報処理に使用するソフトウェアの実行計画を示す実行計画データを取得する実行計画取得部をさらに備え、準備運転実行部は、前記実行計画取得部が取得した自己の情報処理に対応する実行計画データを使用する、上記(1)から(4)のいずれかの情報処理装置である。
(6)本発明の一態様は、前記準備運転部は、特定の情報処理を実行する実処理実行部が過去に実際に処理した実入力データを記憶する実入力データ履歴記憶部を備え、当該特定の情報処理を実行する準備運転実行部は、前記実入力データ履歴記憶部に記憶されている当該実入力データを処理する、上記(1)から(5)のいずれかの情報処理装置である。
(7)本発明の一態様は、情報処理装置が特定の情報処理を実行する実行部を備え、前記情報処理装置が、実際の情報処理の準備のために事前に前記特定の情報処理を行う準備運転状態の前記実行部である準備運転実行部を準備運転実行部リストに登録する準備運転実行部リスト登録ステップと、前記情報処理装置が、前記準備運転実行部リストに登録されている準備運転実行部に対して実際の情報処理の準備のために前記特定の情報処理を事前に実行させる準備運転ステップと、前記情報処理装置が、前記準備運転実行部リストに登録されている準備運転実行部の事前の情報処理が完了した場合に、当該準備運転実行部を、実際に情報処理を行う実処理状態の前記実行部である実処理実行部として、実処理実行部が登録される実処理実行部リストへ登録を移行する状態管理ステップと、前記情報処理装置が、前記準備運転実行部リストから前記実処理実行部リストへ登録を移行された実処理実行部に対して実際の情報処理を実行させる実処理ステップと、前記情報処理装置が、準備運転実行部が実行する準備運転ジョブの失敗原因がリソース不足であると判断した場合に、準備運転ジョブに適用される実際の情報処理の対象の実入力データを調整することにより準備運転ジョブに適用する入力データ量を削減する準備運転管理ステップと、を含む情報処理方法である。
(8)本発明の一態様は、コンピュータに、特定の情報処理を実行する実行部であって実際の情報処理の準備のために事前に前記特定の情報処理を行う準備運転状態の前記実行部である準備運転実行部を準備運転実行部リストに登録する準備運転実行部リスト登録ステップと、前記準備運転実行部リストに登録されている準備運転実行部に対して実際の情報処理の準備のために前記特定の情報処理を事前に実行させる準備運転ステップと、前記準備運転実行部リストに登録されている準備運転実行部の事前の情報処理が完了した場合に、当該準備運転実行部を、実際に情報処理を行う実処理状態の前記実行部である実処理実行部として、実際に情報処理を行う実処理実行部が登録される実処理実行部リストへ登録を移行する状態管理ステップと、前記準備運転実行部リストから前記実処理実行部リストへ登録を移行された実処理実行部に対して実際の情報処理を実行させる実処理ステップと、準備運転実行部が実行する準備運転ジョブの失敗原因がリソース不足であると判断した場合に、準備運転ジョブに適用される実際の情報処理の対象の実入力データを調整することにより準備運転ジョブに適用する入力データ量を削減する準備運転管理ステップと、を実行させるためのコンピュータプログラムである。
本発明によれば、特定の情報処理を実行する新規の実行部の立ち上げ時における処理能力の向上を図ることができるという効果が得られる。
一実施形態に係る情報処理装置の構成例を示すブロック図である。 一実施形態に係る実処理部の構成例を示すブロック図である。 一実施形態に係る準備運転部の構成例を示すブロック図である。 一実施形態に係る状態管理部の構成例を示すブロック図である。 一実施形態に係る準備運転管理部19の構成例を示すブロック図である。 一実施形態に係る情報処理方法の手順の例を示すフローチャートである。 一実施形態に係る実処理実行部リストの構成例を示す図である。 一実施形態に係る準備運転実行部リストの構成例を示す図である。 一実施形態に係る準備運転実行部リストの構成例を示す図である。 一実施形態に係る実処理実行部リストの構成例を示す図である。
以下、図面を参照し、本発明の実施形態について説明する。
図1は、一実施形態に係る情報処理装置の構成例を示すブロック図である。図1において、情報処理装置10は、実入力部11と、実処理部12と、実出力部13と、擬似入力部14と、準備運転部15と、擬似出力部16と、リソース管理部17と、状態管理部18と、準備運転管理部19とを備える。情報処理装置10は、情報処理としてストリーム処理を実行する。
情報処理装置10の機能は、情報処理装置10がCPU(Central Processing Unit:中央演算処理装置)及びメモリ等のコンピュータハードウェアを備え、CPUがメモリに格納されたコンピュータプログラムを実行することにより実現される。なお、情報処理装置10として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。例えば、情報処理装置10は、インターネット等の通信ネットワークに接続されるサーバコンピュータを使用して構成されてもよい。また、情報処理装置10の各機能はクラウドコンピューティングにより実現されてもよい。また、情報処理装置10は、単独のコンピュータにより実現するものであってもよく、又は情報処理装置10の機能を複数のコンピュータに分散させて実現するものであってもよい。
実入力部11は、実際のストリーム処理の対象になる入力データ(実入力データ)の入力を行う。実処理部12は、特定のストリーム処理を実行する実行部により、実入力部11により入力された実入力データに対してストリーム処理を実行する。実出力部13は、実入力データに対する実処理部12のストリーム処理の結果である出力データ(実出力データ)を出力する。
擬似入力部14は、実入力データが擬似された入力データ(擬似入力データ)の入力を行う。準備運転部15は、特定のストリーム処理を実行する実行部に対して実際のストリーム処理の準備のために当該特定のストリーム処理を事前に実行させる。ストリーム処理は、情報処理の一例である。新規の実行部は、最初にストリーム処理の初期化等の準備を行う。これにより、準備運転部15において新規の実行部に対して事前に実行されるストリーム処理によって、実際のストリーム処理が実行される前に、当該新規の実行部のストリーム処理の初期化等の準備が行われる。
準備運転部15がストリーム処理を実行する対象の入力データは、擬似入力部14により入力された擬似入力データであってもよく、又は実入力部11により入力された実入力データであってもよい。擬似出力部16は、準備運転部15によるストリーム処理の結果である出力データ(擬似出力データ)を出力する。
リソース管理部17は、情報処理装置10が使用可能な情報処理のリソースを管理する。情報処理のリソースとして、情報処理装置10が使用するCPUやメモリやストレージやネットワークなどがある。以下、情報処理のリソースを単にリソースと称する場合がある。
リソース管理部17は、実処理部12における処理遅延やスループット、実入力データ量などの情報に基づいて、新規の実行部を追加する決定や既存の実行部を削除する決定を行う。リソース管理部17は、その決定を状態管理部18や準備運転管理部19へ通知する。
状態管理部18は、実行部の状態を管理する。実行部の状態として、準備運転状態と実処理状態とがある。準備運転状態は、準備運転部15においてストリーム処理を実行する状態である。実処理状態は、実処理部12においてストリーム処理を実行する状態である。準備運転管理部19は、準備運転部15の状態を管理する。
図2は、本実施形態に係る実処理部の構成例を示すブロック図である。実処理部12は、実処理状態の実行部exeを備える。以下、実処理状態の実行部exeを実処理実行部exeと称する場合がある。各実処理実行部exeは、自己のストリーム処理に使用するソフトウェアの実行計画を示す実行計画データを使用して自己のストリーム処理を実行する。実行計画データは、ソフトウェアが情報処理装置10のオペレーティングシステム(Operating System:OS)上で実行されるプラットフォームソフトウェアによって解釈された実行形式のプログラムデータである。
ソフトウェアの実行計画には、一つのアプリケーションのストリーム処理を分散して処理する場合の処理全体が記載される。そして、一つのアプリケーションに対して、一つの実行計画データが生成される。図2の例では、実処理部12は、アプリケーションapp1のジョブを実行するものであって、各実行部exe(ID1,ID2,ID3,・・・)は、アプリケーションapp1の実行計画データ_app1を分散して実行する。図2の例では、アプリケーションapp1の実行計画データ_app1は、複数の部分実行計画データから構成される。
実行計画データ_app1=部分実行計画データ_app1_a+部分実行計画データ_app1_b+部分実行計画データ_app1_c+・・・
そして、各実行部exe(ID1,ID2,ID3,・・・)には、各部分実行計画データ_app1_a,b,c,・・・が割り振られている。各実行部exe(ID1,ID2,ID3,・・・)は、自己に割り振られた部分実行計画データ_app1_a,b,c,・・・を使用してストリーム処理を実行する。例えば、実行部識別子(実行部ID)「ID1」の実処理実行部exeは、部分実行計画データ_app1_aを使用して自己のストリーム処理を実行する。実行部ID「ID2」の実処理実行部exeは、部分実行計画データ_app1_bを使用して自己のストリーム処理を実行する。実行部ID「ID3」の実処理実行部exeは、部分実行計画データ_app1_cを使用して自己のストリーム処理を実行する。これにより、アプリケーションapp1のジョブが複数の実行部exe(ID1,ID2,ID3,・・・)により分散してストリーム処理される。
なお、各部分実行計画データ_app1_a,b,c,・・・の処理内容は、動的に変更可能であって、適宜、変更され得る。したがって、各実行部exe(ID1,ID2,ID3,・・・)がアプリケーションapp1の実行計画データ_app1のどの部分を担当するのかは動的に変わる可能性がある。
図3は、本実施形態に係る準備運転部の構成例を示すブロック図である。準備運転部15は、準備運転処理部151と、実行計画取得部152と、実入力データ履歴記憶部153とを備える。
準備運転処理部151は、準備運転状態の実行部exeを備える。以下、準備運転状態の実行部exeを準備運転実行部exeと称する場合がある。各準備運転実行部exeは、自己のストリーム処理に使用するソフトウェアの実行計画を示す実行計画データを使用して自己のストリーム処理を実行する。図3の例では、準備運転処理部151は、アプリケーションapp1のストリーム処理を実行する実行部exeに対して事前に当該ストリーム処理を実行させる。各準備運転実行部exe(ID51,ID53,・・・)は、アプリケーションapp1の実行計画データ_app1を使用して自己のストリーム処理を実行する。ここで、各準備運転実行部exe(ID51,ID53,・・・)に対しては、個別の部分実行計画データではなく、アプリケーションapp1のストリーム処理全体が記載された実行計画データ_app1を共通に適用する。この理由は、部分実行計画データの処理内容がアプリケーションapp1のストリーム処理全体のうちどの部分になるのかが動的に変わる可能性があるので、準備運転実行部exe(ID51,ID53,・・・)に対しては実行計画データ_app1を適用してアプリケーションapp1のストリーム処理全体に渡って初期化等の準備を行わせるためである。なお、実行計画データ_app1にはアプリケーションapp1のストリーム処理全体が記載されているが、入力データ量を調整することにより準備運転実行部exe(ID51,ID53,・・・)のストリーム処理に要する時間を抑制して初期化等の準備を短期間で完了させるようにしてもよい。
実行計画取得部152は、実処理実行部exeが実際のストリーム処理に使用するソフトウェアの実行計画を示す実行計画データを取得する。実行計画取得部152は、実処理実行部exeが使用する実行計画データが変更されたことを検知する。実行計画取得部152は、実処理実行部exeが使用する実行計画データが変更されたことを検知すると、変更後の最新の実行計画データを取得する。
準備運転実行部exeは、実行計画取得部152が取得した自己のストリーム処理に対応する最新の実行計画データを使用する。但し、実行計画データのうち入力及び出力に関するデータは、準備運転実行部exeに対応するように変更される。具体的には、入力として擬似入力データ又は実入力データの一部を使用する場合、その使用する入力データに、実行計画データのうち入力に関するデータを合わせる。また、実行計画データのうち出力に関するデータを、擬似出力部16への出力方法に合わせる。擬似出力部16への出力方法としては、準備運転部15でのストリーム処理結果のチェック用の出力、又は準備運転部15でのストリーム処理結果の破棄がある。
例えば、図3において、準備運転実行部exe(ID51,ID53,・・・)は、図2の実処理実行部exe(ID1,ID2,ID3,・・・)と同じアプリケーションapp1のストリーム処理を実行する実行部exeであって、実行計画取得部152が取得した実処理実行部exe(ID1,ID2,ID3,・・・)の実行計画データ_app1を使用する。
本実施形態では、準備運転実行部exeに対して、当該準備運転実行部exeと同じストリーム処理を実行する実処理実行部exeが実際に使用する実行計画データを適用する。これにより、準備運転実行部exeが準備運転部15で事前に実行するストリーム処理と、既存の実処理実行部exeが実行するストリーム処理との一貫性が情報処理装置10のプラットフォームソフトウェアの実行レベルで精度よく保たれる。これは、準備運転部15で事前に実行するストリーム処理による準備運転実行部exeの初期化等の準備が既存の実処理実行部exeに高度に整合されることから、当該準備運転実行部exeが実処理実行部exeとして実処理部12に組み込まれた際に、当該組み込まれた実処理実行部exeが、即刻、既存の実処理実行部exeのストリーム処理に適合して実処理部12における分散ストリーム処理の処理能力の向上に寄与できることから好ましい。
実入力データ履歴記憶部153は、特定のストリーム処理を実行する実処理実行部exeが過去に実際に処理した実入力データを記憶する。当該特定のストリーム処理を実行する準備運転実行部exeは、実入力データ履歴記憶部153に記憶されている当該実入力データを処理する。
図4は、本実施形態に係る状態管理部の構成例を示すブロック図である。状態管理部18は、実処理実行部リスト181と、準備運転実行部リスト182と、実処理スケジューラ183とを備える。
実処理実行部リスト181は、実際にストリーム処理を行う実行部(実処理実行部)exeが登録されるリストである。準備運転実行部リスト182は、準備運転部15により実際のストリーム処理の準備のために事前にストリーム処理を行う実行部(準備運転実行部)exeが登録されるリストである。
実処理スケジューラ183は、実処理実行部リスト181に登録されている実処理実行部exeが実行するジョブ(実ジョブ)をスケジューリングする。
状態管理部18は、実処理実行部リスト181と準備運転実行部リスト182とを管理する。状態管理部18は、準備運転実行部リスト182に登録されている準備運転実行部exeの実際のストリーム処理の準備のための事前のストリーム処理が完了した場合に、当該準備運転実行部exeを実処理実行部exeとして実処理実行部リスト181へ登録を移行する。実際のストリーム処理の準備のための事前のストリーム処理が完了した準備運転実行部exeが実処理実行部exeとして実処理実行部リスト181に移行登録されることにより、実処理スケジューラ183は、当該移行登録された新規の実処理実行部exeに対して実ジョブをスケジューリングする。これにより、当該移行登録された新規の実処理実行部exeは当該スケジューリングに従って実ジョブを実行する。
図5は、本実施形態に係る準備運転管理部19の構成例を示すブロック図である。準備運転管理部19は、準備運転スケジューラ191を備える。準備運転スケジューラ191は、準備運転実行部リスト182に登録されている準備運転実行部exeが実行するジョブ(準備運転ジョブ)をスケジューリングする。
本実施形態では、実行部exeが実行するジョブをスケジューリングするスケジューラとして、実処理スケジューラ183と準備運転スケジューラ191とを別個に設けるが、一つのスケジューラが実処理実行部exeと準備運転実行部exeの両方のジョブをスケジューリングしてもよい。但し、準備運転部15の不具合でスケジューラにかかる負荷が増大することにより実処理実行部exeの実ジョブのスケジューリングに支障が出ることを防止するために、実処理スケジューラ183と準備運転スケジューラ191とを別個に設けることは好ましい。
次に図6-図10を参照して本実施形態に係る情報処理方法の手順を説明する。図6は、本実施形態に係る情報処理方法の手順の例を示すフローチャートである。図7,図10は、本実施形態に係る実処理実行部リストの構成例を示す図である。図8,図9は、本実施形態に係る準備運転実行部リストの構成例を示す図である。
図7,図8には、新規の実行部exeが追加される前の実処理実行部リスト181,準備運転実行部リスト182がそれぞれ示される。この時点では、実行部ID「ID1」,「ID2」,「ID3」・・・の実処理実行部exeが、実処理実行部リスト181に登録されており、実処理部12で実ジョブを実行している。また、実行部ID「ID51」,「ID53」・・・の準備運転実行部exeが、準備運転実行部リスト182に登録されており、準備運転部15で準備運転ジョブを実行している。
(ステップS1) リソース管理部17は、実処理部12における処理遅延やスループット、実入力データ量などの情報に基づいて、新規の実行部(実行部ID「IDx」)を追加する決定を行う。リソース管理部17は、新規の実行部(実行部ID「IDx」)が使用するリソースを確保する。リソース管理部17は、新規の実行部(実行部ID「IDx」)に関する情報を状態管理部18及び準備運転管理部19へ通知する。
(ステップS2) 状態管理部18は、新規の実行部(実行部ID「IDx」)を準備運転実行部リスト182に登録する。これにより、図9に示されるように、実行部ID「IDx」の実行部(準備運転実行部)exeが準備運転実行部リスト182に登録される。
(ステップS3) 準備運転管理部19は、準備運転実行部リスト182に登録されている新規の実行部(実行部ID「IDx」)等の準備運転実行部exeについて、準備運転スケジューラ191により準備運転ジョブのスケジューリングを行い、準備運転部15により準備運転ジョブの実行を開始する。これにより、新規の実行部(実行部ID「IDx」)が準備運転ジョブを実行する。
(ステップS4) 準備運転管理部19は、擬似出力部16から出力された擬似出力データに基づいて、準備運転ジョブが成功したか否かを判断する。準備運転管理部19は、擬似出力データが所定の準備運転ジョブ成功判定条件を満たす場合に準備運転ジョブが成功したと判断し、擬似出力データが当該準備運転ジョブ成功判定条件を満たさない場合に準備運転ジョブが失敗したと判断する。準備運転ジョブが成功した場合にはステップS5に進む。
一方、準備運転ジョブが失敗した場合にはステップS3に戻り、再度、準備運転ジョブを実行する。準備運転ジョブの再実行回数の上限は、ユーザー等により予め設定される。準備運転ジョブの再実行回数の上限に達しても準備運転ジョブが成功しない場合には、ユーザー等により予め設定された失敗ケース処理を実行する。失敗ケース処理の一例として、実処理部12への新規の実行部exeの追加を中止することが挙げられる。失敗ケース処理の他の例として、準備運転部15での事前のストリーム処理の実行なしで実処理部12へ新規の実行部exeを追加することが挙げられる。
なお、準備運転ジョブが失敗した場合、準備運転管理部19は、準備運転ジョブの実行条件を変えてもよい。例えば、準備運転ジョブに対して実入力データを適用すると、準備運転実行部exeにおいてリソース(メモリ量やCPU使用率等)が不足する可能性がある。これは、実処理実行部exeに対しては実入力データを処理可能なリソース量が確保されるが、準備運転実行部exeに対してはそこまでのリソース量が通常確保されないからである。このため、準備運転管理部19は、準備運転ジョブの失敗原因がリソース不足であると判断した場合、準備運転ジョブに適用する入力データ量を削減する調整を行う。リソース不足は、メモリ容量不足のエラーメッセージや準備運転ジョブの予定処理時間の超過等によって判断することができる。入力データ量を削減する調整方法としては、例えば、実入力データを間引くことにより準備運転ジョブに適用する入力データ量を削減する。
(ステップS5) 準備運転ジョブが成功した場合、準備運転管理部19は、状態管理部18に対して、実行部ID「IDx」の準備運転実行部exeを実処理実行部リスト181へ移行登録するように指示する。状態管理部18は、その指示に応じて、実行部ID「IDx」の準備運転実行部exeを、準備運転実行部リスト182から実処理実行部リスト181へ登録を移行する。これにより、図9の準備運転実行部リスト182から実行部ID「IDx」の準備運転実行部exeが削除され、図10に示されるように実行部ID「IDx」の実行部(実処理実行部)exeが実処理実行部リスト181に移行登録される。
(ステップS6) 状態管理部18は、実処理実行部リスト181に登録されている新規の実行部(実行部ID「IDx」)等の実処理実行部exeについて、実処理スケジューラ183により実ジョブのスケジューリングを行い、実処理部12により実ジョブの実行を開始する。これにより、新規の実行部(実行部ID「IDx」)が実ジョブを実行する。
(実行部追加方法の例)
本実施形態に係る実行部追加方法の例を説明する。準備運転管理部19は、定期的に準備運転実行部リスト182を確認し、準備運転実行部リスト182の中に少なくとも一つの実行部exeが登録されていることを確認する。次いで、準備運転管理部19は、準備運転実行部リスト182の中に少なくとも一つの実行部exeが登録されている場合、準備運転部15で現在実行中の準備運転ジョブの有無を確認する。次いで、準備運転管理部19は、準備運転部15で現在実行中の準備運転ジョブがない場合、現在の準備運転実行部リスト182に登録されている各準備運転実行部exeに対する新規の準備運転ジョブを準備運転スケジューラ191により開始させる。これにより、現在の準備運転実行部リスト182に登録されている新規の実行部(実行部ID「IDx」)等の準備運転実行部exeに対して準備運転ジョブがスケジューリングされて開始される。
次いで、準備運転ジョブが成功した場合、準備運転管理部19は、状態管理部18に対して、準備運転ジョブが成功した準備運転実行部exe(移行対象準備運転実行部exe)を実処理実行部リスト181へ移行登録するように指示する。
次いで、状態管理部18は、その指示に応じて、移行対象準備運転実行部exeを、準備運転実行部リスト182から実処理実行部リスト181へ登録を移行する。これにより、現在の準備運転実行部リスト182から移行対象準備運転実行部exeが削除され、当該移行対象準備運転実行部exeが実処理実行部リスト181に移行登録される。
(実行部最適化方法の例)
本実施形態に係る実行部最適化方法の例を説明する。実行部exeの最適化は、準備運転実行部exeに対して大量の入力データを処理させることにより実施する。ここで、同じストリーム処理を実行する既存の実処理実行部exeと同様の最適化が準備運転実行部exeに対しても行われることは、実処理部12において同じストリーム処理を実行する各実処理実行部exeの処理速度がそろうので処理速度のボトルネックが生じないことから好ましい。これは、もし同じストリーム処理を実行する複数の実処理実行部exeにおいて処理速度のボトルネックがあると、実処理部12における分散ストリーム処理において、最も遅い実処理実行部exeの処理が終了するまで他の実処理実行部exeが待機することになって実処理部12の処理能力が低下する可能性があるからである。
このような理由から、本実施形態では、最適化対象の準備運転実行部exeに対して、同じストリーム処理を実行する実処理実行部exeが過去に実際に処理した実入力データを適用する。具体的には、最適化対象の準備運転実行部exeは、実入力データ履歴記憶部153に記憶されている当該実入力データを処理する。これにより、最適化対象の準備運転実行部exeに対して、既に実処理部12に組み込まれている同じストリーム処理を実行する実処理実行部exeと同様の最適化が行われる。このようにして最適化された準備運転実行部exeが実処理実行部exeとして実処理部12に組み込まれることにより、同じストリーム処理を実行する複数の実処理実行部exeにおいて処理速度のボトルネックが生じず、実処理部12における分散ストリーム処理の処理能力を十分に発揮することができる。なお、最適化対象の準備運転実行部exeは、ユーザー等により指定される。
本実施形態によれば、新規の実行部exeに対して実処理部12で実際のストリーム処理が実行される前に準備運転部15で事前に当該ストリーム処理を実行させることにより、当該新規の実行部exeが実処理部12で実際のストリーム処理を実行する前に、当該新規の実行部exeのストリーム処理の初期化等の準備を行うことができる。このため、新規の実行部exeが実処理部12に組み込まれた際には、当該新規の実行部exeのストリーム処理の初期化等の準備が不要であるので、当該新規の実行部exeは、実処理部12に組み込まれた立ち上げ時点から十分に処理能力を発揮することができる。このように本実施形態によれば、新規の実行部exeの立ち上げ時における処理能力の向上を図ることができるという効果が得られる。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
また、上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
10…情報処理装置、11…実入力部、12…実処理部、13…実出力部、14…擬似入力部、15…準備運転部、16…擬似出力部、17…リソース管理部、18…状態管理部、19…準備運転管理部、exe…実行部(実処理実行部、準備運転実行部)、151…準備運転処理部、152…実行計画取得部、153…実入力データ履歴記憶部、181…実処理実行部リスト、182…準備運転実行部リスト、183…実処理スケジューラ、191…準備運転スケジューラ

Claims (8)

  1. 特定の情報処理を実行する実行部と、
    前記実行部に対して実際の情報処理の準備のために前記特定の情報処理を事前に実行させる準備運転部と、
    実際に情報処理を行う実処理状態の前記実行部である実処理実行部が登録される実処理実行部リストと、
    前記準備運転部により事前に情報処理を行う準備運転状態の前記実行部である準備運転実行部が登録される準備運転実行部リストと、
    前記準備運転実行部リストに登録されている準備運転実行部の事前の情報処理が完了した場合に、当該準備運転実行部を実処理実行部として前記実処理実行部リストへ登録を移行する状態管理部と、
    前記準備運転実行部リストから前記実処理実行部リストへ登録を移行された実処理実行部に対して実際の情報処理を実行させる実処理部と、
    準備運転実行部が実行する準備運転ジョブの失敗原因がリソース不足であると判断した場合に、準備運転ジョブに適用される実際の情報処理の対象の実入力データを調整することにより準備運転ジョブに適用する入力データ量を削減する準備運転管理部と、
    を備える情報処理装置。
  2. 前記実処理実行部リストに登録されている実処理実行部が実行する実ジョブをスケジューリングする実処理スケジューラと、
    前記準備運転実行部リストに登録されている準備運転実行部が実行する準備運転ジョブをスケジューリングする準備運転スケジューラとをさらに備える、
    請求項1に記載の情報処理装置。
  3. 前記準備運転部は、現在の前記準備運転実行部リストに登録されている各準備運転実行部に対する新規の準備運転ジョブを前記準備運転スケジューラにより開始させる、
    請求項2に記載の情報処理装置。
  4. 前記状態管理部は、現在の前記準備運転実行部リストに登録されている準備運転実行部のうち、準備運転ジョブが完了した準備運転実行部のみを実処理実行部として前記実処理実行部リストへ移行する、
    請求項3に記載の情報処理装置。
  5. 実処理実行部が実際の情報処理に使用するソフトウェアの実行計画を示す実行計画データを取得する実行計画取得部をさらに備え、
    準備運転実行部は、前記実行計画取得部が取得した自己の情報処理に対応する実行計画データを使用する、
    請求項1から4のいずれか1項に記載の情報処理装置。
  6. 前記準備運転部は、特定の情報処理を実行する実処理実行部が過去に実際に処理した実入力データを記憶する実入力データ履歴記憶部を備え、
    当該特定の情報処理を実行する準備運転実行部は、前記実入力データ履歴記憶部に記憶されている当該実入力データを処理する、
    請求項1から5のいずれか1項に記載の情報処理装置。
  7. 情報処理装置が特定の情報処理を実行する実行部を備え、
    前記情報処理装置が、実際の情報処理の準備のために事前に前記特定の情報処理を行う準備運転状態の前記実行部である準備運転実行部を準備運転実行部リストに登録する準備運転実行部リスト登録ステップと、
    前記情報処理装置が、前記準備運転実行部リストに登録されている準備運転実行部に対して実際の情報処理の準備のために前記特定の情報処理を事前に実行させる準備運転ステップと、
    前記情報処理装置が、前記準備運転実行部リストに登録されている準備運転実行部の事前の情報処理が完了した場合に、当該準備運転実行部を、実際に情報処理を行う実処理状態の前記実行部である実処理実行部として、実処理実行部が登録される実処理実行部リストへ登録を移行する状態管理ステップと、
    前記情報処理装置が、前記準備運転実行部リストから前記実処理実行部リストへ登録を移行された実処理実行部に対して実際の情報処理を実行させる実処理ステップと、
    前記情報処理装置が、準備運転実行部が実行する準備運転ジョブの失敗原因がリソース不足であると判断した場合に、準備運転ジョブに適用される実際の情報処理の対象の実入力データを調整することにより準備運転ジョブに適用する入力データ量を削減する準備運転管理ステップと、
    を含む情報処理方法。
  8. コンピュータに、
    特定の情報処理を実行する実行部であって実際の情報処理の準備のために事前に前記特定の情報処理を行う準備運転状態の前記実行部である準備運転実行部を準備運転実行部リストに登録する準備運転実行部リスト登録ステップと、
    前記準備運転実行部リストに登録されている準備運転実行部に対して実際の情報処理の準備のために前記特定の情報処理を事前に実行させる準備運転ステップと、
    前記準備運転実行部リストに登録されている準備運転実行部の事前の情報処理が完了した場合に、当該準備運転実行部を、実際に情報処理を行う実処理状態の前記実行部である実処理実行部として、実際に情報処理を行う実処理実行部が登録される実処理実行部リストへ登録を移行する状態管理ステップと、
    前記準備運転実行部リストから前記実処理実行部リストへ登録を移行された実処理実行部に対して実際の情報処理を実行させる実処理ステップと、
    準備運転実行部が実行する準備運転ジョブの失敗原因がリソース不足であると判断した場合に、準備運転ジョブに適用される実際の情報処理の対象の実入力データを調整することにより準備運転ジョブに適用する入力データ量を削減する準備運転管理ステップと、
    を実行させるためのコンピュータプログラム。
JP2020135943A 2020-08-11 2020-08-11 情報処理装置、情報処理方法及びコンピュータプログラム Active JP7326234B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020135943A JP7326234B2 (ja) 2020-08-11 2020-08-11 情報処理装置、情報処理方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020135943A JP7326234B2 (ja) 2020-08-11 2020-08-11 情報処理装置、情報処理方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2022032307A JP2022032307A (ja) 2022-02-25
JP7326234B2 true JP7326234B2 (ja) 2023-08-15

Family

ID=80349806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020135943A Active JP7326234B2 (ja) 2020-08-11 2020-08-11 情報処理装置、情報処理方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP7326234B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115793A (ja) 2013-12-12 2015-06-22 シャープ株式会社 デジタル放送受信装置、実行方法及び記録媒体
WO2018074444A1 (ja) 2016-10-19 2018-04-26 日本電気株式会社 分散処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115793A (ja) 2013-12-12 2015-06-22 シャープ株式会社 デジタル放送受信装置、実行方法及び記録媒体
WO2018074444A1 (ja) 2016-10-19 2018-04-26 日本電気株式会社 分散処理システム

Also Published As

Publication number Publication date
JP2022032307A (ja) 2022-02-25

Similar Documents

Publication Publication Date Title
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US11588755B2 (en) Distributed stream-based database triggers
US8321558B1 (en) Dynamically monitoring and modifying distributed execution of programs
US11809901B2 (en) Migrating the runtime state of a container between two nodes
US11334372B2 (en) Distributed job manager for stateful microservices
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
US11311722B2 (en) Cross-platform workload processing
WO2010079772A1 (ja) シンクライアントシステム、シンクライアント実施方法、及びシンクライアント用プログラム
JP2001147901A (ja) ローカル・ジョブ制御システムを有する分散処理システム内での外部ジョブ・スケジューリング方法及びシステム
JP7251648B2 (ja) サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
US20130318528A1 (en) Information processing method
JP2015507787A (ja) 自律ネットワーク・ストリーミング
JP2002073576A (ja) バッチジョブ制御システム
US11307912B1 (en) Forward message compatibility safety in producer-consumer systems
JP5294014B2 (ja) ファイル共有方法、計算機システム及びジョブスケジューラ
US11474857B1 (en) Accelerated migration of compute instances using offload cards
JP7326234B2 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
JP6341030B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
US20220229689A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program
US9626226B2 (en) Cross-platform workload processing
US11571618B1 (en) Multi-region game server fleets
US11442943B1 (en) Error-causing record isolation for data stream processing
JP2020190867A (ja) 構成変更型集積回路の割当システム、構成変更型集積回路の割当方法およびコンピュータプログラム
US20220043669A1 (en) Completing an smi task across multiple smi events
US11571619B1 (en) Cross-region management of game server fleets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230802

R150 Certificate of patent or registration of utility model

Ref document number: 7326234

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150