Generalized paxos
AssigneeMicrosoft Corporation
InventorLeslie Lamport
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorLeslie Lamport
Estimating the term…
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 method for selecting a proposed command structure in a distributed computing system, wherein a command structure represents all equivalent sequences of functions, and wherein a prefix of a larger command structure is a smaller command structure such that one or more functions can be appended to the smaller command structure to obtain the larger command structure, the method comprising:
A method for selecting a proposed command structure in a distributed computing system, wherein a command structure represents all equivalent sequences of functions, and wherein a prefix of a larger command structure is a smaller command structure such that one or more functions can be appended to the smaller command structure to obtain the larger command structure, the method comprising:
A computer-readable medium having computer-executable instructions for selecting a proposed command structure in a distributed computing system, wherein a command structure represents all equivalent sequences of functions, and wherein a prefix of a larger command structure is a smaller command structure such that one or more functions can be appended to the smaller command structure to obtain the larger command structure, the computer executable instructions performing steps comprising:
A computer-readable medium having computer-executable instructions for selecting a proposed command structure in a distributed computing system, wherein a command structure represents all equivalent sequences of functions, and wherein a prefix of a larger command structure is a smaller command structure such that one or more functions can be appended to the smaller command structure to obtain the larger command structure, the computer executable instructions performing steps comprising:
A computing device in a distributed computing system comprising:
A computing device in a distributed computing system comprising:
A command structure comprising an array of functions, wherein pairs of the functions that do not commute are ordered with respect to each function within the pairs of functions, and wherein pairs of the functions that do commute are indicated in a manner that enables all equivalent sequences of functions to be determined from the array of functions, wherein each equivalent sequence of functions results in an equivalent state of a device executing a sequence of functions, and further wherein appending a first function to the command structure does not change the command structure if the first function is already in the array of functions as indicated by function identifiers assigned to each function such that multiple requests of a function from a client are each assigned a different function identifier.
Dependencies are inferred from the claim text.