IP Library Granted Patent US 8,625,464
Granted Patent B2
US 8,625,464 · App. 12/917,180 · Granted Jan 7, 2014

Systems and methods for providing a quiescing protocol

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,625,464
App. No.
12/917,180
Granted
Jan 7, 2014
Kind
B2
Abstract

The systems and methods of the present invention provide a quiescing protocol. In one embodiment, nodes of a system utilize the protocol to complete processing until they reach a consistent state. In one embodiment, a coordinator initiates the quiescing process and the nodes communicate with each other to determine whether their messages have been processed and communicate with the coordinator to determine when all of the messages have been processed.

Claims (57)

1. A distributed system configured to quiesce a set of messages, the distributed system comprising:

a plurality of nodes, each node comprising one or more physical processors;

a first subset of two or more of the plurality of nodes, each node of the first subset further comprising a participant process;

a second subset of one or more of the plurality of nodes, each node of the second subset further comprising a coordinator process; and

a set of messages sent and received by the plurality of nodes, the set of messages comprising:

a relevant message which changes a state of the distributed system;

a probe message which requests a probe-response message;

the probe-response message which indicates that the sender has processed all received relevant messages from the recipient;

a checkpoint message which indicates that the sender has received a probe-response message from each of the plurality of nodes;

a continue message requesting a continue-response message; and

the continue-response message which indicates whether the sender has received a relevant message from one or more of the plurality of nodes;

wherein each participant process is configured to, when executed by at least one node of the first subset:

suspend generation of relevant messages;

maintain received-message information which indicates whether a relevant message has been received from the plurality of nodes;

send probe messages to each of the plurality of nodes;

receive probe-response messages from each of the plurality of nodes;

receive probe messages from each of the plurality of nodes; and

for each probe message received, send the probe-response message to the node which sent the probe message; and

wherein each coordinator process is configured to, when executed by at least one node of the second subset:

receive checkpoint messages from each of the plurality of nodes;

send continue messages to each of the plurality of nodes;

receive continue-response messages from each of the plurality of nodes; and

based on the received continue-response messages, determine whether the distributed system has been quiesced.

2. The distributed system of claim 1 , wherein the first subset and the second subset are the same.

3. The distributed system of claim 2 , wherein both the first subset and the second subset comprise all of the plurality of nodes.

4. The distributed system of claim 2 , wherein the participant process and the coordinator process are implemented as a single module.

5. The distributed system of claim 1 , wherein the first subset and the second subset are different.

6. The distributed system of claim 1 , wherein the first subset comprises all of the plurality of nodes.

7. A distributed system configured to quiesce a set of messages, the distributed system comprising:

a plurality of nodes, each node comprising at least one physical processor; and

one or more executable coordinator processes, each coordinator process configured to, when executed by one or more of the plurality of nodes:

receive one or more first messages from one or more of the plurality of nodes, each first message indicating that the node, which has sent that first message, has sent a second message to each of the plurality of nodes and has received a third message from each of the plurality of nodes, wherein the second message is a message requesting the third message, and wherein the third message indicates that all messages that change a state of the distributed system previously received by the node, which has received that second message, from the node, which has sent that second message, have been processed;

in response to receiving the one or more first messages, send fourth messages to the plurality of nodes, wherein each fourth message is a message requesting a fifth message;

receive one or more fifth messages from one or more of the plurality of nodes in response to the fourth messages, each fifth message indicating whether the node, which has sent that fifth message, has received a message that changes a state of the distributed system; and

based on one or more received fifth messages, determine whether the distributed system has been quiesced by determining whether any of the plurality of nodes have received any new messages that change a state of the distributed system; and

when it is determined that any of the plurality of nodes received a new message that changes a state of the distributed system, sending and receiving additional messages until it is determined from one or more received messages that none of the plurality of nodes have received any new messages that change a state of the distributed system.

8. The distributed system of claim 7 , wherein each of the plurality of nodes further comprises one of the one or more executable coordinator processes.

9. The distributed system of claim 7 , wherein the plurality of nodes includes at least one coordinator node, the coordinator node further comprising one of the one or more executable coordinator processes.

10. The distributed system of claim 9 , wherein sending the fourth messages includes sending a remote message to at least one of the plurality of nodes, and receiving the one or more first messages and fifth messages includes receiving a remote message from at least one of the plurality of nodes.

11. The distributed system of claim 10 , wherein sending the fourth messages further includes sending a local message to the coordinator node, and receiving the one or more first messages and fifth messages further includes receiving a local message from the coordinator node.

12. The distributed system of claim 7 , wherein the fifth message comprises information about the number of messages that change a state of the distributed system which have been received by the node which has sent the fifth message.

13. The distributed system of claim 7 , wherein the fifth message comprises a Boolean value.

14. A distributed system configured to quiesce a set of messages, the distributed system comprising:

a plurality of nodes, each node comprising at least one physical processor and at least one executable software module;

wherein the at least one executable software module of each of the plurality of nodes is configured to, when executed by the at least one physical processor:

suspend generation of new messages that change a state of the distributed system;

maintain received-message information which indicates whether a message that changes a state of the distributed system has been received from the plurality of nodes;

send first messages to the plurality of nodes, each first message requesting a response;

receive one or more second messages from one or more of the plurality of nodes, each second message indicating that all messages which change a state of the distributed system sent by the node, which received the second message, to the node, which sent the second message, have been processed;

receive one or more third messages from one or more of the plurality of nodes, each third message requesting a response;

for each third message received, send a fourth message to the node, which sent the third message, each fourth message indicating that all messages which change a state of the distributed system sent by the node, which sent the third message, to the node, which received the third message, have been processed;

determine whether the distributed system has been quiesced at least in part by determining whether any of the plurality of nodes have received any new messages that change a state of the distributed system; and

when it is determined that any of the plurality of nodes received a new message that changes a state of the distributed system, sending and receiving additional messages until it is determined that none of the plurality of nodes have received any new messages that change a state of the distributed system.

15. The distributed system of claim 14 , wherein sending the first message and fourth messages includes sending a remote message to at least one of the plurality of nodes, and receiving the one or more second messages and third messages includes receiving a remote message from at least one of the plurality of nodes.

16. The distributed system of claim 14 , wherein sending the first messages and fourth message includes sending a local message to the node which is sending the first messages and fourth message, and receiving the one or more second messages and third messages includes receiving a local message from the node which is receiving the one or more second messages and third messages.

17. The distributed system of claim 14 , wherein the received-message information comprises the number of messages that change a state of the distributed system which have been received from the plurality of nodes.

18. The distributed system of claim 14 , wherein the received-message information comprises a Boolean value.

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 →
MERGER Recorded May 12, 2011
From: ISILON SYSTEMS, INC.
To: ISILON SYSTEMS LLC
Reel/Frame 026268/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2011
From: IVY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 026267/0562 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2011
From: ISILON SYSTEMS LLC
To: IVY HOLDING, INC.
Reel/Frame 026267/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2011
From: FACHAN, NEAL T.
To: ISILON SYSTEMS, INC.
Reel/Frame 026237/0291 →