[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP4981952B2 - 分散コンピューティングシステム - Google Patents

分散コンピューティングシステム Download PDF

Info

Publication number
JP4981952B2
JP4981952B2 JP2010127357A JP2010127357A JP4981952B2 JP 4981952 B2 JP4981952 B2 JP 4981952B2 JP 2010127357 A JP2010127357 A JP 2010127357A JP 2010127357 A JP2010127357 A JP 2010127357A JP 4981952 B2 JP4981952 B2 JP 4981952B2
Authority
JP
Japan
Prior art keywords
information processing
server
reader
leader
candidate
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
JP2010127357A
Other languages
English (en)
Other versions
JP2011253391A (ja
Inventor
典孝 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tritek Co Ltd
Original Assignee
Tritek Co Ltd
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 Tritek Co Ltd filed Critical Tritek Co Ltd
Priority to JP2010127357A priority Critical patent/JP4981952B2/ja
Priority to PCT/JP2011/058548 priority patent/WO2011152117A1/ja
Publication of JP2011253391A publication Critical patent/JP2011253391A/ja
Application granted granted Critical
Publication of JP4981952B2 publication Critical patent/JP4981952B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は分散コンピューティングシステムにおけるリーダの選定を行う技術に関する。
近年では、通信ネットワークの発達により、クラウドコンピューティングに代表される分散コンピューティングシステムが発達している。この分散コンピューティングシステムでは、複数のサーバが、同時並行的にそれぞれの処理を実行し、ネットワークを介して互いに通信しあうことにより、その処理を行っている。
このような分散コンピューティングシステムにおいては、当該システムを構成するサーバに障害が発生した場合であっても、提供するサービスを継続することが求められているため、現行系サーバと待機系サーバ群を備える冗長構成が採用されていることが一般的である。
分散コンピューティングシステムにおいて、現行系サーバに障害が発生した場合において、待機系サーバ群の中から新たにリーダを選定する必要が生じる。従来のリーダの選定方法として、プロセッサグループのプロセッサの加入順に順序づけられたネームサーバに記憶されているメンバシップ・リストから、新しいリーダを選定する方法が存在している(特許文献1)。
特開平10−40226号公報
しかし、従来の方法では、ネームサーバに記憶されているメンバシップ・リストから新しいリーダを選択するため、ネームサーバが故障等で使用不能となった場合にリーダの選定ができなくなるとともに、自律的にリーダの選定ができないという問題点が存在していた。
本発明は、上記の問題点を解決するためになされたものであり、ネームサーバ等の特定のサーバに依存することなく、迅速かつ自律的にリーダの選定を行うことが可能となる分散コンピューティングシステムを提供することを目的とする。
上記課題を解決するために、本発明の分散コンピューティングシステム(以下、「本システム」という。)は、複数の情報処理装置が、Paxosによって一部がリーダとなり他がエージェントとなって合意を形成し、クライアントからの指示に従い、所定のデータを利用してタスクを行う分散コンピューティングシステムにおいて、自身以外の前記各情報処理装置に対して、送信時間データと、自身が前記分散コンピューティングシステムに加入した加入時刻とを含む送信データを、ネットワークを介して、所望の時間間隔で送信するための通信データ送信装置と、自身以外の前記各情報処理装置から、前記ネットワークを介して所望の時間間隔で送信された、前記送信データと同一構造の被送信データを受信する通信データ受信装置と、前記リーダ選定が必要であることを検出するリーダ選定必要性検出装置と、前記リーダ選定が必要である場合に、自身と通信が維持されている自身以外の前記各情報処理装置の数である接続維持情報処理装置数を計数し、前記接続維持情報処理装置数が、前記分散コンピューティングシステムの稼働開始時に加入している前記情報処理装置の初期総数の過半数以上か否かを判別するための情報処理装置数判別装置と、前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置と、前記自身以外の各情報処理装置から受信した前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記情報処理装置の初期総数の過半数以上の情報処理装置によってリーダ候補情報処理装置と認識されている同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置と、を備え、前記リーダ認識装置によって認識された前記情報処理装置が当該システムにおける前記リーダとして選定されることを特徴としている。
また、前記分散コンピューティングシステムにおいて、前記リーダ候補選択装置は、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に動作すること、すなわち、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の前記リーダ候補情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置を備える構成とすることもできる。
本発明によれば、リーダサーバ選定必要性検出装置により、リーダ選定が必要になったことを検出した場合において、情報処理装置数判別装置により、自身と通信が維持されている自身以外の各情報処理装置の数(接続維持情報処理装置数)を計数し、当該接続維持情報処理装置数が、情報処理装置の初期総数の過半数以上か否かを判別している。そして、リーダ候補選択装置により、当該条件を満たした場合に、自身と他の情報処理装置が認識している情報処理装置のうち、本システムに加入した時刻が最も古い(加入期間が最も長い)情報処理装置をリーダ候補情報処理装置として、他の情報処理装置として送信する。さらに、当該リーダ候補情報処理装置のデータを受け取った他の情報処理装置は、リーダ認識装置により、初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在している場合に、当該情報処理装置を新たなリーダとして認識することになる。
本発明では、上記一連の動作により、第三者等の指示を受けることなく自律的にリーダの選定を行うことができる。
また、リーダ候補選択装置は、加入した時刻が最も古い情報処理装置を選択するため、後から本システムに加入したサーバによってリーダ交替が行われることがないため、頻繁なリーダ交替を抑止することができる。
さらに、本発明では自身と通信が維持されている自身以外の各情報処理装置の数(接続維持情報処理装置数)を算出し、当該接続維持情報処理装置数が、情報処理装置の初期総数の過半数以上か否かの条件を満たすこと(情報処理装置数判別装置による条件、以下「第1条件」という。)、及び、初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在していること(リーダ認識装置による条件、以下「第2条件」という。)を新たなリーダの選定の条件としている。
この第1条件により、初期総数の過半数以上の情報処理装置の存在をリーダ候補の選択を開始する条件にしていることから、過半数未満の情報処理装置によるリーダ選定の攪乱を防止することができる。また、第2条件により、誤ったリーダ候補の選択を防止し、確実にリーダの選定をすることができる。
また、前記分散コンピューティングシステムにおいて、前記通信データ送信装置は、一定時間間隔で、前記各情報処理装置との間で、前記送信データ送信するものとすれば好適である。
本発明によれば、通信データ送信装置は、一定時間間隔で各情報処理装置との間で送信データを送信し、常時、各情報処理装置との通信状態を確認しているため、リーダサーバの再選定が必要となる場合を迅速に検知し、その後の処理を行うことができる。
本発明によれば、特定のサーバに依存することなく、自律的にリーダ選定を行うことが可能となる分散コンピューティングシステムを提供することができる。
本発明の分散コンピューティングシステムを示す概要図である。 本発明の分散コンピューティングシステムの一部(リーダサーバ及び2台のエージェントサーバ)を示す構成図である。 本発明の分散コンピューティングシステムの構成要素であるサーバの一部を示す構成図である。 (a)HB通信データの概念図である。 (b)リーダサーバ候補データの概念図である。 (c)リーダサーバ候補不在データの概念図である。 本発明の分散コンピューティングシステムの動作を示すフロー図である。 本実施形態における本発明の分散コンピューティングシステムのリーダサーバ選定必要時の状態を示す説明図である。
本発明を実施するための一形態(以下、「実施形態」という。)について、図面を参照して詳細に説明する。
本発明の分散コンピューティングシステムSは、複数台のサーバ(情報処理装置)がインターネット等のネットワークN及びLAN(符号L)を介して接続されていることにより構成されている。以下、説明の便宜上、1台のリーダサーバE(旧リーダサーバ)と、4台のエージェントサーバA〜D(以下、5台のサーバを総称して「各サーバ」という場合がある。)を例として説明する。
なお、上記各サーバA〜Eは、名称を変えて説明しているが、その構成は同様であり、それぞれがクライアントKの要求に応じて他のサーバの役割を担うことができる装置となっている。そのため、同一の構成要素を説明するに際し、当該構成要素を総称する場合には同一の符号を付すことを原則とするが、サーバの違いによる構成要素の違いを示す必要がある際には当該符号の末尾にさらに、A〜Eを付して区別するものとする。
〔分散コンピューティングシステムSの全体構成〕
図1及び図2に示すように、本実施形態の分散コンピューティングシステム(以下、「本システム」という。)Sは、5台のサーバA〜Eから構成されている。各サーバA〜Eは、互いに通信可能に接続され、それらのIPアドレスを把握するクライアントKにネットワークNを介して接続されている。各サーバA〜Eは、同一のデータベースDA〜DEに格納されているデータに対して、クライアントKからの指示を受け、操作実行手段(図示せず)を介して、演算処理等の操作コマンドを実行することにより所望のタスクを行うことができるようになっている。
上記操作コマンドを実行するためのアプリケーションプログラム及びタスクを分散処理するための分散コンピューティング用のプログラムは、ここでは各サーバA〜Eのそれぞれにインストールされている。
各サーバA〜Eは、それぞれ汎用コンピュータであり、CPU(図示せず)を備えているが、説明の便宜上は、図2に示すように、そのCPU、記憶装置等のプロセッサ能力、ストレージ能力を合意形成部4A〜4Eと実行部5A〜5E(サーバA,C,Eのみを図示)に分けることができるように構成されている。
合意形成部4A〜4Eは、セルの内部で既知であるPaxosにより合意を形成するためのPaxos装置Pを構成している。このPaxos装置Pは、セルを構成する各サーバがリーダサーバE又はエージェントサーバA〜Dとなって、本システムSがある操作コマンドを実行する前に、過半数以上(定足数以上)のサーバがその操作コマンドを実行することに対して合意するか否かをリーダサーバEが諮り、合意が形成されれば実行を開始するコンセンサスアルゴリズムである。このようなアルゴリズムにより、サーバ間の同期を簡易に図ることができ、高可用性を実現することができる装置となっている。
Paxos装置Pにおいては、上記分散コンピューティング用プログラムに従って、過半数以上のサーバにより合意形成されたタスクを実行することができるようになっている(この点に関しては詳述せず)。また、上記分散コンピューティング用プログラムに従って、各合意形成部4A〜4E同士が所定の帯域内の通信方式(例えばUDP)によりメタデータを値渡しすることができるようになっている。
操作コマンドは、上記Paxsos装置Pにより決定され、実行部5A〜5Eは所定の操作コマンドを上記アプリケーションプログラムに適用することにより、本件タスクを実行することができるようになっている。
〔本システムSの前提〕
上記のように、本システムを構成するPaxos装置Pにおける本件タスクの実行には、リーダサーバEが非常に重要な役割を果たしている。
本件タスクの実行時において、クライアントKは、各サーバA〜Eに対し、いずれのサーバがリーダサーバであるかを問い合わせることができるようになっている。クライアントKは、各サーバA〜EのIPアドレスを把握しているため、それらのいずれかのサーバから、そのサーバがリーダサーバであるか否かを知得することができるようになっている。仮に、何らかの理由(リーダサーバの故障等)でリーダが不在になった場合(初期状態において、未だリーダが選出されたことがない場合も含む)には、早急に、新たなリーダサーバを選定する必要があるが、本システムSは、そのリーダサーバの選定を実現するためのシステムである。
図3に示すように、本システムSでは、リーダサーバを選定するためのシステムを構成するために、通信データ制御装置10、通信装置30、リーダサーバ選定装置60等を備えている。
(通信データ制御装置10)
通信データ制御装置10は、通信装置30であるデータ送信装置40及びデータ受信装置50を介して、各種データの送受信を制御するための手段であり、HB通信制御装置20(但し、HBは「ハートビート」の略である。)を備えている。このHB通信制御装置20は、各種の通信データのうち、自身以外の総てのサーバとの双方向通信を維持するためのハートビート通信を制御する装置であり、さらに、HB通信データ作成装置21、HB通信状態確認装置22及びHB通信データ記憶装置23を備えている。
HB通信データ作成装置21は、ハートビート通信を行うためのHB通信データ(特許請求の範囲の送信データ及び被送信データに相当する)を作成するための装置である。
「HB通信データ」は、予め割り当てられている送信元サーバの装置番号及び送信先サーバの装置番号、送信元サーバの計時機能に基づく送信時刻タイムスタンプ(送信時間データ)(以下、「送信時刻タイムスタンプ」という。)、送信先サーバが、後記HB通信データ記憶装置23に記憶している、HB通信データの送信元から一時点前に送られてきた送信時刻タイムスタンプ(以下、「記憶済送信時刻タイムスタンプ」という。)(但し、初回の通信時には存在しないため「0」)(詳細は後記)及び自身が本システムSに加入した日時及び時刻のタイムスタンプ(以下、「加入時刻タイムスタンプ」という。)のデータを少なくとも含んでいる(図4(a))。
なお、特許請求の範囲では、送信データと被送信データを区別している。しかし、各サーバA〜E、同一の構成を有する装置であり、各々のサーバA〜Eは相互に通信を行っていることから各HB通信データの構造は同一であり、説明の便宜上、区別して用いているにすぎないものである。
HB通信データ送信装置41(通信データ送信装置)は、データ送信装置40の一部を形成しており、HB通信データ作成装置21により作成されたHB通信データを、自身以外の各サーバに送信するための装置である。
例えば、本実施形態では、リーダサーバEは、所定時間間隔(Δt)で、自身以外の各エージェントサーバA〜DにHB通信データを送信し続けるようになっている。また、他のエージェントサーバA〜Dも、リーダサーバEと同様に、自身以外の各サーバA〜EにHB通信データを送信し続けるようになっている。
HB通信データ受信装置51(通信データ受信装置)は、データ受信装置50の一部を形成しており、自身以外のサーバのHB通信データ送信装置41から送信されたHB通信データを受信するために、常時動作している装置である。
HB通信データ記憶装置23は、送信元の各サーバA〜Eから送信されたHB通信データを、HB通信データ受信装置51を介して受信し、一時的に、かつ、読出し自在に記憶するための装置である。
各サーバA〜Eでは、HB通信データの送信元サーバの送信時刻タイムスタンプを記憶済送信時刻タイムスタンプとして記憶することができるようになっている。そして、この記憶済送信時刻タイムスタンプは、上記送信元サーバを送信先として指定してHB通信データを作成するときに、読み出すことができるようになっている。
また、後記HB通信状態確認装置22により、各サーバとの間で通信状態が維持されているか否かが常に監視されており、通信状態が維持されている場合には、HB通信データ記憶装置23は、その送信元の装置番号とその加入時刻タイムスタンプを関連付けて保存することができるようになっている。
HB通信状態確認装置22は、HB通信データ送信装置41とHB通信データ受信装置51と協働して、自身と自身以外の各サーバとの間に双方向の通信が確立されているか否かを判断するための装置である。
上記の通り、例えば、リーダサーバEのHB通信データ送信装置41Eは、所定時間間隔(Δt)で、自身以外の各エージェントサーバA〜DにHB通信データを送信している。送信先のエージェントサーバA〜Dは、障害等が生じて受信不可能な状態になっていない限りは、当該HB通信データを受信し続けているとともに、自らも、送信元のリーダサーバEに対して、同一の時間間隔(Δt)でHB通信データを送信し続けている(但し、送信開始時刻は一致していなくてもよい)。
このような状況の中、HB通信状態確認装置22は、以下の判断を行うことにより、各サーバ間において、HB通信が確立されているか否かを判断できるようになっている。
すなわち、各サーバは、同一の時間間隔(Δt)で通信を行っているため、予め定められている各サーバ間の通信時間(以下、「サーバ間通信時間」という。)をΔdとすると、通信が確立されている場合には、リーダサーバEがHB通信データの送信を行った後、2Δd乃至Δt+2Δdの時間の間に、エージェントサーバA〜DからHB通信データが送信されることになる。
ところで、エージェントサーバA〜DのHB通信データには、当該HB通信データの送信先であるリーダサーバEの一時点前の送信時刻である記憶済送信時刻タイムスタンプが記録されており、当該記憶済送信時刻タイムスタンプと、HB通信データの受信時刻の差を便宜上、HB応答時間と定義すると、当該HB応答時間が、Δt+2Δd+所定余裕時間(この値を、「HB通信状態判別基準時間値」という。)以下であるか否かにより、HB通信が確立されているか否かを判断することができる。したがって、本装置では、HB応答時間がHB通信状態判別基準時間値以下であれば、各サーバ間での双方向通信が確保されていると判断し、それより大きければ双方向通信が遮断されていると判断することができるようになっている。
なお、記憶済送信時刻タイムスタンプと、HB通信データの受信時刻は、同一サーバの計時機能により記録されているため、両時刻の差をとることにより、容易にHB応答時間を算出できるようになっている。
(通信装置30)
通信装置30は、データ送信装置40及びデータ受信装置50を備え、通信ネットワークNを介して、HB通信データ、リーダサーバ候補データ等の各種データの通信を行うための装置である。
(リーダサーバ選定装置60)
リーダサーバ選定装置60は、新たなリーダサーバ(以下、「新リーダサーバ」という。)の選定が必要となった場合に、自律的に新リーダサーバの選定を行うための装置であり、リーダサーバ選定必要性検出装置61、サーバ接続状態判別装置62(接続維持情報処理装置数判別装置)、リーダサーバ候補選択装置63及びリーダサーバ認識装置64を備えている。
リーダサーバ選定必要性検出装置61は、本システムSが動作を開始した初期状態において、未だリーダサーバEが存在していない状態であることを認識すること、及び、各サーバ間のHB通信データを常時監視し、それまで自身がリーダと認識していたリーダサーバEからのHB通信データの送信が途絶えたこと、通信障害で隔離されていた旧リーダサーバが当該通信障害の復旧により本システムSに復帰したこと等を認識することにより、新リーダサーバの選定が必要であると判断し、そのための処理を開始するための装置である。
本リーダサーバ選定必要性検出装置61では、初期状態、以前のリーダサーバの回復状態、及び、HB通信状態確認装置22において、これまで認識していたリーダサーバEにおけるHB応答時間が、HB通信状態判別基準時間値を超えた場合には、リーダサーバEからのHB通信が遮断されたと判断し、その場合に、接続サーバ状態判別装置62に対して、各サーバA〜D間の通信状態の確認を命じることができるようになっている。
サーバ接続状態判別装置62は、HB通信状態確認装置22により通信状態が維持されていることの確認がなされているサーバ数(以下、「通信維持サーバ数」という。)を、HB通信記憶装置23から読み出して、カウント(計数)するとともに、当該通信維持サーバ数が、本システムSの稼働開始時点で、本システムSに加入している総サーバ数(以下、「初期総サーバ数」という。)の過半数以上か否かを判別するための装置である。
サーバ接続状態判別装置62では、上記条件を持たす場合には、リーダサーバ候補選択装置63に、リーダサーバ候補の選択をするように命じるとともに、当該条件を満たさなかった場合には、リーダサーバ候補が不在であると判断し、リーダサーバ候補選択装置63に対して、リーダサーバ候補が不在である旨の情報を通知することができるようになっている。
なお、初期総サーバ数は、記憶装置(図示せず)に予め記憶されている。
リーダサーバ候補選択装置63は、サーバ接続状態判別装置62からリーダサーバ候補の選択を命じられた場合に、リーダサーバ候補の選択を行い、データ送信装置40を介して、他のサーバに対して、その情報を送信するための命令を通知するための装置である。
リーダサーバ候補選択装置63では、HB通信データ記憶装置23に記憶されている各サーバA〜E(自己も含む)の加入時刻タイムスタンプのうちで、最も加入時刻が古い(最も本システムSにおける加入時間が長い)サーバ(以下、「最長老サーバ」という。)を選択し、当該最長老サーバをリーダサーバ候補として、その装置(識別)番号データを含むリーダサーバ候補データを作成し、自身以外の各サーバに送信するように、データ送信装置40に命ずることができるように構成されている。
なお、加入時刻が同時刻のサーバが存在する場合には、予め定められた判断基準(例えば、一番最後に判断を行ったサーバを最長老サーバと判断する)に従って、最長老サーバが定められることになる。
一方、サーバ接続状態判別装置62から、リーダサーバ候補が不在である旨の情報が送信された場合には、最長老サーバの装置番号データの代わりに、リーダサーバ不在情報(たとえば、「−1」)が記録されているリーダサーバ候補不在データを作成し、データ送信装置40を介して、自身以外の他のサーバに対して、その情報を送信するための命令を通知することができるように構成されている。
なお、「リーダ候補データ」及び「リーダ候補不在データ」は、送信元サーバの装置番号及び送信先サーバの装置番号、最長老サーバの装置番号又はリーダサーバ不在情報を少なくとも含んでいる(図4(b),(c))。
リーダサーバ認識装置64は、他のエージェントサーバから受信したリーダサーバ候補データに記録されている最長老サーバの装置番号と、自身の認識している最長老サーバの装置番号を調べ、初期総サーバ数の過半数以上のサーバがリーダ候補と認識しているサーバが存在している場合には、当該サーバを新たなリーダサーバ(以下、「新リーダサーバ」という。)と認識するように命令するための装置である。
一方、最長老サーバを調べ、初期総サーバ数の過半数以上のサーバがリーダ候補と認識しているサーバが存在していない場合には、新リーダサーバを認識しないようになっている。
なお、リーダサーバ候補を送信することにより、新リーダサーバの選定に関与した各サーバは、いずれのサーバが新リーダサーバとなったかを認識しており、エージェントサーバは、新リーダサーバからの指令をうけてタスク等を行うことになる。
また、新リーダサーバの選定に関与した各サーバは、クライアントKから新リーダサーバに関する問い合わせがあった場合には、新リーダサーバの装置番号を送信することができるようになっている。
[動作]
続いて、図5を参照して、本システムSの動作について説明する。
なお、本システムSが動作を開始した初期状態においては、リーダサーバ選定必要性検出装置61により、リーダサーバEが存在していない状態であることが検知されることになり、下記とほぼ同様の動作によりリーダサーバEが認識されることになる(S1,S2)ため、以下は、本システムSの動作中におけるリーダ選定に関して説明する。
初期状態では、リーダサーバE及びエージェントサーバA〜Dが、クライアントKからの要求に応じて、所定のアプリケーションに従ってタスクの実行をしている。このとき、各サーバA〜Eの間において、HB通信データの送受信が行われることにより、HB通信が維持されていることが確認されている。
なお、図6における実線は各サーバの通信が維持されていることを示しており、×印は通信が遮断されていることを示している。また、( )は、本システムSへの加入時刻を示すものであり、各エージェントサーバA〜Dの加入時刻は順に1:00、2:00、3:00、4:00と一時間ずつ遅くなっている(月日は同日と仮定し、省略している)。
今、何らかの理由でリーダサーバEが動作を停止し、本システムSから離脱したとする。すると、リーダサーバEとの間のHB通信を監視していたHB通信状態確認装置22において、これまで認識していたリーダサーバEにおけるHB応答時間が、HB通信状態判別基準時間値を超えるため、同サーバEと他のサーバA〜Dの通信が遮断されたと判断される。そのため、各エージェントサーバA〜Dのリーダサーバ選定必要性検出装置61は、旧リーダサーバEが消滅したとして、サーバ接続状態判別装置62に対して、新たなリーダサーバの選定(選択)をする動作を開始させることになる(S3)。
まず、各サーバ接続状態判別装置62は、通信維持サーバ数をHB受信データ記憶装置23から読み出しカウントする(S4)。本実施形態では、各エージェントサーバA〜Dの通信維持サーバ数は総て4台である。
そして、サーバ接続状態判別装置62は、通信維持サーバ数が、初期総サーバ数〔5台〕の過半数〔3台〕以上か否かを判別する(S5)。本実施形態では、各エージェントサーバA〜Dはこの条件を満たすため、各エージェントサーバA〜Dのサーバ接続状態判別装置62は、当該エージェントサーバA〜Dのリーダサーバ候補選択装置63に対して、リーダサーバ候補の選択をするように命じる(S6)。
なお、仮に上記条件を満たすエージェントサーバが存在しなかった場合には、そのサーバ接続状態判別装置62は、当該エージェントサーバのリーダサーバ候補選択装置63に対して、リーダサーバ候補が不在であることを通知する(S7)。
サーバ接続状態判別装置62からリーダサーバ候補の選択を命じられたエージェントサーバA〜Dのリーダサーバ候補選択装置63は、HB通信データ記憶装置23に記憶されている各サーバA〜D(自身も含む)の加入時刻タイムスタンプのうちで、最も加入時刻が古い最長老サーバを選択し、リーダサーバ候補データを作成する(S8)。本実施形態では、各エージェントサーバA〜Dともに、リーダサーバ候補は加入時刻が1:00であるエージェントサーバAとなる。
なお、仮に、サーバ接続状態判別装置62から、リーダサーバ候補が不在である旨の情報が送信された場合には、そのエージェントサーバのリーダサーバ候補選択装置63は、最長老サーバの装置番号データの代わりに、リーダサーバ不在情報(−1)を記録した、リーダサーバ候補不在データを作成する(S9)。
そして上記により作成されたリーダサーバ候補データ又はリーダサーバ候補不在データは、データ送信装置40を介して、自身以外の各サーバに送信される。
各エージェントサーバA〜Dから送信されたリーダサーバ候補データは、データ受信装置40を介して受信される。リーダサーバ認識装置64は、他のエージェントサーバから受信したリーダサーバ候補データに記録されているリーダサーバ候補の最長老サーバの装置番号と、自身の認識している最長老サーバ(他のエージェントサーバに対して送信した最長老サーバと同じ)の装置番号を調べ、初期総サーバ数〔5台〕の過半数〔3台〕以上のエージェントサーバがリーダサーバ候補と認識している、同一のエージェントサーバが存在しているか否かを確認し(S10)、当該条件を満たす場合には、そのエージェントサーバを新たなリーダサーバと認識することになる(S11)。
本実施形態では、総てのエージェントサーバA〜Dにおいて、自己が認識している最長老サーバの装置番号がA、各エージェントサーバA〜D(但し、自身を除く)から送信される最長老サーバの装置番号もAであるため、総てのエージェントサーバA〜Dが、エージェントサーバAを新リーダサーバと認識することになる。
なお、仮に、最長老サーバを調べ、初期総サーバ数〔5台〕の過半数〔3台〕以上のサーバがリーダ候補と認識しているサーバが存在していない場合には、新たなリーダサーバを認識しないことになる(S12)。
そして、新リーダサーバAは、自らが新リーダサーバとして動作するとともに、他のエージェントサーバB〜Dは、その指令に従い、タスクを実行することになる。
また、クライアントKは、各サーバA〜Dに対して、新リーダサーバを問い合わせることにより、いずれかのサーバが新リーダサーバAの装置番号を送信することにより、クライアントKは新リーダサーバを認識することができる。そして、当該新リーダサーバAに対して以降の指示を行うことになる。
なお、通信障害で隔離されていた旧リーダサーバが、当該通信障害の復旧により本システムSに復帰した場合において、当該旧リーダサーバが本システムSにおける最長老サーバである場合には、上記と同様の動作により、自身が新リーダサーバに復帰することになる。
以上、本システムSによれば、上記一連の動作により、第三者等の指示を受けることなく自律的に新たなリーダサーバの選定を行うことができる。特に、特定のサーバに依存していないため、当該特定のサーバに対する故障等を心配することなく、新たなリーダサーバの選定を行うことができる。
また、リーダサーバ候補選択装置63は、本システムSへの加入時刻を基準として、最長老サーバを選択している。したがって、新たなリーダの選択基準が明確であり、後から本システムSに加入したサーバによってリーダ交替が行われることがないため、不必要なリーダ交替を抑止することができ、本システムSの安定性に資することになる。
さらに、本システムSでは、自身と通信が維持されている自身以外の各サーバの数を計数し、当該通信維持サーバ数が、初期総数の過半数以上か否かの条件(第1条件)を満たすこと及び、初期総数の過半数以上のサーバがリーダ候補サーバと認識している同一のサーバが存在していること(第2条件)を新たなリーダの選定の条件としている。
この第1条件により、初期総数の過半数以上のサーバの存在をリーダ候補サーバの選択を開始する条件にしていることから、過半数未満のサーバによるリーダ選定の攪乱を防止することができる。また、第2条件により、誤ったリーダ候補サーバの選択を防止し、確実にリーダサーバの選定をすることができる。
また、本システムSにおいて、HB通信データ送信装置及びHB通信データ受信装置が、一定時間間隔で、HB通信データを送受信し、HB通信状態確認装置22により各サーバの通信状態を監視しているため、新たなリーダ選定が必要な場合を迅速に検知し、以降の処理を行うことができる。
以上、本発明について、好適な実施形態についての一例を説明したが、本発明は当該実施形態に限られず、本発明の趣旨を逸脱しない範囲で適宜設計変更が可能である。
上記実施形態では、情報処理装置は、5台のサーバの場合を例として説明したが、複数台のコンピューティングデバイスであれば、その種類や数はこれに限られるものではない。また、複数台の情報処理装置は、インターネットやLAN以外にも、どのような接続手段により接続されているものであってもよい。
さらに、上記実施形態では、HB通信を行うに際してUDPを使用することを前提とした場合について説明したが、当該技術に限らず、TCP等の通信方式を使用したものであってもよい。
S 分散コンピューティングシステム
N ネットワーク
K クライアント
A〜D エージェントサーバ
E (旧)リーダサーバ
P Paxos装置
4A,4C,4E 合意形成部
5A,5C,5E 実行部
D データベース
10 通信データ制御装置
20 HB通信制御装置
21 HB通信データ作成装置
22 HB通信状態確認装置
23 HB通信データ記憶装置
30 通信装置
40 データ送信装置
41 HB通信データ送信装置(通信データ送信装置)
50 データ受信装置
51 HB通信データ受信装置(通信データ受信装置)
60 リーダサーバ選定装置
61 リーダサーバ選定必要性検出装置
62 サーバ接続状態判別装置(接続維持情報処理装置数判別装置)
63 リーダサーバ候補選択装置
64 リーダサーバ認識装置

Claims (3)

  1. 複数の情報処理装置が、Paxosによって一部がリーダとなり他がエージェントとなって合意を形成し、クライアントからの指示に従い、所定のデータを利用してタスクを行う分散コンピューティングシステムにおいて、
    自身以外の前記各情報処理装置に対して、送信時間データと、自身が前記分散コンピューティングシステムに加入した加入時刻とを含む送信データを、ネットワークを介して、所望の時間間隔で送信するための通信データ送信装置と、
    自身以外の前記各情報処理装置から、前記ネットワークを介して所望の時間間隔で送信された、前記送信データと同一構造の被送信データを受信する通信データ受信装置と、
    前記リーダ選定が必要な状態であることを検出するリーダ選定必要性検出装置と、
    前記リーダ選定が必要な場合に、自身と通信が維持されている自身以外の前記各情報処理装置の数である接続維持情報処理装置数を計数し、前記接続維持情報処理装置数が、前記分散コンピューティングシステムの稼働開始時に加入している前記情報処理装置の初期総数の過半数以上か否かを判別するための接続維持情報処理装置数判別装置と、
    前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置と、
    前記自身以外の各情報処理装置から受信した前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記情報処理装置の初期総数の過半数以上の情報処理装置によってリーダ候補情報処理装置と認識されている同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置と、を備え
    前記リーダ認識装置によって認識された前記情報処理装置が当該システムにおける前記リーダとして選定されることを特徴とする分散コンピューティングシステム。
  2. 前記リーダ候補選択装置は、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に動作することを特徴とする請求項1に記載の分散コンピューティングシステム。
  3. 前記通信データ送信装置は、
    一定時間間隔で、前記各情報処理装置との間で、前記送信データを送信していることを特徴とする請求項1又は請求項2に記載の分散コンピューティングシステム。
JP2010127357A 2010-06-02 2010-06-02 分散コンピューティングシステム Expired - Fee Related JP4981952B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010127357A JP4981952B2 (ja) 2010-06-02 2010-06-02 分散コンピューティングシステム
PCT/JP2011/058548 WO2011152117A1 (ja) 2010-06-02 2011-04-04 分散コンピューティングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010127357A JP4981952B2 (ja) 2010-06-02 2010-06-02 分散コンピューティングシステム

Publications (2)

Publication Number Publication Date
JP2011253391A JP2011253391A (ja) 2011-12-15
JP4981952B2 true JP4981952B2 (ja) 2012-07-25

Family

ID=45066503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010127357A Expired - Fee Related JP4981952B2 (ja) 2010-06-02 2010-06-02 分散コンピューティングシステム

Country Status (2)

Country Link
JP (1) JP4981952B2 (ja)
WO (1) WO2011152117A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215754A (ja) * 2014-05-09 2015-12-03 日本電信電話株式会社 クラスタシステムおよびSplit−BrainSyndrome発生防止方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249196A (ja) * 1995-03-13 1996-09-27 Mitsubishi Electric Corp タスクの冗長化実行方式
JP4299928B2 (ja) * 1999-08-30 2009-07-22 株式会社東芝 分散監視制御システム及び方法並びに分散監視制御用ソフトウェアを記録した記録媒体
JP2002278787A (ja) * 2001-03-22 2002-09-27 Nec Corp マスタ/スレーブ動的構成制御方式
US7711825B2 (en) * 2003-12-30 2010-05-04 Microsoft Corporation Simplified Paxos
EP1751660A4 (en) * 2004-03-09 2010-06-16 Scaleout Software Inc ARCHITECTURE A QUORUM EVOLUTIVE BASED ON SOFTWARE
US7334154B2 (en) * 2004-06-18 2008-02-19 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US7856502B2 (en) * 2004-06-18 2010-12-21 Microsoft Corporation Cheap paxos
US7698465B2 (en) * 2004-11-23 2010-04-13 Microsoft Corporation Generalized Paxos

Also Published As

Publication number Publication date
WO2011152117A1 (ja) 2011-12-08
JP2011253391A (ja) 2011-12-15
WO2011152117A8 (ja) 2012-02-23

Similar Documents

Publication Publication Date Title
JP5863942B2 (ja) ウィットネスサービスの提供
US7350098B2 (en) Detecting events of interest for managing components on a high availability framework
US8850575B1 (en) Geolocation error tracking in transaction processing
US8743680B2 (en) Hierarchical network failure handling in a clustered node environment
CN106330475B (zh) 一种通信系统中管理主备节点的方法和装置及高可用集群
US20140095925A1 (en) Client for controlling automatic failover from a primary to a standby server
JP4695705B2 (ja) クラスタシステムおよびノード切り替え方法
EP3724761B1 (en) Failure handling in a cloud environment
CN109728981A (zh) 一种云平台故障监测方法及装置
CN105637811B (zh) 语义消重
JP4981952B2 (ja) 分散コンピューティングシステム
US8717167B2 (en) Event detection control method and system
US11748217B2 (en) Method for failure detection and role selection in a network of redundant processes
CN105516658A (zh) 一种监控设备控制方法及装置
US8055991B2 (en) Error detection and recovery using an asynchronous transaction journal
US11102293B2 (en) System and method for migrating an agent server to an agent client device
JP2009217504A (ja) 計算機システム、計算機制御方法及び計算機制御プログラム
JP2009040199A (ja) 運行管理用フォルトトレラントシステム
CN114844807B (zh) 系统检测方法、装置、设备、存储介质、车辆和云控平台
CN113055203A (zh) Sdn控制平面的异常恢复方法及装置
CN109219105B (zh) 路由切换方法以及路由切换系统
WO2021100140A1 (ja) ネットワーク監視装置、方法およびプログラム
JP7167714B2 (ja) 異常判定装置、異常判定方法、及び異常判定プログラム
JP2007323422A (ja) 分散データベースシステム及びそのデータ同期方法
CN109831342A (zh) 一种基于分布式系统的故障恢复方法

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20111207

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20111220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120308

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120420

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

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4981952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees