IP Library › Granted Patent US 11,366,788
Granted Patent B2
US 11,366,788 · App. 16/356,206 · Granted Jun 21, 2022

Parallel pipelined processing for snapshot data deletion

Inventors: Shuo Lv (Beijing, CN); Ming Zhang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F16/128G06F9/38G06F9/48G06F11/1448G06F11/1458G06F16/162G06F9/5066G06F2201/84
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 11,366,788
App. No.
16/356,206
Filed
Mar 18, 2019
Granted
Jun 21, 2022
Kind
B2
Art Unit
2195
USPC
718/100
Abstract

Techniques delete snapshot data. In accordance with certain techniques, a first sub-process of a snapshot deletion process on a first data block of the snapshot data is performed with a first thread. The snapshot deletion process includes at least the first sub-process and a second sub-process, the first and second sub-processes being performed sequentially. In response to an end of the first sub-process performed with the first thread, the second sub-process on the first data block is performed with the first thread. In parallel with performing, with the first thread, the second sub-process on the first data block, the first sub-process on a second data block of the snapshot data is performed with a second thread different from the first thread, the second data block being different from the first data block. Such techniques improve IO lock contention, system resource utilization rate and parallelism, response time and system overhead.

Claims (41)

1. A method of deleting snapshot data using a snapshot deletion process that includes multiple sub-processes arranged for execution in a pipeline, comprising:

performing, with a first thread, a first sub-process of the snapshot deletion process on a first data block of the snapshot data, the snapshot deletion process comprising at least the first sub-process and a second sub-process, the first and second sub-processes being performed sequentially;

in response to an end of the first sub-process performed with the first thread, performing, with the first thread, the second sub-process on the first data block; and

in parallel with performing, with the first thread, the second sub-process on the first data block, performing, with a second thread different from the first thread, the first sub-process on a second data block of the snapshot data, the second data block being different from the first data block,

the snapshot deletion process proceeding with multiple threads operating on respective blocks in parallel and with different ones of the threads performing different sub-processes at a same time, thereby avoiding I/O (Input/Output) lock contention,

wherein the multiple sub-processes include a stage of calculating a weight value to be merged or returned when deleting the data block and a stage of updating block metadata (BMD) of the data block, wherein the weight value, which tracks sharing among blocks, is merged responsive to a determination to calculate a merged weight value and is returned responsive to the block being shared and there being no existing block.

2. The method according to claim 1 , further comprising:

in response to an end of the first sub-process performed with the second thread, performing, with the second thread, the second sub-process on the second data block; and

in parallel with performing, with the second thread, the second sub-process on the second data block, performing, with a third thread different from the second thread, the first sub-process on a third data block of the snapshot data, the third data block being different from the first and second data blocks.

3. The method according to claim 2 , wherein the third thread is different from the first thread.

4. The method according to claim 1 , further comprising:

allocating a predetermined number of threads to delete the snapshot data, the predetermined number of threads comprising at least the first thread and the second thread.

5. The method according to claim 1 , wherein the first thread is executed by a first core of a processing unit, and the second thread is executed by a second core of the processing unit, the first core being different from the second core.

6. The method of claim 1 , wherein the multiple sub-processes further include:

a stage of reading metadata of a data block being processed; and

a stage of writing a log that records the update to the block metadata.

7. The method of claim 1 , wherein performing different sub-processes at the same time with different ones of the threads includes performing no one sub-process by more than one of the threads at the same time.

8. A device for deleting snapshot data, comprising:

a processor; and

a memory storing computer-executable instructions which, the instructions, when executed by the processor, causing the device to perform a method of deleting snapshot data using a snapshot deletion process that includes multiple sub-processes arranged for execution in a pipeline, the method comprising:

performing, with a first thread, a first sub-process of a snapshot deletion process on a first data block of the snapshot data, the snapshot deletion process comprising at least the first sub-process and a second sub-process, the first and second sub-processes being performed sequentially;

in response to an end of the first sub-process performed with the first thread, performing, with the first thread, the second sub-process on the first data block; and

in parallel with performing, with the first thread, the second sub-process on the first data block, performing, with a second thread different from the first thread, the first sub-process on a second data block of the snapshot data, the second data block being different from the first data block,

the snapshot deletion process proceeding with multiple threads operating on respective blocks in parallel and with different ones of the threads performing different sub-processes at a same time, thereby avoiding I/O (Input/Output) lock contention,

wherein the multiple sub-processes include a stage of calculating a weight value to be merged or returned when deleting the data block and a stage of updating block metadata (BMD) of the data block, wherein the weight value, which tracks sharing among blocks, is merged responsive to a determination to calculate a merged weight value.

9. The device according to claim 6 , wherein the method further comprises:

in response to an end of the first sub-process performed with the second thread, performing, with the second thread, the second sub-process on the second data block; and

in parallel with performing, with the second thread, the second sub-process on the second data block, performing, with a third thread different from the second thread, the first sub-process on a third data block of the snapshot data, the third data block being different from the first and second data blocks.

10. The device according to claim 9 , wherein the third thread is different from the first thread.

11. The device according to claim 8 , wherein the method further comprises:

allocating a predetermined number of threads to delete the snapshot data, the predetermined number of threads comprising at least the first thread and the second thread.

12. The device according to claim 8 , wherein the first thread is executed by a first core of a processing unit, and the second thread is executed by a second core of the processing unit, the first core being different from the second core.

13. A method of deleting snapshot data, comprising:

allocating multiple threads;

assigning the threads to respective blocks, the threads configured to perform a snapshot deletion process on the respective blocks, the snapshot deletion process including multiple pipelined sub-processes arranged for execution during sequential processing cycles;

initiating the snapshot deletion process by the respective threads on different processing cycles, the threads then independently performing the sub-processes on the respective blocks in a parallel arrangement that performs different sub-processes by different threads and avoids I/O (Input/Output) lock contention,

wherein the multiple sub-processes include a stage of calculating a weight value to be merged or returned when deleting the data block and a stage of updating block metadata (BMD) of the data block, wherein the weight value, which tracks sharing among blocks, is returned responsive to the block being shared and there being no existing block.

14. The method of claim 13 , further comprising executing the threads on respective cores of a processing unit.

15. The method of claim 13 , wherein the multiple sub-processes include:

a stage of reading metadata of a data block being processed; and

a stage of writing a log that records the update to the block metadata.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2019
From: LV, SHUO; ZHANG, MING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 048861/0201 →
Priority Claims (1)
CN 201810623396.3 · Jun 15, 2018 · national
Continuity (1)
Related Publication 20190384743A1 · Dec 19, 2019