JP2004030204A - Load distribution device and node computer connected to the same - Google Patents

Load distribution device and node computer connected to the same Download PDF

Info

Publication number
JP2004030204A
JP2004030204A JP2002185216A JP2002185216A JP2004030204A JP 2004030204 A JP2004030204 A JP 2004030204A JP 2002185216 A JP2002185216 A JP 2002185216A JP 2002185216 A JP2002185216 A JP 2002185216A JP 2004030204 A JP2004030204 A JP 2004030204A
Authority
JP
Japan
Prior art keywords
request
node
processing
result
computer
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
Application number
JP2002185216A
Other languages
Japanese (ja)
Inventor
Kentaro Iwazawa
岩澤 剣太郎
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.)
JMNET Inc
Original Assignee
JMNET Inc
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 JMNET Inc filed Critical JMNET Inc
Priority to JP2002185216A priority Critical patent/JP2004030204A/en
Publication of JP2004030204A publication Critical patent/JP2004030204A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a load balancer 110 capable for giving redundancy to a node computer 112 itself and a server system with fault tolerance improved. <P>SOLUTION: The load balancer 110 transmits a request from a client 16 to node computers 112a and 112b. The node computers 112a and 112b temporarily execute processing of the request and notify the completion provisionally. The load balancer 110 uses only the results of the computer which first transmits a tentative notice of completion and invalidates the other. Thus, duplication of the node computers is enabled. When one of the two computers fails, the failed computer does not transmit the tentative notice of completion; so processing can automatically be continued. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、負荷分散装置に関する。また、負荷分散装置によって負荷を割り当てられるノードコンピュータに関する。
【0002】
【従来の技術】
外部からの要求(リクエスト)に対してサービスを提供するサーバコンピュータ(以下、単にサーバという)が広く利用されている。要求はリクエストと呼ばれることも多い。本特許では、「要求」の言葉を用いる。このサーバの能力を高めるために、複数のコンピュータを組み合わせて、処理能力の大きな1台のサーバを構成するシステムが種々知られている。このようなシステムの典型的な例として、数多くの要求を処理する必要があるインターネット上のWEBサーバが挙げられよう。特に、インターネット上で商取引を行う電子商取引のサービスを提供するWEBサーバは、多くの購買注文を処理しなければならないので、実際には複数のサーバで構成されることが多い。また、複数のサーバで構成することによって、対障害性を向上させることができると考えられている。すなわち、複数台のサーバの中の1台が故障しても、残りのサーバで電子商取引のサービスを続行することができるのである。
【0003】
このように複数のサーバを利用する簡易な仕組みの一つとして、インターネット上におけるDNSラウンドロビンと呼ばれる仕組みが従来から広く知られている。このDNSラウンドロビンは、1のドメイン名に複数のIPアドレスを割り当てていく手法で、外部からの要求がある度に、IPアドレスを順番に割り当てていくことで、1台のコンピュータにアクセス(要求)が集中することを防ぐ仕組みである。この仕組みは複数のIPアドレスを用いてしまう。
【0004】
これに対して、1個のIPアドレスに対する要求を、複数のコンピュータに分散させる装置も従来から知られており、しばしばロードバランサ(Load Balancer)と呼ばれている。このロードバランサ10を用いたWEBサーバの構成概念図が図4に示されている。
【0005】
ロードバランサ10は、複数のノードコンピュータ12a〜12dとネットワークで接続されており、互いに通信を行えるように構成されている。ロードバランサ10は、インターネット14を介してクライアント16a〜16cから送られてきた要求を各ノードコンピュータ12a〜12dに割り振る動作を実行している。本特許では、ロードバランサ10によって管理される複数のコンピュータをノードコンピュータ12と呼ぶ。
【0006】
ロードバランサ10がこのような動作を行うことによって、各クライアント16a〜16cからは、あたかも1台のWEBサーバがサービスを提供しているかのように見えるのである。提供されるサービスは、例えばWEBの閲覧サービスや、電子商取引のサービスや、翻訳のサービス、データベースのサービス、その他種々のサービスである。
【0007】
例えば、クライアント16aが出した電子商取引のサービス要求は、ノードコンピュータ12aに割り当てられる。ノードコンピュータ12aはクライアント16aに対する電子商取引サービスを実行し、その結果をロードバランサ10に返す。ロードバランサ10は、返ってきたサービス結果をクライアント16aに送信する。このような動作をするために、ロードバランサ10内には、どの要求をどのノードコンピュータ12に割り当てたかを記憶する機能が備えられている。
【0008】
一方、クライアント16bが出した要求は、ロードバランサ10が受信し、ノードコンピュータ12bに割り当てられる。ノードコンピュータ12bはクライアント16bに対する電子商取引サービスを実行し、その結果をロードバランサ10に返す。ロードバランサ10は、返ってきたサービス結果をクライアント16bに送信する。
【0009】
このような動作の結果、外部のインターネット14側からは、あたかも1台のサーバがサービスを提供しているかのように見えるのである。また、ロードバランサ10と複数のノードコンピュータ12a〜12dからなるシステムを本特許ではサーバシステム20と呼ぶ。
【0010】
以下、従来のロードバランサ10の機能をいくつか簡単に説明する。
【0011】
A.負荷分散アルゴリズム
従来のロードバランサ10の負荷分散アルゴリズムは、種々のものが知られている。
【0012】
(1)ラウンドロビン
上述したDNSラウンドロビンと同様に、複数のノードコンピュータ12に順番に要求を割り当てていく手法である。
【0013】
(2)セッション数に基づき要求を割り当てる
各ノードコンピュータ12a〜12dに現在割り当てられているセッションの数を考慮して、最もセッション数が少ないノードコンピュータ12に要求を割り当てていく手法である。セッションは、やや大雑把にいえば、ノードコンピュータ12に割り当てられている一連のサービス群である。1個のセッションは、クライアント16が要求を出してから、その後、商品カタログの閲覧や、購入の指示等を経て、最終的にログオフするまでの一連の手続きをいう。
【0014】
ある1のクライアント16が出力するセッションは、そのセッションの処理のすべてを同一のノードコンピュータ12が受け持つ必要がある。そこで、この手法を採用する場合は、ロードバランサ10は、どのノードコンピュータ12にどのクライアント16が割り当てられているのか、そして、現在そのセッションが継続しているのかどうか、を常に管理している必要がある。
【0015】
(3)ブロードキャストによる最速応答に基づき要求を割り当てる。
【0016】
ロードバランサ10が各ノードコンピュータ12a〜12dに所定のメッセージを一斉同報で送信する。これをブロードキャスト(BroadCast)という。そのメッセージに対して最も早く応答メッセージを返してきたノードコンピュータ12が最も負荷が軽いと判断し、そのノードコンピュータ12に新たに要求を割り当てるのである。
【0017】
この手法は、負荷が軽いほど、そのノードコンピュータ12は早く応答を返すことができるであろうという考え方に基づく。
【0018】
これら(1)〜(3)の手法を実現するために、ロードバランサ10と各ノードコンピュータ12との間でステータス情報を送受信し、ロードバランサ10は各ノードコンピュータ12の状態を把握することが一般に行われている。
【0019】
B.スティッキー( Sticky )機能
既に触れているが、同一のクライアント16から出力される処理は、同一のノードコンピュータ12で処理することが極めて望ましい。このように、ロードバランサ10は、あるクライアント16が出す処理を同一のノードコンピュータに引き続き割り当てる機能を持っていることが多い。すなわち、あるクライアント16の「最初の要求」を割り当てたノードコンピュータ12に引き続き同一のクライアントからの「後の要求」を割り当てるのである。このような機能をスティッキー機能と呼ぶ。このスティッキー機能によって、同一のクライアントからの処理が同一のノードコンピュータ12によって実行され、処理の連続性が担保される。
【0020】
C.フェイルオーバー( Fail Over )機能
図4の例では、ロードバランサ10を1台備える例を示した。しかし、稼働率を向上させるためや、対故障性を向上させるために、ロードバランサ10を2台備える構成を採用する場合も多い。すなわち、マスターとスレーブの2台のロードバランサ10を備えて、マスター側が故障した場合に、マスターの持つノード情報をスレーブ側が受け継ぐ機能である。このような機能が従来から知られており、フェイルオーバー機能と呼ばれている。
【0021】
【発明が解決しようとする課題】
上述したように、ロードバランサ10自身の冗長化を行う手法は従来から知られていた。しかし、各ノードコンピュータ12の冗長化を行う手法は知られていない。
【0022】
そのため、あるノードコンピュータ12における処理中に障害が発生した場合には、その処理の継続は従来は困難であった。複数備えられているノードコンピュータ12は基本的には別の要求に対する処理を行っているからである。
【0023】
本発明は係る課題に鑑みなされたものであり、その目的は、ノードコンピュータ12自身に冗長性を与えることができる構成を提案することである。さらに、そのような構成のサーバシステム、及びそのサーバシステムを実現するためのロードバランサ及びノードコンピュータを提供することが本発明の目的である。
【0024】
【課題を解決するための手段】
A.負荷分散装置に関する発明
本発明は、上記課題を解決するために、複数のノードコンピュータと通信可能に接続され、外部からの要求をいずれかの前記ノードコンピュータに割り当てる負荷分散装置において、前記要求を、前記複数のノードコンピュータ中の、いずれか2個以上のノードコンピュータに割り当てる割り当て手段と、前記割り当て手段が、前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信手段と、前記割り当て手段が前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知手段と、を含むことを特徴とする負荷分散装置である。
【0025】
要求を2個以上のノードコンピュータに割り当てるので、いずれかのノードコンピュータに障害が発生しても要求の処理を続行することができる。
【0026】
また、本発明は、請求項1記載の負荷分散装置において、前記採用通知手段は、最も早く前記仮完了通知を送信してきた前記ノードコンピュータに対して、その処理の結果を採用する旨の採用通知を送信することを特徴とする負荷分散装置である。
【0027】
このような構成によって、ノードコンピュータは自己の処理結果が採用されたことを知ることができる。
【0028】
また、本発明は、前記採用通知手段は、前記仮完了通知を送信してきた前記ノードコンピュータが、最も早く仮完了通知を送信してきたノードコンピュータ以外のノードコンピュータである場合には、その処理の結果を採用しない旨の非採用通知をそのノードコンピュータに対して送信することを特徴とする負荷分散装置である。
【0029】
このような構成によって、ノードコンピュータは自己の処理結果が採用されなかったことを知ることができる。
【0030】
また、本発明は、前記割り当て送信手段が前記要求を前記前記ノードコンピュータに送信してから、所定期間内に前記ノードコンピュータから仮完了通知を受信できなかった場合に、仮完了通知を受信できなかった前記ノードコンピュータに障害が発生したと判断する障害検出手段、を含むことを特徴とする負荷分散装置である。
【0031】
このような構成によって、負荷分散装置は、ノードコンピュータに障害が発生したことを知ることができる。
【0032】
B.ノードコンピュータに関する発明
また、本発明は、負荷分散装置と通信可能に接続されるノードコンピュータにおいて、前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理手段と、前記処理手段による処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知手段と、を含むことを特徴とするノードコンピュータである。
【0033】
このような構成によって、処理を実行して結果が得られた場合に、その結果を外部に提供する前に、その旨を負荷分散装置に通知するので、負荷分散装置は、どのノードコンピュータにおいて結果が得られたかを知ることができる。
【0034】
また、本発明は、前記負荷分散装置から、前記処理の結果を採用する旨の採用通知が送信されてきた場合に、前記処理の結果を最終的な結果として外部に送信する結果送信手段、を含むことを特徴とするノードコンピュータである。
【0035】
また、本発明は、前記負荷分散装置から、前記処理の結果を採用しない旨の非採用通知が送信されてきた場合に、前記処理の結果を無効にする結果無効手段、を含むことを特徴とするノードコンピュータである。
【0036】
このような構成によって、結果を採用しないノードコンピュータに対して、そのノードコンピュータで要求の処理を行った結果を無効にすることができる。
【0037】
C.サーバシステムに関する発明
また、本発明は、複数のノードコンピュータと、前記複数のノードコンピュータと通信可能に接続され、外部からの要求をいずれかの前記ノードコンピュータに割り当てる負荷分散装置と、を備えたサーバシステムにおいて、前記ノードコンピュータは、前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理手段と、前記処理手段による処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知手段と、を含み、前記負荷分散装置は、外部からの要求を、前記複数のノードコンピュータ中の、いずれか2個以上のノードコンピュータに割り当てる割り当て手段と、前記割り当て手段が、前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信手段と、前記割り当て手段が前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知手段と、を含むことを特徴とするサーバシステムである。
【0038】
このような構成によって、耐故障性に優れたサーバシステムを実現可能である。
【0039】
D.プログラムに関する発明
以下の発明は、上記負荷分散装置やノードコンピュータの動作をコンピュータに行わせるプログラムの発明であり、その作用は上記の発明群と同様である。
【0040】
まず、本発明は、外部からの要求を、複数のノードコンピュータ中のいずれかのノードコンピュータに割り当てる負荷分散装置としてコンピュータを動作させるプログラムにおいて、前記コンピュータに、外部からの要求を、前記複数のノードコンピュータ中の、いずれか2個以上の前記ノードコンピュータに割り当てる割り当て手順と、前記割り当て手順が、前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信手順と、前記割り当て手順が前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知手順と、をコンピュータに実行させることを特徴とするプログラムである。
【0041】
また、本発明は、前記採用通知手順は、最も早く前記仮完了通知を送信してきた前記ノードコンピュータに対して、その処理の結果を採用する旨の採用通知を送信することを特徴とするプログラムである。
【0042】
また、本発明は、前記採用通知手順は、前記仮完了通知を送信してきた前記ノードコンピュータが、最も早く仮完了通知を送信してきたノードコンピュータ以外のノードコンピュータである場合には、その処理の結果を採用しない旨の非採用通知をそのノードコンピュータに対して送信することを特徴とするプログラムである。
【0043】
また、本発明は、前記割り当て送信手順が前記要求を前記前記ノードコンピュータに送信してから、所定期間内に前記ノードコンピュータから仮完了通知を受信できなかった場合に、仮完了通知を受信できなかった前記ノードコンピュータに障害が発生したと判断する障害検出手順、をコンピュータに実行させることを特徴とするプログラムである。
【0044】
さらに、本発明は、コンピュータを、負荷分散装置に接続されるノードコンピュータとして動作させるプログラムにおいて、前記コンピュータに、前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理手順と、前記処理手順による処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知手順と、を実行させることを特徴とするプログラムである。
【0045】
また、本発明は、前記コンピュータに、前記負荷分散装置から、前記処理の結果を採用する旨の採用通知が送信されてきた場合に、前記処理の結果を最終的な結果として外部に送信する結果送信手順、を実行させることを特徴とするプログラムである。
【0046】
また、本発明は、前記コンピュータに、前記負荷分散装置から、前記処理の結果を採用しない旨の非採用通知が送信されてきた場合に、前記処理の結果を無効にする結果無効手順、を実行させることを特徴とするプログラムである。
【0047】
E.負荷分散方法に関する発明
以下の発明は、上記サーバシステムに以下の実施の形態で説明するペアリングの動作を行わせる方法の発明であり、その作用は上記サーバシステムの採用と同様である。
【0048】
本発明は、負荷分散装置と、前記負荷分散装置に通信可能に接続された複数のノードコンピュータとを含むサーバシステム上で、外部からの要求をいずれかのノードコンピュータに割り当てる負荷分散方法において、前記負荷分散装置が、外部からの要求を、前記複数のノードコンピュータ中の、いずれか2個以上のノードコンピュータに割り当てる割り当てステップと、前記負荷分散装置が、前記割り当てステップにおいて前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信ステップと、前記ノードコンピュータが、前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理ステップと、前記ノードコンピュータが、前記処理ステップによる処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知ステップと、前記割り当てステップにおいて前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知ステップと、を含むことを特徴とする負荷分散方法である。
【0049】
【発明の実施の形態】
以下、本発明の好適な実施の形態を図面に基づき説明する。
【0050】
図1には、本発明の好適な実施の形態のサーバシステム100の構成を表す説明図が示されている。この図に示すように、ロードバランサ110は、複数のノードコンピュータ112a〜112dとネットワークで互いに接続されており、互いに通信を行えるように構成されている。
【0051】
ロードバランサ110は、インターネット14を介してクライアント116a〜116cから送られてきた要求を各ノードコンピュータ112a〜112dに割り振る動作を実行している。このロードバランサ110は、請求の範囲の負荷分散装置の一例に相当する。
【0052】
本実施の形態において特徴的なことは、ノードコンピュータ112aとノードコンピュータ112bとがペア(組)を構成している点である。さらに、ノードコンピュータ112cとノードコンピュータ112dとがペアを構成している点が特徴である。そして、同じペアのノードコンピュータ112aとノードコンピュータ112bに同様の動作を行わせることで、処理の2重化を図っているのである。この結果、いずれか一方のノードコンピュータ12a(又は12b)に障害が発生した場合でも、他方のノードコンピュータ12b(又は12a)がすぐに処理を引き継ぐことが可能となり、より可用性に富むサーバシステム100を提供することができる。これは、ノードコンピュータ112cとノードコンピュータ112dとの間でも全く同様である。このように、2個のノードコンピュータ112をペアとし、いずれか一方のノードコンピュータに障害が発生した場合に、他方のノードコンピュータが処理を続行できる仕組みを本特許では、ペアリングと呼んでいる。このペアリングを実現するための構成、及び、より詳細な動作説明を、以下行う。
【0053】
ロードバランサの構成
図2には、本実施の形態のロードバランサ110の機能構成を示す構成ブロック図が示されている。
【0054】
この図に示すように、ロードバランサ110は、クライアント16からの要求を受信し、要求を割り当てる割り当て手段200を備えている。割り当て手段200は、従来のロードバランサ10と同様のアルゴリズムで要求を割り当てる。従来と異なる点は、割り当ての対象が、単一のノードコンピュータ12ではなく、ノードコンピュータのペアである点である。例えば、要求は、ノードコンピュータ112aとノードコンピュータ112bとのペアに割り当てられるのである。
【0055】
どのノードコンピュータ112がペアを組んでいるかに関する情報がテーブル202に格納されている。さらに、テーブル202には、各ペアに割り当てられているセッションの数等、割り当てに関する情報がすべて格納されている。割り当て手段200は、このテーブル202の内容を参照して割り当てるべきノードコンピュータ112のペアを決定する。
【0056】
さらに、ロードバランサ110は、要求送信手段204を備えている。要求送信手段204は、上記割り当て手段200の割り当ての決定に基づき、クライアント16からの要求をそのペアに送信する。
【0057】
また、ロードバランサ110は、ノードコンピュータ112から、処理が完了した旨の通知を受信し、最も早くこの通知を送信してきたノードコンピュータに対して、その処理結果を採用する旨の通知をする採用通知手段206を備えている。
【0058】
本実施の形態においては、2個のノードコンピュータ112をペアとして扱い同時に同様の処理を行わせ、最終的にはいずれか1個のノードコンピュータ112の結果を採用する必要がある。本実施の形態ではこの採用の基準として、処理が完了した通知を最も早く送ってきたノードコンピュータ112を採用するアルゴリズムを利用している。詳細な動作については後に詳述する。
【0059】
なお、採用通知手段206が、所定期間内に、ノードコンピュータ112から通知を受信できなかった場合、そのノードコンピュータ112には障害が発生したと判断することができる。係る判断は、ロードバランサ110中の障害検出手段208が行う。障害検出手段208が障害が発生したと判断したノードコンピュータに関する障害情報はテーブル202に格納される。
【0060】
以上述べた構成は、ロードバランサ110内部のプロセッサと、このプロセッサが実行するプログラムとから構成されている。すなわち、ロードバランサ110自身もまたコンピュータであり、その動作は、実行するプログラムによって規定される。コンピュータとしては従来の一般のコンピュータと同様のものである。
【0061】
また、上記テーブル202は、所定の記憶手段で構成することが望ましい。コンピュータ内部の半導体記憶装置や磁気ディスク装置であるハードディスクで構成することが好ましい。もちろん、他の光ディスク(CD、CD−R、DVD、DVD−RW等)で構成してもかまわない。
【0062】
本実施の形態におけるロードバランサ110は、基本的に従来のロードバランサと同様の機能を有している。そして、従来と同様の機能に関してはよく知られている事項であるので、図2では表示せず、説明も省略する。
【0063】
ノードコンピュータの構成
図3には、本実施の形態のノードコンピュータ112の機能構成を表す構成ブロック図が示されている。この図に示すように、ノードコンピュータ112は、ロードバランサ110から送信されてきた要求に基づき処理を実行する処理手段300を備えている。この処理手段300は、要求の処理を行う点で従来のロードバランサの処理手段と同様のものである。しかし、この処理手段300は、従来の装置とは異なり、処理の結果が得られた場合に、これを仮完了通知手段302に通知する。そして、仮完了通知手段302は、処理の結果が得られたことをロードバランサ110に通知するのである。このように、処理の結果が得られた旨の通知を仮完了通知と呼ぶ。
【0064】
本実施の形態では、ロードバランサ110は、この通知が最も早くこの通知を受け取った相手であるノードコンピュータ112の処理結果のみを採用する。そして、仮完了通知が遅かった方のノードコンピュータ112の処理の結果が無効となるのである。これは既に説明したとおりである。すなわち、ロードバランサ110が採用通知を送信してきた場合には、結果送信手段304が起動し、処理手段300の処理結果を、外部のクライアント16に直接送信する。一方、ロードバランサ110が非採用通知を送信してきた場合には、結果無効手段306が起動し、処理手段300の処理結果を無効にする。
【0065】
このような構成によって、2個のノードコンピュータ112を組として取り扱うことができるので、いずれか一方に障害が発生しても処理を続行できる可能性が高くなる。
【0066】
以上述べた構成は、ノードコンピュータ112内部のプロセッサと、このプロセッサが実行するプログラムとから構成されている。すなわち、ノードコンピュータ112自身は一般のコンピュータと同様であり、その動作は、実行するプログラムによって規定される。
【0067】
本実施の形態におけるノードコンピュータ112は、基本的に従来のノードコンピュータと同様の機能を有している。図3では表示していない他の構成・機能に関しては、従来と同様の構成・機能であるのでその説明は省略する。
【0068】
全体の動作
以下、図1に示すサーバシステム100の詳細な動作を図4のシーケンス図に基づき説明する。上述したように、本実施の形態の動作は、コンピュータプログラムによって規定されているものである。このプログラムを実行することにより、以下に示すような動作が実行される。
【0069】
まず、クライアント16a(又は16b、16c)からの要求を、ロードバランサ110が受信する。ロードバランサ110は、受信した要求を一旦内部のバッファに格納し、この要求を割り当てるペアを選択する。この選択は、割り当て手段200が実行する。
【0070】
本実施の形態において特徴的なことは、要求を割り当てるノードコンピュータ112が2個であるという点である。すなわち、要求の割り当て対象が1個のノードコンピュータ112ではなく、ノードコンピュータ112の「ペア」となっていることである。このような動作によって、ノードコンピュータ112の冗長化を実現しているのである。本実施の形態では、ノードコンピュータ112a及び112bが第1ペアを構成し、ノードコンピュータ112c及び112dが第2ペアを構成するものとして説明を行う(図4参照)。なお、図4では、ノードコンピュータ112aを「ノード1」と称し、ノードコンピュータ112bを「ノード2」と称している。
【0071】
また、本実施の形態においては、割り当てアルゴリズム自体は、従来のアルゴリズムをそのまま利用している。例えば、割り当てられているセッション数が最も少ないペアに、新たに要求が割り当てられるのである。
【0072】
以下、第1ペア(ノードコンピュータ112a及び112b)に要求が割り当てられたものとして説明を行う。
【0073】
要求送信手段204は、要求が割り当てられたノードコンピュータ112a及び112bに対して、要求を送信する。このように本実施の形態では、1個の要求が2個のノードコンピュータ112a、112bに対して送信される。
【0074】
要求が送られたノードコンピュータ112a及び112bは、まず、その要求があったことを記録に残すと共に、その処理を仮実行する。ここで、仮実行とは、処理の演算を行い、結果を得られた状態であって、最終的な結果を外部に送信していない状態までの実行をいう。換言すれば、結果は得られているがクライアント16に結果を送信しておらず、サービスが完了していない状態までの実行をいう。
【0075】
例を示せば、データベースサービスにおいて、検索したデータ群を一括して書き換える処理の場合に、単にメモリ上でデータの値を書き換えたが、ハードディスク等にはまだ最終的な格納を行っておらず、クライアント16にも報告していない段階までの実行である。本特許では、このような実行処理を仮実行と呼ぶ。
【0076】
第1ペアのノードコンピュータ112a及び112bは、仮実行が完了した後、仮完了通知をロードバランサ110に対して行う。具体的には、仮完了通知手段302がこの通知を行う。
【0077】
ロードバランサ110は、仮完了通知を受信した場合、採用通知手段206が、以下のような動作を実行する。
【0078】
最初に受け取った仮完了通知を送信したノードコンピュータ112a(又は112b)に対しては、採用通知を送信する(図4参照)。2番目に受け取った仮完了通知を送信したノードコンピュータ112b(又は112a)に対しては、非採用通知を送信する(図4参照)。このように本実施の形態では、2台のコンピュータに同様の処理を実行させ、早く処理が完了した方の結果を採用し、他方を破棄するのである。1個の処理を2台のノードコンピュータ112で実行させているので、処理中に一方のノードコンピュータ112a(又は112b)に障害が生じても他方のノードコンピュータ112b(又は112a)で処理を続行することができる。その結果、信頼性の高いサーバシステム100を構築することが可能である。
【0079】
採用通知や、非採用通知は、採用通知手段206が行う。
【0080】
採用通知を受け取ったノードコンピュータ112a(112b)は、処理の結果をハードディスク等に書き込むと共に、外部のクライアント16に送信する(図4参照)。この送信の処理をもってサービスの処理が完全に完了すると考えられるので、この処理を本実行と呼ぶ(図4参照)。クライアント16に対する送信処理は、結果送信手段304(図3参照)によって実行される。なお、この送信は、ロードバランサ110を介して行われるが、ロードバランサ110は、単に処理の結果のデータや報告を通過させるだけである。
【0081】
一方、非採用通知を受け取ったノードコンピュータ112b(112a)においては、結果無効手段306がこの非採用通知を検出し、処理手段300の処理結果を無効にする。無効とする処理は、最終的な結果として利用しない状態に置く処理であればどのようなものでもかまわない。処理結果を単にハードディスク等に格納せずに、処理結果のデータを消去してしまうのも好ましい。また、管理等のために処理結果をハードディスク等に保存する場合でも、処理結果のデータが無効であることを表すフラグ等を用いて、処理結果のデータが正規のデータとして利用されないような状況に置くことができれば、本発明における「無効」に該当する。
【0082】
以上述べたように、本実施の形態によれば、複数のノードコンピュータ112中にペアを設定し、要求を一つのペア(2個のノードコンピュータ112)に割り当て、同様の処理を2台のノードコンピュータ112に実行させている。したがって、本実施の形態によれば、いずれかのノードコンピュータ112に障害が発生しても、処理を続行することが可能なサーバシステム100を実現することができる。
【0083】
障害の検出
図4に示したシーケンス図では、ノードコンピュータ112aもノードコンピュータ112bも正常に動作している場合の動作例を示した。これに対していずれか一方に障害が発生した場合には、障害が発生した側のノードコンピュータ112からは仮完了通知が送信されてこないと考えられる。したがって、自動的に障害が発生していない側のノードコンピュータ112に対して採用通知が出され、その処理結果が利用されることになる。
【0084】
このように本実施の形態によれば、2台のノードコンピュータ112に同時に同様の処理を実行させているので、障害が発生しても、引継に関連す特段の処理を経ずに処理を続行することが可能である。
【0085】
なお、要求を割り当ててから所定期間以上、仮完了通知が来ない場合には、障害検出手段208がこれを検出し、テーブル202上に障害情報を格納する。この動作によって装置の管理者は障害が発生したノードコンピュータ112を迅速に知ることが可能となる。その結果、故障したノードコンピュータ112の交換等を速やかに行うことが可能な、利便性の高いサーバシステム100が実現される。
【0086】
変形例その他
(1)なお、ノードコンピュータ112は、ロードバランサ110に接続されているコンピュータの意味であるが、その構成や機能は一般のコンピュータと何ら変わるところはない。
【0087】
(2)また、上記実施の形態では、2個のノードコンピュータ112をペアとして設定することを提案したが、ペアの代わりに3個以上の「組」を設けることも好ましい。この場合でも、最初に仮完了通知を送信してきたノードコンピュータ112の処理結果を採用し、他のノードコンピュータ112の結果を無効とする動作原理は全く同様である。
【0088】
(3)ロードバランサ110と複数のノードコンピュータ112の集合体を本実施の形態ではサーバシステム100と呼んだが、クラスタコンピュータや、ブレードコンピュータと呼ぶ場合もある。
【0089】
(4)ロードバランサ110と複数のノードコンピュータ112とは通信可能に接続されていればどのような手段で接続してもよい。イーサネット(Ethrenet)(登録商標)のような有線接続の他、ブルートゥース(商標)のような無線手段で接続してもよい。
【0090】
(5)本実施の形態では、2個のノードコンピュータ112に同時に要求を送信しているので、従来の技術で述べたスティッキー機能が良好に動作しないのではないかと疑問を持つ方がいるかもしれない。スティッキー機能は基本的に1台のノードコンピュータに引き続いて要求を割り当て続けるものだからである。しかし、本実施の形態では、2個のノードコンピュータに同時に要求を実行させるので、その2個のペアに対して要求を引き続いて割り当てることにより、従来のスティッキー機能も本実施の形態で十分に実行可能である。スティッキー機能は、各ノードコンピュータ112が自己に送信されてきた要求の履歴を覚えておくことにより実現される。本実施の形態では、処理の結果が採用されなかったノードコンピュータ112も要求がきた事実は履歴として保存しておく。したがって、例えば、「最初の要求」がノードコンピュータ112aによって処理された場合に、ノードコンピュータ112bにも要求があった記録が残っている(例えば誰が何を電子商取引で購入したかの情報の記録)。したがって、「後の要求」がノードコンピュータ112bによって処理されても、スティッキー機能を良好に処理可能である。
【0091】
【発明の効果】
以上述べたように、本発明によれば、負荷分散装置が、1個の要求を2個以上のノードコンピュータに割り当てるので、いずれかのノードコンピュータに障害が発生しても、残りの他のノードコンピュータで処理を続行可能である。その結果、耐故障性に優れたサーバシステムを提供可能である。
【0092】
また、本発明によれば、上述のように、1個の要求を2個以上のノードコンピュータに割り当てることができる負荷分散装置が提供できる。また、本発明によれば、このような負荷分散装置と接続し、耐故障性に優れたサーバシステムを構築するのに利用されるノードコンピュータが提供可能である。
【図面の簡単な説明】
【図1】本実施の形態のロードバランサやノードコンピュータが利用されいる様子を表す模式図である。
【図2】本実施の形態のロードバランサの機能構成ブロック図である。
【図3】本実施の形態のノードコンピュータの機能構成ブロック図である。
【図4】本実施の形態の動作を表すシーケンス図である。
【図5】従来のロードバランサやノードコンピュータが利用されいる様子を表す模式図である。
【符号の説明】
10 ロードバランサ
12a、12b、12c、12d ノードコンピュータ
14 インターネット
16a、16b、16c クライアント
20 サーバシステム
100 サーバシステム
110 ロードバランサ
112 ノードコンピュータ
200 割り当て手段
202 テーブル
204 要求送信手段
206 採用通知手段
208 障害検出手段
300 処理手段
302 仮完了通知手段
304 結果送信手段
306 結果無効手段
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a load distribution device. The present invention also relates to a node computer to which a load is assigned by a load distribution device.
[0002]
[Prior art]
2. Description of the Related Art A server computer (hereinafter, simply referred to as a server) that provides a service to a request from the outside (request) is widely used. Requests are often called requests. In this patent, the word "request" is used. In order to increase the capacity of the server, various systems are known in which a plurality of computers are combined to constitute one server having a large processing capacity. A typical example of such a system would be a web server on the Internet that needs to handle a large number of requests. In particular, a WEB server that provides an e-commerce service for conducting business transactions on the Internet must process a large number of purchase orders, and thus is often actually configured with a plurality of servers. It is also considered that fault tolerance can be improved by using a plurality of servers. That is, even if one of the plurality of servers fails, the e-commerce service can be continued on the remaining servers.
[0003]
As one of the simple mechanisms for using a plurality of servers as described above, a mechanism called DNS round robin on the Internet has been widely known. The DNS round robin is a method in which a plurality of IP addresses are assigned to one domain name. Each time an external request is made, an IP address is sequentially assigned to access (request) one computer. ) Is a mechanism to prevent concentration. This mechanism uses a plurality of IP addresses.
[0004]
On the other hand, a device for distributing a request for one IP address to a plurality of computers has been conventionally known, and is often called a load balancer (Load @ Balancer). FIG. 4 shows a conceptual diagram of the configuration of a WEB server using the load balancer 10.
[0005]
The load balancer 10 is connected to a plurality of node computers 12a to 12d via a network, and is configured to communicate with each other. The load balancer 10 performs an operation of allocating requests transmitted from the clients 16a to 16c via the Internet 14 to the node computers 12a to 12d. In this patent, a plurality of computers managed by the load balancer 10 are referred to as node computers 12.
[0006]
By performing such an operation by the load balancer 10, the clients 16a to 16c look as if one WEB server is providing a service. The services provided are, for example, web browsing services, electronic commerce services, translation services, database services, and various other services.
[0007]
For example, an e-commerce service request issued by the client 16a is assigned to the node computer 12a. The node computer 12a executes an e-commerce service for the client 16a and returns the result to the load balancer 10. The load balancer 10 transmits the returned service result to the client 16a. In order to perform such an operation, the load balancer 10 has a function of storing which request is assigned to which node computer 12.
[0008]
On the other hand, the request issued by the client 16b is received by the load balancer 10, and is assigned to the node computer 12b. The node computer 12b executes an e-commerce service for the client 16b and returns the result to the load balancer 10. The load balancer 10 transmits the returned service result to the client 16b.
[0009]
As a result of such an operation, the external Internet 14 looks as if one server is providing the service. Further, a system including the load balancer 10 and the plurality of node computers 12a to 12d is referred to as a server system 20 in this patent.
[0010]
Hereinafter, some functions of the conventional load balancer 10 will be briefly described.
[0011]
A. Load balancing algorithm
Various conventional load distribution algorithms of the load balancer 10 are known.
[0012]
(1) Round robin
This is a method of sequentially allocating requests to a plurality of node computers 12 as in the DNS round robin described above.
[0013]
(2) Assign requests based on the number of sessions
In this method, a request is assigned to the node computer 12 having the smallest number of sessions, taking into account the number of sessions currently assigned to the node computers 12a to 12d. A session is, roughly speaking, a series of services assigned to the node computer 12. One session refers to a series of procedures from when the client 16 issues a request, after that, through browsing of a product catalog, a purchase instruction, and the like, and finally logging off.
[0014]
It is necessary for the same node computer 12 to handle all the processing of a session output by one client 16. Therefore, when this method is adopted, the load balancer 10 must always manage which node computer 12 is assigned which client 16 and whether the session is currently ongoing. There is.
[0015]
(3) Allocate a request based on the fastest response by broadcast.
[0016]
The load balancer 10 transmits a predetermined message to each of the node computers 12a to 12d by simultaneous broadcast. This is called a broadcast (BroadCast). The node computer 12 which has returned the response message to the message earliest determines that the load is the lightest, and allocates a new request to the node computer 12.
[0017]
This approach is based on the idea that the lighter the load, the faster the node computer 12 will be able to respond.
[0018]
In order to realize the methods (1) to (3), status information is transmitted and received between the load balancer 10 and each node computer 12, and the load balancer 10 generally grasps the state of each node computer 12. Is being done.
[0019]
B. Sticky ( Sticky )function
As already mentioned, it is highly desirable that the processing output from the same client 16 be processed by the same node computer 12. As described above, the load balancer 10 often has a function of continuously assigning a process issued by a certain client 16 to the same node computer. In other words, the "later request" from the same client is subsequently allocated to the node computer 12 to which the "first request" of a certain client 16 has been allocated. Such a function is called a sticky function. With this sticky function, processing from the same client is executed by the same node computer 12, and continuity of processing is ensured.
[0020]
C. Failover ( Fail Over )function
FIG. 4 shows an example in which one load balancer 10 is provided. However, a configuration including two load balancers 10 is often adopted in order to improve the operation rate or the fault tolerance. In other words, this is a function in which two load balancers 10, a master and a slave, are provided, and when the master fails, the slave inherits the node information possessed by the master. Such a function has been conventionally known, and is called a failover function.
[0021]
[Problems to be solved by the invention]
As described above, a technique for making the load balancer 10 itself redundant has been conventionally known. However, a method of making each node computer 12 redundant is not known.
[0022]
Therefore, if a failure occurs during processing in a certain node computer 12, it has been conventionally difficult to continue the processing. This is because the plurality of node computers 12 basically perform processing for another request.
[0023]
The present invention has been made in view of the above problem, and an object of the present invention is to propose a configuration that can provide redundancy to the node computer 12 itself. Further, it is an object of the present invention to provide a server system having such a configuration, and a load balancer and a node computer for realizing the server system.
[0024]
[Means for Solving the Problems]
A. Invention related to load balancer
In order to solve the above-described problems, the present invention provides a load distribution device that is communicably connected to a plurality of node computers and allocates an external request to any one of the node computers. Allocating means for allocating the request to any two or more node computers, the allocating means transmitting the request to the node computer to which the request has been allocated, and the allocating means allocating the request. When a provisional completion notification is received from any of the two or more node computers notifying that a result of the processing for the request has been obtained, a notification is given as to whether to adopt the processing result of the node computer. And a load notifying unit.
[0025]
Since the request is assigned to two or more node computers, the processing of the request can be continued even if a failure occurs in any of the node computers.
[0026]
Further, according to the present invention, in the load distribution device according to claim 1, the adoption notifying unit notifies the node computer that has transmitted the provisional completion notice the earliest of the adoption notification that the result of the process is adopted. Is transmitted.
[0027]
With such a configuration, the node computer can know that its own processing result has been adopted.
[0028]
Further, according to the present invention, the adoption notifying means, if the node computer that has transmitted the provisional completion notification is a node computer other than the node computer that has transmitted the provisional completion notification earliest, a result of the processing. The load balancer transmits a non-adoption notice to the effect that the node computer is not adopted to the node computer.
[0029]
With such a configuration, the node computer can know that its own processing result has not been adopted.
[0030]
In addition, according to the present invention, when the assignment transmitting unit transmits the request to the node computer, if the temporary completion notification cannot be received from the node computer within a predetermined period, the temporary completion notification cannot be received. And a failure detecting means for determining that a failure has occurred in the node computer.
[0031]
With such a configuration, the load distribution device can know that a failure has occurred in the node computer.
[0032]
B. Invention related to node computer
Further, the present invention provides a node computer communicably connected to a load distribution apparatus, wherein when a request is transmitted from the load distribution apparatus, processing means for executing the request, and processing by the processing means And a tentative completion notifying means for transmitting a tentative completion notice to the load distribution device when the result of (1) is obtained.
[0033]
According to such a configuration, when a result is obtained by executing a process, the result is notified to the load balancer before the result is provided to the outside. Can be obtained.
[0034]
Further, the present invention further includes a result transmitting unit that transmits the result of the processing to the outside as a final result when an adoption notification indicating that the result of the processing is employed is transmitted from the load distribution device. A node computer characterized in that:
[0035]
Further, the present invention includes a result invalidating unit that invalidates the result of the processing when a non-adoption notice indicating that the result of the processing is not adopted is transmitted from the load distribution device. Node computer.
[0036]
With such a configuration, the result of performing the request processing in the node computer that does not adopt the result can be invalidated.
[0037]
C. Invention related to server system
The present invention also provides a server system comprising: a plurality of node computers; and a load distribution device communicably connected to the plurality of node computers and allocating an external request to any one of the node computers. The node computer, when a request is transmitted from the load distribution device, processing means for executing the request processing, and when a result of the processing by the processing means is obtained, the temporary completion notification is transmitted to the load distribution device. Tentative completion notifying means for transmitting the request to an apparatus, wherein the load balancing apparatus allocates an external request to any two or more node computers among the plurality of node computers, and the allocating means Request transmitting means for transmitting the request to the node computer to which the request has been allocated; When a stage receives a provisional completion notification from one of the two or more node computers to which the request has been assigned, the notification indicating that a result of the processing for the request has been obtained, the result of the processing of the node computer is received. And a recruitment notifying unit for notifying whether or not to adopt the recruitment.
[0038]
With such a configuration, a server system having excellent fault tolerance can be realized.
[0039]
D. Inventions related to programs
The following invention is an invention of a program for causing a computer to execute the operation of the load distribution device or the node computer, and its operation is the same as that of the above-described invention group.
[0040]
First, the present invention provides a program for operating a computer as a load distribution device that assigns an external request to any one of a plurality of node computers. An assignment procedure for allocating to any two or more of the node computers in the computer, the assignment procedure transmitting a request to the node computer to which the request has been assigned, and a request transmission procedure for transmitting the request. When a provisional completion notification is received from any of the assigned two or more node computers to notify that the result of the processing for the request has been obtained, whether to adopt the processing result of the node computer And let the computer execute the recruitment notification procedure Is a program characterized and.
[0041]
Further, the present invention provides a program, wherein the adoption notifying step transmits an adoption notice to the effect that the result of the processing is adopted to the node computer which has transmitted the provisional completion notice earliest. is there.
[0042]
In addition, according to the present invention, in the adoption notifying procedure, when the node computer that has transmitted the provisional completion notification is a node computer other than the node computer that has transmitted the provisional completion notification earliest, a result of the processing is provided. Is transmitted to the node computer to notify that the node computer has not adopted.
[0043]
Further, according to the present invention, after the assignment transmission procedure transmits the request to the node computer, if a provisional completion notification cannot be received from the node computer within a predetermined period, the provisional completion notification cannot be received. A failure detecting procedure for determining that a failure has occurred in the node computer.
[0044]
Further, the present invention provides a program for causing a computer to operate as a node computer connected to a load distribution apparatus, wherein the processing is performed when the request is transmitted from the load distribution apparatus to the computer. And a temporary completion notification procedure of transmitting a temporary completion notification to the load distribution device when a result of the processing according to the processing procedure is obtained.
[0045]
Further, according to the present invention, when an adoption notification indicating that the result of the processing is adopted is transmitted from the load distribution device to the computer, a result of transmitting the result of the processing to the outside as a final result And a transmission procedure.
[0046]
Further, the present invention executes a result invalidation procedure for invalidating the result of the processing when a non-adoption notice not to adopt the result of the processing is transmitted from the load distribution device to the computer. The program is characterized by causing
[0047]
E. FIG. Invention related to load distribution method
The following invention is an invention of a method for causing the server system to perform the pairing operation described in the following embodiment, and the operation is the same as that of the server system.
[0048]
The present invention provides a load distribution method for allocating an external request to any one of node computers on a server system including a load distribution device and a plurality of node computers communicably connected to the load distribution device. An allocation step in which the load distribution device allocates an external request to any two or more node computers among the plurality of node computers; and a node computer in which the load distribution device allocates the request in the allocation step. A request transmitting step of transmitting the request; a processing step of, when the request is transmitted from the load distribution device, the node computer executing the processing of the request; and If the result of the processing by A provisional completion notification step to be transmitted to the load distribution apparatus; and a provisional completion notification notifying that a result of processing the request has been obtained from any of the two or more node computers to which the request has been allocated in the allocation step. And a notification step of notifying whether or not to adopt a result of the processing of the node computer when the node computer receives the processing result.
[0049]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0050]
FIG. 1 is an explanatory diagram showing a configuration of a server system 100 according to a preferred embodiment of the present invention. As shown in this figure, the load balancer 110 is connected to a plurality of node computers 112a to 112d via a network, and is configured to be able to communicate with each other.
[0051]
The load balancer 110 performs an operation of allocating requests transmitted from the clients 116a to 116c via the Internet 14 to the node computers 112a to 112d. The load balancer 110 corresponds to an example of the load distribution device in the claims.
[0052]
The feature of this embodiment is that the node computer 112a and the node computer 112b form a pair. Further, it is characterized in that the node computer 112c and the node computer 112d form a pair. Then, the same operation is performed by the node computer 112a and the node computer 112b of the same pair, so that the processing is duplicated. As a result, even if a failure occurs in one of the node computers 12a (or 12b), the other node computer 12b (or 12a) can immediately take over the processing, and the server system 100 with higher availability can be provided. Can be provided. This is exactly the same between the node computers 112c and 112d. In this patent, a mechanism in which two node computers 112 are paired and one of the node computers can continue processing when a failure occurs in one of the node computers is referred to as pairing in this patent. A configuration for realizing this pairing and a more detailed operation description will be described below.
[0053]
Configuration of load balancer
FIG. 2 is a configuration block diagram illustrating a functional configuration of the load balancer 110 according to the present embodiment.
[0054]
As shown in the figure, the load balancer 110 includes an allocation unit 200 that receives a request from the client 16 and allocates the request. The allocating unit 200 allocates a request using an algorithm similar to that of the conventional load balancer 10. The difference from the related art is that the assignment target is not a single node computer 12 but a pair of node computers. For example, the request is assigned to a pair of the node computer 112a and the node computer 112b.
[0055]
Information regarding which node computers 112 form a pair is stored in the table 202. Further, the table 202 stores all information related to allocation, such as the number of sessions allocated to each pair. The allocating unit 200 determines the pair of the node computers 112 to be allocated with reference to the contents of the table 202.
[0056]
Further, the load balancer 110 includes a request transmission unit 204. The request transmitting unit 204 transmits a request from the client 16 to the pair based on the allocation determination by the allocation unit 200.
[0057]
Further, the load balancer 110 receives a notification that the processing has been completed from the node computer 112 and notifies the node computer that has transmitted the notification the earliest that the processing result is to be adopted to the node computer 112. Means 206 are provided.
[0058]
In the present embodiment, it is necessary to treat the two node computers 112 as a pair and perform the same processing at the same time, and finally adopt the result of one of the node computers 112. In the present embodiment, an algorithm that employs the node computer 112 that has sent the notification of completion of the process as the earliest is used as a criterion for this adoption. The detailed operation will be described later.
[0059]
If the adoption notifying unit 206 does not receive a notification from the node computer 112 within a predetermined period, it can be determined that a failure has occurred in the node computer 112. Such a determination is made by the failure detection means 208 in the load balancer 110. Failure information on the node computer for which the failure detecting means 208 has determined that a failure has occurred is stored in the table 202.
[0060]
The configuration described above includes a processor inside the load balancer 110 and a program executed by the processor. That is, the load balancer 110 itself is also a computer, and its operation is defined by a program to be executed. The computer is the same as a conventional general computer.
[0061]
It is desirable that the table 202 be constituted by a predetermined storage means. It is preferable to use a hard disk which is a semiconductor storage device or a magnetic disk device inside the computer. Of course, other optical disks (CD, CD-R, DVD, DVD-RW, etc.) may be used.
[0062]
The load balancer 110 according to the present embodiment has basically the same function as a conventional load balancer. Since the same functions as those in the related art are well known, they are not shown in FIG.
[0063]
Configuration of node computer
FIG. 3 is a configuration block diagram illustrating a functional configuration of the node computer 112 according to the present embodiment. As shown in the figure, the node computer 112 includes a processing unit 300 that executes a process based on a request transmitted from the load balancer 110. This processing means 300 is similar to the processing means of a conventional load balancer in that it processes a request. However, unlike the conventional device, the processing means 300 notifies the provisional completion notifying means 302 when a processing result is obtained. Then, the provisional completion notifying unit 302 notifies the load balancer 110 that the processing result has been obtained. The notification indicating that the result of the process is obtained is called a temporary completion notification.
[0064]
In the present embodiment, the load balancer 110 adopts only the processing result of the node computer 112 that has received the notification the earliest. Then, the result of the process of the node computer 112 whose provisional completion notification is late becomes invalid. This is as described above. That is, when the load balancer 110 has transmitted the adoption notification, the result transmitting unit 304 is activated, and directly transmits the processing result of the processing unit 300 to the external client 16. On the other hand, when the load balancer 110 has transmitted the non-employment notification, the result invalidating unit 306 is activated, and invalidates the processing result of the processing unit 300.
[0065]
With such a configuration, the two node computers 112 can be handled as a set, so that there is a high possibility that the processing can be continued even if one of the nodes fails.
[0066]
The configuration described above includes a processor inside the node computer 112 and a program executed by the processor. That is, the node computer 112 itself is similar to a general computer, and its operation is defined by a program to be executed.
[0067]
The node computer 112 according to the present embodiment has basically the same function as a conventional node computer. The other configurations and functions not shown in FIG. 3 have the same configurations and functions as those of the related art, and thus description thereof will be omitted.
[0068]
Overall behavior
Hereinafter, the detailed operation of the server system 100 shown in FIG. 1 will be described with reference to the sequence diagram of FIG. As described above, the operation of the present embodiment is defined by the computer program. The following operations are performed by executing this program.
[0069]
First, the load balancer 110 receives a request from the client 16a (or 16b, 16c). The load balancer 110 temporarily stores the received request in an internal buffer, and selects a pair to which the request is assigned. This selection is performed by the allocation unit 200.
[0070]
A characteristic of the present embodiment is that the number of node computers 112 to which requests are assigned is two. That is, the request assignment target is not a single node computer 112 but a “pair” of the node computers 112. By such an operation, the redundancy of the node computer 112 is realized. In the present embodiment, description will be made assuming that the node computers 112a and 112b form a first pair and the node computers 112c and 112d form a second pair (see FIG. 4). In FIG. 4, the node computer 112a is referred to as “node 1”, and the node computer 112b is referred to as “node 2”.
[0071]
Further, in the present embodiment, the conventional algorithm is used as the allocation algorithm itself. For example, a request is newly assigned to a pair having the smallest number of assigned sessions.
[0072]
Hereinafter, description will be made assuming that a request is assigned to the first pair (node computers 112a and 112b).
[0073]
The request transmitting unit 204 transmits the request to the node computers 112a and 112b to which the request has been assigned. As described above, in this embodiment, one request is transmitted to two node computers 112a and 112b.
[0074]
First, the node computers 112a and 112b to which the request has been sent record the request, and temporarily execute the processing. Here, the term “temporary execution” refers to execution until a state in which a result of a processing operation is obtained and a result is obtained and a final result is not transmitted to the outside. In other words, the execution is performed until the result is obtained but the result is not transmitted to the client 16 and the service is not completed.
[0075]
For example, in the database service, in the case of rewriting the retrieved data group at once, the data value was simply rewritten on the memory, but the final storage is not yet performed on the hard disk or the like, This is the execution up to the stage not reporting to the client 16. In this patent, such an execution process is referred to as temporary execution.
[0076]
After the completion of the temporary execution, the node computers 112a and 112b of the first pair send a temporary completion notification to the load balancer 110. Specifically, the provisional completion notifying unit 302 makes this notification.
[0077]
When the load balancer 110 receives the provisional completion notification, the adoption notification unit 206 performs the following operation.
[0078]
The adoption notification is transmitted to the node computer 112a (or 112b) that has transmitted the temporary completion notification received first (see FIG. 4). A non-adoption notice is transmitted to the node computer 112b (or 112a) that has transmitted the second temporarily received provisional completion notice (see FIG. 4). As described above, in this embodiment, two computers execute the same processing, the result of the earlier processing is adopted, and the other is discarded. Since one process is executed by two node computers 112, even if a failure occurs in one node computer 112a (or 112b) during the process, the other node computer 112b (or 112a) continues the process. be able to. As a result, a highly reliable server system 100 can be constructed.
[0079]
The employment notification unit 206 performs the employment notification and the non-employment notification.
[0080]
The node computer 112a (112b) that has received the adoption notification writes the result of the processing to a hard disk or the like and transmits the result to the external client 16 (see FIG. 4). Since it is considered that the processing of the service is completely completed by the processing of this transmission, this processing is called main execution (see FIG. 4). The transmission processing to the client 16 is executed by the result transmission means 304 (see FIG. 3). Note that this transmission is performed via the load balancer 110, but the load balancer 110 simply passes the data or report of the processing result.
[0081]
On the other hand, in the node computer 112b (112a) that has received the non-employment notification, the result invalidation unit 306 detects the non-employment notification and invalidates the processing result of the processing unit 300. The process of invalidating may be any process as long as the process is not used as a final result. It is also preferable to delete the processing result data without simply storing the processing result in a hard disk or the like. Further, even when the processing result is stored on a hard disk or the like for management or the like, the processing result data may not be used as legitimate data by using a flag indicating that the processing result data is invalid. If it can be placed, it corresponds to "invalid" in the present invention.
[0082]
As described above, according to the present embodiment, a pair is set in a plurality of node computers 112, a request is assigned to one pair (two node computers 112), and the same processing is performed for two nodes. The program is executed by the computer 112. Therefore, according to the present embodiment, it is possible to realize server system 100 that can continue processing even if a failure occurs in any of node computers 112.
[0083]
Failure detection
The sequence diagram illustrated in FIG. 4 illustrates an operation example in which both the node computer 112a and the node computer 112b operate normally. On the other hand, when a failure occurs in any one of the nodes, it is considered that the provisional completion notification is not transmitted from the node computer 112 on the side where the failure has occurred. Therefore, the adoption notification is automatically issued to the node computer 112 on which no failure has occurred, and the processing result is used.
[0084]
As described above, according to the present embodiment, the same processing is simultaneously performed by the two node computers 112. Therefore, even if a failure occurs, the processing is continued without passing through any special processing related to takeover. It is possible to do.
[0085]
If the provisional completion notification is not received for a predetermined period or more after the request is allocated, the failure detection unit 208 detects this and stores the failure information on the table 202. With this operation, the administrator of the apparatus can quickly know the node computer 112 in which the failure has occurred. As a result, a highly convenient server system 100 that can quickly replace a failed node computer 112 or the like is realized.
[0086]
Modifications and others
(1) The node computer 112 is a computer connected to the load balancer 110, but its configuration and functions are not different from general computers.
[0087]
(2) In the above-described embodiment, it has been proposed to set two node computers 112 as a pair. However, it is preferable to provide three or more “sets” instead of pairs. Even in this case, the operation principle of completely adopting the processing result of the node computer 112 that has transmitted the temporary completion notification first and invalidating the result of the other node computers 112 is exactly the same.
[0088]
(3) Although the aggregate of the load balancer 110 and the plurality of node computers 112 is called the server system 100 in the present embodiment, it may be called a cluster computer or a blade computer.
[0089]
(4) The load balancer 110 and the plurality of node computers 112 may be connected by any means as long as they are communicably connected. In addition to a wired connection such as Ethernet (registered trademark), the connection may be performed by wireless means such as Bluetooth (trademark).
[0090]
(5) In this embodiment, since the request is transmitted to the two node computers 112 at the same time, there may be a question that the sticky function described in the related art may not operate well. Absent. This is because the sticky function basically assigns requests continuously to one node computer. However, in the present embodiment, the request is executed simultaneously by two node computers. Therefore, by continuously assigning the request to the two pairs, the conventional sticky function can be sufficiently executed in the present embodiment. It is possible. The sticky function is realized by each node computer 112 remembering the history of requests transmitted to itself. In the present embodiment, the fact that a request has been received from the node computer 112 for which the processing result has not been adopted is stored as a history. Thus, for example, if the "first request" was processed by the node computer 112a, a record of the request also remains in the node computer 112b (e.g., a record of who purchased what in the e-commerce transaction). . Therefore, even if the "later request" is processed by the node computer 112b, the sticky function can be satisfactorily processed.
[0091]
【The invention's effect】
As described above, according to the present invention, the load distribution device allocates one request to two or more node computers. Processing can be continued on the computer. As a result, a server system with excellent fault tolerance can be provided.
[0092]
Further, according to the present invention, as described above, it is possible to provide a load distribution device capable of allocating one request to two or more node computers. Further, according to the present invention, it is possible to provide a node computer which is connected to such a load distribution device and is used to construct a server system having excellent fault tolerance.
[Brief description of the drawings]
FIG. 1 is a schematic diagram illustrating a state where a load balancer and a node computer according to an embodiment are used.
FIG. 2 is a functional configuration block diagram of a load balancer according to the present embodiment.
FIG. 3 is a functional configuration block diagram of a node computer according to the present embodiment.
FIG. 4 is a sequence diagram illustrating an operation of the exemplary embodiment.
FIG. 5 is a schematic diagram illustrating a state in which a conventional load balancer or node computer is used.
[Explanation of symbols]
10 load balancer
12a, 12b, 12c, 12d Node Computer
14 Internet
16a, 16b, 16c client
20 server system
100 server system
110 load balancer
112 node computer
200 allocation means
202 table
204 Request transmission means
206 Recruitment notification means
208 Failure detection means
300 processing means
302 Provisional completion notification means
304 Result transmission means
306 Result invalidation means

