Non-blocking commit protocol systems and methods
First Claim
1. A distributed system configured to process atomic transactions within the distributed system, the distributed system comprising:
- a plurality of participants configured to permit communication among the plurality of participants and to process an atomic transaction;
a coordinator configured to communicate with the plurality of participants;
a distributor configured to communicate with the plurality of participants; and
the plurality of participants further configured to determine whether to commit the atomic transaction based on at least one of messages received from the distributor, messages received from the coordinator, and votes from the plurality of participants.
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.
180 Citations
23 Claims
-
1. A distributed system configured to process atomic transactions within the distributed system, the distributed system comprising:
-
a plurality of participants configured to permit communication among the plurality of participants and to process an atomic transaction;
a coordinator configured to communicate with the plurality of participants;
a distributor configured to communicate with the plurality of participants; and
the plurality of participants further configured to determine whether to commit the atomic transaction based on at least one of messages received from the distributor, messages received from the coordinator, and votes from the plurality of participants. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of resolving a transaction by a participant of a plurality of participants, the method comprising:
-
communicating with the plurality of other participants, a coordinator, and a distributor to determine whether to commit a transaction;
determining whether communication with the coordinator is available;
determining whether communication with the distributor is available; and
if communication with the coordinator and the distributor are not available, sending a voting message to each of the plurality of other participants indicating whether to commit the transaction and receiving voting messages from the plurality of other participants indicating whether to commit the transaction. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for resolving a transaction by a participant of a plurality of participants, the system comprising:
-
means for communicating with the plurality of other participants, a coordinator, and a distributor to determine whether to commit a transaction;
means for determining whether communication with the coordinator is available;
means for determining whether communication with the distributor is available; and
means for sending a voting message to each of the plurality of other participants indicating whether to commit the transaction and receiving voting messages from the plurality of other participants indicating whether to commit the transaction if communication with the coordinator and the distributor are not available.
-
-
21. A method of resolving atomic transactions within a distributed system, the method comprising:
-
sending messages from a plurality of participants to a coordinator indicating that the plurality of participants are prepared for an atomic transaction;
sending a message from the coordinator to a distributor indicating that the plurality of participants are ready to commit the atomic transaction;
sending messages from the distributor to the plurality of participants instructing the plurality of participants to commit the atomic transaction;
sending messages among the plurality of participants indicating that the plurality of participants committed the atomic transaction; and
sending messages from the plurality of participants to the coordinator indicating that the plurality of participants committed the atomic transaction. - View Dependent Claims (22)
-
-
23. A coordinator configured to participate in resolving a transaction within a distributed system, the coordinator comprising:
-
a first module configured to receive from a plurality of participants messages indicating that each of the plurality of participants are prepared to commit a transaction;
a second module configured to send a message to a distributor indicating that the distributor should send a commit message to the plurality of participants instructing the plurality of participants to commit the transaction; and
a third module configured to receive messages from each of the plurality of participants indicating that the plurality of participants have committed the transaction.
-
Specification