IP Library Granted Patent US 10,552,274
Granted Patent B1
US 10,552,274 · App. 15/668,411 · Granted Feb 4, 2020

Asynchronous in-memory data checkpointing for distributed computing systems

Inventors: Junping Zhao (Beijing, CN); Kevin Xu (Warren, NJ)
Assignee: EMC IP Holding Company LLC
G06F11/2074G06F11/1407G06F11/1464G06F11/2082H04L67/1095G06F11/1451G06F11/1469G06F16/128
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 10,552,274
App. No.
15/668,411
Granted
Feb 4, 2020
Kind
B1
Abstract

Techniques are provided for implementing asynchronous checkpointing of in-memory data in a distributed computing system. For example, a method includes processing a stream of data records by an operator executing on a computing node, maintaining in a system memory, an operator state which is generated in response to the operator processing the stream of data records, and performing an asynchronous checkpointing process. The asynchronous checkpointing process includes enqueuing a checkpoint of the operator state in a first queue, wherein the first queue is maintained in the system memory, and executing a background worker thread to dequeue the checkpoint of the operator state from the first queue and store the checkpoint of the operator state in a data store. The operator continues with processing the stream of data records during the asynchronous checkpointing process.

Claims (65)

1. A method, comprising:

processing a stream of data records by an operator executing on a computing node;

maintaining in a system memory of the computing node, an operator state which is generated in response to the operator processing the stream of data records; and

performing an asynchronous checkpointing process by a checkpointing system executing on the computing node, wherein the asynchronous checkpointing process comprises:

enqueuing a checkpoint of the operator state in a first queue, wherein the first queue is maintained in the system memory of the computing node;

executing a background worker thread on the computing node to dequeue the checkpoint of the operator state from the first queue and store the checkpoint of the operator state in a data store;

sending metadata to a central checkpoint manager, wherein the metadata comprises information which is configured to enable the central checkpoint manager to track a status of the asynchronous checkpointing process;

wherein the asynchronous checkpointing process is performed independent of asynchronous checkpointing operations performed by one or more other operators processing the stream of data records; and

wherein the operator continues with processing the stream of data records during the asynchronous checkpointing process.

2. The method of claim 1 , wherein enqueuing the checkpoint of the operator state in the first queue comprises:

serializing the operator state, and

storing a checkpoint of the serialized operator state in the first queue.

3. The method of claim 1 , wherein the asynchronous checkpointing process further comprises:

dequeuing, by the background worker thread, a plurality of checkpoints of operator states of different operators, which are stored in the first queue;

batch processing the plurality of checkpoints dequeued from the first queue to store the plurality of checkpoints in the data store.

4. The method of claim 3 , wherein the asynchronous checkpointing process further comprises compressing the plurality of checkpoints of the operator states, by the background worker thread, and storing compressed checkpoints of the operator states in the data store.

5. The method of claim 1 , wherein the first queue in the system memory comprises a first-in-first-out (FIFO) queue structure.

6. The method of claim 1 , wherein enqueuing the checkpoint of the operator state in the first queue comprises embedding metadata with the checkpoint of the operator state, wherein the metadata comprises a unique checkpoint identifier of the checkpoint, and a window identifier which identifies a block of data records within the stream of data records which corresponds to the checkpoint.

7. The method of claim 1 , wherein the asynchronous checkpointing process further comprises enqueuing, by the background worker thread, a checkpoint acknowledgement record in a second queue which resides in the system memory, after the checkpoint of the operator state is stored in the data store, wherein the checkpoint acknowledgement record indicates that the storage of the checkpoint of the operator state in the data store is completed.

8. The method of claim 7 , wherein the asynchronous checkpointing process further comprises:

dequeuing, by the background worker thread, the checkpoint acknowledgement record from the second queue; and

sending the acknowledgment record to the central checkpoint manager.

9. The method of claim 8 , wherein the metadata that is sent to the central checkpoint manager comprises metadata contained in the checkpoint acknowledgement record, wherein the metadata comprises a unique checkpoint identifier of the checkpoint, and a window identifier which identifies a block of data records within the stream of data records which corresponds to the checkpoint;

wherein the central checkpoint manager maintains global checkpoint metadata associated with a topology of operators that are configured to process the stream of data records;

wherein the global metadata is utilized to track a completion of a checkpoint operation by all operators within the topology of operators with respect to checkpoints of the operator states of all the operators which have a same window identifier.

10. An article of manufacture comprising a processor-readable storage medium having stored program code which is executable by a processor to implement a method which comprises:

processing a stream of data records by an operator executing on a computing node;

maintaining in a system memory of the computing node, an operator state which is generated in response to the operator processing the stream of data records; and

performing an asynchronous checkpointing process by a checkpointing system executing on the computing node, wherein the asynchronous checkpointing process comprises:

enqueuing a checkpoint of the operator state in a first queue, wherein the first queue is maintained in the system memory of the computing node;

executing a background worker thread on the computing node to dequeue the checkpoint of the operator state from the first queue and store the checkpoint of the operator state in a data store;