Claims (16)

複数のノードコンピュータと通信可能に接続され、外部からの要求をいずれかの前記ノードコンピュータに割り当てる負荷分散装置において、
前記要求を、前記複数のノードコンピュータ中の、いずれか2個以上のノードコンピュータに割り当てる割り当て手段と、
前記割り当て手段が、前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信手段と、
前記割り当て手段が前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知手段と、
を含むことを特徴とする負荷分散装置。
In a load distribution device communicably connected to a plurality of node computers and assigning an external request to any of the node computers,
Assigning means for assigning the request to any two or more node computers in the plurality of node computers;
Request transmitting means for transmitting the request to the node computer to which the allocation means has allocated the request,
When the allocating unit receives a provisional completion notification from one of the two or more node computers to which the request has been allocated, the notification that the processing result for the request has been obtained, An adoption notifying means for notifying whether or not to adopt the result;
A load balancing device comprising:
請求項1記載の負荷分散装置において、
前記採用通知手段は、
最も早く前記仮完了通知を送信してきた前記ノードコンピュータに対して、その処理の結果を採用する旨の採用通知を送信することを特徴とする負荷分散装置。
The load distribution device according to claim 1,
The adoption notifying means,
A load distribution apparatus for transmitting, to the node computer that has transmitted the provisional completion notification the earliest, an adoption notification indicating that the result of the processing is to be employed.
請求項2記載の負荷分散装置において、
前記採用通知手段は、
前記仮完了通知を送信してきた前記ノードコンピュータが、最も早く仮完了通知を送信してきたノードコンピュータ以外のノードコンピュータである場合には、その処理の結果を採用しない旨の非採用通知をそのノードコンピュータに対して送信することを特徴とする負荷分散装置。
The load distribution device according to claim 2,
The adoption notifying means,
If the node computer that has transmitted the provisional completion notification is a node computer other than the node computer that has transmitted the provisional completion notification earliest, a non-adoption notification indicating that the result of the processing is not adopted is transmitted to the node computer. A load balancer for transmitting to a load balancer.
請求項1、2又は3のいずれかの請求項に記載の負荷分散装置において、
前記割り当て送信手段が前記要求を前記前記ノードコンピュータに送信してから、所定期間内に前記ノードコンピュータから仮完了通知を受信できなかった場合に、仮完了通知を受信できなかった前記ノードコンピュータに障害が発生したと判断する障害検出手段、
を含むことを特徴とする負荷分散装置。
In the load distribution device according to any one of claims 1, 2, and 3,
If the provisional completion notification cannot be received from the node computer within a predetermined period after the allocation transmitting unit transmits the request to the node computer, the failure of the node computer that failed to receive the provisional completion notification Fault detection means for determining that a fault has occurred,
A load balancing device comprising:
負荷分散装置と通信可能に接続されるノードコンピュータにおいて、
前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理手段と、
前記処理手段による処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知手段と、
を含むことを特徴とするノードコンピュータ。
In a node computer communicably connected to the load balancer,
When a request is transmitted from the load distribution device, processing means for executing the processing of the request,
When a result of the processing by the processing unit is obtained, a provisional completion notification unit that transmits a provisional completion notification to the load distribution device;
A node computer comprising:
請求項5記載のノードコンピュータにおいて、
前記負荷分散装置から、前記処理の結果を採用する旨の採用通知が送信されてきた場合に、前記処理の結果を最終的な結果として外部に送信する結果送信手段、
を含むことを特徴とするノードコンピュータ。
The node computer according to claim 5,
From the load distribution device, when an adoption notification indicating that the result of the processing is employed is transmitted, a result transmitting unit that transmits the result of the processing to the outside as a final result,
A node computer comprising:
請求項6記載のノードコンピュータにおいて、
前記負荷分散装置から、前記処理の結果を採用しない旨の非採用通知が送信されてきた場合に、前記処理の結果を無効にする結果無効手段、
を含むことを特徴とするノードコンピュータ。
The node computer according to claim 6,
When a non-adoption notice indicating that the result of the processing is not adopted is transmitted from the load distribution device, a result invalidating unit for invalidating the result of the processing,
A node computer comprising:
複数のノードコンピュータと、
前記複数のノードコンピュータと通信可能に接続され、外部からの要求をいずれかの前記ノードコンピュータに割り当てる負荷分散装置と、
を備えたサーバシステムにおいて、
前記ノードコンピュータは、
前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理手段と、
前記処理手段による処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知手段と、
を含み、
前記負荷分散装置は、
外部からの要求を、前記複数のノードコンピュータ中の、いずれか2個以上のノードコンピュータに割り当てる割り当て手段と、
前記割り当て手段が、前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信手段と、
前記割り当て手段が前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知手段と、
を含むことを特徴とするサーバシステム。
Multiple node computers,
A load balancing device communicably connected to the plurality of node computers and allocating an external request to any of the node computers;
In a server system with
The node computer,
When a request is transmitted from the load distribution device, processing means for executing the processing of the request,
When a result of the processing by the processing unit is obtained, a provisional completion notification unit that transmits a provisional completion notification to the load distribution device;
Including
The load distribution device,
Assigning means for assigning an external request to any two or more node computers in the plurality of node computers;
Request transmitting means for transmitting the request to the node computer to which the allocation means has allocated the request,
When the allocating unit receives a provisional completion notification from one of the two or more node computers to which the request has been allocated, the notification that the processing result for the request has been obtained, An adoption notifying means for notifying whether or not to adopt the result;
A server system comprising:
外部からの要求を、複数のノードコンピュータ中のいずれかのノードコンピュータに割り当てる負荷分散装置としてコンピュータを動作させるプログラムにおいて、前記コンピュータに、
外部からの要求を、前記複数のノードコンピュータ中の、いずれか2個以上の前記ノードコンピュータに割り当てる割り当て手順と、
前記割り当て手順が、前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信手順と、
前記割り当て手順が前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知手順と、
をコンピュータに実行させることを特徴とするプログラム。
In a program that causes a computer to operate as a load distribution device that allocates a request from the outside to any one of a plurality of node computers,
Assigning an external request to any two or more of the node computers in the plurality of node computers;
A request transmitting step of transmitting the request to the node computer to which the request has been allocated,
When the allocation procedure receives a provisional completion notification from one of the two or more node computers to which the request has been allocated, the notification indicating that a result of the processing for the request has been obtained, An employment notification procedure for notifying whether or not to adopt the result;
Which causes a computer to execute the program.
請求項9記載のプログラムにおいて、
前記採用通知手順は、
最も早く前記仮完了通知を送信してきた前記ノードコンピュータに対して、その処理の結果を採用する旨の採用通知を送信することを特徴とするプログラム。
The program according to claim 9,
The recruitment notification procedure includes:
A non-transitory computer-readable storage medium storing a program for transmitting, to the node computer that has transmitted the provisional completion notification at the earliest time, a recruitment notification for adopting a result of the processing.
請求項10記載のプログラムにおいて、
前記採用通知手順は、
前記仮完了通知を送信してきた前記ノードコンピュータが、最も早く仮完了通知を送信してきたノードコンピュータ以外のノードコンピュータである場合には、その処理の結果を採用しない旨の非採用通知をそのノードコンピュータに対して送信することを特徴とするプログラム。
The program according to claim 10,
The recruitment notification procedure includes:
If the node computer that has transmitted the provisional completion notification is a node computer other than the node computer that has transmitted the provisional completion notification earliest, a non-adoption notification indicating that the result of the processing is not adopted is transmitted to the node computer. A program characterized by being transmitted to.
請求項9、10又は11のいずれかの請求項に記載のプログラムにおいて、
前記割り当て送信手順が前記要求を前記前記ノードコンピュータに送信してから、所定期間内に前記ノードコンピュータから仮完了通知を受信できなかった場合に、仮完了通知を受信できなかった前記ノードコンピュータに障害が発生したと判断する障害検出手順、
をコンピュータに実行させることを特徴とするプログラム。
In the program according to any one of claims 9, 10 and 11,
If the tentative completion notification cannot be received from the node computer within a predetermined period after the assignment transmission procedure transmits the request to the node computer, the node computer that has failed to receive the tentative completion notification will fail. Failure detection procedure to determine that a failure has occurred,
Which causes a computer to execute the program.
コンピュータを、負荷分散装置に接続されるノードコンピュータとして動作させるプログラムにおいて、前記コンピュータに、
前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理手順と、
前記処理手順による処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知手順と、
を実行させることを特徴とするプログラム。
In a program that causes a computer to operate as a node computer connected to a load distribution device, the computer
When a request is transmitted from the load balancing device, a processing procedure for executing the processing of the request,
A temporary completion notification step of transmitting a temporary completion notification to the load balancing apparatus when a result of the processing according to the processing procedure is obtained;
A program characterized by executing
請求項13記載のプログラムにおいて、前記コンピュータに、
前記負荷分散装置から、前記処理の結果を採用する旨の採用通知が送信されてきた場合に、前記処理の結果を最終的な結果として外部に送信する結果送信手順、
を実行させることを特徴とするプログラム。
14. The program according to claim 13, wherein:
From the load distribution apparatus, when an adoption notification indicating that the result of the processing is employed is transmitted, a result transmission procedure of transmitting the result of the processing to the outside as a final result,
A program characterized by executing
請求項14記載のコンピュータにおいて、前記コンピュータに、
前記負荷分散装置から、前記処理の結果を採用しない旨の非採用通知が送信されてきた場合に、前記処理の結果を無効にする結果無効手順、
を実行させることを特徴とするプログラム。
The computer of claim 14, wherein:
When a non-adoption notice indicating that the result of the processing is not adopted is transmitted from the load balancing apparatus, a result invalidation procedure for invalidating the result of the processing,
A program characterized by executing
負荷分散装置と、前記負荷分散装置に通信可能に接続された複数のノードコンピュータとを含むサーバシステム上で、外部からの要求をいずれかのノードコンピュータに割り当てる負荷分散方法において、
前記負荷分散装置が、外部からの要求を、前記複数のノードコンピュータ中の、いずれか2個以上のノードコンピュータに割り当てる割り当てステップと、
前記負荷分散装置が、前記割り当てステップにおいて前記要求を割り当てたノードコンピュータに、前記要求を送信する要求送信ステップと、
前記ノードコンピュータが、前記負荷分散装置から要求が送信されてきた場合に、その要求の処理を実行する処理ステップと、
前記ノードコンピュータが、前記処理ステップによる処理の結果が得られた場合に、仮完了通知を前記負荷分散装置に送信する仮完了通知ステップと、
前記割り当てステップにおいて前記要求を割り当てた前記2個以上のノードコンピュータのいずれかから、前記要求に対する処理の結果が得られたことを通知する仮完了通知を受信した場合に、そのノードコンピュータの処理の結果を採用するか否かを通知する採用通知ステップと、
を含むことを特徴とする負荷分散方法。
On a server system including a load distribution device and a plurality of node computers communicably connected to the load distribution device, a load distribution method of allocating an external request to any one of the node computers,
An allocation step in which the load balancer allocates an external request to any two or more node computers in the plurality of node computers;
The load distribution device, a request transmission step of transmitting the request to the node computer that has allocated the request in the allocation step,
When the node computer receives a request from the load distribution device, a processing step of executing the request,
The node computer, when a result of the processing in the processing step is obtained, a temporary completion notification step of transmitting a temporary completion notification to the load balancing device,
When receiving, from one of the two or more node computers to which the request has been allocated in the allocation step, a provisional completion notification notifying that a result of the processing for the request has been obtained, the processing of the node computer is performed. An employment notification step of notifying whether to adopt the result,
A load distribution method comprising:
JP2002185216A 2002-06-25 2002-06-25 Load distribution device and node computer connected to the same Pending JP2004030204A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002185216A JP2004030204A (en) 2002-06-25 2002-06-25 Load distribution device and node computer connected to the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002185216A JP2004030204A (en) 2002-06-25 2002-06-25 Load distribution device and node computer connected to the same

Publications (1)

Publication Number Publication Date
JP2004030204A true JP2004030204A (en) 2004-01-29

Family

ID=31180932

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002185216A Pending JP2004030204A (en) 2002-06-25 2002-06-25 Load distribution device and node computer connected to the same

Country Status (1)

Country Link
JP (1) JP2004030204A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107019A (en) * 2004-10-04 2006-04-20 Hitachi Ltd Disk array device
JP2007156569A (en) * 2005-11-30 2007-06-21 Fujitsu Ltd Cluster system, load balancer, method of transferring node, and node transfer program
JP2007257588A (en) * 2006-03-27 2007-10-04 Hitachi Ltd Verification system
JP2008077295A (en) * 2006-09-20 2008-04-03 Fujitsu Ltd Resource node determination program, resource node control program, recording medium, resource node determination device, resource node, resource node determination method and resource node control method
JP2008109588A (en) * 2006-10-27 2008-05-08 Toshiba Mitsubishi-Electric Industrial System Corp Distributed ip-pbx system
JP2008226127A (en) * 2007-03-15 2008-09-25 Toshiba Corp Device and method for enhancing reliability of message in distributed processing
JP2010044552A (en) * 2008-08-12 2010-02-25 Hitachi Ltd Request processing method and computer system
JP2010511964A (en) * 2006-12-05 2010-04-15 クゥアルコム・インコーポレイテッド Apparatus and method for zero single point of failure load balancer (AZEROSINGLEPOINTOFFAILULOADLOADBALANCER)
US7945041B2 (en) 2005-05-27 2011-05-17 International Business Machines Corporation Method, system and program product for managing a customer request
JP2012194615A (en) * 2011-03-15 2012-10-11 Mitsubishi Electric Corp Inter-process synchronization method
WO2012160690A1 (en) * 2011-05-26 2012-11-29 株式会社日立製作所 Multiplexing system, method and program
JP2014530434A (en) * 2011-09-27 2014-11-17 オラクル・インターナショナル・コーポレイション System and method for active-passive routing and control of traffic in a traffic director environment

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006107019A (en) * 2004-10-04 2006-04-20 Hitachi Ltd Disk array device
US7945041B2 (en) 2005-05-27 2011-05-17 International Business Machines Corporation Method, system and program product for managing a customer request
JP2007156569A (en) * 2005-11-30 2007-06-21 Fujitsu Ltd Cluster system, load balancer, method of transferring node, and node transfer program
JP4616159B2 (en) * 2005-11-30 2011-01-19 富士通株式会社 Cluster system, load balancer, node transfer method, and node transfer program
JP2007257588A (en) * 2006-03-27 2007-10-04 Hitachi Ltd Verification system
JP4495688B2 (en) * 2006-03-27 2010-07-07 株式会社日立製作所 Verification system
JP2008077295A (en) * 2006-09-20 2008-04-03 Fujitsu Ltd Resource node determination program, resource node control program, recording medium, resource node determination device, resource node, resource node determination method and resource node control method
US8488452B2 (en) 2006-09-20 2013-07-16 Fujitsu Limited Method and apparatus for determining resource node, method of controlling resource node, resource node, and computer product
JP2008109588A (en) * 2006-10-27 2008-05-08 Toshiba Mitsubishi-Electric Industrial System Corp Distributed ip-pbx system
JP2010511964A (en) * 2006-12-05 2010-04-15 クゥアルコム・インコーポレイテッド Apparatus and method for zero single point of failure load balancer (AZEROSINGLEPOINTOFFAILULOADLOADBALANCER)
JP2008226127A (en) * 2007-03-15 2008-09-25 Toshiba Corp Device and method for enhancing reliability of message in distributed processing
US7937437B2 (en) 2008-08-12 2011-05-03 Hitachi, Ltd. Method and apparatus for processing a request using proxy servers
JP4722973B2 (en) * 2008-08-12 2011-07-13 株式会社日立製作所 Request processing method and computer system
JP2010044552A (en) * 2008-08-12 2010-02-25 Hitachi Ltd Request processing method and computer system
JP2012194615A (en) * 2011-03-15 2012-10-11 Mitsubishi Electric Corp Inter-process synchronization method
WO2012160690A1 (en) * 2011-05-26 2012-11-29 株式会社日立製作所 Multiplexing system, method and program
JP5703375B2 (en) * 2011-05-26 2015-04-15 株式会社日立製作所 Multiplexing system, method, and program
JP2014530434A (en) * 2011-09-27 2014-11-17 オラクル・インターナショナル・コーポレイション System and method for active-passive routing and control of traffic in a traffic director environment
US9477528B2 (en) 2011-09-27 2016-10-25 Oracle International Corporation System and method for providing a rest-based management service in a traffic director environment
US9652293B2 (en) 2011-09-27 2017-05-16 Oracle International Corporation System and method for dynamic cache data decompression in a traffic director environment
US9733983B2 (en) 2011-09-27 2017-08-15 Oracle International Corporation System and method for surge protection and rate acceleration in a traffic director environment

Similar Documents

Publication Publication Date Title
US10348577B2 (en) Discovering and monitoring server clusters
US11570255B2 (en) SMB2 scaleout
JP6073246B2 (en) Large-scale storage system
EP3518110B1 (en) Designation of a standby node
US7181524B1 (en) Method and apparatus for balancing a load among a plurality of servers in a computer system
US20070220302A1 (en) Session failover management in a high-availability server cluster environment
US9141449B2 (en) Managing remote procedure calls when a server is unavailable
US7461102B2 (en) Method for performing scheduled backups of a backup node associated with a plurality of agent nodes
US20090006531A1 (en) Client request based load balancing
US10771318B1 (en) High availability on a distributed networking platform
JP6243528B2 (en) Distribution of creator systems among lease agent systems
JP6388290B2 (en) Method and system for handling lock server failures in distributed systems
JP2004030204A (en) Load distribution device and node computer connected to the same
US20180063236A1 (en) Producer system registration
US11539617B2 (en) Peer-to-peer application layer distributed mesh routing
US9780993B2 (en) Producer computing system leasing on behalf of consumer computing system
US8230086B2 (en) Hidden group membership in clustered computer system