IP Library Granted Patent US 11,556,262
Granted Patent B2
US 11,556,262 · App. 17/067,064 · Granted Jan 17, 2023

Extent operation processing

Inventors: Socheavy Heng (Framingham, MA); William C. Davenport (San Diego, CA)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F3/061G06F3/0683G06F9/466G06F11/1451G06F11/1471
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,556,262
App. No.
17/067,064
Granted
Jan 17, 2023
Kind
B2
Abstract

Successful storing of extent operations into corresponding records of a transaction log results in acknowledgement of completion of the extent operations being indicated to one or more hosts. In response to determining that the extent operations are unrelated to each other, the extent operations are flushed in parallel from the transaction log to back-end non-volatile data storage. During the flushing, dependencies between the extent operations and other operations stored in the transaction log are maintained. Dependency chains are identified within the transaction log, and at least one tree data structure representing the dependencies between each of the extent operations and the other operations stored in the transaction log may be generated and traversed in order to select the correct operations stored in the transaction log to flush.

Claims (32)

1. A method comprising:

storing a plurality of extent operations into corresponding records of a transaction log;

in response to successfully storing the plurality of extent operations into the corresponding records of the transaction log, indicating successful completion of each of the plurality of extent operations to at least one host;

determining that the plurality of extent operations are unrelated to each other; and

in response to determining that the plurality of extent operations are unrelated to each other, flushing the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage;

wherein the flushing of the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage further comprises maintaining dependencies between the plurality of extent operations and other operations stored in the transaction log.

2. The method of claim 1 , further comprising:

wherein maintaining the dependencies between the plurality of extent operations and other operations stored in the transaction log further comprises identifying a plurality of dependency chains within the transaction log, wherein each one of the dependency chains includes one of the plurality of extent operations, and wherein each one of the dependency chains represents dependencies between the one of the extent operations in the dependency chain and at least one other operation stored in the transaction log.

3. The method of claim 2 , wherein maintaining the dependencies between the plurality of extent operations and the other operations stored in the transaction log further comprises generating at least one tree data structure representing the dependencies between each of the plurality of extent operations and the other operations stored in the transaction log.

4. The method of claim 3 , wherein maintaining the dependencies between the plurality of extent operations and the other operations stored in the transaction log further comprises traversing the at least one tree data structure while flushing the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage to select records in the transaction log to flush.

5. The method of claim 1 , wherein the plurality of extent operations includes at least one extent copy operation.

6. The method of claim 1 , wherein the plurality of extent operations includes at least one extent delete operation.

7. A data storage system comprising:

at least one storage processor including processing circuitry and a memory;

a plurality of non-volatile data storage drives communicably coupled to the at least one storage processor; and

wherein the memory has program code stored thereon, wherein the program code, when executed by the processing circuitry, causes the processing circuitry to:

store a plurality of extent operations into corresponding records of a transaction log;

in response to successfully storing the plurality of extent operations into the corresponding records of the transaction log, indicate successful completion of each of the plurality of extent operations to at least one host;

determine that the plurality of extent operations are unrelated to each other; and

in response to a determination that the plurality of extent operations are unrelated to each other, flush the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage;

wherein the flush of the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage further comprises causing the processing circuitry to maintain dependencies between the plurality of extent operations and other operations stored in the transaction log.

8. The data storage system of claim 7 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to maintain the dependencies between the plurality of extent operations and other operations stored in the transaction log at least in part by causing the processing circuitry to identify a plurality of dependency chains within the transaction log, wherein each one of the dependency chains includes one of the plurality of extent operations, and wherein each one of the dependency chains represents dependencies between the one of the extent operations in the dependency chain and at least one other operation stored in the transaction log.

9. The data storage system of claim 8 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to maintain the dependencies between the plurality of extent operations and the other operations stored in the transaction log at least in part by causing the processing circuitry to generate at least one tree data structure representing the dependencies between each of the plurality of extent operations and the other operations stored in the transaction log.

10. The data storage system of claim 9 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to maintain the dependencies between the plurality of extent operations and the other operations stored in the transaction log at least in part by causing the processing circuitry to traverse the at least one tree data structure while flushing the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage to select records in the transaction log to flush.

11. The data storage system of claim 7 , wherein the plurality of extent operations includes at least one extent copy operation.

12. The data storage system of claim 7 , wherein the plurality of extent operations includes at least one extent delete operation.

13. A computer program product including a non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed on processing circuitry, cause the processing circuitry to perform the steps of:

storing a plurality of extent operations into corresponding records of a transaction log;

in response to successfully storing the plurality of extent operations into the corresponding records of the transaction log, indicating successful completion of each of the plurality of extent operations to at least one host;

determining that the plurality of extent operations are unrelated to each other; and

in response to determining that the plurality of extent operations are unrelated to each other, flushing the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage;

wherein the flushing of the plurality of extent operations in parallel from the transaction log to back-end non-volatile data storage further comprises maintaining dependencies between the plurality of extent operations and other operations stored in the transaction log.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2021
From: HENG, SOCHEAVY; DAVENPORT, WILLIAM C.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055065/0183 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →