JP4014095B2 - Load distribution device, load distribution method, and load distribution program - Google Patents

Load distribution device, load distribution method, and load distribution program Download PDF

Info

Publication number
JP4014095B2
JP4014095B2 JP2003150823A JP2003150823A JP4014095B2 JP 4014095 B2 JP4014095 B2 JP 4014095B2 JP 2003150823 A JP2003150823 A JP 2003150823A JP 2003150823 A JP2003150823 A JP 2003150823A JP 4014095 B2 JP4014095 B2 JP 4014095B2
Authority
JP
Japan
Prior art keywords
processing
load
processing device
data
processing data
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.)
Expired - Fee Related
Application number
JP2003150823A
Other languages
Japanese (ja)
Other versions
JP2004355227A (en
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003150823A priority Critical patent/JP4014095B2/en
Publication of JP2004355227A publication Critical patent/JP2004355227A/en
Application granted granted Critical
Publication of JP4014095B2 publication Critical patent/JP4014095B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、処理データを生成する負荷発生装置から受け取った処理データを複数の処理装置に配分するための負荷配分装置、負荷配分方法、及び負荷配分プログラムに関するものである。
【0002】
【従来の技術】
従来、処理データを生成する負荷発生装置から受け取った処理データを複数の処理装置に配分するための負荷配分装置としては以下に示す3種類が典型的である。
【0003】
1.負荷発生装置から受け取る処理データを処理するために必要とする処理量は一定であると仮定して、各処理装置に順番に処理データを配分する負荷配分装置(例えば、非特許文献1参照)。
【0004】
2.上記1を性能の異なる処理装置に対して実行するために、各処理装置に一定の重み付けを行い、重みの比率に従って各処理装置に順番に処理データを配分する負荷配分装置(例えば、非特許文献2参照)。
【0005】
3.各処理装置の処理負荷を示す負荷データを各処理装置から取得し、その処理負荷を数値化して処理負荷の低い処理装置に処理データを配分する負荷配分装置(例えば、非特許文献3参照)。
【0006】
【非特許文献1】
F5 Networks, "BIG-IP(登録商標)Controller Reference Guide", version 3.3, F5 Networks, p. 1-46
【0007】
【非特許文献2】
F5 Networks, "BIG-IP(登録商標)Controller Reference Guide", version 3.3, F5 Networks, p. 1-47
【0008】
【非特許文献3】
F5 Networks, "BIG-IP(登録商標)Controller Reference Guide", version 3.3, F5 Networks, pp. 1-47, 1-48
【0009】
【発明が解決しようとする課題】
上記1又は2のように、各処理装置に順番に処理データを配分する負荷配分装置では、各処理装置の性能が同一であって、配分される各処理データの内容が均等で、かつ、各処理時間が一定であれば各処理装置の処理負荷は同一になる。しかし、ほとんどの場合、処理データの内容は各処理データ間で少しずつ異なっており、順番に処理データを配分してゆくと処理装置の負荷が不均等になってしまう。
また、負荷配分装置によって選択された処理装置が配分された処理データの処理をいったん滞らせると、この処理データの処理が終わらないうちに、後続の処理データが次々と配分されてしまう。その結果、その処理装置はますます処理を滞らせてしまうという悪循環に陥ってしまう。
【0010】
上記3のように、処理負荷の低い処理装置に処理データを配分する負荷配分装置では、処理装置が処理を滞らせてしまうことは避けられる。しかし、負荷配分装置が処理装置から負荷データを取得する動作が処理装置に一定の負担を与えてしまい、処理装置全体が単位時間に処理することが可能な処理データ量が少なくなってしまう。すなわち、処理装置全体のパフォーマンスが低下してしまう。
【0011】
また、処理装置が多数であればあるほど、それらの処理装置を対象として処理データを配分しようとした場合に、負荷配分装置は全ての処理装置の負荷データを取得しなければ処理データを配分する処理装置を決定することができない。多数の処理装置から負荷データを取得する必要があるため、負荷配分装置が取得する負荷データの取得間隔が長くなってしまう。負荷データの取得間隔が長くなると、負荷配分装置が処理データを配分する時点で、収集した負荷データが既に各処理装置の処理負荷の実情を反映しないものになる可能性が高くなってしまう。負荷配分装置がこれらの負荷データを使用すると、各処理処置への処理データの配分が均等でなくなる可能性が高くなる。
換言すれば、全ての処理装置の負荷を同時に知ることはできないため、処理装置によって取得時間の異なる各処理装置の処理負荷を、仮想的な時刻における処理負荷と仮定して処理データを配分する処理装置の選択基準としなければならず、実情に合っていない場合が多い。その結果として、各処理処置への処理データの配分が均等でなくなる可能性が高くなる。
【0012】
本発明は、上述した従来の技術に鑑み、処理装置に余計な処理をさせることなく、実態に即した処理負荷の低い処理装置を選択してこの処理装置に処理データを配分するための負荷配分装置、負荷配分方法、及び負荷配分プログラムを提供することを目的とする。
【0013】
本発明の負荷配分装置は、処理データを入力する入力手段と、前記処理データを配分することが可能な複数の処理装置を識別する識別手段と、前記処理装置の数に基づいて、前記処理データを処理するように指示する複数の数値を算出する算出手段と、前記処理装置のうちのある処理装置の処理負荷を検出する検出処理を実行する検出手段と、前記検出処理によって検出された処理負荷を蓄積してゆく蓄積手段と、前記ある処理装置に対応する、前記複数の数値のうちの1つと、前記蓄積されている複数の処理負荷に基づいて、最も近い過去に蓄積した処理負荷に対応する処理装置が前記処理データを処理するように指示するか否かを判定する判定処理を実行する判定手段と、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置であると判定された場合に、該処理装置に前記処理データを配分する配分手段と、を具備し、前記判定手段は、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置でないと判定された場合に、他のある処理装置に関して前記検出処理及び前記判定処理を実行し、前記複数の数値の各数値は、処理負荷を検出する順番に対応していて、検出された複数の処理負荷のうちで処理負荷の値が小さい順に付与される順位と比較されることを特徴とする
【0014】
本発明の負荷配分方法は、処理データを入力し、前記処理データを配分することが可能な複数の処理装置を識別し、前記処理装置の数に基づいて、前記処理データを処理するように指示する複数の数値を算出し、前記処理装置のうちのある処理装置の処理負荷を検出する検出処理を実行し、前記検出処理によって検出された処理負荷を蓄積し、前記ある処理装置に対応する、前記複数の数値のうちの1つと、前記蓄積されている複数の処理負荷に基づいて、最も近い過去に蓄積した処理負荷に対応する処理装置が前記処理データを処理するように指示するか否かを判定する判定処理を実行し、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置であると判定された場合に、該処理装置に前記処理データを配分することを具備し、前記判定処理を実行することは、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置でないと判定された場合に、他のある処理装置に関して前記検出処理及び前記判定処理を実行し、前記複数の数値の各数値は、処理負荷を検出する順番に対応していて、検出された複数の処理負荷のうちで処理負荷の値が小さい順に付与される順位と比較されることを特徴とする
【0015】
本発明の負荷配分プログラムは、コンピュータを、処理データを入力する入力手段と、前記処理データを配分することが可能な複数の処理装置を識別する識別手段と、前記処理装置の数に基づいて、前記処理データを処理するように指示する複数の数値を算出する算出手段と、前記処理装置のうちのある処理装置の処理負荷を検出する検出処理を実行する検出手段と、前記検出処理によって検出された処理負荷を蓄積してゆく蓄積手段と、前記ある処理装置に対応する、前記複数の数値のうちの1つと、前記蓄積されている複数の処理負荷に基づいて、最も近い過去に蓄積した処理負荷に対応する処理装置が前記処理データを処理するように指示するか否かを判定する判定処理を実行する判定手段と、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置であると判定された場合に、該処理装置に前記処理データを配分する配分手段と、として機能させるためのものであり、前記判定手段は、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置でないと判定された場合に、他のある処理装置に関して前記検出処理及び前記判定処理を実行し、前記複数の数値の各数値は、処理負荷を検出する順番に対応していて、検出された複数の処理負荷のうちで処理負荷の値が小さい順に付与される順位と比較されることを特徴とする
【0016】
以上によれば、処理負荷を検出する処理装置を限定するので、ほとんどの処理装置に余計な処理をさせることがなくなる。また、処理装置に処理データを配分するときは、この処理装置の処理負荷を検出した直後に配分するので、実態に即した処理負荷の低い処理装置を選択してこの処理装置に処理データを配分することが可能になる。
【0017】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態に係る負荷配分装置、負荷配分方法、及び負荷配分プログラムを説明する。
【0018】
図1は、本発明の実施形態に係る負荷配分装置20を含むシステム例を示す図である。
本実施形態に係る負荷配分装置20を含むシステムは、例えば、図1に示すように、複数の負荷発生装置10、1つの負荷配分装置20、及び、複数の処理装置30を備えている。
【0019】
各負荷発生装置10は、ある処理データを生成する。各負荷発生装置10は、その処理データを負荷配分装置20にそれぞれ出力する。それらの処理データの内容は様々であり、負荷配分装置20に出力される時刻も一般に一様ではない。
負荷配分装置20は、複数の負荷発生装置10から処理データを入力する。負荷配分装置20は、複数の処理装置30から順に処理装置の処理負荷を示している負荷データを入力する。この負荷データに基づいて、負荷配分装置20はある処理装置を選択し、この処理装置に、入力した処理データを配分する。
処理装置30は、負荷配分装置20に負荷データを出力する。その後、負荷配分装置20から処理データが出力されてきた場合に、その処理データを処理する。
【0020】
図2は、図1の負荷配分装置のブロック図である。
処理データ入力部21は、各負荷発生装置10から処理データを入力する。処理データ配分部22は、後述の判定部26が判定した判定結果に基づいて、処理データ入力部21から入力した処理データをある処理装置30に配分する。
処理装置識別部23は、処理データを処理することが可能な処理装置30を把握するために、処理装置30を識別する。処理装置識別部23は、複数の処理装置30に対して処理データを処理することが可能であるか否かを確認するために確認信号を送信し、応答があった各処理装置30に対応して何らかの識別名称を付与する。すなわち、負荷配分装置20内で応答があった各処理装置30が一意的に定まるように名称が付与される。例えば、処理装置識別部23は、応答があった各処理装置30に対応して番号を付与する。この結果、処理装置識別部23は、処理データを処理することが可能な処理装置数を把握することができる。
【0021】
負荷検出部24は、処理装置識別部23が識別した処理装置30からある処理装置30を選択し、この処理装置30の負荷データを負荷配分装置20に出力するように処理装置30に指示信号を出力する。この指示信号を出力する処理装置30をどのように選択するかは後述される。
【0022】
選択決断順位算出部25は、処理装置識別部23から処理データを処理することが可能な処理装置数を入力し、この処理装置数に基づいて、処理装置数分(正確には処理装置数−1の個数)の選択決断順位を算出する。選択決断順位とは、この選択決断順位に対応する処理装置30に処理データを処理するように指示するか否かを判定するための閾値である(詳細は、後に図3を参照して説明する)。換言すれば、第i番目(1≦i≦N−1)に負荷検出部24によって選択された処理装置30の、最初のi個の処理装置の中での相対順位が第i番目の選択決断順位より下位である場合はこの処理装置30に処理データを処理させず、一方、最初のi個の処理装置の中での処理装置30の相対順位が第i番目の選択決断順位と同一又はその選択決断順位よりも上位である場合はこの処理装置30に処理データを処理させる。これは判定部26が実行する処理である。
ここで、第i番目に負荷検出部24によって選択された処理装置30の、最初のi個の処理装置の中での相対順位とは、第i番目までに負荷検出部24によって選択された処理装置30の処理負荷の小さい順の順位がs、・・・、sであるとすると、s、・・・、sのうちのsと同一又はその順位よりも上位である処理装置30の個数のことである。
【0023】
メモリ27は、処理装置識別部23が識別した処理装置数を記憶している。また、メモリ27は、処理装置識別部23が識別した処理装置30のうち、負荷検出部24が検出した処理装置30の処理負荷を、検出した処理装置30ごとに記憶している。
【0024】
判定部26は、処理装置識別部23から付与された識別名称の一覧を入力する。また、判定部26は、負荷検出部24から負荷データを負荷配分装置20に出力するように指示された処理装置30の負荷データを入力する。さらに、判定部26は、選択決断順位算出部25から処理装置数分の選択決断順位を入力する。判定部26は、メモリ27を参照して、判定部26が今回入力した負荷データを出力した処理装置30が第何番目に負荷データを出力したものかを確認する。判定部26は、この順番に対応する選択決断順位を探し出し、その選択決断順位と、判定部26が今回入力した負荷データが示す処理負荷が前回までに取得したメモリに記憶されている処理負荷で決まる相対順位と比較される。
すなわち、今回、負荷検出部24によって選択された処理装置30であって、メモリ27に記憶されている処理装置30の中での相対順位が対応する選択決断順位より下位である場合はこの処理装置30に処理データを処理させず、一方、メモリ27に記憶されている処理装置の中での処理装置30の相対順位が対応する選択決断順位と同一又はその選択決断順位よりも上位である場合はこの処理装置30に処理データを処理させる。
【0025】
図3は、図1の選択決断順位算出部で利用される数式及びテーブルを示す図である。図2の選択決断順位算出部25が選択決断順位を算出する計算手順を示す。
本実施形態の負荷配分装置20は、N個の処理装置30がある場合に、この処理装置30の処理負荷を順番に調査して、小さい処理負荷の処理装置30を効率よく発見するためのアルゴリズムを備えるものである。ここで、小さい処理負荷の処理装置30を決定するときは、処理負荷を調査したその時のものとする。すなわち、処理装置30の処理負荷は時々刻々と変化しているので、以前に調査した処理装置を選択することはしない。例えば、第5回目に処理装置30の処理負荷を調査したとする。このとき、第5回目の処理装置30の処理負荷よりも第2回目の処理装置30の処理負荷が小さいとしても、もはや第2回目の処理装置を「小さい処理負荷の処理装置」と決定することはしない。
さらに、処理装置30は、処理負荷が小さいものから順に、1位からN位までの順位付けが可能であり、その並び方はN!通りの順列が等確率で現れるものと仮定する。以上の条件の下で、より小さい処理負荷の処理装置30を選択する順位の期待値を最小、すなわち、より小さい処理負荷の処理装置30を選択するためのアルゴリズムが本実施形態には必要となる。
【0026】
このアルゴリズムは、Chow, Moriguti, Robbins, and Samuels, “Optimal selection based on relative rank”, Israel J. of Math., voL2 (1964), pp. 81-90、又は、「海辺の美女の問題」、森口繁一、日本評論社、“数学セミナー増刊数学100の問題”、1984年9月25日発行、pp.39によれば、以下のように定式化される。
選択決断順位算出部25は、処理装置識別部23から処理データを処理することが可能な処理装置数Nを入力する。このNによって定まる数列{s(1),s(2),・・・s(i)}があり、第i番目の処理装置30の相対順位y(i)がs(i)よりも大きい場合はiを1だけ増加させて次の処理装置30に進み、一方、y(i)がs(i)以下である場合はその第i番目の処理装置30が「小さい処理負荷の処理装置」であると見なす。この手順を最初の処理装置30であるi=1から、最後の処理装置30の直前の処理装置30であるi=N−1まで行う。i=N−1まで処理データを配分する処理装置30が決定しない場合は、最後の処理装置30であるN番目の処理装置30に処理データを配分する。
このとき第i番目までに「小さい処理負荷の処理装置」であると見なすことのできる処理装置30がなかったという条件の下での順位の期待値c(i)とすると、c(i)及びs(i)は図3に示したように定式化される。ここで[x]の括弧はガウス記号を示し、[x]は実数xを超えない最大の整数を示す。また、図3で順位の期待値c(i−1)では、i=N−1,・・・,2であり、選択決断順位s(i)では、i=N−1,・・・,2,1である。
【0027】
選択決断順位算出部25が入力した処理装置数Nにより、最終期待順位c(N−1)が決定する。図3の選択決断順位s(i)の数式よりc(i)が決定するとs(i)が決定するので、c(N−1)が決定するとs(N−1)が決定する。図3の順位の期待値の数式c(i−1)によりc(i)及びs(i)が決定すれば、c(i−1)が決定する。この様に、c(N−1)、s(N−1)、c(N−2)、s(N−2)、・・・、c(1)、s(1)の順で全ての選択決断順位s(j)(1≦j≦N−1)が算出される。
【0028】
図4は、図1の処理装置30の数が10である場合の計算例を示す図である。図4は、具体的な例であり、N=10の場合である。図4の左に示したテーブルは、図3に示した数式によりN=10の場合に算出した順位の期待値c(i)及び選択決断順位s(i)(1≦i≦9)を示す。この場合テーブルの左端に示したi(i=1,・・・,9)は各処理装置30に付与された識別番号である。図4の右に示したフローは判定部26で実行される。
第1から第3の処理装置30は選択決断順位が0であるので、これらの処理装置30は選択されない。ここでは、第1から第3の処理装置30の各処理負荷がメモリ27に記憶されるだけである(ステップS1)。
【0029】
第4及び第5の処理装置30は選択決断順位が1であるので、それまでに調査した処理負荷の中で1番低い場合は、その処理装置30が選択される(ステップS2)。例えば、第4の処理装置30の相対順位が2で、かつ第5の処理装置30の相対順位が1である場合は、第5の処理装置30が選択される。一方、それまでに調査した処理負荷の中で1番低くない場合は、第4及び第5の処理装置30の各処理負荷がメモリ27に記憶される。
【0030】
第6及び第7の処理装置30は選択決断順位が2であるので、それまでに調査した処理負荷の中で1番低いか、又は2番目に低い場合は、その処理装置30が選択される(ステップS3)。例えば、第6の処理装置30の相対順位が4で、かつ第7の処理装置30の相対順位が2である場合は、第7の処理装置30が選択される。一方、それまでに調査した処理負荷の中で2番以内に低くない場合は、第6及び第7の処理装置30の各処理負荷がメモリ27に記憶される。
【0031】
第8の処理装置30は選択決断順位が3であるので、それまでに調査した処理負荷の中で3番目以内に低い場合は、第8の処理装置30が選択される(ステップS4)。例えば、第8の処理装置30の相対順位が2である場合は、第8の処理装置30が選択される。一方、それまでに調査した処理負荷の中で3番以内に低くない場合は、第8の処理装置30の処理負荷がメモリ27に記憶される。
【0032】
第9の処理装置30は選択決断順位が5であるので、それまでに調査した処理負荷の中で5番目以内に低い場合は、第9の処理装置30が選択される(ステップS5)。例えば、第9の処理装置30の相対順位が4である場合は、第9の処理装置30が選択される。一方、それまでに調査した処理負荷の中で5番以内に低くない場合は、次のステップで選択される処理装置30は1つしかないので、第9の処理装置30の処理装置に関する処理負荷をメモリ27に記憶することはしない。
【0033】
上記のステップS1から上記のステップS5までで選択すべき処理装置30が決定されない場合は、残りは1つの処理装置30しか選択する余地はないので処理負荷を調査することなく、第10の処理装置30が選択される(ステップS6)。
【0034】
以上に示したように、本実施形態の負荷配分装置20は、従来全ての処理装置30にわたって負荷状況を取得しなければ処理の配分が行えなかったものを、上述したアルゴリズムを用いることで、負荷データを取得する処理装置30の数を減らしながらも負荷の低い処理装置30に処理データを配分することが可能になる。
また、図4に示した例では、最初の処理装置30の順位の期待値は2.5579であるので、平均して約3位の処理負荷を有する処理装置30を選択することになる。
また、メモリ27に記憶された処理負荷は、処理データを配分する処理装置30が選択された時点でメモリ27から消去される。
【0035】
本実施形態の負荷配分装置20は、全ての処理装置30について処理負荷を取得することは稀であり、確率的に処理負荷を示している負荷データを取得する処理を少なくすることができる。したがって、処理装置30は、負荷データに関する処理の負担を受けることが少なくなり、処理装置30は本来の処理に能力を集中することができる。
【0036】
また、過去に取得した処理装置30の負荷データは、負荷配分装置20が各処理装置30の負荷データを取得した時系列において各処理装置30に相対的な順位を定める目的のみに利用される。さらに、本実施形態の負荷配分装置20は、処理データを配分する処理装置30を決定するとき、決定する直前に負荷データを取得した処理装置30を選択するため、選択された処理装置30の負荷データは実態に即している。その結果、負荷配分装置20は、最適な処理装置30に負荷データを配分する確率を高くすることが可能になる。
【0037】
図5は、図4の場合の処理装置30を決定する様子を示す図である。図6は、図4の場合の処理装置30を決定する、図5とは別の例の様子を示す図である。
図5は、上述したアルゴリズムをそのまま用いた、単純な例である。この場合は、処理装置識別部23が負荷データを配分する処理装置30に1からNまでの固定的な番号を付ける。図5の例では、N=10である。まず、1回目に処理データを配分する処理装置30を決定する。処理データ入力部21に処理データが入力されると、まず、負荷検出部24は番号1の処理装置30から処理負荷を調査する。以後、上述したアルゴリズムにしたがい、負荷検出部24が番号i(iは2から始まる)の処理装置30の処理負荷を調査する。判定部26がその処理装置30の処理負荷に対する相対順位と選択決断順位s(i)を比較する。その処理装置30の処理負荷に対する相対順位が選択決断順位s(i)と同一又はs(i)よりも上位である場合は、処理データ配分部22が番号iの処理装置に処理を配分し、一方、相対順位が選択決断順位s(i)よりも下位である場合はiを1増やして負荷検出部24が番号i+1の処理装置30の処理負荷を調査して、判定部26が選択決断順位s(i+1)と順位を比較する。
【0038】
2回目に処理データを配分する処理装置30を決定する際に、図5の例では、再び番号1の処理装置30から処理負荷を調査しはじめる。以下の手順は上述した1回目の場合と同様である。図5の例では、2回目以降の全ての場合において、処理データを配分する処理装置30を決定する際に、常に、番号1の処理装置30から処理負荷を調査しはじめる。
【0039】
常に、番号1の処理装置30から処理負荷を調査しはじめると、最初の約4分の1の処理装置は処理負荷を調査されるだけで処理データを配分されることがない。図5の例ではN=10だから、番号1、番号2、及び番号3の処理装置30は処理データが配分されることはない。したがって、図5の例では、処理を配分されることが全くない処理装置30が存在し、それらよりも大きな番号が付与されている処理装置30にのみ処理データが配分されることになり、全ての処理装置30において処理負荷が偏ってしまう。
【0040】
図6の例では、処理データを選択された処理装置30に配分した後に、毎回、番号1の処理装置30から開始していた処理装置30の負荷調査を、前回処理データを配分した処理装置30に続く次の処理装置30から開始する。例えば、図6に示したように1回目に番号4の処理装置30が選択された場合は、2回目に処理データを配分する処理装置30を決定する際は、1回目に選択された番号4の次の番号である番号5の処理装置30から処理負荷の調査を開始する。
【0041】
2回目以降に処理負荷の調査を開始する直前に、処理装置識別部23が、前回に選択された処理装置30の次の処理装置30から番号を1から順に付与して、負荷検出部24は、常に番号1の処理装置30から各処理装置30の処理負荷を調査する。
また、各処理装置30に付与されている番号は固定のままにしておき、前回に選択された処理装置30の番号をメモリ27に記憶しておいてもよい。そして、今回の処理負荷の調査する際は、メモリ27に記憶されている前回に選択された処理装置30の番号が参照されて、その番号+1の番号が付与されている処理装置30から処理負荷が調査されてもよい。以後は、図5を参照して説明したように相対順位と選択決断順位を比較して、処理データを配分する処理装置30を決定する。
【0042】
このように前回選択された処理装置30の次の処理装置30から処理負荷を調査しはじめると、図5の例では存在した、処理負荷を調査されるだけで処理データを配分されることがない処理装置30はなくなると期待される。その結果、図6を参照して説明した手順によって処理装置30を選択すれば、処理負荷を調査する対象を処理装置30全体にすることが可能になる。したがって、処理データを配分する回数が増えるにしたがい、全ての処理装置30において処理負荷が均一に近づくと期待することができる。
また、処理データを選択された処理装置30に配分した後に、前回処理データを配分した処理装置30とは無関係に、ランダムに処理装置30を選択し、選択されたこの処理装置30の処理負荷を調査してもよい。すなわち、処理負荷を調査する処理装置30はランダムに毎回選択してもよい。処理装置30の処理負荷をランダムに調査することは、図6に示した例と同様な効果を奏する。
【0043】
以上に述べたように、本実施形態の負荷配分装置20によれば、ほとんどの場合、選択決断順位が、最初の処理装置30の順位の期待値を超えた時点で処理負荷を配分する処理装置30を決定できる。例えば、図4では、最初の処理装置30の順位の期待値は2.5579であり、選択決断順位がこの値を超えるのは識別名称が番号8の処理装置30を選択した場合である。図4の例では処理装置30がN=10と少ないため効果が明確ではないが、Nが1000のオーダーになると、選択決断順位が、最初の処理装置30の順位の期待値を超えるのは識別名称が番号約500の処理装置30を選択した場合になることを上記に示したアルゴリズムによって示すことができる。
したがって、本実施形態の負荷配分装置20によれば、負荷を調べる処理装置数を約半分に減らすことができる。逆に、処理装置30に対する処理負荷調査の負担が同じ場合、約2倍の頻度で処理負荷を調べることができ、処理装置30の処理負荷をより正確に知ることができる。
【0044】
図7は、図2の負荷配分装置が2つある場合のシステム例を示す図である。図7を参照して、負荷配分装置が複数ある場合の特徴を説明する。
従来の、例えば全ての処理装置30の処理負荷を調査して処理データを配分する処理装置30を選択する方法では、負荷配分装置20が最初に全ての処理装置30の処理負荷を調査する。そして、負荷配分装置20が最も処理負荷が小さい処理装置30を選択して、処理データを配分する。次に、負荷配分装置20が2番目に処理負荷の小さい処理装置30を第2の負荷配分装置40に通知して、負荷配分装置40がその2番目に処理負荷の小さい処理装置30を選択して、処理データを配分する。
【0045】
本実施形態の負荷配分装置20の実行するアルゴリズムは、全ての処理負荷を調べる必要がなく、確率論的に処理装置30は選択されるので、上述したように、負荷配分装置20と負荷配分装置40との間で処理データの配分方法を調整する必要はない。ただし、調査を開始する処理装置30は負荷配分装置20と負荷配分装置40とで異なるように設定することが望ましい。このように設定しておけば、負荷配分装置20と負荷配分装置40が同一の処理装置30を選択して1つの処理装置30にのみ処理負荷が莫大にかかってしまうということはほとんど発生しないと期待することができる。
【0046】
したがって、本実施形態の負荷配分装置20では、複数の負荷配分装置があったとしても、それらの負荷配分装置間は互いの負荷配分装置とはほとんど無関係に各処理装置30の処理負荷を計測し、効率的に処理データを配分することができる。図7のように負荷配分装置が複数存在していても、負荷配分装置間でほぼ完全に独立して処理を配分することができる。
【0047】
負荷配分装置のこの特徴により、負荷配分装置自体の処理能力が不足した場合でも、単純に負荷配分装置を増設するだけで、負荷配分装置の数にほぼ比例した負荷配分の能力を発揮させることが可能になる。
【0048】
また、負荷配分装置が複数ある場合でも、負荷配分装置間で独立して処理負荷の調査と処理データを配分する処理装置30の決定を行うことができるため、負荷配分装置間での調整に負担をかける必要がなくなる。
【0049】
また、上述の実施形態の中で示した手順に示された指示、及び流れ図の各ステップに示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の負荷配分装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVDなど)、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させれば、上述した実施形態の負荷配分装置と同様な動作を実現することができる。
【0050】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0051】
【発明の効果】
本発明の負荷配分装置、負荷配分方法、及び負荷配分プログラムによれば、処理装置に余計な処理をさせることなく、実態に即した処理負荷の低い処理装置を選択してこの処理装置に処理データを配分することができる。
【図面の簡単な説明】
【図1】 本発明の実施形態に係る負荷配分装置を含むシステム例を示す図。
【図2】 図1の負荷配分装置のブロック図。
【図3】 図1の選択決断順位算出部で利用される数式及びテーブルを示す図。
【図4】 図1の処理装置の数が10である場合の計算例を示す図。
【図5】 図4の場合の処理装置を決定する様子を示す図。
【図6】 図4の場合の処理装置を決定する、図5とは別の例の様子を示す図。
【図7】 図2の負荷配分装置が2つある場合のシステム例を示す図。
【符号の説明】
10・・・負荷発生装置、20・・・負荷配分装置、21・・・処理データ入力部、22・・・処理データ配分部、23・・・処理装置識別部、24・・・負荷検出部、25・・・選択決断順位算出部、26・・・判定部、27・・・メモリ、30・・・処理装置、40・・・負荷配分装置
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a load distribution device, a load distribution method, and a load distribution program for distributing processing data received from a load generating device that generates processing data to a plurality of processing devices.
[0002]
[Prior art]
Conventionally, the following three types of load distribution devices for allocating processing data received from a load generating device that generates processing data to a plurality of processing devices are typical.
[0003]
1. A load distribution device that distributes processing data to each processing device in order, assuming that the processing amount required to process the processing data received from the load generation device is constant (see, for example, Non-Patent Document 1).
[0004]
2. In order to execute the above 1 on processing devices having different performances, a load distribution device (for example, non-patent literature) that assigns a certain weight to each processing device and distributes processing data to each processing device in order according to the weight ratio. 2).
[0005]
3. A load distribution device that acquires load data indicating the processing load of each processing device from each processing device, quantifies the processing load, and distributes the processing data to a processing device with a low processing load (see, for example, Non-Patent Document 3).
[0006]
[Non-Patent Document 1]
F5 Networks, "BIG-IP (TM) Controller Reference Guide", version 3.3, F5 Networks, p. 1-46
[0007]
[Non-Patent Document 2]
F5 Networks, "BIG-IP (TM) Controller Reference Guide", version 3.3, F5 Networks, p. 1-47
[0008]
[Non-Patent Document 3]
F5 Networks, "BIG-IP (R) Controller Reference Guide", version 3.3, F5 Networks, pp. 1-47, 1-48
[0009]
[Problems to be solved by the invention]
As described in 1 or 2 above, in the load distribution device that distributes processing data to each processing device in order, the performance of each processing device is the same, the contents of each processing data to be distributed are equal, and each If the processing time is constant, the processing load of each processing device is the same. However, in most cases, the contents of the processing data are slightly different between the processing data, and if the processing data is distributed in order, the load on the processing device becomes uneven.
Further, once the processing of the processing data distributed by the processing device selected by the load distribution device is delayed, subsequent processing data is sequentially distributed before the processing of the processing data is completed. As a result, the processing apparatus falls into a vicious circle in which processing is increasingly delayed.
[0010]
As described in 3 above, in a load distribution device that distributes processing data to a processing device with a low processing load, the processing device can avoid delaying processing. However, the operation of the load distribution device acquiring load data from the processing device places a certain burden on the processing device, and the amount of processing data that can be processed by the entire processing device per unit time is reduced. That is, the performance of the entire processing apparatus is degraded.
[0011]
In addition, as the number of processing devices increases, when processing data is to be distributed to those processing devices, the load distribution device distributes the processing data unless load data of all the processing devices is acquired. The processing device cannot be determined. Since load data needs to be acquired from a large number of processing devices, the load data acquisition interval acquired by the load distribution device becomes long. When the load data acquisition interval becomes long, there is a high possibility that the collected load data will not reflect the actual processing load of each processing device at the time when the load distribution device distributes the processing data. When the load distribution device uses these load data, there is a high possibility that the distribution of the processing data to each processing procedure is not uniform.
In other words, since it is not possible to know the loads of all the processing devices at the same time, the processing load of each processing device having a different acquisition time depending on the processing device is assumed to be the processing load at a virtual time, and the processing data is distributed. It must be a selection criterion for the device and often does not match the actual situation. As a result, there is a high possibility that the distribution of processing data to each processing procedure is not uniform.
[0012]
In view of the above-described conventional technology, the present invention selects a processing device having a low processing load in accordance with the actual situation and distributes processing data to the processing device without causing the processing device to perform extra processing. An object is to provide a device, a load distribution method, and a load distribution program.
[0013]
The load distribution device according to the present invention includes: an input unit that inputs processing data; an identification unit that identifies a plurality of processing devices capable of distributing the processing data; and the processing data based on the number of the processing devices. The Instruct to process Calculation means for calculating a plurality of numerical values, detection means for executing a detection process for detecting a processing load of a certain processing apparatus among the processing apparatuses, and storage means for accumulating the processing load detected by the detection process And the processing device corresponding to the processing load accumulated in the past in the past based on one of the plurality of numerical values corresponding to the certain processing device and the plurality of accumulated processing loads is the processing data. The Instruct to process A determination unit that executes a determination process for determining whether or not the processing device corresponding to the processing load accumulated in the past is the processing device to which the processing data is to be allocated. A distribution means for distributing the processing data to an apparatus; And the determination means includes When it is determined that the processing device corresponding to the processing load accumulated in the past in the past is not a processing device to which the processing data should be allocated, the detection processing and the determination processing are executed with respect to another processing device. In addition, each numerical value of the plurality of numerical values corresponds to the order in which the processing load is detected, and is compared with the order given in ascending order of the processing load value among the plurality of detected processing loads. Characterize .
[0014]
The load distribution method of the present invention inputs processing data, identifies a plurality of processing devices capable of distributing the processing data, and determines the processing data based on the number of the processing devices. Instruct to process Calculating a plurality of numerical values, executing a detection process for detecting a processing load of a certain processing device among the processing devices, storing a processing load detected by the detection processing, and corresponding to the certain processing device, Based on one of a plurality of numerical values and the plurality of accumulated processing loads, a processing device corresponding to the processing load accumulated in the past in the past stores the processing data. Instruct to process When it is determined that the processing device corresponding to the closest processing load accumulated in the past is a processing device to which the processing data is to be distributed, the processing device Distribute processing data Comprising And Executing the determination process includes When it is determined that the processing device corresponding to the processing load accumulated in the past in the past is not a processing device to which the processing data should be allocated, the detection processing and the determination processing are executed with respect to another processing device. In addition, each numerical value of the plurality of numerical values corresponds to the order in which the processing load is detected, and is compared with the order given in ascending order of the processing load value among the plurality of detected processing loads. Characterize .
[0015]
The load distribution program of the present invention is based on the number of the processing devices, input means for inputting processing data, identification means for identifying a plurality of processing devices capable of distributing the processing data, and The processing data Instruct to process Calculation means for calculating a plurality of numerical values, detection means for executing a detection process for detecting a processing load of a certain processing apparatus among the processing apparatuses, and storage means for accumulating the processing load detected by the detection process And the processing device corresponding to the processing load accumulated in the past in the past based on one of the plurality of numerical values corresponding to the certain processing device and the plurality of accumulated processing loads is the processing data. The Instruct to process A determination unit that executes a determination process for determining whether or not the processing device corresponding to the processing load accumulated in the past is the processing device to which the processing data is to be allocated. A distribution means for distributing the processing data to an apparatus; And the determination means includes: When it is determined that the processing device corresponding to the processing load accumulated in the past in the past is not a processing device to which the processing data should be allocated, the detection processing and the determination processing are executed with respect to another processing device. In addition, each numerical value of the plurality of numerical values corresponds to the order in which the processing load is detected, and is compared with the order given in ascending order of the processing load value among the plurality of detected processing loads. Characterize .
[0016]
According to the above, since the processing devices that detect the processing load are limited, it is possible to prevent most processing devices from performing extra processing. Also, when processing data is allocated to a processing device, it is allocated immediately after the processing load of this processing device is detected. Therefore, a processing device with a low processing load in accordance with the actual situation is selected and processing data is allocated to this processing device. It becomes possible to do.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a load distribution device, a load distribution method, and a load distribution program according to an embodiment of the present invention will be described with reference to the drawings.
[0018]
FIG. 1 is a diagram illustrating a system example including a load distribution device 20 according to an embodiment of the present invention.
A system including the load distribution device 20 according to the present embodiment includes, for example, a plurality of load generation devices 10, a load distribution device 20, and a plurality of processing devices 30 as illustrated in FIG. 1.
[0019]
Each load generating device 10 generates certain processing data. Each load generation device 10 outputs the processing data to the load distribution device 20. The contents of the processing data are various, and the time output to the load distribution device 20 is generally not uniform.
The load distribution device 20 inputs processing data from the plurality of load generation devices 10. The load distribution device 20 inputs load data indicating the processing load of the processing devices in order from the plurality of processing devices 30. Based on this load data, the load distribution device 20 selects a certain processing device, and distributes the input processing data to this processing device.
The processing device 30 outputs load data to the load distribution device 20. Thereafter, when processing data is output from the load distribution device 20, the processing data is processed.
[0020]
FIG. 2 is a block diagram of the load distribution apparatus of FIG.
The processing data input unit 21 inputs processing data from each load generator 10. The processing data distribution unit 22 distributes the processing data input from the processing data input unit 21 to a certain processing device 30 based on the determination result determined by the determination unit 26 described later.
The processing device identification unit 23 identifies the processing device 30 in order to grasp the processing device 30 that can process the processing data. The processing device identification unit 23 transmits a confirmation signal to confirm whether or not the processing data can be processed to a plurality of processing devices 30, and corresponds to each processing device 30 that has responded. Give some identification name. That is, a name is assigned so that each processing device 30 that has responded within the load distribution device 20 is uniquely determined. For example, the processing device identification unit 23 assigns a number corresponding to each processing device 30 that has responded. As a result, the processing device identification unit 23 can grasp the number of processing devices that can process the processing data.
[0021]
The load detection unit 24 selects a processing device 30 from the processing devices 30 identified by the processing device identification unit 23, and sends an instruction signal to the processing device 30 so as to output the load data of the processing device 30 to the load distribution device 20. Output. How to select the processing device 30 that outputs this instruction signal will be described later.
[0022]
The selection decision rank calculation unit 25 inputs the number of processing devices that can process the processing data from the processing device identification unit 23, and based on the number of processing devices, the number of processing devices (more precisely, the number of processing devices− 1) is determined. The selection decision order is a threshold value for determining whether to instruct the processing device 30 corresponding to the selection decision order to process the processing data (details will be described later with reference to FIG. 3). ). In other words, the relative ranking among the first i processing devices of the processing device 30 selected by the load detection unit 24 at the i th (1 ≦ i ≦ N−1) is the i th selection decision. If it is lower than the rank, this processing device 30 does not process the processing data. On the other hand, the relative rank of the processing device 30 among the first i processing devices is the same as or equal to the i-th selection decision ranking. If it is higher than the selection decision order, this processing device 30 is made to process the processing data. This is a process executed by the determination unit 26.
Here, the relative rank among the first i processing devices of the processing device 30 selected by the i-th load detection unit 24 is the processing selected by the load detection unit 24 up to the i-th time. The order of the processing load of the device 30 in ascending order is s. 1 , ..., s i S 1 , ..., s i Of i Is the number of processing devices 30 that are the same or higher than the rank.
[0023]
The memory 27 stores the number of processing devices identified by the processing device identification unit 23. The memory 27 stores the processing load of the processing device 30 detected by the load detection unit 24 among the processing devices 30 identified by the processing device identification unit 23 for each detected processing device 30.
[0024]
The determination unit 26 inputs a list of identification names given from the processing device identification unit 23. Further, the determination unit 26 inputs the load data of the processing device 30 that is instructed to output the load data from the load detection unit 24 to the load distribution device 20. Further, the determination unit 26 inputs selection decision ranks for the number of processing devices from the selection decision rank calculation unit 25. The determination unit 26 refers to the memory 27 to check what number the load data is output by the processing device 30 that has output the load data input by the determination unit 26 this time. The determination unit 26 searches for the selection decision order corresponding to this order, and the selection determination order and the processing load indicated by the load data input by the determination unit 26 this time are the processing loads stored in the memory acquired up to the previous time. Compared with the determined relative order.
That is, when the processing device 30 is selected by the load detection unit 24 this time and the relative rank among the processing devices 30 stored in the memory 27 is lower than the corresponding selection decision order, this processing device. 30, when the processing data is not processed, and the relative rank of the processing device 30 among the processing devices stored in the memory 27 is the same as or higher than the corresponding selection decision rank. The processing device 30 is made to process the processing data.
[0025]
FIG. 3 is a diagram illustrating mathematical formulas and tables used in the selection decision order calculation unit of FIG. The calculation procedure in which the selection decision order calculation unit 25 in FIG. 2 calculates the selection decision order is shown.
The load distribution device 20 according to the present embodiment, when there are N processing devices 30, investigates the processing loads of the processing devices 30 in order and efficiently finds a processing device 30 with a small processing load. Is provided. Here, when the processing device 30 having a small processing load is determined, it is assumed that the processing load is investigated at that time. That is, since the processing load of the processing device 30 changes every moment, the processing device investigated previously is not selected. For example, suppose that the processing load of the processing apparatus 30 was investigated 5th time. At this time, even if the processing load of the second processing device 30 is smaller than the processing load of the fifth processing device 30, the second processing device is no longer determined as a “processing device with a small processing load”. I do not.
Furthermore, the processing device 30 can be ranked from the first to the Nth in order of increasing processing load. Suppose that a street permutation appears with equal probability. Under this condition, the present embodiment requires an algorithm for selecting the processing device 30 having the smallest expected value for selecting the processing device 30 having the smaller processing load, that is, the processing device 30 having the smaller processing load. .
[0026]
This algorithm can be used in Chow, Moriguti, Robbins, and Samuels, “Optimal selection based on relative rank”, Israel J. of Math., VoL2 (1964), pp. 81-90, or Shigekazu Moriguchi, Nippon Critics Company, “Mathematics Seminar Special Issue on Mathematics 100”, published on September 25, 1984, pp. 39 is formulated as follows.
The selection determination order calculation unit 25 inputs the number N of processing devices that can process the processing data from the processing device identification unit 23. When there is a sequence {s (1), s (2),... S (i)} determined by N, and the relative rank y (i) of the i-th processing device 30 is greater than s (i) Increases i by 1 and proceeds to the next processing device 30. On the other hand, if y (i) is less than or equal to s (i), the i-th processing device 30 is a “processing device with a small processing load”. Consider it. This procedure is performed from i = 1 as the first processing device 30 to i = N−1 as the processing device 30 immediately before the last processing device 30. If the processing device 30 that distributes the processing data up to i = N−1 is not determined, the processing data is distributed to the Nth processing device 30 that is the last processing device 30.
At this time, assuming that there is no processing device 30 that can be regarded as a “processing device with a small processing load” up to the i-th order, c (i) and c (i) s (i) is formulated as shown in FIG. Here, the brackets of [x] indicate Gaussian symbols, and [x] indicates the maximum integer that does not exceed the real number x. In FIG. 3, i = N−1,..., 2 at the expected value c (i−1) of the order, and i = N−1,. 2,1.
[0027]
The final expected rank c (N−1) is determined by the number N of processing devices input by the selection determination rank calculation unit 25. Since s (i) is determined when c (i) is determined from the formula of the selection decision order s (i) in FIG. 3, s (N-1) is determined when c (N-1) is determined. If c (i) and s (i) are determined by the expected value formula c (i-1) in FIG. 3, c (i-1) is determined. In this way, all of c (N-1), s (N-1), c (N-2), s (N-2), ..., c (1), s (1) in this order. The selection decision order s (j) (1 ≦ j ≦ N−1) is calculated.
[0028]
FIG. 4 is a diagram illustrating a calculation example when the number of the processing apparatuses 30 in FIG. 1 is ten. FIG. 4 shows a specific example where N = 10. The table shown on the left side of FIG. 4 shows the expected value c (i) of the rank and the selection decision rank s (i) (1 ≦ i ≦ 9) calculated when N = 10 according to the mathematical formula shown in FIG. . In this case, i (i = 1,..., 9) shown at the left end of the table is an identification number assigned to each processing device 30. The flow shown on the right side of FIG.
Since the selection decision order of the first to third processing devices 30 is 0, these processing devices 30 are not selected. Here, each processing load of the first to third processing devices 30 is only stored in the memory 27 (step S1).
[0029]
Since the selection decision order of the fourth and fifth processing devices 30 is 1, when the processing load investigated so far is the lowest, the processing device 30 is selected (step S2). For example, when the relative rank of the fourth processing device 30 is 2 and the relative rank of the fifth processing device 30 is 1, the fifth processing device 30 is selected. On the other hand, if the processing load investigated so far is not the lowest, the processing loads of the fourth and fifth processing devices 30 are stored in the memory 27.
[0030]
Since the selection decision order of the sixth and seventh processing devices 30 is 2, the processing device 30 is selected when it is the lowest or second lowest among the processing loads investigated so far. (Step S3). For example, when the relative rank of the sixth processing device 30 is 4 and the relative rank of the seventh processing device 30 is 2, the seventh processing device 30 is selected. On the other hand, if the processing load investigated so far is not lower than the second, the processing loads of the sixth and seventh processing devices 30 are stored in the memory 27.
[0031]
Since the selection decision order of the eighth processing device 30 is 3, the eighth processing device 30 is selected when the processing load examined so far is lower than the third (step S4). For example, if the relative rank of the eighth processing device 30 is 2, the eighth processing device 30 is selected. On the other hand, the processing load of the eighth processing device 30 is stored in the memory 27 when the processing load investigated so far is not lower than the third.
[0032]
Since the selection decision order of the ninth processing device 30 is 5, the ninth processing device 30 is selected when the processing load examined so far is lower than the fifth (step S5). For example, when the relative rank of the ninth processing device 30 is 4, the ninth processing device 30 is selected. On the other hand, when the processing load investigated so far is not lower than 5th, the processing load related to the processing device of the ninth processing device 30 is only one because the processing device 30 selected in the next step is only one. Is not stored in the memory 27.
[0033]
If the processing device 30 to be selected is not determined from step S1 to step S5, there is no room for selecting only one processing device 30, so the tenth processing device without investigating the processing load. 30 is selected (step S6).
[0034]
As described above, the load distribution device 20 according to the present embodiment uses the above-described algorithm to calculate the load that cannot be distributed unless the load status is acquired for all the processing devices 30 in the past. It is possible to distribute the processing data to the processing devices 30 having a low load while reducing the number of processing devices 30 that acquire data.
In the example shown in FIG. 4, since the expected value of the rank of the first processing device 30 is 2.5579, the processing device 30 having an average processing load of about third is selected.
The processing load stored in the memory 27 is deleted from the memory 27 when the processing device 30 that distributes the processing data is selected.
[0035]
The load distribution device 20 according to the present embodiment rarely acquires the processing load for all the processing devices 30, and can reduce the processing for acquiring the load data indicating the processing load stochastically. Therefore, the processing device 30 is less burdened with processing related to load data, and the processing device 30 can concentrate its ability on the original processing.
[0036]
In addition, the load data of the processing device 30 acquired in the past is used only for the purpose of setting a relative order to each processing device 30 in the time series when the load distribution device 20 acquires the load data of each processing device 30. Furthermore, when determining the processing device 30 to which the processing data is distributed, the load distribution device 20 of the present embodiment selects the processing device 30 that acquired the load data immediately before the determination, and therefore the load of the selected processing device 30 The data is in line with the actual situation. As a result, the load distribution device 20 can increase the probability of distributing the load data to the optimal processing device 30.
[0037]
FIG. 5 is a diagram showing how the processing device 30 in the case of FIG. 4 is determined. FIG. 6 is a diagram illustrating a state of an example different from FIG. 5 in which the processing device 30 in the case of FIG. 4 is determined.
FIG. 5 is a simple example using the algorithm described above as it is. In this case, the processor identification unit 23 assigns a fixed number from 1 to N to the processor 30 to which the load data is distributed. In the example of FIG. 5, N = 10. First, the processing device 30 to which processing data is allocated for the first time is determined. When processing data is input to the processing data input unit 21, first, the load detection unit 24 investigates the processing load from the processing device 30 of number 1. Thereafter, according to the algorithm described above, the load detection unit 24 investigates the processing load of the processing device 30 with the number i (i starts from 2). The determination unit 26 compares the relative rank with respect to the processing load of the processing device 30 and the selection decision rank s (i). If the relative rank of the processing device 30 with respect to the processing load is the same as the selection decision order s (i) or higher than s (i), the processing data distribution unit 22 distributes the processing to the processing device of number i, On the other hand, when the relative rank is lower than the selection decision rank s (i), i is incremented by 1, the load detection unit 24 investigates the processing load of the processing device 30 with the number i + 1, and the determination unit 26 selects the selection decision rank. The rank is compared with s (i + 1).
[0038]
When determining the processing device 30 to which the processing data is allocated for the second time, in the example of FIG. 5, the processing load from the processing device 30 of number 1 is started again. The following procedure is the same as in the first case described above. In the example of FIG. 5, in all cases after the second time, when determining the processing device 30 to which the processing data is distributed, the processing load of the processing device 30 of number 1 always starts to be investigated.
[0039]
When the processing load is always started from the processing device 30 with the number 1, the first about one-fourth processing devices are only checked for the processing load and the processing data is not distributed. In the example of FIG. 5, since N = 10, the processing data is not distributed to the processing devices 30 of number 1, number 2, and number 3. Therefore, in the example of FIG. 5, there are processing devices 30 to which processing is not allocated at all, and processing data is allocated only to the processing devices 30 to which a higher number is assigned. In the processing apparatus 30, the processing load is biased.
[0040]
In the example of FIG. 6, after distributing the processing data to the selected processing device 30, the processing device 30 to which the processing data of the processing device 30 that has been started from the processing device 30 of number 1 is allocated each time is allocated each time. It starts from the next processing device 30 following. For example, as shown in FIG. 6, when the processing device 30 with the number 4 is selected for the first time, when the processing device 30 to which the processing data is distributed for the second time is determined, the number 4 selected for the first time is selected. Investigation of the processing load is started from the processing device 30 of number 5, which is the next number.
[0041]
Immediately before starting the investigation of the processing load after the second time, the processing device identification unit 23 assigns a number from the processing device 30 next to the processing device 30 selected last time in order from 1, and the load detection unit 24 The processing load of each processing device 30 is always checked from the processing device 30 of number 1.
Alternatively, the number assigned to each processing device 30 may be fixed, and the number of the processing device 30 selected last time may be stored in the memory 27. Then, when investigating the current processing load, the number of the processing device 30 selected last time stored in the memory 27 is referred to, and the processing load from the processing device 30 assigned the number +1 is added to the processing load. May be investigated. Thereafter, as described with reference to FIG. 5, the relative rank and the selection decision rank are compared, and the processing device 30 to which the processing data is distributed is determined.
[0042]
As described above, when the processing load is started from the processing device 30 next to the processing device 30 selected last time, the processing data existing only in the example of FIG. The processing device 30 is expected to disappear. As a result, if the processing device 30 is selected according to the procedure described with reference to FIG. 6, the processing device 30 as a whole can be examined as a processing load. Therefore, as the number of times processing data is distributed increases, it can be expected that the processing load approaches uniformly in all the processing devices 30.
Further, after allocating the processing data to the selected processing device 30, the processing device 30 is selected at random regardless of the processing device 30 to which the previous processing data has been allocated, and the processing load of the selected processing device 30 is reduced. You may investigate. That is, the processing device 30 that investigates the processing load may be selected randomly each time. Examining the processing load of the processing device 30 at random has the same effect as the example shown in FIG.
[0043]
As described above, according to the load distribution device 20 of the present embodiment, in most cases, the processing device that distributes the processing load when the selection decision order exceeds the expected value of the order of the first processing device 30. 30 can be determined. For example, in FIG. 4, the expected value of the rank of the first processing device 30 is 2.5579, and the selection decision rank exceeds this value when the processing device 30 having the identification name number 8 is selected. In the example of FIG. 4, the effect is not clear because the number of processing devices 30 is as small as N = 10. However, when N is in the order of 1000, it is identified that the selection decision order exceeds the expected value of the order of the first processing device 30. It can be shown by the algorithm described above that the processing apparatus 30 whose name is about 500 is selected.
Therefore, according to the load distribution device 20 of the present embodiment, the number of processing devices for examining the load can be reduced to about half. On the other hand, when the load of the processing load investigation on the processing device 30 is the same, the processing load can be examined about twice as often, and the processing load of the processing device 30 can be known more accurately.
[0044]
FIG. 7 is a diagram illustrating a system example when there are two load distribution apparatuses in FIG. 2. With reference to FIG. 7, characteristics when there are a plurality of load distribution apparatuses will be described.
In the conventional method of selecting, for example, the processing device 30 that allocates processing data by investigating the processing loads of all the processing devices 30, the load distribution device 20 first investigates the processing loads of all the processing devices 30. Then, the load distribution device 20 selects the processing device 30 with the smallest processing load and distributes the processing data. Next, the load distribution device 20 notifies the second load distribution device 40 of the processing device 30 having the second smallest processing load, and the load distribution device 40 selects the processing device 30 having the second smallest processing load. Process data.
[0045]
The algorithm executed by the load distribution device 20 according to the present embodiment does not need to check all the processing loads, and the processing device 30 is selected probabilistically. Therefore, as described above, the load distribution device 20 and the load distribution device are selected. It is not necessary to adjust the distribution method of the processing data with 40. However, it is desirable that the processing device 30 that starts the investigation is set to be different between the load distribution device 20 and the load distribution device 40. If set in this way, the load distribution device 20 and the load distribution device 40 select the same processing device 30 and the processing load on only one processing device 30 hardly occurs. You can expect.
[0046]
Therefore, in the load distribution device 20 of the present embodiment, even if there are a plurality of load distribution devices, the processing load of each processing device 30 is measured between these load distribution devices almost independently of each other. , Process data can be distributed efficiently. Even if there are a plurality of load distribution devices as shown in FIG. 7, the processing can be distributed almost completely independently among the load distribution devices.
[0047]
Due to this feature of the load distribution device, even if the load distribution device itself has insufficient processing capacity, it is possible to demonstrate load distribution capability almost proportional to the number of load distribution devices simply by adding additional load distribution devices. It becomes possible.
[0048]
In addition, even when there are a plurality of load distribution devices, it is possible to investigate the processing load and determine the processing device 30 to distribute the processing data independently between the load distribution devices. No need to apply.
[0049]
In addition, the instructions shown in the procedure shown in the above-described embodiment and the instructions shown in the steps of the flowchart can be executed based on a program that is software. The general-purpose computer system stores this program in advance and reads this program, so that the same effect as that obtained by the load distribution device of the above-described embodiment can be obtained. The instructions described in the above-described embodiments are, as programs that can be executed by a computer, magnetic disks (flexible disks, hard disks, etc.), optical disks (CD-ROM, CD-R, CD-RW, DVD, etc.), semiconductors, and the like. It is recorded on a memory or a similar recording medium. If the computer reads the program from the recording medium and causes the CPU to execute an instruction described in the program based on the program, the same operation as that of the load distribution device of the above-described embodiment can be realized.
[0050]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.
[0051]
【The invention's effect】
According to the load distribution device, load distribution method, and load distribution program of the present invention, a processing device having a low processing load in accordance with the actual situation is selected and processing data is processed in this processing device without causing the processing device to perform extra processing. Can be allocated.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a system including a load distribution device according to an embodiment of the present invention.
FIG. 2 is a block diagram of the load distribution device in FIG. 1;
FIG. 3 is a diagram illustrating mathematical formulas and tables used in the selection decision order calculation unit of FIG. 1;
4 is a diagram showing a calculation example when the number of processing apparatuses in FIG. 1 is 10. FIG.
FIG. 5 is a diagram showing how a processing device in the case of FIG. 4 is determined.
6 is a diagram showing a state of an example different from FIG. 5 for determining a processing apparatus in the case of FIG. 4;
7 is a diagram showing a system example when there are two load distribution apparatuses in FIG.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Load generating apparatus, 20 ... Load distribution apparatus, 21 ... Processing data input part, 22 ... Processing data distribution part, 23 ... Processing apparatus identification part, 24 ... Load detection part , 25 ... selection decision order calculation unit, 26 ... determination unit, 27 ... memory, 30 ... processing device, 40 ... load distribution device

