Method for managing proposals in a distributed computing system
First Claim
Patent Images
1. A computer-implemented method, comprising:
- receiving, at a first replicator comprising a first replicated state machine, a first proposal to update a first replicated repository associated with the first replicated state machine from a first application node of a plurality of peer application nodes coupled to a computer network, the first application node running on a first computing device coupled to the network;
receiving, at a second replicator comprising a second replicated state machine, a second proposal to update a second replicated repository associated with the second replicated state machine from a second application node of the plurality of peer application nodes coupled to the computer network, the second application node running on a second computing device coupled to the network;
propagating the first proposal from the first replicator to the second replicator and propagating the second proposal from the second replicator to the first replicator such that both the first and second replicators coordinate to maintain at least the first and second replicated repositories in sync with each other in a real-time manner;
enabling concurrent agreements to be reached on at least the first and second proposals received from at least the first and the second application nodes, each of the peer application nodes being configured to serve as a proposal proposer or a proposal acceptor at any given point in time, wherein the first and second replicated state machines are configured to enable the first replicated state machine to reach agreement on the first proposal concurrently with the second replicated state machine reaching agreement on the second proposal;
precluding repeated preemptions of rounds in attempting to reach agreement on the proposals;
storing in each of the plurality of peer applications nodes coupled to the computer network, using a persistent storage device, a local copy of an ordered global sequence of proposals that includes the first and second proposals, such that the local copy of the ordered global sequence of proposals stored in the persistent storage devices of all peer application nodes in the computer network is maintained to be identical;
periodically, by each peer application node, reclaiming memory space on the respective persistent storage device by a periodic exchange of messages among the other peer application nodes, the exchanged messages providing an indication of those proposals that are determined by the first and second replicated state machines as being no longer required by any of the peer application nodes and that may be deleted from at least the local copy of the ordered global sequence of proposals.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment of the present invention, a replicated state machine comprises a proposal manager, an agreement manager, a collision/back-off timer and a storage reclaimer. The proposal manager facilitates management of proposals issued by a node of a distributed application for enabling coordinated execution of the proposals by all other nodes of the distributed application. The agreement manager facilitates agreement on the proposals. The collision/back-off timer precludes repeated pre-emptions of rounds in attempting to achieve agreement on the proposals. The storage reclaimer reclaims persistent storage utilized for storing at least one of proposal agreements and the proposals.
-
Citations
32 Claims
-
1. A computer-implemented method, comprising:
-
receiving, at a first replicator comprising a first replicated state machine, a first proposal to update a first replicated repository associated with the first replicated state machine from a first application node of a plurality of peer application nodes coupled to a computer network, the first application node running on a first computing device coupled to the network; receiving, at a second replicator comprising a second replicated state machine, a second proposal to update a second replicated repository associated with the second replicated state machine from a second application node of the plurality of peer application nodes coupled to the computer network, the second application node running on a second computing device coupled to the network; propagating the first proposal from the first replicator to the second replicator and propagating the second proposal from the second replicator to the first replicator such that both the first and second replicators coordinate to maintain at least the first and second replicated repositories in sync with each other in a real-time manner; enabling concurrent agreements to be reached on at least the first and second proposals received from at least the first and the second application nodes, each of the peer application nodes being configured to serve as a proposal proposer or a proposal acceptor at any given point in time, wherein the first and second replicated state machines are configured to enable the first replicated state machine to reach agreement on the first proposal concurrently with the second replicated state machine reaching agreement on the second proposal; precluding repeated preemptions of rounds in attempting to reach agreement on the proposals; storing in each of the plurality of peer applications nodes coupled to the computer network, using a persistent storage device, a local copy of an ordered global sequence of proposals that includes the first and second proposals, such that the local copy of the ordered global sequence of proposals stored in the persistent storage devices of all peer application nodes in the computer network is maintained to be identical; periodically, by each peer application node, reclaiming memory space on the respective persistent storage device by a periodic exchange of messages among the other peer application nodes, the exchanged messages providing an indication of those proposals that are determined by the first and second replicated state machines as being no longer required by any of the peer application nodes and that may be deleted from at least the local copy of the ordered global sequence of proposals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A multi-site computing system, comprising:
-
a plurality of distributed computing systems interconnected via a computer network, each of the distributed computing systems including a peer respective replicated state machine that includes a persistent storage device, a replicated repository and a respective application node connected to the respective peer replicated state machine; wherein each peer replicated state machine of the distributed computing systems is configured to; serve as a proposal proposer or a proposal acceptor at any given point in time; manage proposals to update the replicated repository and agreements on the proposals originating from the application node of others of the distributed computing systems, the proposals being propagated to and stored in the persistent storage device of each peer replicated state machine as a local copy of an ordered global sequence of proposals, such that the local copy of the ordered global sequence of proposals stored in the persistent storage devices of all peer application nodes in the computer network is maintained to be identical; enable concurrent agreement to be reached on the proposals such that an agreement on a first proposal received from a first application node of the distributed computing systems may be made concurrently with an agreement on a second proposal received from a second application node of the distributed computing systems; preclude repeated preemptions of rounds in attempting to achieve agreement on the proposals; coordinate execution of the proposals of the local copy of the ordered global sequence of proposals stored in each of the plurality of peer applications nodes, such that the replicated repositories are updated in sync with each other in a real-time manner; and at periodic intervals, reclaim persistent storage in the persistent storage device of each peer replicated state machine, utilized for storing at least one of proposal agreements and proposals by a periodic exchange of messages among the distributed computing systems that provides an indication of those proposals that are determined by the peer respective replicated state machines as being no longer required by any of the distributed computing systems and that may be deleted from at least the local copy of the ordered global sequence of proposals stored in the persistent storage devices of all peer application nodes in the computer network. - View Dependent Claims (28, 29, 30, 31, 32)
-
Specification