Scalable consensus protocol
First Claim
Patent Images
1. A system, comprising:
- a plurality of nodes coupled to a network, wherein at least a subset of the plurality of nodes are each configured to maintain a replica of a state machine; and
the plurality of nodes are classified into a plurality of non-overlapping classes, and a first class of the plurality of non-overlapping classes comprises multiple nodes that are each a current participant in a consensus protocol for controlling transitions of the state machine such that respective state machine replicas maintained by at least one node in the first class and one or more nodes in a second class of the plurality of non-overlapping classes are transitioned to a state upon at least some of the multiple nodes of the first class accepting a proposal to change the state of said state machine according to the consensus protocol, the second class comprising nodes that are not current participants in the consensus protocol but which are reclassifiable into the first class; and
the multiple nodes in the first class are each configured to act on the proposal for a transition of the state machine in order to collectively accept or deny that proposal according to the consensus protocol.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a system comprises a plurality of nodes coupled to a network. At least a subset of the nodes are configured to maintain a replica of a state machine. The nodes are classified into a plurality of non-overlapping classes. A first class comprises at least one node that is a current participant in a consensus protocol to control transitions of the state machine. A second class comprises nodes that are not current participants in the consensus protocol but which are reclassifiable into the first class. The node(s) in the first class are configured to act on a proposal for a transition of the state machine according to the consensus protocol.
51 Citations
32 Claims
-
1. A system, comprising:
-
a plurality of nodes coupled to a network, wherein at least a subset of the plurality of nodes are each configured to maintain a replica of a state machine; and the plurality of nodes are classified into a plurality of non-overlapping classes, and a first class of the plurality of non-overlapping classes comprises multiple nodes that are each a current participant in a consensus protocol for controlling transitions of the state machine such that respective state machine replicas maintained by at least one node in the first class and one or more nodes in a second class of the plurality of non-overlapping classes are transitioned to a state upon at least some of the multiple nodes of the first class accepting a proposal to change the state of said state machine according to the consensus protocol, the second class comprising nodes that are not current participants in the consensus protocol but which are reclassifiable into the first class; and the multiple nodes in the first class are each configured to act on the proposal for a transition of the state machine in order to collectively accept or deny that proposal according to the consensus protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer accessible storage medium storing a plurality of instructions which, when executed on a first node of a plurality of nodes:
-
maintain a first replica of a state machine on the first node, wherein one or more other nodes of the plurality of nodes also maintain replicas of the state machine, and wherein the plurality of nodes are classified into a plurality of non-overlapping classes including a first class that comprises multiple nodes that are each a current participant in a consensus protocol for controlling transitions of the state machine such that respective state machine replicas maintained by at least one node in the first class and one or more nodes in a second class of the plurality of non-overlapping classes are transitioned to a state upon at least some of the multiple nodes of the first class accepting a proposal to change the state of said state machine according to the consensus protocol, the second class comprising nodes that are not current participants in the consensus protocol but which are reclassifiable into the first class; and responsive to the first node being in the first class, act on the proposal for a transition of the state machine in coordination with one or more other nodes of the first class in order to collectively accept or deny that proposal according to the consensus protocol. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer accessible storage medium storing a plurality of instructions which, when executed on a first node of a plurality of nodes:
-
maintain a first replica of a state machine on the first node, wherein one or more other nodes of the plurality of nodes also maintain replicas of the state machine, and wherein the plurality of nodes are classified into a plurality of non-overlapping classes including a first class that comprises multiple nodes that are each a current participant in a consensus protocol for controlling transitions of the state machine such that respective state machine replicas maintained by at least one node in the first class and one or more nodes in a second class of the plurality of non-overlapping classes are transitioned to a state upon at least some of the multiple nodes of the first class accepting a proposal to change the state of said state machine according to the consensus protocol, the second class comprising nodes that are not current participants in the consensus protocol but which are reclassifiable into the first class; transmit the proposal for a transition of the state machine to cause the proposal to be evaluated according to the consensus protocol by the multiple nodes in the first class and not by nodes in the second class. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A method, comprising:
-
for a plurality of nodes that comprises at least a subset of nodes that each maintain a respective replica of a state machine, classifying the plurality of nodes into a plurality of non-overlapping classes including a first class that comprises multiple nodes that are each a current participant in a consensus protocol for controlling transitions of a state machine such that respective state machine replicas maintained by at least one node in the first class and one or more nodes in a second class of the plurality of non-overlapping classes are transitioned to a state upon at least some of the multiple nodes of the first class accepting a proposal to change the state of said state machine according to the consensus protocol, the second class comprising nodes that are not current participants in the consensus protocol but which are reclassifiable into the first class; and one of the plurality of nodes detecting that a number of nodes in the first class is less than a desired number; and the one of the plurality of nodes generating the proposal to propose that a selected one of the plurality of nodes in the second class be added to the first class responsive to the detecting. - View Dependent Claims (28, 29, 30, 31, 32)
-
Specification