Non-blocking commit protocol systems and methods
First Claim
1. A distributed system configured to resolve a transaction among a set of parties within the distributed system, the distributed system comprising:
- a plurality of participants configured to permit communication among the plurality of participants and to resolve a transaction;
a coordinator configured to communicate with the plurality of participants to resolve the transaction;
wherein the plurality of participants are configured to determine whether to commit the transaction based on messages from the coordinator, and if not, to determine among the plurality of participants whether to commit the transaction.
12 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are provided for atomic single-failure non-blocking and double-failure non-blocking commitment protocols. The protocols may be used for a variety of transactions that involve two or more parties including an initiator of the transaction, a coordinator of the transaction, and one or more participants in the transaction. The participants notify the coordinator when they are prepared to commit the transaction. The coordinator then determines when to commit or abort the transaction. If the coordinator disconnects from one or more of the participants, the participants can resolve the transaction independently. Some embodiments also include a distributor that interacts with the coordinator and the participants to resolve the transaction. If one or more parties become disconnected from the coordinator or the distributor, the participants vote to determine whether to receive instructions from the coordinator or the distributor.
191 Citations
20 Claims
-
1. A distributed system configured to resolve a transaction among a set of parties within the distributed system, the distributed system comprising:
-
a plurality of participants configured to permit communication among the plurality of participants and to resolve a transaction;
a coordinator configured to communicate with the plurality of participants to resolve the transaction;
wherein the plurality of participants are configured to determine whether to commit the transaction based on messages from the coordinator, and if not, to determine among the plurality of participants whether to commit the transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of resolving a transaction among a set of nodes comprising:
-
determining whether communication with a coordinator node is available;
if communication with the coordinator node is available, receiving messages from the coordinator node indicating whether to commit or abort a transaction; and
if communication with the coordinator node is not available, receiving messages from other nodes involved in the transaction indicating whether to commit or abort the transaction. - View Dependent Claims (10, 11, 12)
-
-
13. A distributed system configured to resolve a transaction among a set of parties within a distributed system, the distributed system comprising:
-
a set of participant nodes configured to permit communication among the plurality of nodes and to resolve a transaction among a set of parties from the plurality of nodes;
an initiator located on a first node configured to communicate with the plurality of participant nodes;
a coordinator located on the first node;
wherein the initiator is further configured to;
receive a start command to start the transaction, add participant nodes to the set of participant nodes after the start of the transaction to form an updated set of participant nodes, and send a message to the coordinator, the message configured to indicate that the initiator is prepared to commit the transaction and to indicate that the participant nodes in the updated set of participant nodes are to be included in the transaction. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method of resolving a transaction among a set of parties within a distributed system, the method comprising:
-
receiving a command to start an transaction;
receiving a first set of participant nodes to be included in the transaction;
receiving additional participant nodes to be included in the transaction;
adding the additional participant nodes to the first set of participant nodes;
receiving a command to commit the transaction; and
sending a message to a coordinator node to prepare for the transaction, the message including the updated first set of participant nodes. - View Dependent Claims (20)
-
Specification