摘要:
Synchronized devices comprising a distributed system attempt to agree on a compatible sequence of commands to execute. Each device in the distributed system may act as a proposer, acceptor, or a learner. Each proposer proposes a command for each device to execute. The acceptors either accept or reject the proposed commands. The learners keep track of the proposed commands and determine, using a transactional substrate, whether the acceptors have a accepted sequences of commands that commute with respect to one another. Once the learners have determined that a quorum of acceptors have accepted sequences of commands that commute with respect to one another the accepted commands are executed by each device in the distributed system.
摘要:
A distributed computing system can achieve consensus while introducing fewer message delays by using an algorithm that allows the constituent devices to vote on functions received directly from one or more clients. If a conflict occurs, a leader device from among the devices can be selected such that the leader device already knows of the other devices' previous votes, and can determine an appropriate function to propose, using an immediately subsequent proposal number, without performing the first phase of the Paxos algorithm. Alternatively, each device can independently determine, by using the same repeatable mechanism used by a leader device, what function the leader device would propose, and can then vote for that function using the immediately subsequent proposal number. If the devices' votes again result in a conflict, the Paxos algorithm can be used, or additional iterations can be performed prior to resorting to the Paxos algorithm.
摘要:
A simplified fault tolerant algorithm is presented for operating a distributed computing system in a fault tolerant manner. A system comprising three computing devices need only have two devices agree to perform any proposed function. Thus, when soliciting a vote for a proposed function, a leader device can also send its vote for the proposed function. This allows any recipient device to complete the quorum with its own vote. Consequently, any recipient device can, without any further messages, determine whether to execute the proposed function. Furthermore, if the device executes the proposed function, it can transmit the results directly to the client that requested the function, saving a message delay. If the quorum of devices used to select and execute proposed functions is itself selected by a quorum, then one of the devices of the system can be an inexpensive device having limited computational ability or storage capacity.
摘要:
A distributed computing system can achieve a generalized consensus, enabling commands that commute to be selected in any order. A leader can learn of previously selected sequences of commands, and can propose a compatible sequence of commands. Devices can select a sequence of commands that is compatible with previously selected sequences. Additional commands can be selected by selecting a sequence of commands comprising a previously selected sequence and the additional commands. Further efficiencies can be realized if the devices receive proposals directly from clients. Two or more proposals arriving in varying orders at the various clients may be selected in varying orders. However, if those proposals commute, a generalized consensus nevertheless exists despite the variations, enabling the system to continue efficient operation. To conserve memory, a checkpoint command that does not commute with any other command can be used to secure a sequence of commands for archiving or deletion.
摘要:
A mesh connected local area network provides automatic packet switching and routing between host computers coupled to the network. The network has a multiplicity of cut-through, nonblocking switches, each capable of simultaneously routing a multiplicity of data packets. Low host-to-host latency is achieved through the use of cut-through switches with separate internal buffers for each packet being routed. The switches are interconnected with one another and are coupled to the host computers of the network by point to point full duplex links. While each switch can be coupled to ten or more network members, i.e., switches and hosts, each link is coupled to only two network members and is dedicated to carrying signals therebetween. Whenever a new switch or link is added to the network, and whenever a switch or link fails, the switches in the network automatically reconfigure the network by recomputing the set of legal paths through the network.
摘要:
A distributed computing system can operate in the face of malicious failures on the part of some of its constituent devices, and provide a minimum of message delays between receiving a client request and providing a response, when each device within the system verifies the sender of any message it receives, and the propriety of the message.
摘要:
A distributed computing system can operate in the face of malicious failures on the part of some of its constituent devices when each device within the system verifies the sender of any message it receives, and the propriety of the message. The sender can be verified through message authentication schemes or digital signature schemes, though message authentication can provide a more computationally efficient solution. The propriety of a message can be verified by receiving a sufficiently large number of equivalent, properly authenticated messages such that, even if every malicious device transmitted a message, at least one message would have been sent by a properly functioning device. If the number of malicious devices is represented by the variable “M”, a sufficient number of equivalent, properly authenticated messages to verify that the message is true can be any number of messages greater than M. Furthermore, the receipt of more than 2M equivalent properly authenticated messages can allow the receiving device to prove the propriety of the message to any device it forwards the messages onto. The proper operation of the distributed computing system can, therefore, proceed in the face of M number of malicious failures and F number of total failures, which can include malicious and non-malicious failures, if the number of constituent devices in the distributed computing system is greater than 2F+M.
摘要:
System and method for implementing a distributed state machine in which consistency is maintained despite the failure of any number of processes and communication paths. This machine and method are suitable for systems with modest reliability requirements that do not justify the expense of an extremely fault tolerant, real-time implementation. One process in a network of server processes is chosen as the leader, and that leader is responsible for broadcasting state machine commands to the other processes. The commands are numbered consecutively, and they are recorded in stable storage by the processes. Each command is broadcast through a uniquely numbered ballot or referendum, and each process participating in a ballot may either vote to accept the command or not vote. To be issued, a command must be voted for by a majority of the processes in the system. Each issued command is stored by each of the processes in the majority set which voted for it, and since any two majority sets must have at least one process in common, any command which has been issued will appear in the store of at least one process of any majority set participating in a subsequent ballot. When a new leader is chosen, messages are exchanged between the new leader and the other processes in the system to ensure that each of the processes has all of the commands that the other processes have. As part of this procedure, any command for which one of the processes has previously voted but does not have a command number is broadcast as a proposed command in a new ballot.
摘要:
A distributed computing system can operate in the face of malicious failures on the part of some of its constituent devices, and provide a minimum of message delays between receiving a client request and providing a response, when each device within the system verifies the sender of any message it receives, and the propriety of the message.
摘要:
A conflict tolerant message delay reducing consensus algorithm is presented for operating a distributed computing system. The devices of the distributed computing system can directly receive client requests, and can execute the requests and respond directly to the clients, saving message delays. If there is a conflict, the ultimately selected request can be the request submitted by the client with the highest client identifier. A device can change its vote, and execute a different request, if it is made by a client having a more dominant client identifier. All but one of the clients can also be a device implementing the system. A device that has executed a requested function may no longer submit a request in the same step. Consequently, a request is executed by the system when all devices have executed the request. If one or more devices fails, any fault tolerant consensus algorithm can be used.