IP Library Granted Patent US 8,055,711
Granted Patent B2
US 8,055,711 · App. 11/262,306 · Granted Nov 8, 2011

Non-blocking commit protocol systems and methods

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,055,711
App. No.
11/262,306
Granted
Nov 8, 2011
Kind
B2
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.

Claims (49)

1. A distributed system configured to resolve an atomic transaction comprising multiple transactions among a set of parties within the distributed system, the distributed system comprising:

a plurality of participants, each of the plurality of participants residing on a node of a computer system and in communication with each of the other of the plurality of participants; and

a coordinator residing on a node of the computer system and in communication with each of the plurality of participants, wherein at least one of the plurality of participants resides on the same node of the computer system as the coordinator;

wherein the coordinator is configured to:

receive one or more prepared messages from one or more of the plurality of participants, each prepared message indicating whether the sending participant can commit a transaction of the atomic transaction;

decide to either commit or abort the atomic transaction based on the received prepared messages; and

send the decision to either commit or abort the atomic transaction to two or more of the plurality of participants;

wherein each of the plurality of participants is configured to:

receive a prepare message, the prepare message indicating that the participant should commit a transaction of the atomic transaction;

determine whether the participant can commit the transaction;

send a prepared message to the coordinator, the prepared message indicating whether the participant can commit the transaction;

receive decision messages from two or more of the plurality of participants which are different than the coordinator, each decision message indicating that the sending participant has either committed or aborted a transaction of the atomic transaction;

if communication with the coordinator is available, receive the decision to either commit or abort the atomic transaction from the coordinator;

if the decision is received from the coordinator, decide to either commit or abort the transaction based on the received decision;

if communication with the coordinator is not available and the decision was not received from the coordinator, decide to either commit or abort the transaction based on the received decision messages from the two or more of the plurality of participants which are different than the coordinator; and

send the participant's decision to either commit or abort the transaction to each of the other of the plurality of participants with which communication is available.

2. The distributed system of claim 1 , wherein the coordinator is further configured to decide to:

commit the atomic transaction if prepared messages have been received from each of the plurality of participants and each received prepared message indicates that the sending participant can commit a transaction of the atomic transaction; and

abort the atomic transaction if at least one prepared message has been received from one of the plurality of participants and the received prepared message indicates that the sending participant cannot commit a transaction of the atomic transaction.

3. The distributed system of claim 1 , wherein each of the plurality of participants is further configured to decide to:

commit the transaction if a decision to commit the atomic transaction is received from the coordinator; and

abort the transaction if a decision to abort the atomic transaction is received from the coordinator.

4. The distributed system of claim 2 , wherein the coordinator is further configured to abort the transaction if communication between the coordinator and one of the plurality of participants is unavailable.

5. The distributed system of claim 1 , wherein each of the plurality of participants is further configured to commit the transaction if all of the received one or more decision messages indicate that the sending participant has committed a transaction of the atomic transaction.

6. The distributed system of claim 1 , wherein each of the plurality of participants is further configured to abort the transaction if one of the received one or more decision messages indicate that the sending participant has aborted a transaction of the atomic transaction.

7. The distributed system of claim 1 , further comprising a shared participant residing on the same node of the computer system as the coordinator and in communication with each of the plurality of participants, the shared participant configured to:

receive a prepare message from an initiator, the prepare message indicating that the shared participant should commit a transaction of the atomic transaction;

determine whether the shared participant can commit the transaction;

send a prepared message to the coordinator, the prepared message indicating whether the shared participant can commit the transaction;

receive one or more decision messages from one or more of the plurality of participants, each decision message indicating that the sending participant has either committed or aborted a transaction of the atomic transaction; and

decide to either commit or abort the transaction based on the received one or more decision messages.

8. The method of claim 1 , wherein each of the plurality of participants is further configured to:

determine that communication with one of the plurality of participants was previously unavailable and has become available; and

send the participant's decision to either commit or abort the transaction to the previously unavailable one of the plurality of participants.

9. The method of claim 8 , wherein said determination that communication with one of the plurality of participants was previously unavailable and has become available is based on a message received from said previously unavailable one of the plurality of participants.

10. The method of claim 1 , wherein each of the plurality of participants is further configured to:

receive a request message from one or more of the plurality of participants, the request message requesting the participant's decision to either commit or abort the transaction; and

send the participant's decision to either commit or abort the transaction to one or more of the other of the plurality of participant from which a request message was received.

11. A method of resolving an atomic transaction comprising multiple transactions among a plurality of participants, each participant residing on a node of a distributed computer system, the method comprising:

sending, by the one or more computer processors of each of the plurality of participants, a prepared message to a coordinator, the coordinator residing on the same node as at least one of the plurality of participants, the prepared message indicating that the sending participant is prepared to commit a transaction of the atomic transaction;

receiving, by each of a first subset of two or more of the plurality of participants which are different than the coordinator, a decision from the coordinator to either commit or abort the atomic transaction;

determining, by each of a second subset of one or more of the plurality of participants, that communication with the coordinator is not available and that no decision from the coordinator was received;

deciding, by the one or more computer processors of each of the first subset of the plurality of participants, to either commit or abort the transaction;

sending, by the one or more computer processors of two or more of the first subset of the plurality of participants, the decision by the sending participant to either commit or abort the transaction to each of the second subset of the plurality of participants with which communication is available;

receiving, by each of the second subset of the plurality of participants, a decision to either commit or abort the transaction from two or more of the first subset of the plurality of participants; and

deciding, by the one or more computer processors of each of the second subset of the plurality of participants, to either commit or abort the transaction based on the received decisions from the two or more of the first subset of the plurality of participants.

12. The method of claim 11 , further comprising receiving, by each of the plurality of participants, a prepare message from an initiator, the prepare message indicating that the receiving participant should prepare for the transaction.

13. The method of claim 11 , wherein receiving a decision from the coordinator comprises receiving a commit message from the coordinator node to commit the transaction.

14. The method of claim 11 , wherein receiving a decision from the coordinator comprises receiving an abort message from the coordinator node to abort the transaction.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2011
From: IVY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 026083/0036 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2011
From: ISILON SYSTEMS LLC
To: IVY HOLDING, INC.
Reel/Frame 026069/0925 →
MERGER Recorded Mar 31, 2011
From: ISILON SYSTEMS, INC.
To: ISILON SYSTEMS LLC
Reel/Frame 026066/0785 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2006
From: FACHAN, NEAL T.; GODMAN, PETER J.; PASSEY, AARON J.
To: ISILON SYSTEMS, INC.
Reel/Frame 017472/0666 →