sending metadata to a central checkpoint manager, wherein the metadata comprises information which is configured to enable the central checkpoint manager to track a status of the asynchronous checkpointing process;

wherein the asynchronous checkpointing process is performed independent of asynchronous checkpointing operations performed by one or more other operators processing the stream of data records; and

wherein the operator continues with processing the stream of data records during the asynchronous checkpointing process.

11. The article of manufacture of claim 10 , wherein enqueuing the checkpoint of the operator state in the first queue comprises:

serializing the operator state, and

storing a checkpoint of the serialized operator state in the first queue.

12. The article of manufacture of claim 10 , wherein the program code that is executable by the processor to perform the asynchronous checkpointing process further comprises program code that is executable by the processor to perform a method which comprises:

dequeuing, by the background worker thread, a plurality of checkpoints of operator states of different operators, which are stored in the first queue;

batch processing the plurality of checkpoints dequeued from the first queue to store the plurality of checkpoints in the data store.

13. The article of manufacture of claim 12 , wherein the program code that is executable by the processor to perform the asynchronous checkpointing process further comprises program code that is executable by the processor to perform a method which comprises compressing the plurality of checkpoints of the operator states, by the background worker thread, and storing compressed checkpoints of the operator states in the data store.

14. The article of manufacture of claim 10 , wherein the first queue in the system memory comprises a first-in-first-out (FIFO) queue structure.

15. The article of manufacture of claim 10 , wherein enqueuing the checkpoint of the operator state in the first queue comprises embedding metadata with the checkpoint of the operator state, wherein the metadata comprises a unique checkpoint identifier of the checkpoint, and a window identifier which identifies a block of data records within the stream of data records which corresponds to the checkpoint.

16. The article of manufacture of claim 10 , wherein the program code that is executable by the processor to perform the asynchronous checkpointing process further comprises program code that is executable by the processor to perform a method which comprises enqueuing, by the background worker thread, a checkpoint acknowledgement record in a second queue which resides in the system memory, after the checkpoint of the operator state is stored in the data store, wherein the checkpoint acknowledgement record indicates that the storage of the checkpoint of the operator state in the data store is completed.

17. The article of manufacture of claim 16 , wherein the program code that is executable by the processor to perform the asynchronous checkpointing process further comprises program code that is executable by the processor to perform a method which further comprises:

dequeuing, by the background worker thread, the checkpoint acknowledgement record from the second queue; and

sending the acknowledgment record to the central checkpoint manager.

18. The article of manufacture of claim 17 , wherein the metadata that is sent to the central checkpoint manager comprises metadata contained in the checkpoint acknowledgement record, wherein the metadata comprises a unique checkpoint identifier of the checkpoint, and a window identifier which identifies a block of data records within the stream of data records which corresponds to the checkpoint;

wherein the central checkpoint manager maintains global checkpoint metadata associated with a topology of operators that are configured to process the stream of data records;

wherein the global metadata is utilized to track a completion of a checkpoint operation by all operators within the topology of operators with respect to checkpoints of the operator states of all the operators which have a same window identifier.

19. A computing node comprising:

a system memory configured to store program instructions; and

at least one processor configured to execute the stored program instructions in the system memory to perform a method comprising:

processing a stream of data records by an operator executing on a computing node;

maintaining in a system memory of the computing node, an operator state which is generated in response to the operator processing the stream of data records; and

performing an asynchronous checkpointing process by a checkpointing system executing on the computing node, wherein the asynchronous checkpointing process comprises:

enqueuing a checkpoint of the operator state in a first queue, wherein the first queue is maintained in the system memory of the computing node;

executing a background worker thread on the computing node to dequeue the checkpoint of the operator state from the first queue and store the checkpoint of the operator state in a data store;

sending metadata to a central checkpoint manager, wherein the metadata comprises information which is configured to enable the central checkpoint manager to track a status of the asynchronous checkpointing process;

wherein the asynchronous checkpointing process is performed independent of asynchronous checkpointing operations performed by one or more other operators processing the stream of data records; and

wherein the operator continues with processing the stream of data records during the asynchronous checkpointing process.

20. The computing node of claim 19 , wherein the asynchronous checkpointing process further comprises:

enqueuing, by the background worker thread, a checkpoint acknowledgement record in a second queue which resides in the system memory, after the checkpoint of the operator state is stored in the data store, wherein the checkpoint acknowledgement record indicates that the storage of the checkpoint of the operator state in the data store is completed;

dequeuing, by the background worker thread, the checkpoint acknowledgement record from the second queue; and

sending the acknowledgment record to a central checkpoint manager.

Assignments (8)
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 (043775/0082) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060958/0468 →
RELEASE OF SECURITY INTEREST AT REEL 043772 FRAME 0750 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0606 →
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 Jul 18, 2018
From: ZHAO, JUNPING; XU, KEVIN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046389/0141 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043772/0750 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Sep 6, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 043775/0082 →
Cited By (8)
US 12,199,888 US 12,235,831 US 12,271,375 US 12,323,482 US 12,335,141 US 12,379,967 US 12,483,516 US 12,547,841