Patents by Inventor Leslie Lamport
Leslie Lamport has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 7797457Abstract: The leader server proposing commands or sequences of commands to be executed by a plurality of servers according to an asynchronous consensus algorithm, such as Paxos, is replaced with a synchronous virtual leader agreement algorithm executed by each of the servers. The synchronous agreement algorithm used to determine the virtual leader's actions is called the leader agreement algorithm. The asynchronous consensus agreement algorithm performed by the virtual leader and the servers may be the Paxos algorithm. However, any asynchronous Byzantine agreement algorithm may be used. By replacing the leader in the Paxos consensus algorithm with a synchronous virtual leader agreement algorithm, the Paxos algorithm can survive a Byzantine failure of one or more leader server, as long as the servers are behaving synchronously.Type: GrantFiled: March 10, 2006Date of Patent: September 14, 2010Assignee: Microsoft CorporationInventor: Leslie Lamport
-
Patent number: 7620680Abstract: 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. The sender can be verified through message authentication schemes or digital signature schemes. The propriety of a message can be verified by receiving a sufficiently large number of equivalent, properly authenticated messages. 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.Type: GrantFiled: August 15, 2002Date of Patent: November 17, 2009Assignee: Microsoft CorporationInventor: Leslie Lamport
-
Publication number: 20070214355Abstract: The leader server proposing commands or sequences of commands to be executed by a plurality of servers according to an asynchronous consensus algorithm, such as Paxos, is replaced with a synchronous virtual leader agreement algorithm executed by each of the servers. The synchronous agreement algorithm used to determine the virtual leader's actions is called the leader agreement algorithm. The asynchronous consensus agreement algorithm performed by the virtual leader and the servers may be the Paxos algorithm. However, any asynchronous Byzantine agreement algorithm may be used. By replacing the leader in the Paxos consensus algorithm with a synchronous virtual leader agreement algorithm, the Paxos algorithm can survive a Byzantine failure of one or more leader server, as long as the servers are behaving synchronously.Type: ApplicationFiled: March 10, 2006Publication date: September 13, 2007Applicant: Microsoft CorporationInventor: Leslie Lamport
-
Patent number: 7260611Abstract: New information is introduced to a distributed system at many places. The information impacts data that is replicated throughout the system. The replicas of the data must be synchronized so that changes to the system are accurately reflected. One solution to the synchronized replica problem is a state machine approach. In such an approach, the computers of the network each maintain their own data, which is kept in the same state as the data of the other computers by processing the identical commands in the identical order. To ensure that all commands are executed in the same order, a lead process is given the task of assigning command sequence numbers. However, using a single lead process introduces a bottleneck in the distributed system by requiring that all commands to change data go through the lead process to be assigned an execution order. The invention divides the command ordering among multiple lead processes.Type: GrantFiled: November 21, 2002Date of Patent: August 21, 2007Assignee: Microsoft CorporationInventors: Leslie Lamport, Aamer Hydrie, Demetrios Achlioptas
-
Publication number: 20060184627Abstract: 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.Type: ApplicationFiled: February 14, 2005Publication date: August 17, 2006Applicant: Microsoft CorporationInventors: Jonathan Howell, Jacob Lorch, John Douceur, Leslie Lamport
-
Publication number: 20060168011Abstract: 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.Type: ApplicationFiled: November 23, 2004Publication date: July 27, 2006Applicant: Microsoft CorporationInventor: Leslie Lamport
-
Publication number: 20060136781Abstract: 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.Type: ApplicationFiled: November 23, 2004Publication date: June 22, 2006Applicant: Microsoft CorporationInventor: Leslie Lamport
-
Publication number: 20050283659Abstract: A distributed computing system can be operated in a fault tolerant manner using a collection of auxiliary computing devices and more main computing devices than the number of faults the system can tolerate. A quorum of all of the main computing devices can be used. In the event of a failure, an alternative quorum from a selected set of quorums, comprising at least one main computing device and some or all of the auxiliary computing devices, can be used to complete pending operations and to select a new set of quorums. Alternatively, another state machine, comprising at least one main computing device and some or all of the auxiliary computing devices, can select a new quorum comprising the currently operating main computing devices, and the new quorum can then complete pending operations and can continue to select proposals using the proposal number assigned by the other state machine.Type: ApplicationFiled: June 18, 2004Publication date: December 22, 2005Applicant: Microsoft CorporationInventors: Leslie Lamport, Michael Massa
-
Publication number: 20050283373Abstract: A distributed computing system can be operated in a fault tolerant manner using a collection of auxiliary computing devices and more main computing devices than the number of faults the system can tolerate. A quorum of all of the main computing devices can be used. In the event of a failure, an alternative quorum from a selected set of quorums, comprising at least one main computing device and some or all of the auxiliary computing devices, can be used to complete pending operations and to select a new set of quorums. Alternatively, another state machine, comprising at least one main computing device and some or all of the auxiliary computing devices, can select a new quorum comprising the currently operating main computing devices, and the new quorum can then complete pending operations and can continue to select proposals using the proposal number assigned by the other state machine.Type: ApplicationFiled: June 18, 2004Publication date: December 22, 2005Applicant: Microsoft CorporationInventors: Leslie Lamport, Michael Massa
-
Publication number: 20050198106Abstract: 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.Type: ApplicationFiled: December 30, 2003Publication date: September 8, 2005Applicant: Microsoft CorporationInventor: Leslie Lamport
-
Publication number: 20050149609Abstract: 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.Type: ApplicationFiled: December 30, 2003Publication date: July 7, 2005Applicant: Microsoft CorporationInventor: Leslie Lamport
-
Publication number: 20040103138Abstract: New information is introduced to a distributed system at many places. The information impacts data that is replicated throughout the system. The replicas of the data must be synchronized so that changes to the system are accurately reflected. One solution to the synchronized replica problem is a state machine approach. In such an approach, the computers of the network each maintain their own data, which is kept in the same state as the data of the other computers by processing the identical commands in the identical order. To ensure that all commands are executed in the same order, a lead process is given the task of assigning command sequence numbers. However, using a single lead process introduces a bottleneck in the distributed system by requiring that all commands to change data go through the lead process to be assigned an execution order. The invention divides the command ordering among multiple lead processes.Type: ApplicationFiled: November 21, 2002Publication date: May 27, 2004Applicant: Microsoft CorporationInventors: Leslie Lamport, Aamer Hydrie, Demetrios Achlioptas
-
Patent number: 6463532Abstract: A system and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system that is effective even when only a single surviving processor is operational and is achieved through joint implementation of a virtual state machine utilizing a sequence of numbered input commands. System synchronization is achieved by having all of the processors agree on the sequence of input commands so that they execute the same virtual state machine. Input commands are numbered consecutively and the processors use a set of shared stores (e.g. disk drives) to communicate amongst themselves requests (i.e. ballots) for new state machine inputs (or commands) and state machine inputs that have already been chosen (i.e. committed commands). A consensus process is used to decide upon (or commit) each command and this consensus is achieved using a majority of known system stores rather than a majority of known processors.Type: GrantFiled: February 23, 1999Date of Patent: October 8, 2002Assignee: Compaq Computer CorporationInventors: James M. Reuter, Leslie Lamport, Eliezer Gafni
-
Patent number: 6374285Abstract: The invention provides a method for acquiring a lock in a network of processors with globally ordered remote-writes. A process requesting a lock changes an associated ticket number from zero to one. Next, the process determines if every other process attempting to acquire the lock has a ticket number of zero. If true, the request for the lock is immediately granted. Otherwise, if false, the process changes its ticket number to a value greater than that of every other process, and the process waits until its ticket number is the lowest non-zero ticket number, in which case the lock is granted with mutual exclusion.Type: GrantFiled: May 15, 1998Date of Patent: April 16, 2002Assignee: Compaq Computer CorporationInventors: Daniel J. Scales, Leslie Lamport
-
Patent number: 6226717Abstract: A system and method exclusively accesses a shared storage location using a shared algorithm. Competing processors follow the algorithm for reserving exclusive access to the shared storage location. Those competing processors that have not successfully reserved exclusive access honor the reservation of the successful processor and delay their own access attempts. Two critical storage blocks and two delay times are typically used during an attempt to reserve exclusive access for a processor.Type: GrantFiled: February 4, 1999Date of Patent: May 1, 2001Assignee: Compaq Computer CorporationInventors: James M. Reuter, Leslie Lamport, Eliezer Gafni