JP4981952B2 - Distributed computing system - Google Patents

Distributed computing system 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
Japanese (ja)
Other versions
JP2011253391A (en
Inventor
典孝 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/en
Priority to PCT/JP2011/058548 priority patent/WO2011152117A1/en
Publication of JP2011253391A publication Critical patent/JP2011253391A/en
Application granted granted Critical
Publication of JP4981952B2 publication Critical patent/JP4981952B2/en
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

Description

本発明は分散コンピューティングシステムにおけるリーダの選定を行う技術に関する。   The present invention relates to a technique for selecting a reader in a distributed computing system.

近年では、通信ネットワークの発達により、クラウドコンピューティングに代表される分散コンピューティングシステムが発達している。この分散コンピューティングシステムでは、複数のサーバが、同時並行的にそれぞれの処理を実行し、ネットワークを介して互いに通信しあうことにより、その処理を行っている。
このような分散コンピューティングシステムにおいては、当該システムを構成するサーバに障害が発生した場合であっても、提供するサービスを継続することが求められているため、現行系サーバと待機系サーバ群を備える冗長構成が採用されていることが一般的である。
分散コンピューティングシステムにおいて、現行系サーバに障害が発生した場合において、待機系サーバ群の中から新たにリーダを選定する必要が生じる。従来のリーダの選定方法として、プロセッサグループのプロセッサの加入順に順序づけられたネームサーバに記憶されているメンバシップ・リストから、新しいリーダを選定する方法が存在している(特許文献1)。
In recent years, with the development of communication networks, distributed computing systems represented by cloud computing have been developed. In this distributed computing system, a plurality of servers execute their respective processes concurrently and communicate with each other via a network.
In such a distributed computing system, even if a failure occurs in a server constituting the system, it is required to continue the service provided. In general, a redundant configuration is employed.
In the distributed computing system, when a failure occurs in the current server, it is necessary to newly select a leader from the standby server group. As a conventional method for selecting a leader, there is a method for selecting a new leader from a membership list stored in a name server ordered in the order of addition of processors in a processor group (Patent Document 1).

特開平10−40226号公報Japanese Patent Laid-Open No. 10-40226

しかし、従来の方法では、ネームサーバに記憶されているメンバシップ・リストから新しいリーダを選択するため、ネームサーバが故障等で使用不能となった場合にリーダの選定ができなくなるとともに、自律的にリーダの選定ができないという問題点が存在していた。   However, in the conventional method, since a new leader is selected from the membership list stored in the name server, it becomes impossible to select a leader when the name server becomes unavailable due to a failure or the like. There was a problem that a leader could not be selected.

本発明は、上記の問題点を解決するためになされたものであり、ネームサーバ等の特定のサーバに依存することなく、迅速かつ自律的にリーダの選定を行うことが可能となる分散コンピューティングシステムを提供することを目的とする。   The present invention has been made in order to solve the above-described problems, and is a distributed computing that can quickly and autonomously select a reader without depending on a specific server such as a name server. The purpose is to provide a system.

上記課題を解決するために、本発明の分散コンピューティングシステム(以下、「本システム」という。)は、複数の情報処理装置が、Paxosによって一部がリーダとなり他がエージェントとなって合意を形成し、クライアントからの指示に従い、所定のデータを利用してタスクを行う分散コンピューティングシステムにおいて、自身以外の前記各情報処理装置に対して、送信時間データと、自身が前記分散コンピューティングシステムに加入した加入時刻とを含む送信データを、ネットワークを介して、所望の時間間隔で送信するための通信データ送信装置と、自身以外の前記各情報処理装置から、前記ネットワークを介して所望の時間間隔で送信された、前記送信データと同一構造の被送信データを受信する通信データ受信装置と、前記リーダ選定が必要であることを検出するリーダ選定必要性検出装置と、前記リーダ選定が必要である場合に、自身と通信が維持されている自身以外の前記各情報処理装置の数である接続維持情報処理装置数を計数し、前記接続維持情報処理装置数が、前記分散コンピューティングシステムの稼働開始時に加入している前記情報処理装置の初期総数の過半数以上か否かを判別するための情報処理装置数判別装置と、前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置と、前記自身以外の各情報処理装置から受信した前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記情報処理装置の初期総数の過半数以上の情報処理装置によってリーダ候補情報処理装置と認識されている同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置と、を備え、前記リーダ認識装置によって認識された前記情報処理装置が当該システムにおける前記リーダとして選定されることを特徴としている。 In order to solve the above problems, the distributed computing system of the present invention (hereinafter referred to as “the system”) forms an agreement in which a plurality of information processing apparatuses are partly led by Paxos and others are agents. In a distributed computing system that performs tasks using predetermined data in accordance with an instruction from a client, transmission time data and each of the information processing apparatuses other than itself participate in the distributed computing system. Communication data transmission device for transmitting transmission data including the joined time through the network at a desired time interval, and from each information processing device other than itself at a desired time interval through the network. A transmitted communication data receiving device for receiving transmitted data having the same structure as the transmitted data; A reader selection necessity detection device that detects that the reader selection is necessary, and a connection that is the number of each information processing device other than itself that maintains communication with itself when the reader selection is necessary Information for counting the number of maintenance information processing devices and determining whether the number of connection maintenance information processing devices is greater than or equal to a majority of the initial total number of information processing devices that are subscribed at the start of operation of the distributed computing system Compare the joining time of each information processing device other than the processing device number discriminating device and the information processing device recorded in the transmitted data with the own joining time, and the information processing device which is the oldest joining time. selected as leader candidate information processing apparatus, for each information processing apparatus other than the own, a reader candidate selection unit for transmitting identification information of the reader candidate information processing apparatus, wherein Check the identification information of the candidate reader information processing device received from each information processing device other than the person and the identification information of the candidate reader information processing device transmitted by itself, and information more than a majority of the initial total number of the information processing devices A reader recognition device that recognizes the information processing device as a new reader when the same information processing device is recognized as a leader candidate information processing device by the processing device; is recognized the information processing apparatus is characterized in Rukoto is selected as the leader in the system by.

また、前記分散コンピューティングシステムにおいて、前記リーダ候補選択装置は、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に動作すること、すなわち、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の前記リーダ候補情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置を備える構成とすることもできる。   In the distributed computing system, the leader candidate selection device operates when the number of the connection maintenance information processing devices is a majority of the initial total number of the information processing devices, that is, the connection maintenance information processing. When the number of devices is more than a majority of the initial total number of the information processing devices, compare the joining time of each information processing device other than the own recorded in the transmitted data with the own joining time, A reader candidate selection device that selects the information processing device having the oldest joining time as a leader candidate information processing device and transmits identification information of the leader candidate information processing device to the reader candidate information processing devices other than the own candidate time. It can also be set as the structure provided with.

本発明によれば、リーダサーバ選定必要性検出装置により、リーダ選定が必要になったことを検出した場合において、情報処理装置数判別装置により、自身と通信が維持されている自身以外の各情報処理装置の数(接続維持情報処理装置数)を計数し、当該接続維持情報処理装置数が、情報処理装置の初期総数の過半数以上か否かを判別している。そして、リーダ候補選択装置により、当該条件を満たした場合に、自身と他の情報処理装置が認識している情報処理装置のうち、本システムに加入した時刻が最も古い(加入期間が最も長い)情報処理装置をリーダ候補情報処理装置として、他の情報処理装置として送信する。さらに、当該リーダ候補情報処理装置のデータを受け取った他の情報処理装置は、リーダ認識装置により、初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在している場合に、当該情報処理装置を新たなリーダとして認識することになる。   According to the present invention, when it is detected by the reader server selection necessity detection device that the reader selection is necessary, each information other than the one whose communication is maintained with the information processing device number determination device. The number of processing devices (number of connection maintaining information processing devices) is counted, and it is determined whether or not the number of connection maintaining information processing devices is equal to or greater than a majority of the initial total number of information processing devices. Then, when the condition is satisfied by the leader candidate selection device, the information processing device recognized by itself and other information processing devices has the oldest time of joining this system (the longest subscription period). The information processing apparatus is transmitted as the leader candidate information processing apparatus and as another information processing apparatus. Further, the other information processing apparatus that has received the data of the candidate reader information processing apparatus uses the same information processing that is recognized by the reader recognition apparatus as a leader candidate information processing apparatus by more than a majority of the initial total number of information processing apparatuses. When the apparatus exists, the information processing apparatus is recognized as a new reader.

本発明では、上記一連の動作により、第三者等の指示を受けることなく自律的にリーダの選定を行うことができる。   In the present invention, the reader can be selected autonomously without receiving an instruction from a third party or the like by the series of operations described above.

また、リーダ候補選択装置は、加入した時刻が最も古い情報処理装置を選択するため、後から本システムに加入したサーバによってリーダ交替が行われることがないため、頻繁なリーダ交替を抑止することができる。   In addition, since the leader candidate selection device selects the information processing device with the oldest time of joining, reader replacement is not performed by a server that has joined the system later, so frequent reader replacement may be suppressed. it can.

さらに、本発明では自身と通信が維持されている自身以外の各情報処理装置の数(接続維持情報処理装置数)を算出し、当該接続維持情報処理装置数が、情報処理装置の初期総数の過半数以上か否かの条件を満たすこと(情報処理装置数判別装置による条件、以下「第1条件」という。)、及び、初期総数の過半数以上の情報処理装置が、リーダ候補情報処理装置と認識している同一の情報処理装置が存在していること(リーダ認識装置による条件、以下「第2条件」という。)を新たなリーダの選定の条件としている。
この第1条件により、初期総数の過半数以上の情報処理装置の存在をリーダ候補の選択を開始する条件にしていることから、過半数未満の情報処理装置によるリーダ選定の攪乱を防止することができる。また、第2条件により、誤ったリーダ候補の選択を防止し、確実にリーダの選定をすることができる。
Furthermore, in the present invention, the number of information processing devices other than the device that is in communication with itself (the number of connection maintaining information processing devices) is calculated, and the number of connection maintaining information processing devices is the initial total number of information processing devices. Satisfying the condition of whether or not it is greater than or equal to the majority (conditions by the number of information processing devices, hereinafter referred to as “first condition”), and information processing devices that are greater than or equal to the initial total number are recognized as leader candidate information processing devices. That the same information processing apparatus is present (condition by the reader recognition apparatus, hereinafter referred to as “second condition”) is set as a condition for selecting a new reader.
According to the first condition, since the presence of information processing devices that are more than a majority of the initial total number is set as a condition for starting selection of leader candidates, disturbance of reader selection by information processing devices that are less than the majority can be prevented. In addition, according to the second condition, selection of an incorrect leader candidate can be prevented, and the leader can be selected reliably.

また、前記分散コンピューティングシステムにおいて、前記通信データ送信装置は、一定時間間隔で、前記各情報処理装置との間で、前記送信データ送信するものとすれば好適である。   In the distributed computing system, it is preferable that the communication data transmission device transmits the transmission data with the information processing devices at regular time intervals.

本発明によれば、通信データ送信装置は、一定時間間隔で各情報処理装置との間で送信データを送信し、常時、各情報処理装置との通信状態を確認しているため、リーダサーバの再選定が必要となる場合を迅速に検知し、その後の処理を行うことができる。   According to the present invention, the communication data transmitting device transmits transmission data to and from each information processing device at regular time intervals, and constantly confirms the communication state with each information processing device. The case where re-selection is needed can be detected quickly and the subsequent processing can be performed.

本発明によれば、特定のサーバに依存することなく、自律的にリーダ選定を行うことが可能となる分散コンピューティングシステムを提供することができる。   According to the present invention, it is possible to provide a distributed computing system capable of autonomously selecting a reader without depending on a specific server.

本発明の分散コンピューティングシステムを示す概要図である。1 is a schematic diagram showing a distributed computing system of the present invention. 本発明の分散コンピューティングシステムの一部(リーダサーバ及び2台のエージェントサーバ)を示す構成図である。It is a block diagram which shows a part (a reader server and two agent servers) of the distributed computing system of this invention. 本発明の分散コンピューティングシステムの構成要素であるサーバの一部を示す構成図である。It is a block diagram which shows a part of server which is a component of the distributed computing system of this invention. (a)HB通信データの概念図である。 (b)リーダサーバ候補データの概念図である。 (c)リーダサーバ候補不在データの概念図である。(A) It is a conceptual diagram of HB communication data. (B) It is a conceptual diagram of leader server candidate data. (C) It is a conceptual diagram of leader server candidate absent data. 本発明の分散コンピューティングシステムの動作を示すフロー図である。It is a flowchart which shows operation | movement of the distributed computing system of this invention. 本実施形態における本発明の分散コンピューティングシステムのリーダサーバ選定必要時の状態を示す説明図である。It is explanatory drawing which shows the state at the time of the reader server selection necessity of the distributed computing system of this invention in this embodiment.

本発明を実施するための一形態(以下、「実施形態」という。)について、図面を参照して詳細に説明する。
本発明の分散コンピューティングシステムSは、複数台のサーバ(情報処理装置)がインターネット等のネットワークN及びLAN(符号L)を介して接続されていることにより構成されている。以下、説明の便宜上、1台のリーダサーバE(旧リーダサーバ)と、4台のエージェントサーバA〜D(以下、5台のサーバを総称して「各サーバ」という場合がある。)を例として説明する。
An embodiment for carrying out the present invention (hereinafter referred to as “embodiment”) will be described in detail with reference to the drawings.
The distributed computing system S of the present invention is configured by connecting a plurality of servers (information processing apparatuses) via a network N such as the Internet and a LAN (reference numeral L). Hereinafter, for convenience of explanation, one reader server E (old reader server) and four agent servers A to D (hereinafter, five servers may be collectively referred to as “each server”) are examples. Will be described.

なお、上記各サーバA〜Eは、名称を変えて説明しているが、その構成は同様であり、それぞれがクライアントKの要求に応じて他のサーバの役割を担うことができる装置となっている。そのため、同一の構成要素を説明するに際し、当該構成要素を総称する場合には同一の符号を付すことを原則とするが、サーバの違いによる構成要素の違いを示す必要がある際には当該符号の末尾にさらに、A〜Eを付して区別するものとする。   The servers A to E have been described with different names, but the configuration is the same, and each server can play the role of another server in response to a request from the client K. Yes. Therefore, in describing the same component, in principle, when the component is collectively referred to, the same symbol is attached, but when it is necessary to indicate the difference of the component due to the difference of servers, the symbol Furthermore, it distinguishes by attaching | subjecting A-E to the tail.

〔分散コンピューティングシステムSの全体構成〕
図1及び図2に示すように、本実施形態の分散コンピューティングシステム(以下、「本システム」という。)Sは、5台のサーバA〜Eから構成されている。各サーバA〜Eは、互いに通信可能に接続され、それらのIPアドレスを把握するクライアントKにネットワークNを介して接続されている。各サーバA〜Eは、同一のデータベースDA〜DEに格納されているデータに対して、クライアントKからの指示を受け、操作実行手段(図示せず)を介して、演算処理等の操作コマンドを実行することにより所望のタスクを行うことができるようになっている。
[Overall Configuration of Distributed Computing System S]
As shown in FIGS. 1 and 2, the distributed computing system (hereinafter referred to as “the present system”) S of this embodiment is composed of five servers A to E. The servers A to E are communicably connected to each other, and are connected to a client K that knows their IP addresses via a network N. Each of the servers A to E receives an instruction from the client K for data stored in the same database DA to DE, and issues an operation command such as arithmetic processing via an operation execution means (not shown). By executing, a desired task can be performed.

上記操作コマンドを実行するためのアプリケーションプログラム及びタスクを分散処理するための分散コンピューティング用のプログラムは、ここでは各サーバA〜Eのそれぞれにインストールされている。
各サーバA〜Eは、それぞれ汎用コンピュータであり、CPU(図示せず)を備えているが、説明の便宜上は、図2に示すように、そのCPU、記憶装置等のプロセッサ能力、ストレージ能力を合意形成部4A〜4Eと実行部5A〜5E(サーバA,C,Eのみを図示)に分けることができるように構成されている。
Here, an application program for executing the operation command and a program for distributed computing for distributed processing of tasks are installed in the servers A to E, respectively.
Each of the servers A to E is a general-purpose computer and includes a CPU (not shown). For convenience of explanation, as shown in FIG. It is configured so that it can be divided into consensus forming units 4A to 4E and execution units 5A to 5E (only servers A, C, and E are shown).

合意形成部4A〜4Eは、セルの内部で既知であるPaxosにより合意を形成するためのPaxos装置Pを構成している。このPaxos装置Pは、セルを構成する各サーバがリーダサーバE又はエージェントサーバA〜Dとなって、本システムSがある操作コマンドを実行する前に、過半数以上(定足数以上)のサーバがその操作コマンドを実行することに対して合意するか否かをリーダサーバEが諮り、合意が形成されれば実行を開始するコンセンサスアルゴリズムである。このようなアルゴリズムにより、サーバ間の同期を簡易に図ることができ、高可用性を実現することができる装置となっている。   The agreement forming units 4A to 4E constitute a Paxos device P for forming an agreement with Paxos that is known inside the cell. In this Paxos device P, before each server constituting the cell becomes a reader server E or agent server A to D and this system S executes a certain operation command, more than half (or more than a quorum) servers operate the server. This is a consensus algorithm in which the leader server E consults whether or not to agree to execute a command, and starts execution if an agreement is formed. By such an algorithm, synchronization between servers can be easily achieved, and the apparatus can realize high availability.

Paxos装置Pにおいては、上記分散コンピューティング用プログラムに従って、過半数以上のサーバにより合意形成されたタスクを実行することができるようになっている(この点に関しては詳述せず)。また、上記分散コンピューティング用プログラムに従って、各合意形成部4A〜4E同士が所定の帯域内の通信方式(例えばUDP)によりメタデータを値渡しすることができるようになっている。   In the Paxos apparatus P, a task agreed upon by a majority of servers or more can be executed in accordance with the distributed computing program (this point is not described in detail). Further, according to the distributed computing program, each of the consensus building units 4A to 4E can pass metadata by a communication method (for example, UDP) within a predetermined band.

操作コマンドは、上記Paxsos装置Pにより決定され、実行部5A〜5Eは所定の操作コマンドを上記アプリケーションプログラムに適用することにより、本件タスクを実行することができるようになっている。   The operation command is determined by the Paxos device P, and the execution units 5A to 5E can execute the task by applying a predetermined operation command to the application program.

〔本システムSの前提〕
上記のように、本システムを構成するPaxos装置Pにおける本件タスクの実行には、リーダサーバEが非常に重要な役割を果たしている。
本件タスクの実行時において、クライアントKは、各サーバA〜Eに対し、いずれのサーバがリーダサーバであるかを問い合わせることができるようになっている。クライアントKは、各サーバA〜EのIPアドレスを把握しているため、それらのいずれかのサーバから、そのサーバがリーダサーバであるか否かを知得することができるようになっている。仮に、何らかの理由(リーダサーバの故障等)でリーダが不在になった場合(初期状態において、未だリーダが選出されたことがない場合も含む)には、早急に、新たなリーダサーバを選定する必要があるが、本システムSは、そのリーダサーバの選定を実現するためのシステムである。
[Premise of this system S]
As described above, the reader server E plays a very important role in the execution of the present task in the Paxos apparatus P constituting this system.
When executing this task, the client K can inquire which server is the reader server to each of the servers A to E. Since the client K knows the IP addresses of the servers A to E, it can know whether or not the server is a reader server from any of those servers. If the reader is absent for some reason (such as a failure of the reader server) (including the case where no reader has been selected in the initial state), a new reader server is selected immediately. Although necessary, this system S is a system for realizing selection of the reader server.

図3に示すように、本システムSでは、リーダサーバを選定するためのシステムを構成するために、通信データ制御装置10、通信装置30、リーダサーバ選定装置60等を備えている。   As shown in FIG. 3, the present system S includes a communication data control device 10, a communication device 30, a reader server selection device 60, and the like in order to configure a system for selecting a reader server.

(通信データ制御装置10)
通信データ制御装置10は、通信装置30であるデータ送信装置40及びデータ受信装置50を介して、各種データの送受信を制御するための手段であり、HB通信制御装置20(但し、HBは「ハートビート」の略である。)を備えている。このHB通信制御装置20は、各種の通信データのうち、自身以外の総てのサーバとの双方向通信を維持するためのハートビート通信を制御する装置であり、さらに、HB通信データ作成装置21、HB通信状態確認装置22及びHB通信データ記憶装置23を備えている。
(Communication data control device 10)
The communication data control device 10 is means for controlling transmission / reception of various data via the data transmission device 40 and the data reception device 50 which are the communication devices 30. The HB communication control device 20 (however, HB is “heart” Abbreviation of “beat”.) The HB communication control device 20 is a device that controls heartbeat communication for maintaining bidirectional communication with all servers other than itself among various types of communication data, and further, an HB communication data creation device 21. The HB communication status confirmation device 22 and the HB communication data storage device 23 are provided.

HB通信データ作成装置21は、ハートビート通信を行うためのHB通信データ(特許請求の範囲の送信データ及び被送信データに相当する)を作成するための装置である。
「HB通信データ」は、予め割り当てられている送信元サーバの装置番号及び送信先サーバの装置番号、送信元サーバの計時機能に基づく送信時刻タイムスタンプ(送信時間データ)(以下、「送信時刻タイムスタンプ」という。)、送信先サーバが、後記HB通信データ記憶装置23に記憶している、HB通信データの送信元から一時点前に送られてきた送信時刻タイムスタンプ(以下、「記憶済送信時刻タイムスタンプ」という。)(但し、初回の通信時には存在しないため「0」)(詳細は後記)及び自身が本システムSに加入した日時及び時刻のタイムスタンプ(以下、「加入時刻タイムスタンプ」という。)のデータを少なくとも含んでいる(図4(a))。
The HB communication data creation device 21 is a device for creating HB communication data (corresponding to transmission data and transmitted data in claims) for performing heartbeat communication.
The “HB communication data” is a transmission time stamp (transmission time data) (hereinafter referred to as “transmission time time”) based on a device number of a transmission source server and a device number of a transmission destination server, and a time measurement function of the transmission source server. The transmission time stamp (hereinafter referred to as “stored transmission”) transmitted from the transmission source of the HB communication data stored in the HB communication data storage device 23, which will be described later, from the transmission source of the HB communication data. (It is referred to as “time stamp”.) (However, it is “0” because it does not exist at the time of the first communication) (details will be described later), and the time stamp of the date and time when the device itself joined this system S (hereinafter “subscription time stamp”). At least) (FIG. 4A).

なお、特許請求の範囲では、送信データと被送信データを区別している。しかし、各サーバA〜E、同一の構成を有する装置であり、各々のサーバA〜Eは相互に通信を行っていることから各HB通信データの構造は同一であり、説明の便宜上、区別して用いているにすぎないものである。   In the claims, transmission data and transmitted data are distinguished. However, each server A to E is an apparatus having the same configuration, and since each server A to E communicates with each other, the structure of each HB communication data is the same. It is only used.

HB通信データ送信装置41(通信データ送信装置)は、データ送信装置40の一部を形成しており、HB通信データ作成装置21により作成されたHB通信データを、自身以外の各サーバに送信するための装置である。
例えば、本実施形態では、リーダサーバEは、所定時間間隔(Δt)で、自身以外の各エージェントサーバA〜DにHB通信データを送信し続けるようになっている。また、他のエージェントサーバA〜Dも、リーダサーバEと同様に、自身以外の各サーバA〜EにHB通信データを送信し続けるようになっている。
The HB communication data transmission device 41 (communication data transmission device) forms part of the data transmission device 40, and transmits the HB communication data created by the HB communication data creation device 21 to each server other than itself. It is a device for.
For example, in the present embodiment, the reader server E continues to transmit HB communication data to the agent servers A to D other than itself at a predetermined time interval (Δt). Further, like the reader server E, the other agent servers A to D continue to transmit HB communication data to the servers A to E other than itself.

HB通信データ受信装置51(通信データ受信装置)は、データ受信装置50の一部を形成しており、自身以外のサーバのHB通信データ送信装置41から送信されたHB通信データを受信するために、常時動作している装置である。   The HB communication data receiving device 51 (communication data receiving device) forms part of the data receiving device 50, and receives HB communication data transmitted from the HB communication data transmitting device 41 of a server other than itself. The device is always operating.

HB通信データ記憶装置23は、送信元の各サーバA〜Eから送信されたHB通信データを、HB通信データ受信装置51を介して受信し、一時的に、かつ、読出し自在に記憶するための装置である。
各サーバA〜Eでは、HB通信データの送信元サーバの送信時刻タイムスタンプを記憶済送信時刻タイムスタンプとして記憶することができるようになっている。そして、この記憶済送信時刻タイムスタンプは、上記送信元サーバを送信先として指定してHB通信データを作成するときに、読み出すことができるようになっている。
The HB communication data storage device 23 receives the HB communication data transmitted from each of the servers A to E as the transmission source via the HB communication data reception device 51, and temporarily stores the data in a readable manner. Device.
Each of the servers A to E can store the transmission time stamp of the transmission source server of the HB communication data as a stored transmission time stamp. The stored transmission time stamp can be read out when the HB communication data is created by designating the transmission source server as the transmission destination.

また、後記HB通信状態確認装置22により、各サーバとの間で通信状態が維持されているか否かが常に監視されており、通信状態が維持されている場合には、HB通信データ記憶装置23は、その送信元の装置番号とその加入時刻タイムスタンプを関連付けて保存することができるようになっている。   Further, the HB communication state confirmation device 22 described later constantly monitors whether or not the communication state is maintained with each server. If the communication state is maintained, the HB communication data storage device 23 is maintained. Can store the transmission source device number and the subscription time stamp in association with each other.

HB通信状態確認装置22は、HB通信データ送信装置41とHB通信データ受信装置51と協働して、自身と自身以外の各サーバとの間に双方向の通信が確立されているか否かを判断するための装置である。
上記の通り、例えば、リーダサーバEのHB通信データ送信装置41Eは、所定時間間隔(Δt)で、自身以外の各エージェントサーバA〜DにHB通信データを送信している。送信先のエージェントサーバA〜Dは、障害等が生じて受信不可能な状態になっていない限りは、当該HB通信データを受信し続けているとともに、自らも、送信元のリーダサーバEに対して、同一の時間間隔(Δt)でHB通信データを送信し続けている(但し、送信開始時刻は一致していなくてもよい)。
The HB communication status confirmation device 22 cooperates with the HB communication data transmission device 41 and the HB communication data reception device 51 to determine whether or not bidirectional communication has been established between itself and each server other than itself. It is an apparatus for judging.
As described above, for example, the HB communication data transmission device 41E of the reader server E transmits HB communication data to the agent servers A to D other than itself at a predetermined time interval (Δt). The destination agent servers A to D continue to receive the HB communication data as long as a failure or the like has occurred and cannot be received. Thus, the HB communication data continues to be transmitted at the same time interval (Δt) (however, the transmission start times may not match).

このような状況の中、HB通信状態確認装置22は、以下の判断を行うことにより、各サーバ間において、HB通信が確立されているか否かを判断できるようになっている。
すなわち、各サーバは、同一の時間間隔(Δt)で通信を行っているため、予め定められている各サーバ間の通信時間(以下、「サーバ間通信時間」という。)をΔdとすると、通信が確立されている場合には、リーダサーバEがHB通信データの送信を行った後、2Δd乃至Δt+2Δdの時間の間に、エージェントサーバA〜DからHB通信データが送信されることになる。
Under such circumstances, the HB communication state confirmation device 22 can determine whether or not HB communication is established between the servers by making the following determination.
That is, since each server performs communication at the same time interval (Δt), assuming that a predetermined communication time between servers (hereinafter referred to as “inter-server communication time”) is Δd, communication is performed. Is established, the HB communication data is transmitted from the agent servers A to D during the time 2Δd to Δt + 2Δd after the reader server E transmits the HB communication data.

ところで、エージェントサーバA〜DのHB通信データには、当該HB通信データの送信先であるリーダサーバEの一時点前の送信時刻である記憶済送信時刻タイムスタンプが記録されており、当該記憶済送信時刻タイムスタンプと、HB通信データの受信時刻の差を便宜上、HB応答時間と定義すると、当該HB応答時間が、Δt+2Δd+所定余裕時間(この値を、「HB通信状態判別基準時間値」という。)以下であるか否かにより、HB通信が確立されているか否かを判断することができる。したがって、本装置では、HB応答時間がHB通信状態判別基準時間値以下であれば、各サーバ間での双方向通信が確保されていると判断し、それより大きければ双方向通信が遮断されていると判断することができるようになっている。   By the way, in the HB communication data of the agent servers A to D, a stored transmission time stamp which is a transmission time one point before the reader server E which is a transmission destination of the HB communication data is recorded, and the stored If the difference between the transmission time stamp and the reception time of the HB communication data is defined as an HB response time for convenience, the HB response time is Δt + 2Δd + predetermined margin time (this value is referred to as “HB communication state determination reference time value”). It is possible to determine whether or not HB communication is established based on whether or not the following is true. Therefore, in this apparatus, if the HB response time is equal to or less than the HB communication state determination reference time value, it is determined that the two-way communication is secured between the servers, and if it is larger than that, the two-way communication is blocked. It can be judged that there is.

なお、記憶済送信時刻タイムスタンプと、HB通信データの受信時刻は、同一サーバの計時機能により記録されているため、両時刻の差をとることにより、容易にHB応答時間を算出できるようになっている。   Since the stored transmission time stamp and the reception time of the HB communication data are recorded by the time keeping function of the same server, the HB response time can be easily calculated by taking the difference between the two times. ing.

(通信装置30)
通信装置30は、データ送信装置40及びデータ受信装置50を備え、通信ネットワークNを介して、HB通信データ、リーダサーバ候補データ等の各種データの通信を行うための装置である。
(Communication device 30)
The communication device 30 includes a data transmission device 40 and a data reception device 50, and is a device for communicating various data such as HB communication data and leader server candidate data via the communication network N.

(リーダサーバ選定装置60)
リーダサーバ選定装置60は、新たなリーダサーバ(以下、「新リーダサーバ」という。)の選定が必要となった場合に、自律的に新リーダサーバの選定を行うための装置であり、リーダサーバ選定必要性検出装置61、サーバ接続状態判別装置62(接続維持情報処理装置数判別装置)、リーダサーバ候補選択装置63及びリーダサーバ認識装置64を備えている。
(Leader server selection device 60)
The leader server selection device 60 is a device for autonomously selecting a new leader server when a new leader server (hereinafter referred to as “new leader server”) needs to be selected. A selection necessity detection device 61, a server connection state determination device 62 (connection maintenance information processing device number determination device), a leader server candidate selection device 63, and a reader server recognition device 64 are provided.

リーダサーバ選定必要性検出装置61は、本システムSが動作を開始した初期状態において、未だリーダサーバEが存在していない状態であることを認識すること、及び、各サーバ間のHB通信データを常時監視し、それまで自身がリーダと認識していたリーダサーバEからのHB通信データの送信が途絶えたこと、通信障害で隔離されていた旧リーダサーバが当該通信障害の復旧により本システムSに復帰したこと等を認識することにより、新リーダサーバの選定が必要であると判断し、そのための処理を開始するための装置である。
本リーダサーバ選定必要性検出装置61では、初期状態、以前のリーダサーバの回復状態、及び、HB通信状態確認装置22において、これまで認識していたリーダサーバEにおけるHB応答時間が、HB通信状態判別基準時間値を超えた場合には、リーダサーバEからのHB通信が遮断されたと判断し、その場合に、接続サーバ状態判別装置62に対して、各サーバA〜D間の通信状態の確認を命じることができるようになっている。
The reader server selection necessity detection device 61 recognizes that the reader server E does not exist in the initial state when the system S starts operation, and transmits the HB communication data between the servers. The system S is constantly monitored and the old reader server that has been isolated due to the communication failure is transferred to the system S because the transmission of the HB communication data from the reader server E that has been recognized as the reader is interrupted. By recognizing that it has returned, it is determined that it is necessary to select a new leader server, and this is the device for starting the processing for that purpose.
In the reader server selection necessity detection device 61, the initial state, the recovery state of the previous reader server, and the HB response time in the reader server E recognized so far in the HB communication state confirmation device 22 are the HB communication state. When the determination reference time value is exceeded, it is determined that the HB communication from the reader server E is interrupted, and in this case, the connection server state determination device 62 confirms the communication state between the servers A to D. Can be ordered.

サーバ接続状態判別装置62は、HB通信状態確認装置22により通信状態が維持されていることの確認がなされているサーバ数(以下、「通信維持サーバ数」という。)を、HB通信記憶装置23から読み出して、カウント(計数)するとともに、当該通信維持サーバ数が、本システムSの稼働開始時点で、本システムSに加入している総サーバ数(以下、「初期総サーバ数」という。)の過半数以上か否かを判別するための装置である。   The server connection status determination device 62 indicates the number of servers whose communication status is confirmed to be maintained by the HB communication status verification device 22 (hereinafter referred to as “number of communication maintenance servers”) as the HB communication storage device 23. The number of communication maintenance servers is the total number of servers subscribed to the system S at the time when the operation of the system S is started (hereinafter referred to as “initial total number of servers”). It is an apparatus for discriminating whether or not it is more than a majority.

サーバ接続状態判別装置62では、上記条件を持たす場合には、リーダサーバ候補選択装置63に、リーダサーバ候補の選択をするように命じるとともに、当該条件を満たさなかった場合には、リーダサーバ候補が不在であると判断し、リーダサーバ候補選択装置63に対して、リーダサーバ候補が不在である旨の情報を通知することができるようになっている。
なお、初期総サーバ数は、記憶装置(図示せず)に予め記憶されている。
In the server connection state determination device 62, when the above conditions are satisfied, the leader server candidate selection device 63 is instructed to select a leader server candidate. When the conditions are not met, the leader server candidate selection device 63 selects the leader server candidate. It is determined that the user is absent, and information indicating that the leader server candidate is absent can be notified to the leader server candidate selection device 63.
Note that the initial total number of servers is stored in advance in a storage device (not shown).

リーダサーバ候補選択装置63は、サーバ接続状態判別装置62からリーダサーバ候補の選択を命じられた場合に、リーダサーバ候補の選択を行い、データ送信装置40を介して、他のサーバに対して、その情報を送信するための命令を通知するための装置である。   The leader server candidate selection device 63 selects a leader server candidate when the server connection state determination device 62 is instructed to select a leader server candidate, and with respect to other servers via the data transmission device 40, It is a device for notifying a command for transmitting the information.

リーダサーバ候補選択装置63では、HB通信データ記憶装置23に記憶されている各サーバA〜E(自己も含む)の加入時刻タイムスタンプのうちで、最も加入時刻が古い(最も本システムSにおける加入時間が長い)サーバ(以下、「最長老サーバ」という。)を選択し、当該最長老サーバをリーダサーバ候補として、その装置(識別)番号データを含むリーダサーバ候補データを作成し、自身以外の各サーバに送信するように、データ送信装置40に命ずることができるように構成されている。
なお、加入時刻が同時刻のサーバが存在する場合には、予め定められた判断基準(例えば、一番最後に判断を行ったサーバを最長老サーバと判断する)に従って、最長老サーバが定められることになる。
In the leader server candidate selection device 63, among the subscription time stamps of the servers A to E (including itself) stored in the HB communication data storage device 23, the subscription time is the oldest (the subscription in the present system S is the oldest). A server with a long time) (hereinafter referred to as the “longest aged server”), and the reader server candidate data including the device (identification) number data is created with the longest aged server as a candidate for the candidate reader server. The data transmission device 40 can be ordered to transmit to each server.
When there is a server with the same subscription time, the longest server is determined according to a predetermined determination criterion (for example, the server that made the last determination is determined as the longest server). It will be.

一方、サーバ接続状態判別装置62から、リーダサーバ候補が不在である旨の情報が送信された場合には、最長老サーバの装置番号データの代わりに、リーダサーバ不在情報(たとえば、「−1」)が記録されているリーダサーバ候補不在データを作成し、データ送信装置40を介して、自身以外の他のサーバに対して、その情報を送信するための命令を通知することができるように構成されている。   On the other hand, when information indicating that the leader server candidate is absent is transmitted from the server connection state determination device 62, the leader server absence information (for example, “−1”) is used instead of the device number data of the longest server. ) Is recorded, and a command for transmitting the information to another server other than itself is notified via the data transmission device 40. Has been.

なお、「リーダ候補データ」及び「リーダ候補不在データ」は、送信元サーバの装置番号及び送信先サーバの装置番号、最長老サーバの装置番号又はリーダサーバ不在情報を少なくとも含んでいる(図4(b),(c))。   The “leader candidate data” and the “leader candidate absent data” include at least the device number of the transmission source server, the device number of the transmission destination server, the device number of the longest server, or leader server absence information (FIG. 4 ( b), (c)).

リーダサーバ認識装置64は、他のエージェントサーバから受信したリーダサーバ候補データに記録されている最長老サーバの装置番号と、自身の認識している最長老サーバの装置番号を調べ、初期総サーバ数の過半数以上のサーバがリーダ候補と認識しているサーバが存在している場合には、当該サーバを新たなリーダサーバ(以下、「新リーダサーバ」という。)と認識するように命令するための装置である。
一方、最長老サーバを調べ、初期総サーバ数の過半数以上のサーバがリーダ候補と認識しているサーバが存在していない場合には、新リーダサーバを認識しないようになっている。
The leader server recognizing device 64 checks the device number of the longest old server recorded in the leader server candidate data received from another agent server and the device number of the longest old server recognized by itself to determine the initial total number of servers. If there is a server that is recognized by more than half of the servers as candidate leaders, the server is instructed to recognize the server as a new leader server (hereinafter referred to as “new leader server”). Device.
On the other hand, the longest old server is checked, and if there is no server that is recognized as a leader candidate by more than half of the initial total number of servers, the new leader server is not recognized.

なお、リーダサーバ候補を送信することにより、新リーダサーバの選定に関与した各サーバは、いずれのサーバが新リーダサーバとなったかを認識しており、エージェントサーバは、新リーダサーバからの指令をうけてタスク等を行うことになる。
また、新リーダサーバの選定に関与した各サーバは、クライアントKから新リーダサーバに関する問い合わせがあった場合には、新リーダサーバの装置番号を送信することができるようになっている。
By transmitting the leader server candidate, each server involved in the selection of the new leader server recognizes which server has become the new leader server, and the agent server issues a command from the new leader server. Received tasks and so on.
Each server involved in the selection of a new leader server can transmit the device number of the new leader server when an inquiry about the new leader server is received from the client K.

[動作]
続いて、図5を参照して、本システムSの動作について説明する。
なお、本システムSが動作を開始した初期状態においては、リーダサーバ選定必要性検出装置61により、リーダサーバEが存在していない状態であることが検知されることになり、下記とほぼ同様の動作によりリーダサーバEが認識されることになる(S1,S2)ため、以下は、本システムSの動作中におけるリーダ選定に関して説明する。
[Operation]
Next, the operation of the system S will be described with reference to FIG.
In the initial state where the operation of the system S starts, the reader server selection necessity detection device 61 detects that the reader server E does not exist, and is almost the same as the following. Since the reader server E is recognized by the operation (S1, S2), the following will describe the reader selection during the operation of the system S.

初期状態では、リーダサーバE及びエージェントサーバA〜Dが、クライアントKからの要求に応じて、所定のアプリケーションに従ってタスクの実行をしている。このとき、各サーバA〜Eの間において、HB通信データの送受信が行われることにより、HB通信が維持されていることが確認されている。
なお、図6における実線は各サーバの通信が維持されていることを示しており、×印は通信が遮断されていることを示している。また、( )は、本システムSへの加入時刻を示すものであり、各エージェントサーバA〜Dの加入時刻は順に1:00、2:00、3:00、4:00と一時間ずつ遅くなっている(月日は同日と仮定し、省略している)。
In the initial state, the reader server E and the agent servers A to D execute a task according to a predetermined application in response to a request from the client K. At this time, it is confirmed that the HB communication is maintained by transmitting and receiving the HB communication data between the servers A to E.
In addition, the continuous line in FIG. 6 has shown that communication of each server is maintained, and x mark has shown that communication is interrupted | blocked. In addition, () indicates the time of joining the system S, and the joining times of the agent servers A to D are sequentially delayed by 1 hour, 1:00, 2:00, 3:00, 4:00. (The month and day are assumed to be the same day and are omitted).

今、何らかの理由でリーダサーバEが動作を停止し、本システムSから離脱したとする。すると、リーダサーバEとの間のHB通信を監視していたHB通信状態確認装置22において、これまで認識していたリーダサーバEにおけるHB応答時間が、HB通信状態判別基準時間値を超えるため、同サーバEと他のサーバA〜Dの通信が遮断されたと判断される。そのため、各エージェントサーバA〜Dのリーダサーバ選定必要性検出装置61は、旧リーダサーバEが消滅したとして、サーバ接続状態判別装置62に対して、新たなリーダサーバの選定(選択)をする動作を開始させることになる(S3)。   Now, it is assumed that the reader server E stops operating for some reason and leaves the system S. Then, in the HB communication state confirmation device 22 that has been monitoring HB communication with the reader server E, the HB response time in the reader server E recognized so far exceeds the HB communication state determination reference time value. It is determined that communication between the server E and the other servers A to D is interrupted. Therefore, the reader server selection necessity detection device 61 of each agent server A to D performs an operation of selecting (selecting) a new reader server for the server connection state determination device 62, assuming that the old reader server E has disappeared. Is started (S3).

まず、各サーバ接続状態判別装置62は、通信維持サーバ数をHB受信データ記憶装置23から読み出しカウントする(S4)。本実施形態では、各エージェントサーバA〜Dの通信維持サーバ数は総て4台である。   First, each server connection state determination device 62 reads and counts the number of communication maintenance servers from the HB reception data storage device 23 (S4). In the present embodiment, the total number of communication maintenance servers of each agent server A to D is four.

そして、サーバ接続状態判別装置62は、通信維持サーバ数が、初期総サーバ数〔5台〕の過半数〔3台〕以上か否かを判別する(S5)。本実施形態では、各エージェントサーバA〜Dはこの条件を満たすため、各エージェントサーバA〜Dのサーバ接続状態判別装置62は、当該エージェントサーバA〜Dのリーダサーバ候補選択装置63に対して、リーダサーバ候補の選択をするように命じる(S6)。
なお、仮に上記条件を満たすエージェントサーバが存在しなかった場合には、そのサーバ接続状態判別装置62は、当該エージェントサーバのリーダサーバ候補選択装置63に対して、リーダサーバ候補が不在であることを通知する(S7)。
Then, the server connection state determination device 62 determines whether or not the number of communication maintenance servers is equal to or greater than the majority [3] of the initial total number of servers [5] (S5). In the present embodiment, since each agent server A to D satisfies this condition, the server connection state determination device 62 of each agent server A to D determines the leader server candidate selection device 63 of the agent server A to D. A command is given to select a leader server candidate (S6).
If there is no agent server that satisfies the above conditions, the server connection state determination device 62 confirms that there is no leader server candidate for the leader server candidate selection device 63 of the agent server. Notification is made (S7).

サーバ接続状態判別装置62からリーダサーバ候補の選択を命じられたエージェントサーバA〜Dのリーダサーバ候補選択装置63は、HB通信データ記憶装置23に記憶されている各サーバA〜D(自身も含む)の加入時刻タイムスタンプのうちで、最も加入時刻が古い最長老サーバを選択し、リーダサーバ候補データを作成する(S8)。本実施形態では、各エージェントサーバA〜Dともに、リーダサーバ候補は加入時刻が1:00であるエージェントサーバAとなる。   The leader server candidate selection device 63 of the agent servers A to D instructed to select a leader server candidate from the server connection state determination device 62 includes each server A to D (including itself) stored in the HB communication data storage device 23. The oldest server with the oldest subscription time is selected from the subscription time stamps of), and reader server candidate data is created (S8). In the present embodiment, for each of the agent servers A to D, the leader server candidate is the agent server A whose subscription time is 1:00.

なお、仮に、サーバ接続状態判別装置62から、リーダサーバ候補が不在である旨の情報が送信された場合には、そのエージェントサーバのリーダサーバ候補選択装置63は、最長老サーバの装置番号データの代わりに、リーダサーバ不在情報(−1)を記録した、リーダサーバ候補不在データを作成する(S9)。   If the information indicating that the leader server candidate is absent is transmitted from the server connection state determination device 62, the leader server candidate selection device 63 of the agent server determines the device number data of the longest old server. Instead, leader server candidate absence data in which the leader server absence information (-1) is recorded is created (S9).

そして上記により作成されたリーダサーバ候補データ又はリーダサーバ候補不在データは、データ送信装置40を介して、自身以外の各サーバに送信される。   The leader server candidate data or leader server candidate absent data created as described above is transmitted to each server other than itself through the data transmission device 40.

各エージェントサーバA〜Dから送信されたリーダサーバ候補データは、データ受信装置40を介して受信される。リーダサーバ認識装置64は、他のエージェントサーバから受信したリーダサーバ候補データに記録されているリーダサーバ候補の最長老サーバの装置番号と、自身の認識している最長老サーバ(他のエージェントサーバに対して送信した最長老サーバと同じ)の装置番号を調べ、初期総サーバ数〔5台〕の過半数〔3台〕以上のエージェントサーバがリーダサーバ候補と認識している、同一のエージェントサーバが存在しているか否かを確認し(S10)、当該条件を満たす場合には、そのエージェントサーバを新たなリーダサーバと認識することになる(S11)。   Reader server candidate data transmitted from each of the agent servers A to D is received via the data receiving device 40. The leader server recognition device 64 includes the device number of the longest old server of the leader server candidate recorded in the leader server candidate data received from the other agent server, and the longest old server recognized by itself (to other agent servers). (The same as the oldest server sent to the server), and there is an identical agent server that is recognized as a leader server candidate by more than half of the initial total number of servers [5] [3] (S10), if the condition is satisfied, the agent server is recognized as a new leader server (S11).

本実施形態では、総てのエージェントサーバA〜Dにおいて、自己が認識している最長老サーバの装置番号がA、各エージェントサーバA〜D(但し、自身を除く)から送信される最長老サーバの装置番号もAであるため、総てのエージェントサーバA〜Dが、エージェントサーバAを新リーダサーバと認識することになる。   In this embodiment, in all the agent servers A to D, the device number of the longest old server recognized by itself is A, and the longest old server transmitted from each agent server A to D (excluding itself). Since the device number is also A, all the agent servers A to D recognize the agent server A as a new leader server.

なお、仮に、最長老サーバを調べ、初期総サーバ数〔5台〕の過半数〔3台〕以上のサーバがリーダ候補と認識しているサーバが存在していない場合には、新たなリーダサーバを認識しないことになる(S12)。   If the longest server is checked, and there is no server that is recognized by more than a majority [3] of the initial total number of servers [3] as leader candidates, a new leader server is selected. It will not be recognized (S12).

そして、新リーダサーバAは、自らが新リーダサーバとして動作するとともに、他のエージェントサーバB〜Dは、その指令に従い、タスクを実行することになる。
また、クライアントKは、各サーバA〜Dに対して、新リーダサーバを問い合わせることにより、いずれかのサーバが新リーダサーバAの装置番号を送信することにより、クライアントKは新リーダサーバを認識することができる。そして、当該新リーダサーバAに対して以降の指示を行うことになる。
The new leader server A operates as a new leader server, and the other agent servers B to D execute tasks according to the instructions.
In addition, the client K inquires of each of the servers A to D about the new leader server, and one of the servers transmits the device number of the new leader server A, so that the client K recognizes the new leader server. be able to. Then, subsequent instructions are given to the new reader server A.

なお、通信障害で隔離されていた旧リーダサーバが、当該通信障害の復旧により本システムSに復帰した場合において、当該旧リーダサーバが本システムSにおける最長老サーバである場合には、上記と同様の動作により、自身が新リーダサーバに復帰することになる。   When the old reader server that was isolated due to communication failure returns to the system S due to the recovery of the communication failure, if the old leader server is the longest old server in the system S, the same as above As a result of this operation, the device itself returns to the new reader server.

以上、本システムSによれば、上記一連の動作により、第三者等の指示を受けることなく自律的に新たなリーダサーバの選定を行うことができる。特に、特定のサーバに依存していないため、当該特定のサーバに対する故障等を心配することなく、新たなリーダサーバの選定を行うことができる。   As described above, according to the system S, a new reader server can be selected autonomously without receiving an instruction from a third party or the like by the series of operations described above. In particular, since it does not depend on a specific server, it is possible to select a new reader server without worrying about a failure of the specific server.

また、リーダサーバ候補選択装置63は、本システムSへの加入時刻を基準として、最長老サーバを選択している。したがって、新たなリーダの選択基準が明確であり、後から本システムSに加入したサーバによってリーダ交替が行われることがないため、不必要なリーダ交替を抑止することができ、本システムSの安定性に資することになる。   In addition, the leader server candidate selection device 63 selects the oldest server with reference to the time of joining the system S. Therefore, since the selection criteria for the new reader are clear and the reader replacement is not performed by a server that has joined the system S later, unnecessary reader replacement can be suppressed, and the stability of the system S can be prevented. It will contribute to sex.

さらに、本システムSでは、自身と通信が維持されている自身以外の各サーバの数を計数し、当該通信維持サーバ数が、初期総数の過半数以上か否かの条件(第1条件)を満たすこと及び、初期総数の過半数以上のサーバがリーダ候補サーバと認識している同一のサーバが存在していること(第2条件)を新たなリーダの選定の条件としている。
この第1条件により、初期総数の過半数以上のサーバの存在をリーダ候補サーバの選択を開始する条件にしていることから、過半数未満のサーバによるリーダ選定の攪乱を防止することができる。また、第2条件により、誤ったリーダ候補サーバの選択を防止し、確実にリーダサーバの選定をすることができる。
Further, in the present system S, the number of servers other than itself that maintain communication with itself is counted, and the condition (first condition) is satisfied whether or not the number of communication maintenance servers is greater than or equal to a majority of the initial total number. In addition, a condition for selecting a new leader is that there is the same server that is recognized as a leader candidate server by more than a majority of the initial total number of servers (second condition).
According to the first condition, since the presence of a server having a majority of the initial total number or more is set as a condition for starting selection of the leader candidate server, it is possible to prevent disturbance of leader selection by a server of less than the majority. Further, the second condition can prevent selection of an erroneous leader candidate server, and can reliably select a leader server.

また、本システムSにおいて、HB通信データ送信装置及びHB通信データ受信装置が、一定時間間隔で、HB通信データを送受信し、HB通信状態確認装置22により各サーバの通信状態を監視しているため、新たなリーダ選定が必要な場合を迅速に検知し、以降の処理を行うことができる。   Further, in the present system S, the HB communication data transmitting device and the HB communication data receiving device transmit and receive HB communication data at regular time intervals, and the HB communication state confirmation device 22 monitors the communication state of each server. Thus, it is possible to quickly detect a case where a new leader selection is necessary and perform the subsequent processing.

以上、本発明について、好適な実施形態についての一例を説明したが、本発明は当該実施形態に限られず、本発明の趣旨を逸脱しない範囲で適宜設計変更が可能である。
上記実施形態では、情報処理装置は、5台のサーバの場合を例として説明したが、複数台のコンピューティングデバイスであれば、その種類や数はこれに限られるものではない。また、複数台の情報処理装置は、インターネットやLAN以外にも、どのような接続手段により接続されているものであってもよい。
As mentioned above, although an example about a suitable embodiment was explained about the present invention, the present invention is not restricted to the embodiment concerned, and a design change is possible suitably in the range which does not deviate from the meaning of the present invention.
In the above-described embodiment, the information processing apparatus has been described by taking the case of five servers as an example. However, the type and number of information processing apparatuses are not limited to this as long as they are a plurality of computing devices. Further, the plurality of information processing apparatuses may be connected by any connection means other than the Internet and the LAN.

さらに、上記実施形態では、HB通信を行うに際してUDPを使用することを前提とした場合について説明したが、当該技術に限らず、TCP等の通信方式を使用したものであってもよい。   Furthermore, in the above embodiment, a case has been described on the assumption that UDP is used when performing HB communication. However, the present invention is not limited to this technique, and a communication method such as TCP may be used.

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 リーダサーバ認識装置
S Distributed computing system N Network K Client A to D Agent server E (Old) Reader server P Paxos device 4A, 4C, 4E Consensus building unit 5A, 5C, 5E Execution unit D Database 10 Communication data control device 20 HB communication control device 21 HB communication data creation device 22 HB communication status confirmation device 23 HB communication data storage device 30 Communication device 40 Data transmission device 41 HB communication data transmission device (communication data transmission device)
50 Data receiver 51 HB communication data receiver (communication data receiver)
60 Leader Server Selection Device 61 Leader Server Selection Necessity Detection Device 62 Server Connection State Discrimination Device (Connection Maintenance Information Processing Device Number Discrimination Device)
63 Leader server candidate selection device 64 Leader server recognition device

Claims (3)

複数の情報処理装置が、Paxosによって一部がリーダとなり他がエージェントとなって合意を形成し、クライアントからの指示に従い、所定のデータを利用してタスクを行う分散コンピューティングシステムにおいて、
自身以外の前記各情報処理装置に対して、送信時間データと、自身が前記分散コンピューティングシステムに加入した加入時刻とを含む送信データを、ネットワークを介して、所望の時間間隔で送信するための通信データ送信装置と、
自身以外の前記各情報処理装置から、前記ネットワークを介して所望の時間間隔で送信された、前記送信データと同一構造の被送信データを受信する通信データ受信装置と、
前記リーダ選定が必要な状態であることを検出するリーダ選定必要性検出装置と、
前記リーダ選定が必要な場合に、自身と通信が維持されている自身以外の前記各情報処理装置の数である接続維持情報処理装置数を計数し、前記接続維持情報処理装置数が、前記分散コンピューティングシステムの稼働開始時に加入している前記情報処理装置の初期総数の過半数以上か否かを判別するための接続維持情報処理装置数判別装置と、
前記被送信データに記録されている前記自身以外の各情報処理装置の前記加入時刻と、前記自身の加入時刻を比較し、最も古い加入時刻である前記情報処理装置をリーダ候補情報処理装置として選択し、前記自身以外の情報処理装置に対して、前記リーダ候補情報処理装置の識別情報を送信するリーダ候補選択装置と、
前記自身以外の各情報処理装置から受信した前記リーダ候補情報処理装置の識別情報と、自身の送信した前記リーダ候補情報処理装置の識別情報とを調べ、前記情報処理装置の初期総数の過半数以上の情報処理装置によってリーダ候補情報処理装置と認識されている同一の情報処理装置が存在している場合には、当該情報処理装置を新たなリーダとして認識するリーダ認識装置と、を備え
前記リーダ認識装置によって認識された前記情報処理装置が当該システムにおける前記リーダとして選定されることを特徴とする分散コンピューティングシステム。
In a distributed computing system in which a plurality of information processing apparatuses form an agreement with Paxos partly as a leader and others as agents, and perform tasks using predetermined data according to instructions from the client.
For transmitting transmission data including transmission time data and a subscription time at which the mobile communication apparatus has joined the distributed computing system to the respective information processing apparatuses other than itself at desired time intervals via the network. A communication data transmission device;
A communication data receiving device that receives transmitted data having the same structure as that of the transmission data transmitted from the information processing devices other than itself at a desired time interval via the network;
A reader selection necessity detection device for detecting that the reader selection is necessary; and
When the leader selection is necessary, the number of connection maintenance information processing devices, which is the number of each information processing device other than the device itself that is communicating with itself, is counted, and the number of connection maintenance information processing devices is the distribution A connection maintaining information processing device number determination device for determining whether or not a majority of the initial total number of the information processing devices subscribed at the start of operation of the computing system;
Compare the joining time of each information processing device other than the information recorded in the transmitted data with the own joining time, and select the information processing device having the oldest joining time as a leader candidate information processing device A reader candidate selection device that transmits identification information of the reader candidate information processing device to each information processing device other than the device itself;
The identification information of the candidate reader information processing device received from each information processing device other than the own device and the identification information of the candidate reader information processing device transmitted by itself are checked, and the majority of the initial total number of the information processing devices is greater than or equal to A reader recognition device that recognizes the information processing device as a new reader when there is the same information processing device recognized as a leader candidate information processing device by the information processing device ;
Distributed computing system in which the reader recognizes the information processing apparatus that is recognized by the device and wherein Rukoto is selected as the leader in the system.
前記リーダ候補選択装置は、前記接続維持情報処理装置数が、前記情報処理装置の初期総数の過半数以上である場合に動作することを特徴とする請求項1に記載の分散コンピューティングシステム。   The distributed computing system according to claim 1, wherein the leader candidate selection device operates when the number of the connection maintenance information processing devices is equal to or more than a majority of the initial total number of the information processing devices. 前記通信データ送信装置は、
一定時間間隔で、前記各情報処理装置との間で、前記送信データを送信していることを特徴とする請求項1又は請求項2に記載の分散コンピューティングシステム。
The communication data transmitting device
The distributed computing system according to claim 1 or 2, wherein the transmission data is transmitted to and from each of the information processing devices at regular time intervals.
JP2010127357A 2010-06-02 2010-06-02 Distributed computing system Expired - Fee Related JP4981952B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010127357A JP4981952B2 (en) 2010-06-02 2010-06-02 Distributed computing system
PCT/JP2011/058548 WO2011152117A1 (en) 2010-06-02 2011-04-04 Distributed computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010127357A JP4981952B2 (en) 2010-06-02 2010-06-02 Distributed computing system

Publications (2)

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

Family

ID=45066503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010127357A Expired - Fee Related JP4981952B2 (en) 2010-06-02 2010-06-02 Distributed computing system

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215754A (en) * 2014-05-09 2015-12-03 日本電信電話株式会社 CLUSTER SYSTEM AND Split-BrainSyndrome GENERATION PREVENTION METHOD

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249196A (en) * 1995-03-13 1996-09-27 Mitsubishi Electric Corp Redundancy execution system for task
JP4299928B2 (en) * 1999-08-30 2009-07-22 株式会社東芝 Distributed monitoring control system and method, and recording medium recording distributed monitoring control software
JP2002278787A (en) * 2001-03-22 2002-09-27 Nec Corp System for controlling master/slave dynamic configuration
US7711825B2 (en) * 2003-12-30 2010-05-04 Microsoft Corporation Simplified Paxos
US7320085B2 (en) * 2004-03-09 2008-01-15 Scaleout Software, Inc Scalable, software-based quorum architecture
US7856502B2 (en) * 2004-06-18 2010-12-21 Microsoft Corporation Cheap paxos
US7334154B2 (en) * 2004-06-18 2008-02-19 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US7698465B2 (en) * 2004-11-23 2010-04-13 Microsoft Corporation Generalized Paxos

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5863942B2 (en) Provision of witness service
US7350098B2 (en) Detecting events of interest for managing components on a high availability framework
US20140095925A1 (en) Client for controlling automatic failover from a primary to a standby server
CN106330475B (en) Method and device for managing main and standby nodes in communication system and high-availability cluster
JP4695705B2 (en) Cluster system and node switching method
EP3724761B1 (en) Failure handling in a cloud environment
CN106603261B (en) Hot backup method, first main device, standby device and communication system
CN109728981A (en) A kind of cloud platform fault monitoring method and device
CN107181637A (en) A kind of heartbeat message sending method, device and heartbeat sending node
US11748217B2 (en) Method for failure detection and role selection in a network of redundant processes
CN105637811B (en) Semanteme disappears again
JP4981952B2 (en) Distributed computing system
US8717167B2 (en) Event detection control method and system
US11102293B2 (en) System and method for migrating an agent server to an agent client device
US8055991B2 (en) Error detection and recovery using an asynchronous transaction journal
JP2009217504A (en) Computer system, computer control method and computer control program
JP2009040199A (en) Fault tolerant system for operation management
CN109219105B (en) Route switching method and route switching system
WO2021100140A1 (en) Network monitoring device, method, and program
JP7167714B2 (en) Abnormality determination device, abnormality determination method, and abnormality determination program
JP6350602B2 (en) Communication network determination apparatus, communication network determination method, and communication network determination program
CN113055203A (en) Method and device for recovering abnormity of SDN control plane
JP2007323422A (en) Distributed database system and method of data synchronization thereof
JP2007133665A (en) Computer system, distributed processing method, computer and distributed processing program
JP6394620B2 (en) Server management system, server, server management method, and service processor

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