JP2012118669A - 負荷分散処理システム及び負荷分散処理方法 - Google Patents
負荷分散処理システム及び負荷分散処理方法 Download PDFInfo
- Publication number
- JP2012118669A JP2012118669A JP2010266468A JP2010266468A JP2012118669A JP 2012118669 A JP2012118669 A JP 2012118669A JP 2010266468 A JP2010266468 A JP 2010266468A JP 2010266468 A JP2010266468 A JP 2010266468A JP 2012118669 A JP2012118669 A JP 2012118669A
- Authority
- JP
- Japan
- Prior art keywords
- data
- group
- data size
- distribution processing
- total
- 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.)
- Pending
Links
Images
Abstract
【課題】データの並列処理システムの利用者に負担をかけることなく目的の処理を実現でき、かつ、並列処理に割り当てられるデータを効率よく平滑化すること。
【解決手段】この負荷分散処理システム1は、データの総データサイズを予め保持する記憶部19と、入力データに対して中間キーを付加するように加工するデータ加工部12と、同一の中間キーを有するグループ毎に複数のデータ群のいずれかに振り分ける振分処理部13と、グループ毎の総データサイズとグループ数とを検出する検出部14,15と、グループあたりの総データサイズの平均値を算出する算出部24と、グループ毎の総データサイズの平均値に対する超過度合いを判断する判断部25とを備え、再振分部16は、判断部25によって判断された超過度合いに応じて、該当グループに属するデータを2以上のデータ群に再度振り分ける。
【選択図】図1
【解決手段】この負荷分散処理システム1は、データの総データサイズを予め保持する記憶部19と、入力データに対して中間キーを付加するように加工するデータ加工部12と、同一の中間キーを有するグループ毎に複数のデータ群のいずれかに振り分ける振分処理部13と、グループ毎の総データサイズとグループ数とを検出する検出部14,15と、グループあたりの総データサイズの平均値を算出する算出部24と、グループ毎の総データサイズの平均値に対する超過度合いを判断する判断部25とを備え、再振分部16は、判断部25によって判断された超過度合いに応じて、該当グループに属するデータを2以上のデータ群に再度振り分ける。
【選択図】図1
Description
本発明は、入力されたデータを並列処理の対象である複数のデータ群に振り分ける負荷分散処理システム及び負荷分散処理方法に関するものである。
近年、データマイニングや各種の科学技術計算の分野では、膨大な数のレコードから成る大量データを分析処理する要求が増している。これまでは、このような要求に応えるために、スーパーコンピュータ等の高性能な計算機が用いられていた。一方で、近年では、ネットワークを介して接続された多数の安価な計算機を用いて、大量データを並列処理する方法が主流になってきている。このように大量データを並列処理するためのデータ処理技術の1つとして、下記非特許文献1に記載のMapReduceと呼ばれる技術が知られている。
上記のMapReduceでは、大量データを対象にした処理(以下、「ジョブ」と言う。)が2つのフェーズに分けられている。まず、「Map」と呼ばれるフェーズでは、入力データをレコード単位で受け取り、レコードを識別する中間キーと中間バリューからなる中間出力レコードを出力する。なお、このMapフェーズにおいて各計算機上で実行されるプログラムのプロセスは「Mapタスク」と呼ばれる。また、「Reduce」と呼ばれるフェーズでは、Mapフェーズで出力された中間出力レコードを受け取り、最終的なキー及びバリューからなる最終レコードを出力する。なお、このReduceフェーズにおいて各計算機上で実行されるプログラムのプロセスは「Reduceタスク」と呼ばれる。
ところで、Mapフェーズで出力された中間出力レコードは、そのレコードに含まれる中間キーの値によってどのReduceタスクに送られるかが決定される。このようなレコード振り分けの処理を「パーティショニング」あるいは「パーティション計算」と呼ぶ。同じ中間キーを持つ中間出力レコード群は「グループ」と呼ばれ、代表的なパーティショニングのためのアルゴリズムでは、一グループ内の中間出力レコード群は、同じReduceタスクに割り振られる。つまり、パーティショニングでは、中間キーによって識別されるグループの割り当て先となるReduceタスク番号を決定する。従って、同じ中間キーを持つ中間出力レコード数が多い場合は、その中間キーを持つグループはレコード数が多くなる。
ここで、図12に示すように、多数のグループや相対的に大きなグループが特定のReduceタスクに集中した場合、当該Reduceタスクは他のReduceタスクより多くの計算処理を課されることになり、処理終了までに長時間を要することになる。MapReduceの一つの特徴として、ジョブの完了は全てのReduceタスクが完了した時点である、ということがあるため、一部でも長時間を要するReduceタスクが存在すると、それだけジョブ完了までの時間が長引く傾向にある。従来のMapReduceでは、このような事態を回避するために、多数のグループが特定のReduceタスクに集中しないようなパーティション計算の方法を採用したり、相対的に大きなグループが発生しないように中間キーの粒度を細分化したりするなどの工夫を、MapReduceの利用者自らが手作業で行う必要がある。特に、中間キーの粒度の細分化については、本来のデータの処理内容に関して非直感的な中間キーを採用せざるを得ないような場合も発生し、利用者にとって不都合である。例えば、入力データを都道府県別に処理したい場合において都道府県名を中間キーに設定された場合において、特定の都道府県(例えば、東京都)のデータ量、すなわち、特定グループのサイズが著しく大きくなることが想定される。このような場合には、中間キーを市町村名に設定して一旦処理した後に処理後のグループを都道府県別に集約する余計な処理が必要になる。
このような問題に関して、例えば、下記非特許文献2には、Reduceタスクに割り当てられようとしている中間出力レコード数を検出し、中間キーの粒度を動的に変更して、実際に各Reduceタスクに割り当てられる中間出力レコード数を平滑化するように制御するという処理方針が示されている。また、下記非特許文献3には、中間キーの内容を動的に変更する具体的な方法が提案されている。
"MapReduce: Simplified Data Processing on Large Clusters"、Jeffrey Dean and SanjayGhemawat、Proceedingof the 6th Symposium on Operating Systems Design and Implementation (OSDI '04)、2004年12月6日−8日
"MapReduceを利用した決定木生成処理の負荷分散"、福本佳史 他、DEIM Forum 2010 C2-4、2010年2月28日
"Skew-Resistant ParallelProcessing of Feature-Extracting Scientific User-Defined Functions"、YongChul Kwon et al.、University of Washington、ACM SoCC’10、2010年6月10日−11日
しかしながら、上述した非特許文献2に記載された中間キーの粒度を動的に変更する方法では、中間キーの内容を動的に変更することを意味する。ここで、MapReduceにおけるReduceプログラムを記述する利用者は、中間キーの内容に依存した処理を行うように記述する場合がある。例えば、SQL(Structured Query Language)を使用する場合には、主テーブルと従属テーブルのレコード同士を内部結合(Inner Join)するという処理をMapReduceで実現できる。この場合、主テーブルの主キー及び従属テーブルの参照キーを中間キーとし、対応する主テーブルのレコードと従属テーブルのレコードを同じReduceタスクに集めるというのが一般的な方法(「Reduce−side Inner−Join」と呼ばれる)である。しかし、このとき中間キーの内容を脈略なく動的に変更してしまうと、目的の処理を完遂できなくなる恐れがある。
また、上述した非特許文献3に記載された方法では、中間キーの内容が脈略なく変更されることを回避するため、中間キーの内容の変更方法を、中間出力レコードの処理内容に応じて利用者が詳細に指定しなければならない。より具体的には、どのような条件が揃った場合に中間キーの変更が可能で、中間キーをどのように変更し、どの中間出力レコードをどの(動的に分割された)グループに割り当てるかを、詳細に指定する必要がある。しなしながら、MapReduceは汎用的なプログラミングモデルであり、その上では様々なデータ処理(アプリケーションプログラム)を実行することができるため、処理に応じて中間キーの内容の変更方法を詳細に指定することは、利用者にとって大きな手間となる。
一方で、中間キーの内容を変更することなく中間出力レコード数を平滑化するための方法としては、何らかの方法で各グループの大きさを検出し、各Reduceタスクへの割り当てが平滑化されるようにパーティショニングを工夫するという方法も考えられる(図13)。しかしながら、この方法では、例えば、図14のような特定グループのサイズが極端に大きい場合にはうまく平滑化することができない。
そこで、本発明は、かかる課題に鑑みて為されたものであり、データの並列処理システムの利用者に負担をかけることなく目的の処理を実現でき、かつ、並列処理に割り当てられるデータを効率よく平滑化することが可能な負荷分散処理システム及び負荷分散処理方法を提供することを目的とする。
上記課題を解決するため、本発明の負荷分散処理システムは、入力されたデータを並列処理の対象である複数のデータ群に振り分ける負荷分散処理システムであって、データの総データサイズを予め保持する記憶手段と、入力されたデータに対して該データを識別するための識別キー情報を付加するように加工するデータ加工手段と、データ加工手段によって加工されたデータに含まれる識別キー情報に応じて、同一の識別キー情報を有するデータのグループ毎に、複数のデータ群のうちのいずれかに振り分ける振分処理手段と、データのグループ毎の振り分け済みの総データサイズと、データのグループの群数とを検出するグループ毎データサイズ検出手段と、総データサイズと群数とに基づいて、グループあたりの最終的な総データサイズの平均値を算出する平均値算出手段と、グループ毎の振り分け済みの総データサイズの総データサイズの平均値に対する超過度合いを判断する判断手段とを備え、振分処理手段は、判断手段によって判断された超過度合いに応じて、該当するグループに属するデータを、2以上のデータ群に再度振り分ける、ことを特徴とする。
或いは、本発明の負荷分散処理方法は、入力されたデータを並列処理の対象である複数のデータ群に振り分ける負荷分散処理方法であって、負荷分散処理システムが、データの総データサイズを予め保持する記憶ステップと、負荷分散処理システムが、入力されたデータに対して該データを識別するための識別キー情報を付加するように加工するデータ加工ステップと、負荷分散処理システムが、データ加工ステップによって加工されたデータに含まれる識別キー情報に応じて、同一の識別キー情報を有するデータのグループ毎に、複数のデータ群のうちのいずれかに振り分ける振分処理ステップと、負荷分散処理システムが、データのグループ毎の振り分け済みの総データサイズと、データのグループの群数とを検出するグループ毎データサイズ検出ステップと、負荷分散処理システムが、総データサイズと群数とに基づいて、グループあたりの最終的な総データサイズの平均値を算出する平均値算出ステップと、負荷分散処理システムが、グループ毎の振り分け済みの総データサイズの総データサイズの平均値に対する超過度合いを判断する判断ステップとを備え、振分処理ステップでは、判断手段によって判断された超過度合いに応じて、該当するグループに属するデータを、2以上のデータ群に再度振り分ける、ことを特徴とする。
このような負荷分散処理システム或いは負荷分散処理方法によれば、入力されるデータに関する総データサイズが予め記憶され、同一の識別キー情報を有するデータのグループ毎に、並列処理に課される複数のデータ群に振り分けられる。それに伴い、データのグループ毎の総データサイズと、それらのグループに関する群数が検出され、それらの総データサイズ及び群数によってグループあたりの総データサイズの平均値が算出され、複数のグループ毎の総データサイズの平均値に対する超過度合いが判断される。そして、判断された超過度合いに応じて、該当するグループに属するデータが、2以上のデータ群に再度振り分けられる。これにより、データに付加された識別キー情報を利用してデータの振り分けが行われる場合に一部のグループに属するデータが集中したときでも、識別キー情報を変更することなしにデータを他のデータ群に再度振り分けることができる。その結果、負荷分散処理システムの利用者に条件設定作業等の負担をかけることなく、識別キー情報を変更しないことで容易に目的の処理を実現できる。なおかつ、同一の識別キー情報を有するデータ数が多い場合であっても、並列処理に割り当てられるデータを効率よく平滑化することができる。
入力されたデータのデータサイズと、データ加工手段から出力されるデータのデータサイズから、データの膨張率を算出する膨張率算出手段と、総データサイズと膨張率からデータ加工手段による加工後の総データサイズを予測するデータサイズ予測手段と、をさらに備え、平均値算出手段は、データサイズ予測手段によって予測された総データサイズの予測値を基に総データサイズの平均値を算出する、ことが好ましい。この場合、入力されたデータが加工によってデータサイズが増加する場合であっても、複数のグループ毎の総データサイズの平均値が正しく算出される。
また、総データサイズと入力されたデータのデータサイズとから振り分け処理の進捗率を計算する進捗率算出手段をさらに備え、平均値算出手段は、グループ毎データサイズ検出手段によって検出されたグループ毎の振り分け済みの総データサイズを基にグループ毎の平均データサイズを算出し、平均データサイズを進捗率で除算することにより、総データサイズの平均値を算出する、ことも好ましい。かかる構成を採れば、データ入力の進捗率に応じてグループ毎の最終的な総データサイズの平均値が正しく算出される。
さらに、平均値算出手段は、グループ毎の振り分け済みの総データサイズから外れ値を検出し、外れ値が検出されたグループは平均データサイズの算出対象から除外する、ことも好ましい。この場合、データの偏りが大きい場合にその偏りを早期に検出してデータ群への再振り分けを効率的に実行することができる。
またさらに、振分処理手段は、進捗率が所定値に達したことを条件に、データに対する再振り分け処理を実行する、ことも好ましい。こうすれば、初期のデータの振り分けのばらつきを無視することで余計なデータの再振り分け処理を防ぐことができる。
さらにまた、振分処理手段は、超過度合いが大きくなるに従って、該当するグループに属するデータを、より多くのデータ群に再度振り分ける、ことも好ましい。この場合、1つのグループに属するデータの偏りが大きい場合に、そのデータの偏りに起因するデータ振り分けの不均衡を効果的に解消することができる。
また、記憶手段は、並列処理のタスク数をさらに保持し、平均値算出手段は、総データサイズとタスク数とを基に算出した値、及び総データサイズと群数とに基づいて算出した値のうちで小さいほうを、総データサイズの平均値とする、ことも好ましい。かかる構成を採れば、グループ数が極端に少ない場合も、タスク数に応じた適切なデータ振り分けが可能にされる。
さらに、振分処理手段は、データ加工手段に入力されたデータ量が所定量に達する毎に、データに対する再振り分け処理を起動する、ことも好ましい。こうすれば、データ再振り分けに関する演算処理の負荷を適度に低減することができる。
本発明によれば、データの並列処理システムの利用者に負担をかけることなく目的の処理を実現でき、かつ、並列処理に割り当てられるデータを効率よく平滑化することができる。
以下、図面とともに本発明による負荷分散処理システム及び負荷分散処理方法の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1は、本発明の好適な実施形態にかかる負荷分散処理システム1の概略構成図である。同図に示す負荷分散処理システム1は、LAN、WAN、公衆通信網等のデータ通信ネットワークに接続されており、データ通信ネットワーク経由で入力されたデータを、データマイニングや科学技術計算の目的で並列処理させるために、通信ネットワークに接続された複数の計算機に振り分ける振分処理を実行する情報処理システムである。なお、本発明にかかる負荷分散処理システム1は、単一のサーバ装置等の計算機によって実現されてもよいし、後述する複数の機能部が、通信ネットワークを介して接続された複数の計算機上に実装されていてもよいことは言うまでもない。
図2は、図1の負荷分散処理システム1を構成する計算機のハードウェア構成を示すブロック図である。負荷分散処理システム1を構成する計算機100は、物理的には、CPU31と、主記憶装置であるRAM32及びROM33と、ハードディスク装置等の補助記憶装置36と、入力デバイスである入力キー、タッチパネル、マウス等の入力装置35と、ディスプレイ、スピーカ等の出力装置37と、他の端末装置やサーバ装置との間での通信ネットワークを介したデータの送受信を司る通信モジュール34とを含む情報処理装置として構成されている。負荷分散処理システム1によって実現される機能は、図2に示すCPU31、RAM32等のハードウェア上に所定のプログラムを読み込ませることにより、CPU31の制御のもとで通信モジュール34、入力装置35、出力装置37を動作させるとともに、RAM32や補助記憶装置36におけるデータの読み出し及び書き込みを行うことで実現される。
図1に戻って、この負荷分散処理システム1は、機能的な構成要素として、Mapタスク実行部11を有している。このMapタスク実行部11は、MapReduceジョブが施されるデータがレコード単位で入力されて、このデータをReduceタスクを実行する複数の計算機に向けてグループ毎に振り分けて中間出力レコードとして出力する。このMapタスク実行部11は、通信ネットワークを介して接続された複数の計算機上に複数独立して実装されていてもよい。このMapタスク実行部11は、入力レコードデータサイズ検出部17及び中間出力レコードデータサイズ検出部18を含むデータ加工部(データ加工手段)12と、振分処理部(振分処理手段)13と、グループ数検出部(グループ毎データサイズ検出手段)14と、グループ毎総データサイズ検出部(グループ毎データサイズ検出手段)15と再振分部(振分処理手段)16とを備えている。
さらに、負荷分散処理システム1は、総データサイズ記憶部(記憶手段)19と、総タスク数記憶部(記憶手段)20と、ジョブ進捗率算出部(進捗率算出手段)21と、膨張率算出部(膨張率算出手段)22と、予測最終サイズ算出部(データサイズ予測手段)23と、平均最終サイズ算出部(平均値算出手段)24と、グループ分割方法判断部(判断手段)25とを備えている。
以下に、負荷分散処理システム1の各構成要素について詳細に説明する。
Mapタスク実行部11のデータ加工部12は、ジョブ対象の入力データをレコード単位で受け取り、このレコードを加工して中間キーと中間バリューからなる中間出力レコードを出力する。例えば、データ加工部12は、レコードの内容を解析し、そのレコードに対して、解析結果に応じた都道府県別、男女別、年齢別等のデータ種別ごとに中間キーを付加する。すなわち、この中間キーは、レコードの内容を識別するための識別キーとなる。また、このデータ加工部12に含まれる入力レコードデータサイズ検出部17及び中間出力レコードデータサイズ検出部18は、それぞれ、入力済みのレコードの総入力データサイズ及び出力済みの中間出力レコードの総出力データサイズをカウントする。
総データサイズ記憶部19及び総タスク数記憶部20には、それぞれ、負荷分散処理システム1に入力されるデータに関する「総データサイズ」、及び並列処理の「Reduceタスク数」が予め保持されている。ジョブ進捗率算出部21は、ジョブ開始時に総データサイズ記憶部19に保持された「総データサイズ」を読み出し、この「総データサイズ」及び入力レコードデータサイズ検出部17によって検出された「総入力データサイズ」を基に、中間出力レコードのグループの振分処理(Mapタスク)の進捗率を計算する。
膨張率算出部22は、入力レコードデータサイズ検出部17によって検出された「総入力データサイズ」と、中間出力レコードデータサイズ検出部18によって検出された「総出力データサイズ」から、Mapタスクにおけるデータの「膨張率」を計算する。なお、膨張率算出部22は、データの縮小率を計算するようにしてもよい。
予測最終サイズ算出部23は、ジョブ開始時に総データサイズ記憶部19に保持された「総データサイズ」と、膨張率算出部22によって計算された「膨張率」から、その時点におけるデータ加工部12によって加工された後の中間出力レコードの最終的な総データサイズの予測値(予測最終サイズ)を計算する。
Mapタスク実行部11の振分処理部13は、中間出力レコードに付加された中間キーに基づいて、この中間出力レコードを複数のReduceタスクに対応するデータ群のうちのいずれかに振り分けて、そのデータ群毎に「Reduceタスク番号」を付与する。詳細には、中間キーに対してパーティション計算を施してReduceタスク番号を計算することで、振り分け先のReduceタスクを決定する。このパーティション計算は、下記式(1);
“Reduceタスク番号”=“中間キーのハッシュ値”mod“Reduceタスク数”…(1)
によって行われる。なお、各Reduceタスクには、“0”から“Reduceタスク数”−1までのユニークな番号が予め割り当てられている。これにより、同一の中間キーを有する中間出力レコード群(グループ)は、同一のReduceタスクに振り分けられる。
“Reduceタスク番号”=“中間キーのハッシュ値”mod“Reduceタスク数”…(1)
によって行われる。なお、各Reduceタスクには、“0”から“Reduceタスク数”−1までのユニークな番号が予め割り当てられている。これにより、同一の中間キーを有する中間出力レコード群(グループ)は、同一のReduceタスクに振り分けられる。
Mapタスク実行部11のグループ数検出部14は、振分処理部13のパーティション計算と並行して、出現した中間キーの種類の数、すなわち、グループ数を検出する。また、Mapタスク実行部11のグループ毎総データサイズ検出部15は、パーティション計算と並行して、グループ毎の中間出力レコードの振分処理済みの総データサイズを検出する。
平均最終サイズ算出部24は、予測最終サイズ算出部23によって計算された「予測最終サイズ」をグループ数検出部14によって検出された「グループ数」で除算することによって、中間出力レコードのグループあたりの最終的な総データサイズの平均値(平均最終サイズ)を算出する。また、平均最終サイズ算出部24は、グループ毎総データサイズ検出部15によって検出されたグループ毎の「総データサイズ」およびジョブ進捗率算出部21によって計算された「進捗率」を基にして、グループあたりの平均データサイズを算出した後に、その平均データサイズを進捗率で除算することによって、平均最終サイズを算出することもできる。このとき、平均最終サイズ算出部24は、グループ毎の総データサイズの外れ値を「簡便法」、「スミルノフ・グラブス検定」、或いは「トンプソン検定」によって検出し、外れ値として検出されたグループを除外して平均最終サイズを算出する。さらに、平均最終サイズ算出部24は、上記のようにして算出された平均最終サイズの値と、予測最終サイズ算出部23によって計算された「予測最終サイズ」を総タスク数記憶部20に記憶された「Reduceタスク数」によって除算した値とのうち小さいほうの値を、最終的な平均最終サイズとして選択する機能も有する。また、平均最終サイズ算出部24、算出された平均値に対して所定の倍率を乗じたものを、有効な平均最終サイズとして採用することもできる。この場合は、設定する倍率を1よりも大きく、または、1よりも小さくすることで、中間出力レコードの再振り分けが行われる機会の大小を制御できる。
グループ分割方法判断部25は、複数のグループ毎に、グループ毎総データサイズ検出部15によって検出された「総データサイズ」に関する「平均最終サイズ」に対する超過度合いを判断する。具体的には、グループ分割方法判断部25は、「総データサイズ」の「平均最終サイズ」に対する割合を検出し、その割合が大きくなるに従ってグループの分割数を大きくするようにグループの分割方法を決定し再振分部16に通知する。例えば、グループ分割方法判断部25は、検出した割合が“2倍”、“3倍”等の所定値に達しているかに応じて、所定値に対して予め設定されたグループの分割数“2分割”、“3分割”を決定する。ここで、グループ分割方法判断部25は、ジョブ進捗率算出部21によって計算された「進捗率」が予め設定された値に達するまでは、グループの分割処理を実行しないように動作することが可能にされている。また、グループ分割方法判断部25の分割方法の決定は、所定値との比較演算を用いる方法以外に、所定の計算式を用いてグループ分割数を算出してもよい。
再振分部16は、グループ分割方法判断部25から通知されたグループの分割方法に従って、該当のグループを複数のReduceタスクに再度振り分ける。ここで、再振分部16は、グループ分割方法判断部25によって“分割不要”と判断されたグループに関しては、振分処理部13の「パーティション計算」によって処理された中間出力レコードを、そのまま各Reduceタスクに振り分けるように出力する。これに対して、グループ分割方法判断部25によって“2分割”と判断されたグループに関しては、振分処理部13の「パーティション計算」によって処理された中間出力レコードを対象にして、該当するグループに属する中間出力レコードを2つのReduceタスクに再度振り分けるように「Reduceタスク番号」を修正した後に、修正後の中間出力レコードを出力する。同様に、グループ分割方法判断部25によって“3分割”と判断されたグループに関しては、振分処理部13によって処理された中間出力レコードを対象にして、該当するグループに属する中間出力レコードを3つのReduceタスクに再度振り分けるように「Reduceタスク番号」を修正する。
次に、図3〜図10を参照して、負荷分散処理システム1のReduceタスクへのデータの振り分けの動作について説明するとともに、本実施形態の負荷分散処理方法について詳述する。図3は、負荷分散処理システム1のデータ振り分け時の動作を示すフローチャート、図4及び図5は、それぞれ、ジョブの対象となる主テーブルおよび従属テーブルの内容を示すデータ構成図、図6〜9は、負荷分散処理システム1によって生成および記憶される各種データの内容を示すデータ構成図、図10は、負荷分散処理システム1のMapタスクによる中間出力レコードの振り分け状態を示す概念図である。
なお、ここでは、負荷分散処理システム1によって実現されるMapReduceを利用して振り分けられたデータを対象にした内部結合(Inner Join)処理を含む並列処理を想定し、並列処理対象のデータとして、図4に示すような“主キー”及び“データ”によって構成されたレコードを有する主テーブルT1と、図5に示すような“参照キー”及び“データ”によって構成される従属テーブルT2を対象とするものとする。また、この主テーブルT1の内容を収めたファイルは事前に各Reduceタスクに配布済みであり、負荷分散処理システム1に入力されるのは従属テーブルT2のみであるとする。すなわち、負荷分散処理システム1には、データサイズ“3Byte”の“参照キー”及びデータサイズ“97Byte”の“データ”を含む計100Byteのレコードがレコード数“40”で入力されるものとする。
まず、負荷分散処理システム1に対するデータ入力の前に、負荷分散処理システム1において、本実施形態によるグループの再振分処理を適用するか否かが設定される。この設定内容は、MapReduceを利用するアプリケーションのカテゴリに応じて利用者によって決定される。そして、データ加工部12への従属テーブルT2の入力が開始されると、負荷分散処理システム1によってグループの再振分処理を適用するか否かが設定内容により判断される(ステップS101)。判断の結果、再振分処理が適用されない場合には(ステップS101;NO)、データ加工部12によって従来のMapタスクが実行された後に、振分処理部13によって中間出力レコードが各Reduceタスクに出力される(ステップS102)。
一方、再振分処理が適用される場合には(ステップS101;YES)、負荷分散処理システム1の利用者によって設定された「判断間隔」の入力が受け付けられる(ステップS103)。以降の処理では、入力される従属テーブルT2のレコード数がこの「判断間隔」に達する毎に、後述する従属テーブルT2の再振分処理を起動するように制御される。また、ジョブ開始後に、総データサイズ記憶部19及び総タスク数記憶部20に、利用者から入力された「総データサイズ」及び「Reduceタスク数」が記憶される(ステップS104)。例えば、図5に示すような従属テーブルT2が4つのReduceタスクに振り分けられる場合には、「総データサイズ」=“4000Byte”、「Reduceタスク数」=“4”と記憶される。また、負荷分散処理システム1において、上記の「判断間隔」を判定するためのパラメータ「カウント」が“0”に設定される(ステップS105)。
次に、入力される従属テーブルT2のレコードが残っているか否かが、データ加工部12によって判断される(ステップS106)。判断の結果、入力レコードが残っていない場合には(ステップS106;NO)、中間出力レコードの振り分け処理を終了する。一方、入力レコードが残っている場合には(ステップS106;YES)、データ加工部12によってパラメータ「カウント」に“1”が加算される(ステップS107)。その後、入力された従属テーブルT2がデータ加工部12によって中間出力レコードに加工される(ステップS108、Map処理)。このMap処理によって従属テーブルT2に含まれるデータが加工されることにより、データサイズが“10Byte”増加した中間バリューを含む中間出力レコードが生成される。さらに、Map処理においては、入力レコードデータサイズ検出部17によって「総入力データサイズ」がカウントされると同時に、中間出力レコードデータサイズ検出部18によって「総出力データサイズ」がカウントされる。
次に、データ加工部12によって「カウント」の値が「判断間隔」に達したか否かが判断される(ステップS109)。この判断の結果、未だ「判断間隔」に達していない場合には(ステップS109;NO)、振分処理部13によって中間出力レコードに含まれる「参照キー」を対象に上記式(1)を適用したパーティション計算がなされることによって、中間出力レコードにReduceタスク番号が付与される(ステップS113)。そして、振分処理部13によってReduceタスク番号が付与された中間出力レコードが、再振分部16を経由して対応するReduceタスクに出力される(ステップS114)。ここで、図4には主テーブルT1の主キーに対応するハッシュ値Vhが示されており、Reduceタスクの総数が“4”である場合には、この主キーと同一の従属キーを有する従属テーブルT2は、4つのReduceタスク番号“#0”〜“#3”が割り振られることになる。
その一方で、「カウント」の値が「判断間隔」に達した場合には(ステップS109;YES)、データ加工部12によって「カウント」の値が“0”にリセットされる(ステップS110)。さらに、グループ分割方法判断部25により、同一の中間キーを有する中間出力レコードの各グループに関して、再振分処理の必要があるか否かが判断される(ステップS111)。その後、グループ分割方法判断部25による判断結果が記憶された後に、再振分部16に通知される(ステップS112)。次に、再振分部16により、上記判断結果に含まれるグループの分割数に基づいて中間出力レコードのパーティション計算が再度行われることによって、同一のグループに属する中間出力レコードに対して複数のReduceタスク番号を再度割り振る(ステップS113)。そして、再振分部16によってReduceタスク番号が修正された中間処理レコードが、対応するReduceタスクに対して出力された後に(ステップS114)、処理がステップS106に戻される。入力レコードが無くなった時点で(ステップS106;NO)、負荷分散処理システム1のデータ振分処理が終了される。Reduceタスクでは、事前に配布されている主テーブルT1と振り分けられた中間出力レコードを対象にして、主テーブルT1の主キーと従属テーブルT2の参照キー、言い換えると中間出力レコードの中間キーに基づいて、内部結合(Inner Join)することにより、最終出力レコードを生成および出力する。
ここで、図6〜9を参照しながら、図5に示す従属テーブルT2が入力された際の負荷分散処理システム1に保持される各種パラメータの変化状態について、具体的に説明する。これらの図には、図5に示す8レコードの従属テーブルT2が繰り返し5回入力された場合の各種パラメータの内容の変化を時系列に示している。
まず、図6(a)に示すように、負荷分散処理システム1に最初の8レコードが入力されたとき、中間キーで識別されるグループ毎の総データサイズがグループ毎総データサイズ検出部15によって検出されて保持される。また、図6(b)に示すように、入力レコードデータサイズ検出部17によって総入力データサイズ“800Byte”が、中間出力レコードデータサイズ検出部18によって総出力データサイズ“880Byte”が、それぞれ検出および保持され、それらを基に膨張率算出部22によって膨張率“1.1”が計算および保持され、予測最終サイズ算出部23によって予測最終サイズ“4,400Byte”が計算および保持される。また、この予測最終サイズおよびグループ数検出部14で検出されたグループ数“5”を基にして、平均最終サイズ算出部24によって平均最終サイズ“880Byte”が算出および保持される。さらに、平均最終サイズ算出部24は、ジョブ進捗率算出部21によって算出された進捗率およびグループ毎の総データサイズから、外れ値を考慮した平均最終サイズ“550Byte”を算出することもできる。そして、平均最終サイズ算出部24によって、上記の平均最終サイズの値と、予測最終サイズ算出部23によって計算された予測最終サイズをReduceタスク数によって除算した値とのうち小さいほうの値“550Byte”が、最終的な平均最終サイズとして選択される。
なお、判断間隔が“8”に設定されていたとすると、最初の8レコードが入力されると、グループ分割方法判断部25により、中間出力レコードの各レコードの再振分処理の必要性が判断され、いずれのグループの総データサイズも平均最終サイズを超過していないので再振り分けの必要はないと判断される。そして、次のグループ分割の判断が行われるまで、最新の再振分処理の必要性の判断結果に基づいて、入力レコードに対して再振分部16による再振分処理を行わないで従来のパーティション計算が施される。
次に、9〜16レコード目が入力されると、図7(a),(b)に示すように、グループ“CCC”の総データサイズ“880Byte”が平均最終サイズ“550Byte”を超過しているので、グループ分割方法判断部25により、グループ“CCC”の中間出力レコードの再振り分けの必要があると判断される。そして、次のグループ分割の判断が行われるまで、再振分部16によって既に振分処理部13によって計算されたハッシュ値に対して“1”を加算するように修正される。すると、これまでReduceタスク“#1”に割り当てられていたグループ“CCC”は、以降Reduceタスク“#2”に割り当てられることになる。その後、次回のグループ分割判断が行われるまで、最新の再振分処理の必要性の判断結果に基づいて、入力レコードに対して再振分部16によって修正されたパーティション計算が施される。
さらに、17〜24レコード目が入力されると、図8(a),(b)に示すように、グループ“CCC”の総データサイズ“1,320Byte”が平均最終サイズ“550Byte”の2倍を超過しているので、グループ分割方法判断部25により、グループ“CCC”の中間出力レコードの2回目の再振り分けの必要があると判断される。そして、再振分部16によって既に振分処理部13によって計算されたハッシュ値に対して更に“1”を加算するように修正される。すると、これまでReduceタスク“#2”に割り当てられていたグループ“CCC”は、以降Reduceタスク“#3”に割り当てられることになる。その後、次回のグループ分割判断が行われるまで、最新の再振分処理の必要性の判断結果に基づいて、入力レコードに対して再振分部16によって修正されたパーティション計算が施される。
さらに、25〜32レコード目が入力されると、図9(a),(b)に示すように、グループ“CCC”の総データサイズ“1,760Byte”が平均最終サイズ“550Byte”の3倍を超過しているので、グループ分割方法判断部25により、グループ“CCC”の中間出力レコードの3回目の再振り分けの必要があると判断される。そして、再振分部16によって既に振分処理部13によって計算されたハッシュ値に対して更に“1”を加算するように修正される。すると、これまでReduceタスク“#3”に割り当てられていたグループ“CCC”は、以降Reduceタスク“#0”に割り当てられることになる。その後、次回のグループ分割判断が行われるまで、最新の再振分処理の必要性の判断結果に基づいて、入力レコードに対して再振分部16によって修正されたパーティション計算が施される。
図10には、負荷分散処理システム1による中間出力レコードの振り分け状態を、図11には、従来のパーティション計算による中間出力レコードの振り分け状態を、それぞれ示している。各Reduceタスクに割り振られた中間出力レコードのデータサイズの標準偏差は、図10の場合は約257.97、図11の場合は約673.61となり、本実施形態の負荷分散処理システム1のほうが各Reduceタスク間のばらつきが小さくされており、各Reduceタスク間の負荷の平滑化が実現されていることが分かる。
以上説明した負荷分散処理システム1およびそれを用いた負荷分散処理方法によれば、入力されるデータに関する総データサイズが予め記憶され、同一の中間キーを有する中間出力レコードのグループ毎に、並列処理に課される複数のデータ群に振り分けられる。それに伴い、中間出力レコードのグループ毎の総データサイズと、それらのグループに関するグループ数が検出され、それらの総データサイズ及びグループ数によってグループあたりの総データサイズの平均値(平均最終サイズ)が算出され、複数のグループ毎の総データサイズの平均値に対する超過度合いが判断される。そして、判断された超過度合いに応じて、該当するグループに属するデータが、2以上のデータ群に再度振り分けられる。これにより、データに付加された中間キーを利用してデータの振り分けが行われる場合に一部のグループに属するデータが集中したときでも、中間キーを変更することなしにデータを他のデータ群に再度振り分けることができる。その結果、負荷分散処理システム1の利用者に中間キーの動的な変更のための条件設定作業等の負担をかけることなく、中間キーを変更しないことで容易に目的の処理を実現できる。つまり、利用者は中間キーの内容に依存したReduceプログラムを従来通り記述することができる。なおかつ、同一の中間キーを有するグループのデータ数が相対的に多い場合であっても、そのグループを複数のReduceタスクに分割して割り振ることで、並列処理に割り当てられる中間出力レコードを効率よく平滑化することができる。
また、アプリケーションの実行開始の際に、本実施形態によるグループの再振分処理を適用する設定がなされていた場合、負荷分散処理システム1では、アプリケーションの実行の最中において、グループ分割を行うかどうかの判断が自動的に行われるため、グループ分割を行うかどうかを判断するための条件をアプリケーションプログラム毎に指定する手間が省ける。また、グループを分割する判断が下された場合にグループを何分割するかも利用者が指定することが可能であるため、グループ分割方法を必要に応じてカスタマイズすることが可能である。
また、入力データに関する総データサイズと膨張率から中間出力レコードの総データサイズを予測し、総データサイズの予測値を基にグループあたりの総データサイズの平均値を算出するので、入力されたデータが加工によってデータサイズが増加する場合であっても、複数のグループ毎の総データサイズの平均値が正しく算出される。
また、中間出力レコードの振り分け処理の進捗率を計算し、グループ毎の平均データサイズを進捗率で除算することにより、グループ毎の総データサイズの平均値を算出するので、データ入力の進捗率に応じてグループ毎の最終的な総データサイズの平均値が正しく算出される。
さらに、外れ値が検出されたグループはグループ毎の平均データサイズの算出対象から除外されるので、データの偏りが大きい場合に極端に大きなグループの平均データサイズへの影響を防ぐことで、その偏りを早期に検出してReduceタスクへの中間出力レコードのグループの再振り分けを効率的に実行することができる。
また、データ入力の進捗率が所定値に達したことを条件に、グループの再振り分け処理を実行するので、初期のデータの振り分けのばらつきを無視することで余計なデータの再振り分け処理を防ぐことができる。
さらに、グループのデータサイズの平均値に対する超過度合いが大きくなるに従って、該当するデータ群に振り分けられるデータを、より多くのデータ群に再度振り分けるので、1つのグループに属するデータの偏りが大きい場合に、そのデータの偏りに起因するデータ振り分けの不均衡を効果的に解消することができる。
また、入力データの総データサイズをReduceタスク数で除算して算出した値、及び総データサイズと中間出力レコードのグループ数とに基づいて算出した値のうちで小さいほうを、総データサイズの平均値とするので、グループ数が極端に少ない場合も、総Reduceタスク数に応じた適切なデータ配分が可能にされる。
さらに、入力データのレコード数が所定数に達する毎に、中間出力レコードに対する再振り分け処理を起動するので、中間出力レコードの再振り分けに関する演算処理の負荷を適度に低減することができる。
1…負荷分散処理システム、12…データ加工部(データ加工手段)、13…振分処理部(振分処理手段)、14…グループ数検出部(グループ毎データサイズ検出手段)、15…グループ毎総データサイズ検出部(グループ毎データサイズ検出手段)、16…再振分部(振分処理手段)、19…総データサイズ記憶部(記憶手段)、20…総タスク数記憶部(記憶手段)、21…ジョブ進捗率算出部(進捗率算出手段)、22…膨張率算出部(膨張率算出手段)、23…予測最終サイズ算出部(データサイズ予測手段)、24… 平均最終サイズ算出部(平均値算出手段)、25…グループ分割方法判断部(判断手段)。
Claims (9)
- 入力されたデータを並列処理の対象である複数のデータ群に振り分ける負荷分散処理システムであって、
前記データの総データサイズを予め保持する記憶手段と、
入力された前記データに対して該データを識別するための識別キー情報を付加するように加工するデータ加工手段と、
データ加工手段によって加工された前記データに含まれる前記識別キー情報に応じて、同一の前記識別キー情報を有する前記データのグループ毎に、前記複数のデータ群のうちのいずれかに振り分ける振分処理手段と、
前記データの前記グループ毎の振り分け済みの総データサイズと、前記データの前記グループの群数とを検出するグループ毎データサイズ検出手段と、
前記総データサイズと前記群数とに基づいて、前記グループあたりの最終的な総データサイズの平均値を算出する平均値算出手段と、
前記グループ毎の前記振り分け済みの総データサイズの前記総データサイズの平均値に対する超過度合いを判断する判断手段とを備え、
前記振分処理手段は、前記判断手段によって判断された前記超過度合いに応じて、該当するグループに属する前記データを、2以上のデータ群に再度振り分ける、
ことを特徴とする負荷分散処理システム。 - 入力された前記データのデータサイズと、前記データ加工手段から出力されるデータのデータサイズから、前記データの膨張率を算出する膨張率算出手段と、
前記総データサイズと前記膨張率から前記データ加工手段による加工後の総データサイズを予測するデータサイズ予測手段と、
をさらに備え、
前記平均値算出手段は、前記データサイズ予測手段によって予測された前記総データサイズの予測値を基に前記総データサイズの平均値を算出する、
ことを特徴とする請求項1記載の負荷分散処理システム。 - 前記総データサイズと入力された前記データのデータサイズとから振り分け処理の進捗率を計算する進捗率算出手段をさらに備え、
前記平均値算出手段は、前記グループ毎データサイズ検出手段によって検出された前記グループ毎の振り分け済みの総データサイズを基に前記グループ毎の平均データサイズを算出し、前記平均データサイズを進捗率で除算することにより、前記総データサイズの平均値を算出する、
ことを特徴とする請求項1又は2記載の負荷分散処理システム。 - 前記平均値算出手段は、前記グループ毎の振り分け済みの総データサイズから外れ値を検出し、前記外れ値が検出されたグループは前記平均データサイズの算出対象から除外する、
ことを特徴とする請求項3記載の負荷分散処理システム。 - 前記振分処理手段は、前記進捗率が所定値に達したことを条件に、前記データに対する再振り分け処理を実行する、
ことを特徴とする請求項3記載の負荷分散処理システム。 - 前記振分処理手段は、前記超過度合いが大きくなるに従って、該当するグループに属する前記データを、より多くのデータ群に再度振り分ける、
ことを特徴とする請求項1〜5のいずれか1項に記載の負荷分散処理システム。 - 前記記憶手段は、並列処理のタスク数をさらに保持し、
前記平均値算出手段は、前記総データサイズと前記タスク数とを基に算出した値、及び前記総データサイズと前記群数とに基づいて算出した値のうちで小さいほうを、前記総データサイズの平均値とする、
ことを特徴とする請求項1〜6のいずれか1項に記載の負荷分散処理システム。 - 前記振分処理手段は、前記データ加工手段に入力されたデータ量が所定量に達する毎に、前記データに対する再振り分け処理を起動する、
ことを特徴とする請求項1〜7のいずれか1項に記載の負荷分散処理システム。 - 入力されたデータを並列処理の対象である複数のデータ群に振り分ける負荷分散処理方法であって、
負荷分散処理システムが、前記データの総データサイズを予め保持する記憶ステップと、
前記負荷分散処理システムが、入力された前記データに対して該データを識別するための識別キー情報を付加するように加工するデータ加工ステップと、
前記負荷分散処理システムが、データ加工ステップによって加工された前記データに含まれる前記識別キー情報に応じて、同一の前記識別キー情報を有する前記データのグループ毎に、前記複数のデータ群のうちのいずれかに振り分ける振分処理ステップと、
前記負荷分散処理システムが、前記データの前記グループ毎の振り分け済みの総データサイズと、前記データの前記グループの群数とを検出するグループ毎データサイズ検出ステップと、
前記負荷分散処理システムが、前記総データサイズと前記群数とに基づいて、前記グループあたりの最終的な総データサイズの平均値を算出する平均値算出ステップと、
前記負荷分散処理システムが、前記グループ毎の前記振り分け済みの総データサイズの前記総データサイズの平均値に対する超過度合いを判断する判断ステップとを備え、
前記振分処理ステップでは、前記判断手段によって判断された前記超過度合いに応じて、該当するグループに属する前記データを、2以上のデータ群に再度振り分ける、
ことを特徴とする負荷分散処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010266468A JP2012118669A (ja) | 2010-11-30 | 2010-11-30 | 負荷分散処理システム及び負荷分散処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010266468A JP2012118669A (ja) | 2010-11-30 | 2010-11-30 | 負荷分散処理システム及び負荷分散処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012118669A true JP2012118669A (ja) | 2012-06-21 |
Family
ID=46501439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010266468A Pending JP2012118669A (ja) | 2010-11-30 | 2010-11-30 | 負荷分散処理システム及び負荷分散処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012118669A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014140971A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Deploying parallel data integration applications to distributed computing environments |
EP2916221A1 (en) | 2014-03-05 | 2015-09-09 | Fujitsu Limited | Task assignment |
JP2016004328A (ja) * | 2014-06-13 | 2016-01-12 | 富士通株式会社 | タスク割当プログラム、タスク割当方法およびタスク割当装置 |
US9256460B2 (en) | 2013-03-15 | 2016-02-09 | International Business Machines Corporation | Selective checkpointing of links in a data flow based on a set of predefined criteria |
US9401835B2 (en) | 2013-03-15 | 2016-07-26 | International Business Machines Corporation | Data integration on retargetable engines in a networked environment |
US9477512B2 (en) | 2013-08-14 | 2016-10-25 | International Business Machines Corporation | Task-based modeling for parallel data integration |
JP2017191387A (ja) * | 2016-04-11 | 2017-10-19 | 富士通株式会社 | データ処理プログラム、データ処理方法およびデータ処理装置 |
US10102217B2 (en) | 2014-03-07 | 2018-10-16 | Fujitsu Limited | Non-transitory computer-readable recording medium having stored therein data dividing program, data dividing apparatus, and data dividing method |
CN111190710A (zh) * | 2019-11-25 | 2020-05-22 | 泰康保险集团股份有限公司 | 一种任务分配方法及装置 |
JP2020107010A (ja) * | 2018-12-27 | 2020-07-09 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
-
2010
- 2010-11-30 JP JP2010266468A patent/JP2012118669A/ja active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2526759A (en) * | 2013-03-15 | 2015-12-02 | Ibm | Deploying parallel data integration applications to distributed computing environments |
WO2014140971A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Deploying parallel data integration applications to distributed computing environments |
US9256460B2 (en) | 2013-03-15 | 2016-02-09 | International Business Machines Corporation | Selective checkpointing of links in a data flow based on a set of predefined criteria |
US9262205B2 (en) | 2013-03-15 | 2016-02-16 | International Business Machines Corporation | Selective checkpointing of links in a data flow based on a set of predefined criteria |
US9323619B2 (en) | 2013-03-15 | 2016-04-26 | International Business Machines Corporation | Deploying parallel data integration applications to distributed computing environments |
US9401835B2 (en) | 2013-03-15 | 2016-07-26 | International Business Machines Corporation | Data integration on retargetable engines in a networked environment |
US9594637B2 (en) | 2013-03-15 | 2017-03-14 | International Business Machines Corporation | Deploying parallel data integration applications to distributed computing environments |
US9477512B2 (en) | 2013-08-14 | 2016-10-25 | International Business Machines Corporation | Task-based modeling for parallel data integration |
US9477511B2 (en) | 2013-08-14 | 2016-10-25 | International Business Machines Corporation | Task-based modeling for parallel data integration |
EP2916221A1 (en) | 2014-03-05 | 2015-09-09 | Fujitsu Limited | Task assignment |
JP2015170054A (ja) * | 2014-03-05 | 2015-09-28 | 富士通株式会社 | タスク割当プログラム、タスク実行プログラム、タスク割当装置、タスク実行装置およびタスク割当方法 |
US10102217B2 (en) | 2014-03-07 | 2018-10-16 | Fujitsu Limited | Non-transitory computer-readable recording medium having stored therein data dividing program, data dividing apparatus, and data dividing method |
JP2016004328A (ja) * | 2014-06-13 | 2016-01-12 | 富士通株式会社 | タスク割当プログラム、タスク割当方法およびタスク割当装置 |
JP2017191387A (ja) * | 2016-04-11 | 2017-10-19 | 富士通株式会社 | データ処理プログラム、データ処理方法およびデータ処理装置 |
JP2020107010A (ja) * | 2018-12-27 | 2020-07-09 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
JP7174245B2 (ja) | 2018-12-27 | 2022-11-17 | 富士通株式会社 | 情報処理プログラム、情報処理装置及び情報処理方法 |
CN111190710A (zh) * | 2019-11-25 | 2020-05-22 | 泰康保险集团股份有限公司 | 一种任务分配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012118669A (ja) | 負荷分散処理システム及び負荷分散処理方法 | |
US8726290B2 (en) | System and/or method for balancing allocation of data among reduce processes by reallocation | |
US11558244B2 (en) | Improving performance of multi-processor computer systems | |
Eidenbenz et al. | Task allocation for distributed stream processing | |
US7664859B2 (en) | Resource assigning management apparatus and resource assigning method | |
JP4621087B2 (ja) | 複数のインスタンスアプリケーションに対し負荷分散装置を動作させるシステムおよび方法 | |
US20100250642A1 (en) | Adaptive Computing Using Probabilistic Measurements | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
JP4185103B2 (ja) | 実行可能プログラムをスケジューリングするためのシステム及び方法 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
US9218210B2 (en) | Distributed processing system | |
US10530708B2 (en) | Apparatus and method for managing computing resources in network function virtualization system | |
CN110347515B (zh) | 一种适合边缘计算环境的资源优化分配方法 | |
JP2008123040A (ja) | リソース割当方法、リソース割当プログラム、および、管理コンピュータ | |
KR20170139872A (ko) | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 | |
KR20140117905A (ko) | 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법 | |
WO2014045549A1 (ja) | マシン配置計画を生成する情報処理装置及びマシン配置計画生成方法 | |
JP2016024612A (ja) | データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置 | |
JP5445739B2 (ja) | リソース割当装置、リソース割当方法、及びプログラム | |
US8819239B2 (en) | Distributed resource management systems and methods for resource management thereof | |
Liu et al. | OPTIMA: on-line partitioning skew mitigation for MapReduce with resource adjustment | |
Pham et al. | Joint consolidation and service-aware load balancing for datacenters | |
CN115202876A (zh) | 一种基于etl服务器的任务处理方法、系统和电子设备 | |
JP2009037369A (ja) | データベースサーバへのリソース割当て方法 | |
JP6435980B2 (ja) | 並列計算機、スレッド再割当判定方法及びスレッド再割当判定プログラム |