WO2011096319A1 - 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム - Google Patents

分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム Download PDF

Info

Publication number
WO2011096319A1
WO2011096319A1 PCT/JP2011/051562 JP2011051562W WO2011096319A1 WO 2011096319 A1 WO2011096319 A1 WO 2011096319A1 JP 2011051562 W JP2011051562 W JP 2011051562W WO 2011096319 A1 WO2011096319 A1 WO 2011096319A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
signal
agent
reader
possession
Prior art date
Application number
PCT/JP2011/051562
Other languages
English (en)
French (fr)
Inventor
渡邊典孝
Original Assignee
株式会社トライテック
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 株式会社トライテック filed Critical 株式会社トライテック
Publication of WO2011096319A1 publication Critical patent/WO2011096319A1/ja
Priority to US13/560,630 priority Critical patent/US8775500B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters

Definitions

  • the present invention is a distributed computing system in which a plurality of computing devices constituting a cell form an agreement by Paxos, partly as a leader and others as agents, and perform tasks using predetermined data in accordance with instructions from the client.
  • Paxos partly as a leader and others as agents
  • Paxos is a leader or agent that determines whether or not a quorum (more than a majority) of computing devices agree on a function before the distributed computing system performs the function. Is a consensus algorithm that starts execution if an agreement is reached. With such an algorithm, synchronization between computing devices can be easily achieved, and high availability can be realized.
  • each computing device receives a consensus and each computing device After embarking on execution, a situation may arise in which any computing device cannot obtain the data due to a communication failure or other reason. Then, not only is the series of processes leading up to that point (starting from the point where the leader inquires the agent about the latest voting proposal, until the consensus is given and the execution instruction is given) is not wasted. There is also a problem that the distributed processing itself is delayed.
  • the present invention has been made in view of the above circumstances, and suppresses delays in distributed processing caused by the inability to obtain data from a computing device when a task that requires the use of predetermined data is performed using Paxos. It is an object of the present invention to provide a distributed computing system, a distributed computing method, and a program for distributed computing.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data in accordance with instructions from the client.
  • the leader transmits the data acquisition promotion signal that prompts the agent to acquire the data, and the agent that has received the data acquisition promotion signal holds the data. If not, the data is acquired and a data acquisition completion signal is transmitted to the reader, and the reader also acquires the data itself, and from the half or more computing devices constituting the cell,
  • the task is sent to the agent. It sends an execution signal for instructing execution, the agent which has received the execution signal, and performing the task by using the data.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data in accordance with instructions from the client.
  • the leader transmits a data possession confirmation signal asking whether or not the data is possessed to the agent, and the leader among the agents that have received the data possession confirmation signal.
  • the data possessor transmits a data possession signal for notifying the possession of the data to the leader, and the reader that has received the data possession signal transmits the data possession signal to the specific agent that has transmitted A data acquisition promotion signal that prompts other agents to acquire data
  • a specific agent that has sent the substitute signal instructing to transmit on behalf of the user and the specific agent that has received the substitute signal has transmitted the data acquisition promotion signal to the other agent and has received the data acquisition promotion signal.
  • the agent acquires the data and transmits a data acquisition completion signal to the reader, and the reader acquires the data from more than half of the computing devices constituting the cell.
  • the completion signal is received, an execution signal for instructing execution of the task is transmitted to the agent, and the agent receiving the execution signal performs the task using the data.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data in accordance with instructions from the client.
  • the leader transmits a data possession confirmation signal asking whether or not the data is possessed to the agent, and the leader among the agents that have received the data possession confirmation signal.
  • the data possessor transmits a data possession signal notifying the possession of the data to the leader, and the leader that has received the data possession signal is other than the specific agent that has transmitted the data possession signal. Get the data from the specific agent to the agent
  • the agent acquires the data and transmits a data acquisition completion signal to the reader.
  • the agent transmits an execution signal instructing execution of the task to the agent, and the agent that has received the execution signal, The task is performed using the data.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data according to instructions from the client to perform a task
  • the leader transmits a data acquisition promotion signal that prompts the agent to acquire the data; and the agent that has received the data acquisition promotion signal holds the data.
  • the agent Transmitting an execution signal for instructing the execution of the tasks on bets, the agent which has received the execution signal, characterized in that by using the data and a step of performing the task.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data in accordance with instructions from the client.
  • the one possessing the data transmits a data possession signal for notifying the possession of the data to the leader, and the specific agent from which the leader that has received the data possession signal has transmitted the data possession signal.
  • the other agent is requested to acquire the data.
  • the agent that receives the data acquisition promotion signal acquires the data and transmits a data acquisition completion signal to the reader when the agent does not have the data; and the reader configures the cell Receiving the data acquisition completion signal from more than half of the computing devices that transmit the execution signal instructing the agent to execute the task, and the agent receiving the execution signal uses the data And performing the task.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data according to instructions from the client.
  • the one possessing the data transmits a data possession signal for notifying the possession of the data to the leader, and the specific agent from which the leader that has received the data possession signal has transmitted the data possession signal.
  • the invention according to claim 7 is a task in which a plurality of computing devices constituting a cell are agreed by Paxos, partly as a leader and others as agents, and using predetermined data in accordance with instructions from the client.
  • a program for distributed computing that functions to perform the following: a step of transmitting a data acquisition promotion signal that prompts the agent to acquire the data to the agent; and an agent that has received the data acquisition promotion signal.
  • a step of transmitting the data acquisition completion signal to the reader after acquiring the data when the data is not held, and configuring the cell after acquiring the data itself to the reader The data acquisition completion signal from more than half of the computing devices. Transmitting the execution signal instructing the agent to execute the task, and causing the agent that has received the execution signal to execute the task using the data.
  • the invention according to claim 8 is a task in which a plurality of computing devices constituting a cell are agreed by Paxos, partly as a leader and others as agents, and using predetermined data in accordance with instructions from the client
  • a program for distributed computing that functions to perform a process of transmitting to the reader a data possession confirmation signal asking whether or not the agent possesses the data; and the data possession confirmation signal
  • the data holding signal is sent to the reader that has received the data, and the data holding signal is sent to the reader that has received the data holding signal.
  • a plurality of computing devices constituting a cell form a consensus by Paxos, partly as a leader and others as agents, and use predetermined data in accordance with instructions from the client.
  • a program for distributed computing that functions to perform a process of transmitting to the reader a data possession confirmation signal asking whether or not the agent possesses the data; and the data possession confirmation signal
  • the data holding signal is sent to the reader that has received the data, and the data holding signal is sent to the reader that has received the data holding signal.
  • the leader transmits a data acquisition promotion signal to instruct the agent to acquire data before instructing the execution of the task.
  • the data already acquired and held can be used, so that the situation where the agent cannot acquire data at the task execution stage and the distributed processing is stuck is avoided.
  • the leader transmits a substitute signal before instructing the execution of the task, and the other through the specific agent holding the data. Since the agent is prompted to acquire data, and the agent can use the data already acquired and held when executing the task, the invention according to claim 1, claim 4 and claim 7 Similarly, it is possible to suppress the delay of distributed processing due to the inability to acquire data of the computing device.
  • the leader sends a data acquisition promotion signal before instructing execution of the task, and data from a specific agent holding the data Since the agent can urge other agents to acquire the data, and the agent can use the data already acquired and held when executing the task, the first, second, fourth, and second claims can be used.
  • the leader sends a data acquisition promotion signal before instructing execution of the task, and data from a specific agent holding the data Since the agent can urge other agents to acquire the data, and the agent can use the data already acquired and held when executing the task.
  • the leader sends a data acquisition promotion signal before instructing execution of the task, and data from a specific agent holding the data Since the agent can urge other agents to acquire the data, and the agent can use the data already acquired and held when executing the task, the first, second, fourth, and second claims can be used.
  • FIG. 1 shows a distributed computing system according to this embodiment.
  • This distributed computing system includes a cell 1, and the cell 1 is composed of a plurality of computing devices (hereinafter referred to as “devices”).
  • devices hereinafter referred to as “devices”.
  • three servers 2a, 2b, and 2c are illustrated as devices, but the type and number of devices are not limited to this.
  • the servers 2a, 2b, and 2c are connected to each other so that they can communicate with each other, and are connected to the client 3 that knows their IP addresses via the Internet. Tasks such as processing (hereinafter referred to as “this task”) are performed in cooperation.
  • the application program for the present task and the distributed computing program for distributed processing of the present task are installed in each of the servers 2a, 2b, and 2c.
  • Each of the servers 2a, 2b, and 2c is a general-purpose computer, but for convenience of explanation, as shown in FIG. And execution units 5a, 5b, and 5c.
  • the agreement forming units 4a, 4b, and 4c constitute a Paxos device 4 for forming an agreement with Paxos inside the cell 1.
  • the consensus building units pass metadata by communication means (for example, UDP (User Datagram Protocol)) within a predetermined band.
  • the execution units 5a, 5b, and 5c execute the task in accordance with the application program.
  • the execution units 5a, 5b, and 5c perform transmission / reception of large-capacity data between the execution units and the client 3 by out-of-band data transfer means (for example, FTP (File Transfer Protocol), RDMA (Remote Direct Memory Access)). Can do.
  • out-of-band data transfer means for example, FTP (File Transfer Protocol), RDMA (Remote Direct Memory Access)
  • distributed computing method At the time of execution of this task, as shown in FIG. 3, the client 3 inquires of the cell 1 which server is the leader (step 1: described as “S.1” in the drawing, and so on). .
  • the client 3 Since the client 3 knows the IP addresses of the servers 2a, 2b, and 2c, it can know which of the servers 2a, 2b, and 2c is the leader (step 2). If none of the servers 2a, 2b, 2c has information on the leader, for example because the leader has not yet been elected, the server 2a, 2b, 2c may elect a leader. Any method may be used for selecting leaders. For example, by using the oldest server with the earliest start-up time as the leader, the frequency of leader replacement can be suppressed. In this embodiment, only one server can be a leader, and a plurality of leaders are not selected (however, leaders may coexist temporarily in the process of changing leaders).
  • the client 3 sends the execution unit 5a a large amount of data (hereinafter referred to as “subject data”) as predetermined data used for the subject task. Is transmitted by the out-of-band data transfer means and stored in the execution unit 5a (step 3). When the data transmission is completed, the client 3 transmits a request signal for requesting the task to the execution unit 5a (step 4).
  • subject data a large amount of data
  • the client 3 transmits a request signal for requesting the task to the execution unit 5a (step 4).
  • the execution unit 5a that has received the request signal transmits the request for the task to the consensus building unit 4a with a transmit signal (step 5).
  • the consensus forming unit 4a transmits a collect signal to the consensus forming units 4b and 4c in order to obtain an agreement in the Paxos device 4 for the execution of this task (step 6).
  • the collect signal presents the proposal number for this task, and requests the consensus forming units 4b and 4c to notify the proposal number voted last.
  • the consensus forming units 4b and 4c have the proposal number presented to the consensus forming unit 4a if the proposal number they voted last is smaller than the proposed proposal number or they have not yet voted. It responds with the last signal which supports holding (steps 7 and 8), and notifies the proposal number voted last (0 when not voted) (step 9). If the last voted proposal number is greater than or equal to the presented proposal number, the consensus building units 4b and 4c do not transmit the last signal, but notify the last voted proposal number.
  • the consensus forming unit 4a transmits a begin signal as a data acquisition promoting signal that prompts the servers 2b and 2c to acquire data to the consensus forming units 4b and 4c. (Steps 10 and 11).
  • This begin signal includes the location information of the case data. Since the case data has already been acquired by the server 2a, the servers 2b and 2c recognize that the case data is in the server 2a by the begin signal.
  • the condition of “if the last signal is obtained from a majority of servers” in step 10 is that the last signal was transmitted / received inside the consensus building section for the leader, so in fact more than half of the agents, that is, If the last signal is obtained from one of the servers 2b and 2c, the condition is satisfied. If the last signal cannot be obtained from the majority of servers, for example, the server 2a may increase the proposal number to be presented and start again from the transmission of the collect signal.
  • the consensus building units 4b and 4c Upon receiving the begin signal, the consensus building units 4b and 4c transmit to the execution units 5b and 5c a validation signal that includes the location information of the case data and requests acquisition of the case data (step 12).
  • the execution units 5b and 5c confirm whether or not the case data is held in the storage device (step 13), and if not, obtain the case data from the execution unit 5a by the out-of-band data transfer means. (Step 14).
  • the consensus forming unit 4b A completion signal is transmitted to 4c (step 15).
  • the consensus forming units 4b and 4c that have received the completion signal transmit an accept signal as a data acquisition completion signal to the consensus forming unit 4a (step 16). If the acceptance signal is obtained from a majority of the servers (the significance is the same as in the case of the last signal), the consensus building unit 4a can serve as an execution signal that instructs the servers 2b and 2c to execute the task. The success signal is transmitted to the consensus building units 4b and 4c (steps 17 and 18).
  • the consensus building units 4b and 4c that have received the success signal transmit a validation signal for requesting execution of this task to the execution units 5b and 5c (step 19).
  • the execution units 5b and 5c use the case data stored in the storage device to start distributed processing of the case task (step 20).
  • the server 2a transmits a begin signal before instructing execution of the task, and prompts the servers 2b and 2c to acquire the data.
  • the servers 2b and 2c When executing a task, the data already acquired and held can be used, so there is a situation where distributed processing is stuck without the agent being able to acquire data at the execution stage of the task. Avoided.
  • distributed computing method when leaders change As described above, in the cell 1, it is normal for the leader to send a begin signal to another agent. However, if a trouble occurs in the leader and the leader is changed, FIG. And the process as shown in FIG. 5 is performed.
  • the consensus building unit 4a sends a validation signal to the execution unit 5a to confirm whether or not the server 2a has the data. (Step 21). On the other hand, the execution unit 5a replies to the consensus building unit 4a with an answer signal as to whether or not the case data is held (step 22). If the execution unit 5a holds the case data, for example, the processing from step 11 in FIG. 3 may be performed.
  • the consensus building unit 4a sends the server 2b, A collect signal as a data possession confirmation signal asking whether or not the present data is possessed with respect to 2c is transmitted to the consensus forming units 4b and 4c (steps 23 and 24).
  • the consensus building units 4b and 4c that have received the collect signal transmit validation signals to the execution units 5b and 5c in order to confirm whether or not the servers 2b and 2c have the case data (step 25).
  • the execution unit 5b has the case data but the execution unit 5c does not have the case data, and has transmitted answer signals to the consensus building units 4b and 4c, respectively (step 26).
  • the consensus forming units 4b and 4c that have received the answer signal notify the consensus forming unit 4a of the respective data holding status with the last signal (step 27). At this time, the consensus building unit 4b notifies the possession of the data, and transmits a last signal as a data possession signal.
  • the consensus building unit 4a that has received the last signal transmits a redirect signal as a proxy signal that instructs the consensus building unit 4b of the server 2b that holds the case data to transmit the following begin signal. (Step 28).
  • the consensus building unit 4b that has received the redirect signal transmits a begin signal as a data acquisition promoting signal to the consensus building units 4a and 4c, and prompts the servers 2a and 2c to acquire the data (step 29).
  • the begin signal includes the location information of the case data. Since the server 2b already holds the case data, the server 2c recognizes that the case data is in the server 2b by the begin signal.
  • the consensus building units 4a and 4c Upon receiving the begin signal, the consensus building units 4a and 4c transmit to the execution units 5a and 5c a validation signal that includes the location information of the case data and requests acquisition of the case data (step 30).
  • the execution units 5a and 5c acquire the case data from the execution unit 5b by the out-of-band data transfer unit (step 31), and when the acquisition of the case data is completed and the case data is held, the agreement forming unit 4a , 4c (step 32).
  • the consensus building unit 4c that has received the completion signal transmits to the consensus building unit 4a an accept signal notifying completion of acquisition of the data (step 33). If the data acquisition completion signal is obtained from a majority of servers (the condition is known to have acquired data for the server 2b, the consensus building unit 4a effectively configures the cell 1). If the consensus forming unit 4a receives a data acquisition completion signal from more than half of the servers, that is, the completion signal inside the server 2a or the accept signal from the consensus forming unit 4c), the server 2b is satisfied. , 2c, a success signal as an execution signal for instructing execution of this task is transmitted to the consensus forming units 4b, 4c (steps 34, 35).
  • the consensus building units 4b and 4c that have received the success signal transmit a validation signal for requesting execution of this task to the execution units 5b and 5c (step 36).
  • the execution units 5b and 5c use the case data stored in the storage device to start distributed processing of the case task (step 37).
  • the server 2a when the change of leader occurs and the server 2a as a new leader does not have the case data, the server 2a acts as a substitute before instructing the execution of the case task.
  • a signal is transmitted to urge other servers to acquire the case data via a specific agent (server 2b) that holds the case data. Therefore, when executing this task, each server can use the data that has already been acquired and held, and can suppress the delay of the distributed processing due to the inability to acquire the data of the computing device. .
  • the server 2a transmits a redirect signal to cause the server 2b holding the data to transmit a begin signal, but the server 2a itself transmits a begin signal (acquisition of the data from the server 2b).
  • a data acquisition promoting signal may be transmitted to the server 2c.
  • the server 2a does not have to receive the case data before receiving the request signal. Furthermore, by using TCP or the like for communication between the servers, data transmission / reception at the time of consensus formation and the case data Sending and receiving may be performed without dividing in and out of band.
  • the present invention can be widely used regardless of the type of task in distributed computing using Paxos.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 所定のデータを利用するタスクをPaxosを用いて行う際に、データ取得不能に起因する分散処理の遅滞を抑制することができる分散コンピューティングシステムを提供しなければならない。 本発明に係る分散コンピューティングシステムは、セルを構成するサーバー2a~2cがPaxosにより合意を形成し、クライアント3の指示に従い所定のデータを利用してタスクを行うもので、リーダーのサーバー2aが、エージェントのサーバー2b,2cに対し、データ取得促進信号を送信し、サーバー2b,2cが、データを保有していない場合に、データを取得した上でサーバー2aにデータ取得完了信号を送信し、サーバー2aが、それ自体もデータを取得した上で、セルを構成する半数以上のサーバーからデータ取得完了信号を受信すると、サーバー2b,2cに対してタスクの実行を指示する実行信号を送信し、サーバー2b,2cが、データを利用してタスクを行う。

Description

分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
 本発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング技術に関するものである。
 昨今、リソースの効率的利用等を目的とした分散コンピューティングがクラウドと呼ばれて注目され、SaaS(Software as a Service)、PaaS(Platform as a Service)又はIaaS(Infrastructure as a Service)の形態で各種のサービスが提供されている。分散コンピューティングでは、セルを構成する複数のコンピューティングデバイスがクライアントから指示されたタスクを協働して行うため、コンピューティングデバイス間で合意を形成することがあり、このような合意形成のアルゴリズムとして、例えば特許文献1乃至特許文献3に記載のように、Paxosが知られている。
 Paxosは、セルを構成するコンピューティングデバイスがリーダー又はエージェントとなって、分散コンピューティングシステムがある機能を実行する前に定足数(過半数以上)のコンピューティングデバイスがその機能に合意するか否かをリーダーが諮り、合意が形成されれば実行を開始するコンセンサスアルゴリズムである。このようなアルゴリズムにより、コンピューティングデバイス間の同期を簡易に図ることができ、高可用性を実現することができる。
特開2005-196763号公報 特開2006-4433号公報 特開2006-155614号公報
 ところで、クライアントから指示されたタスクが、クライアントその他から与えられた所定のデータを利用して行われなければならない場合に、コンセンサスアルゴリズムとしてPaxosを用いると、合意形成を受けて各コンピューティングデバイスがタスクの実行に着手した後に、いずれかのコンピューティングデバイスが通信障害その他の理由で上記データを取得することができない事態が生じ得る。そうすると、そこに至るまでの一連の過程(リーダーがエージェントに対して直近の投票に係る提案を問い合わせるところから始まり、合意形成を経て実行指示を出すまでの過程)が無駄になるばかりか、システムアボートに陥るおそれもあり、分散処理自体が滞るという問題がある。
 本発明は、上記の事情に鑑みてなされたもので、所定のデータを利用しなければならないタスクをPaxosを用いて行う場合に、コンピューティングデバイスのデータ取得不能に起因する分散処理の遅滞を抑制することができる分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラムを提供することを課題としている。
 かかる目的を達成するために、本発明は、以下の特徴を有することとする。
 請求項1に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティングシステムであって、前記リーダーが、前記エージェントに対し、前記データの取得を促すデータ取得促進信号を送信し、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信し、前記リーダーが、それ自体も前記データを取得した上で、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信し、前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うことを特徴とする。
 請求項2に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティングシステムであって、前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信し、前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信し、前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェントに対し、前記データの取得を他のエージェントに促すデータ取得促進信号を前記リーダーに代わって送信するように指示する代行信号を送信し、前記代行信号を受信した特定のエージェントが、他のエージェントに対し、前記データ取得促進信号を送信し、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信し、前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信し、前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うことを特徴とする。
 請求項3に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティングシステムであって、前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信し、前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信し、前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェント以外の他のエージェントに対し、前記特定のエージェントからの前記データの取得を促すデータ取得促進信号を送信し、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信し、前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信し、前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うことを特徴とする。
 請求項4に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング方法であって、前記リーダーが、前記エージェントに対し、前記データの取得を促すデータ取得促進信号を送信するステップと、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、前記リーダーが、それ自体も前記データを取得した上で、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うステップとを含むことを特徴とする。
 請求項5に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング方法であって、前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェントに対し、前記データの取得を他のエージェントに促すデータ取得促進信号を前記リーダーに代わって送信するように指示する代行信号を送信するステップと、前記代行指示信号を受信した特定のエージェントが、他のエージェントに対し、前記データ取得促進信号を送信するステップと、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うステップとを含むことを特徴とする。
 請求項6に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング方法であって、前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェント以外の他のエージェントに対し、前記特定のエージェントからの前記データの取得を促すデータ取得促進信号を送信するステップと、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うステップとを含むことを特徴とする。
 請求項7に係る発明は、セルを構成する複数のコンピューティングデバイスを、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行うように機能させる分散コンピューティング用プログラムであって、前記リーダーに、前記エージェントに対し、前記データの取得を促すデータ取得促進信号を送信するステップと、前記データ取得促進信号を受信したエージェントに、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、前記リーダーに、それ自体も前記データを取得した上で、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、前記実行信号を受信したエージェントに、前記データを利用して前記タスクを行うステップとを実行させることを特徴とする。
 請求項8に係る発明は、セルを構成する複数のコンピューティングデバイスを、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行うように機能させる分散コンピューティング用プログラムであって、前記リーダーに、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、前記データ保有確認信号を受信したエージェントのうち前記データを保有するものに、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、前記データ保有信号を受信したリーダーに、そのデータ保有信号を送信した特定のエージェントに対し、前記データの取得を他のエージェントに促すデータ取得促進信号を前記リーダーに代わって送信するように指示する代行信号を送信するステップと、前記代行指示信号を受信した特定のエージェントに、他のエージェントに対し、前記データ取得促進信号を送信するステップと、前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、前記リーダーに、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、前記実行信号を受信したエージェントに、前記データを利用して前記タスクを行うステップとを実行させることを特徴とする。
 請求項9に係る発明は、セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行うように機能させる分散コンピューティング用プログラムであって、前記リーダーに、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、前記データ保有確認信号を受信したエージェントのうち前記データを保有するものに、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、前記データ保有信号を受信したリーダーに、そのデータ保有信号を送信した特定のエージェント以外の他のエージェントに対し、前記特定のエージェントからの前記データの取得を促すデータ取得促進信号を送信するステップと、前記データ取得促進信号を受信したエージェントに、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、前記リーダーに、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、前記実行信号を受信したエージェントに、前記データを利用して前記タスクを行うステップとを実行させることを特徴とする。
 請求項1、請求項4及び請求項7に係る発明によれば、リーダーが、タスクの実行を指示する前にデータ取得促進信号を送信してエージェントにデータの取得を促し、エージェントは、タスクを実行する際に、既に取得して保有しているデータを利用することができるので、タスクの実行段階に至ってエージェントがデータを取得することができずに分散処理が立ち往生する事態が回避される。
 請求項2、請求項5及び請求項8に係る発明によれば、リーダーが、タスクの実行を指示する前に代行信号を送信して、データを保有している特定のエージェントを介して他のエージェントにデータの取得を促し、エージェントは、タスクを実行する際に、既に取得して保有しているデータを利用することができるので、請求項1、請求項4及び請求項7に係る発明と同様に、コンピューティングデバイスのデータ取得不能に起因する分散処理の遅滞を抑制することができる。
 請求項3、請求項6及び請求項9に係る発明によれば、リーダーが、タスクの実行を指示する前にデータ取得促進信号を送信して、データを保有している特定のエージェントからのデータの取得を他のエージェントに促し、エージェントは、タスクを実行する際に、既に取得して保有しているデータを利用することができるので、請求項1、請求項2、請求項4、請求項5、請求項7及び請求項8に係る発明と同様に、コンピューティングデバイスのデータ取得不能に起因する分散処理の遅滞を抑制することができる。
 本発明によれば、所定のデータを利用しなければならないタスクをPaxosを用いて行う場合に、コンピューティングデバイスのデータ取得不能に起因する分散処理の遅滞を抑制することができるという効果を奏する。
発明を実施するための形態に係る分散コンピューティングシステムを示す説明図である。 図1の分散コンピューティングシステムにおける信号及びデータの授受を示す説明図である。 図1の分散コンピューティングシステムの分散コンピューティング方法を示す流れ図である。 図1の分散コンピューティングシステムのリーダーが交替したときの信号及びデータの授受を示す説明図である。 図1の分散コンピューティングシステムのリーダーが交替したときの分散コンピューティング方法を示す流れ図である。
 本発明を実施するための形態について、図面を用いて説明する。
〔分散コンピューティングシステム〕
 図1は、本形態に係る分散コンピューティングシステムを示す。この分散コンピューティングシステムはセル1を含み、セル1は複数のコンピューティングデバイス(以下「デバイス」という。)により構成されている。本形態では、デバイスとして3台のサーバー2a,2b,2cを例示するが、デバイスの種類や数はこれに限られるものではない。
 サーバー2a,2b,2cは、互いに通信可能に接続されるとともに、それらのIPアドレスを把握するクライアント3にインターネットを介して接続され、クライアント3からの指示を受け、所定のデータを利用して演算処理等のタスク(以下「本件タスク」という。)を協働して行う。本件タスクのためのアプリケーションプログラム及び本件タスクを分散処理するための分散コンピューティング用プログラムは、ここではサーバー2a,2b,2cのそれぞれにインストールされている。また、サーバー2a,2b,2cは、それぞれ汎用コンピューターであるが、説明の便宜上は、図2に示すように、そのCPU、記憶装置等のプロセッサ能力、ストレージ能力を合意形成部4a,4b,4cと実行部5a,5b,5cに分けることができる。
 合意形成部4a,4b,4cは、セル1の内部でPaxosにより合意を形成するためのPaxos装置4を構成する。Paxos装置4においては、上記分散コンピューティング用プログラムに従って、合意形成部同士が所定の帯域内の通信手段(例えばUDP(User Datagram Protocol))によりメタデータを値渡しする。
 実行部5a,5b,5cは、上記アプリケーションプログラムに従って本件タスクを実行する。実行部5a,5b,5cは、帯域外データ転送手段(例えばFTP(File Transfer Protocol)、RDMA(Remote Direct Memory Access))により実行部同士やクライアント3との間で大容量データの送受信を行うことができる。
〔分散コンピューティング方法〕
 本件タスクの実行時には、図3にも示すように、クライアント3は、セル1に対し、いずれのサーバーがリーダーであるかを問い合わせる(ステップ1:図面において「S.1」と記載。以下同様)。クライアント3は、サーバー2a,2b,2cのIPアドレスを把握しているから、サーバー2a,2b,2cのいずれかからいずれがリーダーであるかを知得することができる(ステップ2)。もし未だリーダーが選出されたことがない等の理由により、サーバー2a,2b,2cのいずれもリーダーの情報を有していないのであれば、クライアント3からの問合せを契機に、サーバー2a,2b,2cがリーダーを互選してもよい。リーダーの選出方法はどのようなものでもよく、例えば起動時刻が最先の最長老のサーバーをリーダーとすることにより、リーダー交替が生じる頻度を抑制することができる。本形態では、リーダーとなるのは一つのサーバーに限られ、複数のリーダーの選出は行われない(ただし、リーダー交替の過程で一時的にリーダーが併存することはある。)。
 ステップ1の問合せによりクライアント3がリーダーを知り、例えばサーバー2aがリーダーであるとすると、クライアント3は、実行部5aに対し、本件タスクに利用する所定のデータとしての大容量データ(以下「本件データ」という。)を帯域外データ転送手段により送信し、これが実行部5aに記憶される(ステップ3)。このデータ送信が完了すると、クライアント3は、実行部5aに対し、本件タスクをリクエストするリクエスト(request)信号を送信する(ステップ4)。
 リクエスト信号を受信した実行部5aは、本件タスクのリクエストがあったことをトランスミット(transmit)信号で合意形成部4aに伝達する(ステップ5)。これを受けて、合意形成部4aは、本件タスクの実行についてPaxos装置4で合意を得るために、合意形成部4b,4cに対してコレクト(collect)信号を送信する(ステップ6)。コレクト信号は、本件タスクのための提案番号を提示するとともに、合意形成部4b,4cに対して最後に投票した提案番号の通知を求める。
 合意形成部4b,4cは、それらが最後に投票した提案番号が提示された提案番号よりも小さいか、それらが未だ投票していない場合には、合意形成部4aに対して提示された提案番号が保持されることを支持するラスト(last)信号で応答し(ステップ7,8)、最後に投票した提案番号(未投票の場合には0)を通知する(ステップ9)。もし最後に投票した提案番号が提示された提案番号以上である場合には、合意形成部4b,4cはラスト信号は送信せず、その最後に投票した提案番号を通知する。
 合意形成部4aは、ラスト信号が過半数のサーバーから得られれば、サーバー2b,2cに対してデータの取得を促すデータ取得促進信号としてのビギン(begin)信号を合意形成部4b,4cに送信する(ステップ10,11)。このビギン信号は本件データの所在情報を含むが、ここでは本件データがサーバー2aにより既に取得されているので、サーバー2b,2cはビギン信号によって本件データがサーバー2aにあることを認識する。
 なお、ステップ10における「ラスト信号が過半数のサーバーから得られれば」の条件は、リーダーについてはその合意形成部内部でラスト信号の送受信があったと考えられるから、事実上、半数以上のエージェント、つまり、サーバー2b,2cの一方からラスト信号が得られれば満たされる。もしラスト信号が過半数のサーバーから得られなければ、例えばサーバー2aは提示する提案番号を大きくしてコレクト信号の送信からやり直すことも考えられる。
 ビギン信号を受信した合意形成部4b,4cは、実行部5b,5cに、本件データの所在情報を含み、かつ、本件データの取得を要求するバリデーション(validation)信号を送信する(ステップ12)。実行部5b,5cは、その記憶装置に本件データを保有しているか否かを確認し(ステップ13)、保有していない場合には実行部5aから帯域外データ転送手段により本件データを取得する(ステップ14)。そして、実行部5b,5cは、バリデーション信号の受信時に既に本件データを保有していた場合、及び、本件データの取得が完了して本件データを保有するに至った場合に、合意形成部4b,4cにコンプリーション(completion)信号を送信する(ステップ15)。
 コンプリーション信号を受信した合意形成部4b,4cは、合意形成部4aに、データ取得完了信号としてのアクセプト(accept)信号を送信する(ステップ16)。合意形成部4aは、アクセプト信号が過半数のサーバーから得られれば(この意義は、上記ラスト信号の場合と同様である。)、サーバー2b,2cに対して本件タスクの実行を指示する実行信号としてのサクセス(success)信号を合意形成部4b,4cに送信する(ステップ17,18)。
 サクセス信号を受信した合意形成部4b,4cは、実行部5b,5cに、本件タスクの実行を要求するバリデーション信号を送信する(ステップ19)。これにより、実行部5b,5cは、その記憶装置に保有している本件データを利用して、本件タスクの分散処理を開始する(ステップ20)。
 本形態に係る分散コンピューティングシステムによれば、サーバー2aが、本件タスクの実行を指示する前にビギン信号を送信してサーバー2b,2cに本件データの取得を促し、サーバー2b,2cは、本件タスクを実行する際に、既に取得して保有している本件データを利用することができるので、本件タスクの実行段階に至ってエージェントがデータを取得することができずに分散処理が立ち往生する事態が回避される。