Claims (9)

処理データを入力する入力手段と、
前記処理データを配分することが可能な複数の処理装置を識別する識別手段と、
前記処理装置の数に基づいて、前記処理データを処理するように指示する複数の数値を算出する算出手段と、
前記処理装置のうちのある処理装置の処理負荷を検出する検出処理を実行する検出手段と、
前記検出処理によって検出された処理負荷を蓄積してゆく蓄積手段と、
前記ある処理装置に対応する、前記複数の数値のうちの1つと、前記蓄積されている複数の処理負荷に基づいて、最も近い過去に蓄積した処理負荷に対応する処理装置が前記処理データを処理するように指示するか否かを判定する判定処理を実行する判定手段と、
最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置であると判定された場合に、該処理装置に前記処理データを配分する配分手段と、を具備し、
前記判定手段は、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置でないと判定された場合に、他のある処理装置に関して前記検出処理及び前記判定処理を実行し、
前記複数の数値の各数値は、処理負荷を検出する順番に対応していて、検出された複数の処理負荷のうちで処理負荷の値が小さい順に付与される順位と比較されることを特徴とする負荷分配装置。
An input means for inputting processing data;
Identifying means for identifying a plurality of processing devices capable of distributing the processing data;
Calculating means for calculating a plurality of numerical values for instructing to process the processing data based on the number of the processing devices;
Detection means for executing a detection process for detecting a processing load of a certain processing device among the processing devices;
Storage means for storing the processing load detected by the detection processing;
Corresponding to the certain processing unit, wherein one of a plurality of numerical values, based on said accumulated in the plurality are the processing load, the closest past corresponding to accumulated processing load processing device processes the processing data Determination means for executing a determination process for determining whether or not to instruct to do;
If the processing device corresponding to the nearest accumulated in the past processing load is determined to be a processing device should allocate the processing data, comprising: a distribution unit for distributing the process data to the processing unit, the ,
When it is determined that the processing device corresponding to the processing load accumulated in the past in the past is not a processing device to which the processing data should be allocated , the determination unit performs the detection processing and the determination processing with respect to another certain processing device. the execution,
Each numerical value of the plurality of numerical values corresponds to the order in which the processing load is detected, and is compared with a ranking given in ascending order of the processing load value among the plurality of detected processing loads. Load distribution device.
前記判定手段は、処理負荷の小さい順でのある処理装置の順位が前記順番に対応する比較される順位と同一又は該順位より上位(順位の値が小さい)である場合に、該処理装置に前記処理データを配分することに決定することを特徴とする請求項に記載の負荷分配装置。The determination means, when the rank of a certain processing apparatus in the order of decreasing processing load is equal to or higher than the rank to be compared corresponding to the order (rank value is small) , The load distribution apparatus according to claim 1 , wherein the processing data is determined to be distributed. 前記検出手段は、前記配分手段が前記処理装置に前記処理データを配分した後、前記複数の処理装置のうち、前記処理データを配分するために判定処理された処理装置に続く処理装置の処理負荷を検出することを特徴とする請求項1または請求項に記載の負荷分配装置。The detecting means is a processing load of a processing apparatus following the processing apparatus determined to distribute the processing data among the plurality of processing apparatuses after the distribution means distributes the processing data to the processing apparatuses. load distribution apparatus according to claim 1 or claim 2, characterized in that to detect the. 処理データを入力し、
前記処理データを配分することが可能な複数の処理装置を識別し、
前記処理装置の数に基づいて、前記処理データを処理するように指示する複数の数値を算出し、
前記処理装置のうちのある処理装置の処理負荷を検出する検出処理を実行し、
前記検出処理によって検出された処理負荷を蓄積し、
前記ある処理装置に対応する、前記複数の数値のうちの1つと、前記蓄積されている複数の処理負荷に基づいて、最も近い過去に蓄積した処理負荷に対応する処理装置が前記処理データを処理するように指示するか否かを判定する判定処理を実行し、
最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置であると判定された場合に、該処理装置に前記処理データを配分することを具備し、
前記判定処理を実行することは、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置でないと判定された場合に、他のある処理装置に関して前記検出処理及び前記判定処理を実行し、
前記複数の数値の各数値は、処理負荷を検出する順番に対応していて、検出された複数の処理負荷のうちで処理負荷の値が小さい順に付与される順位と比較されることを特徴とする負荷配分方法。
Enter processing data,
Identifying a plurality of processing devices capable of allocating the processing data;
Based on the number of the processing devices, calculate a plurality of numerical values for instructing to process the processing data,
Performing a detection process for detecting a processing load of a certain processing device among the processing devices;
Accumulating the processing load detected by the detection process,
Corresponding to the certain processing unit, wherein one of a plurality of numerical values, based on said accumulated in the plurality are the processing load, the closest past corresponding to accumulated processing load processing device processes the processing data Execute a determination process for determining whether or not to instruct
If the processing device corresponding to the nearest accumulated in the past processing load is determined to be a processing device should allocate the processing data, comprising to allocate the processing data to the processing unit,
The execution of the determination processing is performed when the processing device corresponding to the processing load accumulated in the nearest past is determined not to be a processing device to which the processing data should be allocated, with respect to another processing device. And executing the determination process ,
Each numerical value of the plurality of numerical values corresponds to the order in which the processing load is detected, and is compared with a ranking given in ascending order of the processing load value among the plurality of detected processing loads. Load distribution method to do.
前記判定処理は、処理負荷の小さい順でのある処理装置の順位が前記順番に対応する比較される順位と同一又は該順位より上位(順位の値が小さい)である場合に、該処理装置に前記処理データを配分することに決定することを特徴とする請求項に記載の負荷配分方法。The determination processing is performed when the rank of a certain processing apparatus in the descending order of processing load is equal to or higher than the compared rank corresponding to the order (the rank value is small). 5. The load distribution method according to claim 4 , wherein the processing data is determined to be distributed. 前記検出処理は、前記処理装置に前記処理データを配分した後、前記複数の処理装置のうち、前記処理データを配分するために判定処理された処理装置以外のある処理装置の処理負荷を検出することを特徴とする請求項4または請求項に記載の負荷配分方法。In the detection process, after the processing data is distributed to the processing device, a processing load of a processing device other than the processing device that has been subjected to the determination processing to distribute the processing data is detected among the plurality of processing devices. 6. The load distribution method according to claim 4 or 5 , wherein: コンピュータを、
処理データを入力する入力手段と、
前記処理データを配分することが可能な複数の処理装置を識別する識別手段と、
前記処理装置の数に基づいて、前記処理データを処理するように指示する複数の数値を算出する算出手段と、
前記処理装置のうちのある処理装置の処理負荷を検出する検出処理を実行する検出手段と、
前記検出処理によって検出された処理負荷を蓄積してゆく蓄積手段と、
前記ある処理装置に対応する、前記複数の数値のうちの1つと、前記蓄積されている複数の処理負荷に基づいて、最も近い過去に蓄積した処理負荷に対応する処理装置が前記処理データを処理するように指示するか否かを判定する判定処理を実行する判定手段と、
最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置であると判定された場合に、該処理装置に前記処理データを配分する配分手段と、として機能させるためのものであり、
前記判定手段は、最も近い過去に蓄積した処理負荷に対応する前記処理装置が前記処理データを配分すべき処理装置でないと判定された場合に、他のある処理装置に関して前記検出処理及び前記判定処理を実行し、
前記複数の数値の各数値は、処理負荷を検出する順番に対応していて、検出された複数の処理負荷のうちで処理負荷の値が小さい順に付与される順位と比較されることを特徴とする負荷配分プログラム。
Computer
An input means for inputting processing data;
Identifying means for identifying a plurality of processing devices capable of distributing the processing data;
Calculating means for calculating a plurality of numerical values for instructing to process the processing data based on the number of the processing devices;
Detection means for executing a detection process for detecting a processing load of a certain processing device among the processing devices;
Storage means for storing the processing load detected by the detection processing;
Corresponding to the certain processing unit, wherein one of a plurality of numerical values, based on said accumulated in the plurality are the processing load, the closest past corresponding to accumulated processing load processing device processes the processing data Determination means for executing a determination process for determining whether or not to instruct to do;
When it is determined that the processing device corresponding to the processing load accumulated in the past in the past is a processing device to which the processing data is to be distributed, the processing device is caused to function as a distribution unit that distributes the processing data . Is for
When it is determined that the processing device corresponding to the processing load accumulated in the past in the past is not a processing device to which the processing data should be allocated , the determination unit performs the detection processing and the determination processing with respect to another certain processing device. the execution,
Each numerical value of the plurality of numerical values corresponds to the order in which the processing load is detected, and is compared with a ranking given in ascending order of the processing load value among the plurality of detected processing loads. load distribution program.
前記判定手段は、処理負荷の小さい順でのある処理装置の順位が前記順番に対応する比較される順位と同一又は該順位より上位(順位の値が小さい)である場合に、該処理装置に前記処理データを配分することに決定することを特徴とする請求項に記載の負荷配分プログラム。The determination means, when the rank of a certain processing apparatus in the order of decreasing processing load is equal to or higher than the rank to be compared corresponding to the order (rank value is small) , The load distribution program according to claim 7 , wherein it is determined to distribute the processing data. 前記検出手段は、前記配分手段が前記処理装置に前記処理データを配分した後、前記複数の処理装置のうち、前記処理データを配分するために判定処理された処理装置以外のある処理装置の処理負荷を検出することを特徴とする請求項7または請求項に記載の負荷配分プログラム。The detecting means is a process of a processing device other than the processing device that has been determined to distribute the processing data among the plurality of processing devices after the distribution means has distributed the processing data to the processing devices. The load distribution program according to claim 7 or 8 , wherein a load is detected.
JP2003150823A 2003-05-28 2003-05-28 Load distribution device, load distribution method, and load distribution program Expired - Fee Related JP4014095B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003150823A JP4014095B2 (en) 2003-05-28 2003-05-28 Load distribution device, load distribution method, and load distribution program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003150823A JP4014095B2 (en) 2003-05-28 2003-05-28 Load distribution device, load distribution method, and load distribution program

Publications (2)

Publication Number Publication Date
JP2004355227A JP2004355227A (en) 2004-12-16
JP4014095B2 true JP4014095B2 (en) 2007-11-28

Family

ID=34046525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003150823A Expired - Fee Related JP4014095B2 (en) 2003-05-28 2003-05-28 Load distribution device, load distribution method, and load distribution program

Country Status (1)

Country Link
JP (1) JP4014095B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10749852B2 (en) * 2018-05-10 2020-08-18 Rovi Guides, Inc. Systems and methods for connecting private devices to public devices according to connection parameters
US10757109B2 (en) 2018-05-10 2020-08-25 Rovi Guides, Inc. Systems and methods for connecting a public device to a private device with pre-installed content management applications

Also Published As

Publication number Publication date
JP2004355227A (en) 2004-12-16

Similar Documents

Publication Publication Date Title
JP5845809B2 (en) Efficient parallelization of software analysis in distributed computing environment by intelligent and dynamic load balancing
JP5418610B2 (en) Failure cause extraction apparatus, failure cause extraction method, and program storage medium
US20100046375A1 (en) Congestion Control Using Application Slowdown
US7890620B2 (en) Monitoring system and monitoring method
JP5742125B2 (en) Program, information generation apparatus, and information generation method
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
US9355008B2 (en) Performance analyzer for self-tuning system controller
US20080162081A1 (en) Data analysis apparatus and method
JP2012099109A (en) Dynamic and intelligent partial computation management for efficient parallelization of software analysis in distributed computing environment
JP6200076B2 (en) Method and system for evaluating measurements obtained from a system
JP2003178040A (en) Web site constitution determination supporting method
JP5845810B2 (en) Efficient partial computation for parallel analysis of software in distributed computing environments
JP2010086160A (en) Fault analysis system, fault analysis method, and program for fault analysis
US20220276129A1 (en) Priority-based dynamic resource allocation for product testing
JP4014095B2 (en) Load distribution device, load distribution method, and load distribution program
JP6060969B2 (en) Event correlation detection system
US20200333170A1 (en) Missing value imputation device, missing value imputation method, and missing value imputation program
JP2000132535A (en) Estimation method for optimum combination of parameters, recording medium recording program of the estimation method and device
WO2021082939A1 (en) Virtual machine tuning method and apparatus
JP4952309B2 (en) Load analysis system, method, and program
JP2008234407A (en) Automatic load testing device and automatic load testing method
Hekmati et al. Nested performance profiles for benchmarking software
JP2004302547A (en) Response monitoring method and device for server system
KR20170108315A (en) Method and apparatus for monitoring fault of system
KR101907455B1 (en) Server resource allocating method of real-time processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070613

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: 20070904

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20070906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070906

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees