The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Jul. 07, 2009
Filed:
Jun. 28, 2002
Leslie B. Lamport, Palo Alto, CA (US);
Leslie B. Lamport, Palo Alto, CA (US);
Microsoft Corporation, Redmond, WA (US);
Abstract
A distributed computing system, having a sufficient number of devices and requiring a sufficiently large number of devices to select any proposal, can maintain synchronization between its constituent devices and respond to client requests with as few as two message delays. A leader can synchronize the devices of the system and establish a safe proposal number for all current and future steps of the system. Devices can then receive client requests directly, treating the request as a proposal having the proposal number determined previously by the leader, and voting for the proposal. If the client receives an indication from a least a quorum of devices, where a quorum can be the minimum number of devices that can be operational at a given time, the client can know that the request was selected. If two or more clients attempt to request different functions at approximately the same time, the system may not select either request, in which case a leader can be requested to determine if any requests may have been selected, and to reestablish a safe proposal number. Systems with fewer devices can also implement the message-delay-reducing algorithm if they can also revert to the standard Paxos algorithm if an insufficient number of devices are operational. Such algorithms can be used to provide an efficient method for determining whether to commit or abort a client transaction.