〔リーダーが交替したときの分散コンピューティング方法〕
 上記のように、セル1においては、リーダーが他のエージェントに対してビギン信号を送信することが通常であるが、もしリーダーにトラブル等が生じてリーダーの交替が生じた場合には、図4及び図5に示すような処理を行う。
 すなわち、新たにリーダーとなったサーバーについても符号2aを付すと、その合意形成部4aは、サーバー2aが本件データを保有しているか否かを確認するために、実行部5aにバリデーション信号を送信する(ステップ21)。これに対し、実行部5aは、本件データを保有しているか否かをアンサー(answer)信号で合意形成部4aに回答する(ステップ22)。実行部5aが本件データを保有していれば、例えば図3のステップ11以降の処理を行えばよいが、実行部5aが本件データを保有していなければ、合意形成部4aは、サーバー2b,2cに対して本件データを保有しているか否かを尋ねるデータ保有確認信号としてのコレクト信号を合意形成部4b,4cに送信する(ステップ23,24)。
 コレクト信号を受信した合意形成部4b,4cは、サーバー2b,2cが本件データを保有しているか否かを確認するために、実行部5b,5cにバリデーション信号を送信する(ステップ25)。ここでは、実行部5bは本件データを有しているが、実行部5cは本件データを有していないとして、それぞれ合意形成部4b,4cにアンサー信号を送信したと想定する(ステップ26)。
 アンサー信号を受信した合意形成部4b,4cは、それぞれのデータ保有状況をラスト信号で合意形成部4aに通知する(ステップ27)。この際、合意形成部4bは本件データの保有を通知するので、データ保有信号としてのラスト信号を送信する。
 ラスト信号を受信した合意形成部4aは、本件データを保有するサーバー2bの合意形成部4bに対し、次述のビギン信号を送信するように指示する代行信号としてのリダイレクト(redirect)信号を送信する(ステップ28)。
 リダイレクト信号を受信した合意形成部4bは、データ取得促進信号としてのビギン信号を合意形成部4a,4cに送信し、サーバー2a,2cに対して本件データの取得を促す(ステップ29)。このビギン信号は本件データの所在情報を含むが、ここでは本件データをサーバー2bが既に保有しているので、サーバー2cはビギン信号によって本件データがサーバー2bにあることを認識する。
 ビギン信号を受信した合意形成部4a,4cは、実行部5a,5cに、本件データの所在情報を含み、かつ、本件データの取得を要求するバリデーション信号を送信する(ステップ30)。実行部5a,5cは、実行部5bから帯域外データ転送手段により本件データを取得し(ステップ31)、本件データの取得が完了して本件データを保有するに至った場合に、合意形成部4a,4cにコンプリーション信号を送信する(ステップ32)。
 コンプリーション信号を受信した合意形成部4cは、合意形成部4aに、本件データの取得の完了を通知するアクセプト信号を送信する(ステップ33)。合意形成部4aは、そのようなデータ取得完了信号が過半数のサーバーから得られれば(この条件は、サーバー2bについてはデータを取得していることが既知であるから、事実上、セル1を構成する半数以上のサーバーからのデータ取得完了信号、つまり、サーバー2aの内部における上記コンプリーション信号、又は、合意形成部4cからのアクセプト信号を合意形成部4aが受信すれば満たされる。)、サーバー2b,2cに対して本件タスクの実行を指示する実行信号としてのサクセス信号を合意形成部4b,4cに送信する(ステップ34,35)。
 サクセス信号を受信した合意形成部4b,4cは、実行部5b,5cに、本件タスクの実行を要求するバリデーション信号を送信する(ステップ36)。これにより、実行部5b,5cは、その記憶装置に保有している本件データを利用して、本件タスクの分散処理を開始する(ステップ37)。
 本形態に係る分散コンピューティングシステムによれば、リーダーの交替が生じて新たなリーダーであるサーバー2aが本件データを保有していないときは、サーバー2aが、本件タスクの実行を指示する前に代行信号を送信して、本件データを保有している特定のエージェント(サーバー2b)を介して他のサーバーに本件データの取得を促す。よって、各サーバーは、本件タスクを実行する際に、既に取得して保有しているデータを利用することができ、コンピューティングデバイスのデータ取得不能に起因する分散処理の遅滞を抑制することができる。
 以上、本発明を実施するための形態について例示したが、本発明の実施形態は上述したものに限られず、本発明の趣旨を逸脱しない範囲で適宜変更等してもよい。
 例えば、図4及び図5において、サーバー2aは本件データを保有しているサーバー2bにビギン信号を送信させるべくリダイレクト信号を送信したが、サーバー2a自らビギン信号(本件データのサーバー2bからの取得を促すデータ取得促進信号)をサーバー2cに送信してもよい。
 また、図3においてサーバー2aが本件データを取得する時点はリクエスト信号受信前でなくてもよく、さらに、サーバー間の通信にTCP等を用いることにより、合意形成時のデータの送受信と本件データの送受信とを帯域内外で分けずに行ってもかまわない。
 なお、この出願は、2010年2月4日に出願した、日本特許出願番号2010-023612号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、Paxosを用いた分散コンピューティングにおいて、タスクの種類を問わずに広く利用することができる。
 1     セル
 2a    サーバー(リーダー)
 2b,2c サーバー(エージェント)
 3     クライアント

Claims (9)

  1.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティングシステムであって、
     前記リーダーが、前記エージェントに対し、前記データの取得を促すデータ取得促進信号を送信し、
     前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信し、
     前記リーダーが、それ自体も前記データを取得した上で、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信し、
     前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うことを特徴とする分散コンピューティングシステム。
  2.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティングシステムであって、
     前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信し、
     前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信し、
     前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェントに対し、前記データの取得を他のエージェントに促すデータ取得促進信号を前記リーダーに代わって送信するように指示する代行信号を送信し、
     前記代行信号を受信した特定のエージェントが、他のエージェントに対し、前記データ取得促進信号を送信し、
     前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信し、
     前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信し、
     前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うことを特徴とする分散コンピューティングシステム。
  3.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティングシステムであって、
     前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信し、
     前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信し、
     前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェント以外の他のエージェントに対し、前記特定のエージェントからの前記データの取得を促すデータ取得促進信号を送信し、
     前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信し、
     前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信し、
     前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うことを特徴とする分散コンピューティングシステム。
  4.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング方法であって、
     前記リーダーが、前記エージェントに対し、前記データの取得を促すデータ取得促進信号を送信するステップと、
     前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、
     前記リーダーが、それ自体も前記データを取得した上で、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、
     前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うステップとを含むことを特徴とする分散コンピューティング方法。
  5.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング方法であって、
     前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、
     前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、
     前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェントに対し、前記データの取得を他のエージェントに促すデータ取得促進信号を前記リーダーに代わって送信するように指示する代行信号を送信するステップと、
     前記代行指示信号を受信した特定のエージェントが、他のエージェントに対し、前記データ取得促進信号を送信するステップと、
     前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、
     前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、
     前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うステップとを含むことを特徴とする分散コンピューティング方法。
  6.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行う分散コンピューティング方法であって、
     前記リーダーが、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、
     前記データ保有確認信号を受信したエージェントのうち前記データを保有するものが、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、
     前記データ保有信号を受信したリーダーが、そのデータ保有信号を送信した特定のエージェント以外の他のエージェントに対し、前記特定のエージェントからの前記データの取得を促すデータ取得促進信号を送信するステップと、
     前記データ取得促進信号を受信したエージェントが、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、
     前記リーダーが、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、
     前記実行信号を受信したエージェントが、前記データを利用して前記タスクを行うステップとを含むことを特徴とする分散コンピューティング方法。
  7.  セルを構成する複数のコンピューティングデバイスを、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行うように機能させる分散コンピューティング用プログラムであって、
     前記リーダーに、前記エージェントに対し、前記データの取得を促すデータ取得促進信号を送信するステップと、
     前記データ取得促進信号を受信したエージェントに、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、
     前記リーダーに、それ自体も前記データを取得した上で、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、
     前記実行信号を受信したエージェントに、前記データを利用して前記タスクを行うステップとを実行させることを特徴とする分散コンピューティング用プログラム。
  8.  セルを構成する複数のコンピューティングデバイスを、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行うように機能させる分散コンピューティング用プログラムであって、
     前記リーダーに、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、
     前記データ保有確認信号を受信したエージェントのうち前記データを保有するものに、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、
     前記データ保有信号を受信したリーダーに、そのデータ保有信号を送信した特定のエージェントに対し、前記データの取得を他のエージェントに促すデータ取得促進信号を前記リーダーに代わって送信するように指示する代行信号を送信するステップと、
     前記代行指示信号を受信した特定のエージェントに、他のエージェントに対し、前記データ取得促進信号を送信するステップと、
     前記データ取得促進信号を受信したエージェントに、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、
     前記リーダーに、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、
     前記実行信号を受信したエージェントに、前記データを利用して前記タスクを行うステップとを実行させることを特徴とする分散コンピューティング用プログラム。
  9.  セルを構成する複数のコンピューティングデバイスが、一部がリーダーとなり他がエージェントとなってPaxosにより合意を形成し、クライアントからの指示に従い所定のデータを利用してタスクを行うように機能させる分散コンピューティング用プログラムであって、
     前記リーダーに、前記エージェントに対し、前記データを保有しているか否かを尋ねるデータ保有確認信号を送信するステップと、
     前記データ保有確認信号を受信したエージェントのうち前記データを保有するものに、前記リーダーに対し、前記データの保有を通知するデータ保有信号を送信するステップと、
     前記データ保有信号を受信したリーダーに、そのデータ保有信号を送信した特定のエージェント以外の他のエージェントに対し、前記特定のエージェントからの前記データの取得を促すデータ取得促進信号を送信するステップと、
     前記データ取得促進信号を受信したエージェントに、前記データを保有していない場合に、前記データを取得した上で前記リーダーにデータ取得完了信号を送信するステップと、
     前記リーダーに、前記セルを構成する半数以上のコンピューティングデバイスから前記データ取得完了信号を受信すると、前記エージェントに対して前記タスクの実行を指示する実行信号を送信するステップと、
     前記実行信号を受信したエージェントに、前記データを利用して前記タスクを行うステップとを実行させることを特徴とする分散コンピューティング用プログラム。
PCT/JP2011/051562 2010-02-04 2011-01-27 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム WO2011096319A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/560,630 US8775500B2 (en) 2010-02-04 2012-07-27 Distributed computing system having leader signaled agents to execute task after data acquisition completion

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-023612 2010-02-04
JP2010023612A JP5123961B2 (ja) 2010-02-04 2010-02-04 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/560,630 Continuation US8775500B2 (en) 2010-02-04 2012-07-27 Distributed computing system having leader signaled agents to execute task after data acquisition completion

Publications (1)

Publication Number Publication Date
WO2011096319A1 true WO2011096319A1 (ja) 2011-08-11

Family

ID=44355319

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/051562 WO2011096319A1 (ja) 2010-02-04 2011-01-27 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム

Country Status (3)

Country Link
US (1) US8775500B2 (ja)
JP (1) JP5123961B2 (ja)
WO (1) WO2011096319A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694647B2 (en) * 2011-03-18 2014-04-08 Microsoft Corporation Read-only operations processing in a paxos replication system
US9313252B2 (en) * 2012-04-20 2016-04-12 Microsoft Technology Licensing, Llc Binding crud-type protocols in distributed agreement protocols
US9313087B2 (en) * 2013-01-29 2016-04-12 Stg Interactive, S.A. Distributed computing architecture
US9928149B2 (en) 2014-08-29 2018-03-27 Cynny Space Srl Systems and methods to maintain data integrity and redundancy in a computing system having multiple computers
WO2016032634A1 (en) * 2014-08-29 2016-03-03 Cynny Spa Systems and methods to organize a computing system having multiple computers, distribute computing tasks among the computers, and maintain data integrity and redundancy in the computing system
US10917458B2 (en) * 2018-11-12 2021-02-09 Pivotal Software, Inc. Message broker configuration
CN113157779A (zh) * 2020-01-22 2021-07-23 北京沃东天骏信息技术有限公司 数据图表生成方法与装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784804A (ja) * 1993-09-20 1995-03-31 Fujitsu Ltd プロセス間通信方式
JP2006155614A (ja) * 2004-11-23 2006-06-15 Microsoft Corp 一般化されたPaxos
WO2007063944A1 (ja) * 2005-11-30 2007-06-07 International Business Machines Corporation 無停止トランザクション処理システム
JP2009123109A (ja) * 2007-11-16 2009-06-04 Fujitsu Ltd 分散処理プログラム、分散処理装置、および分散処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699501A (en) * 1996-04-30 1997-12-16 International Business Machines Corporation System for group leader recovery in a distributed computing environment
US6108699A (en) * 1997-06-27 2000-08-22 Sun Microsystems, Inc. System and method for modifying membership in a clustered distributed computer system and updating system configuration
US7774469B2 (en) * 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
JP2005502957A (ja) * 2001-09-06 2005-01-27 ビーイーエイ システムズ, インコーポレイテッド 厳密に一回のキャッシュフレームワーク
US7620680B1 (en) * 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
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
US7249280B2 (en) * 2004-06-18 2007-07-24 Microsoft Corporation Cheap paxos
US7856502B2 (en) * 2004-06-18 2010-12-21 Microsoft Corporation Cheap paxos
JP4707477B2 (ja) * 2005-06-23 2011-06-22 富士通株式会社 ファイル共有プログラムおよびファイル共有装置
US9596301B2 (en) * 2006-09-18 2017-03-14 Hewlett Packard Enterprise Development Lp Distributed-leader-election service for a distributed computer system
US7849223B2 (en) * 2007-12-07 2010-12-07 Microsoft Corporation Virtually synchronous Paxos
US8346824B1 (en) * 2008-05-21 2013-01-01 Translattice, Inc. Data distribution system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784804A (ja) * 1993-09-20 1995-03-31 Fujitsu Ltd プロセス間通信方式
JP2006155614A (ja) * 2004-11-23 2006-06-15 Microsoft Corp 一般化されたPaxos
WO2007063944A1 (ja) * 2005-11-30 2007-06-07 International Business Machines Corporation 無停止トランザクション処理システム
JP2009123109A (ja) * 2007-11-16 2009-06-04 Fujitsu Ltd 分散処理プログラム、分散処理装置、および分散処理方法

Also Published As

Publication number Publication date
JP5123961B2 (ja) 2013-01-23
US8775500B2 (en) 2014-07-08
JP2011164719A (ja) 2011-08-25
US20120317223A1 (en) 2012-12-13

Similar Documents

Publication Publication Date Title
WO2011096319A1 (ja) 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
EP2638680B1 (en) Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof
US10951521B2 (en) Method for scheduling a computational task, a method for processing a computational task, a computer readable storage medium, a computer program, a residential gateway, and a server
EP2045967B1 (en) Systems and methods for seamless host migration
US10257024B2 (en) Data transmission method, apparatus, and terminal
CN110958281B (zh) 基于物联网的数据传输方法及通信装置
US20240069977A1 (en) Data transmission method and data transmission server
CN109947081B (zh) 网联车辆控制方法及装置
CN113014499B (zh) 一种数据传输方法、装置、电子设备及存储介质
JP6381426B2 (ja) 情報処理装置、制御方法、及びプログラム
JP2014010703A (ja) 情報処理システムの連携を支援するシステム、装置および連携方法
CN111404842B (zh) 数据传输方法、装置及计算机存储介质
US8145698B1 (en) Self organizing peer-to-peer system, method, and/or apparatus
EP2274889B1 (en) System for delivery of content to be played autonomously
US20110246553A1 (en) Validation of internal data in batch applications
JP2007074218A (ja) パケット送信制御プログラム、パケット送信制御装置、及びパケット送信制御方法
US10778585B1 (en) Connection and application state migration for uninterrupted service availability
WO2024052981A1 (ja) 処理装置、処理方法およびプログラム
US20240070046A1 (en) Managing rate-controlled and scheduled workloads in distributed computing systems
WO2016180072A1 (zh) 一种发布应用方法、装置、服务器、客户端及系统
JP6639754B2 (ja) 通信装置、動作手順管理方法及び動作手順管理プログラム
JP6389142B2 (ja) 呼接続システム及び加入者情報送信方法
CN117793187A (zh) 一种mqtt通信代理的进程间通信方法
KR20230124249A (ko) 전송 제어 프로토콜 연결 처리 장치 및 방법
RU2541118C2 (ru) Система и способ обработки соединения с использованием временного порта

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11739668

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11739668

Country of ref document: EP

Kind code of ref document: A1