IP Library › Granted Patent US 12,182,421
Granted Patent B1
US 12,182,421 · App. 18/447,496 · Granted Dec 31, 2024

Techniques for extending a write cache

Inventors: Vamsi K. Vankamamidi (Hopkinton, MA); Geng Han (Beijing, CN); Vikram A. Prabhakar (Apex, NC)
Assignee: Dell Products L.P.
G06F3/0619G06F3/0641G06F3/0644G06F3/065G06F3/0683
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 12,182,421
App. No.
18/447,496
Granted
Dec 31, 2024
Kind
B1
Abstract

In at least one embodiment, processing can include: receiving write operations; persistently recording, in a write cache or log, the write operations using page descriptors (PDESCs) of a PDESC pool and page buffers (PBs) of a PB pool; selecting, in accordance with criteria, write data pages stored in the PB pool for demotion to a physical large block (PLB) pool included in backend non-volatile storage, wherein each write data page selected denotes content written by a corresponding one of the write operations; responsive to the selecting, persistently storing the write data pages of the PB pool in the PLB pool; and updating PDESCs associated with the write data pages to reference corresponding storage locations in the PLB pool rather than in the PB pool.

Claims (45)

1. A computer-implemented method comprising:

receiving a first set of write operations;

persistently recording, in a write cache or log, the first set of write operations, wherein said recording each write operation of the first set includes persistently recording information describing said each write operation in a corresponding page descriptor (PDESC) of a PDESC pool and persistently storing a corresponding write data page written by said each write operation in a corresponding page buffer (PB) of a PB pool;

selecting, in accordance with one or more criteria, a first plurality of write data pages stored in a first plurality of PBs of the PB pool for demotion to a first physical large block (PLB) of a PLB pool of non-volatile storage included in a storage tier of backend (BE) non-volatile storage, wherein each of the write data pages of the first plurality of write data pages selected denotes content written by a corresponding one of a first plurality of write operations of the first set;

responsive to said selecting, persistently storing the first plurality of write data pages from the first plurality of PBs of the PB pool in the first PLB; and

updating a first plurality of PDESCs associated with the first plurality of write data pages of the first plurality of write operations to reference corresponding storage locations in the first PLB rather than the first plurality of PBs.

2. The computer-implemented method of claim 1 , wherein said selecting, said persistently storing and said updating are included in demotion processing performed responsive to detecting an occurrence of a trigger condition that triggers performance of said demotion processing.

3. The computer-implemented method of claim 2 , wherein said trigger condition specifies to perform said demotion processing when a current utilization of PBs of the PB pool is above a specified threshold, or when a current level of free PBs of the PB pool is below a specified threshold.

4. The computer-implemented method of claim 3 , wherein said demotion processing is repeated a plurality of times to demote content of PBs of the PB pool to PLBs of the PLB pool until a stop condition is met.

5. The computer-implemented method of claim 4 , wherein the stop condition indicates to repeatedly perform said demotion processing until the current utilization of PBs of the PB pool is below a specified target level.

6. The computer-implemented method of claim 4 , wherein the stop condition indicates to repeatedly perform said demotion processing until the current level of free PBs of the PB pool is above a specified target level.

7. The computer-implemented method of claim 1 , wherein the one or more criteria includes a criterion that indicates to select for demotion from the PB pool to the PLB pool a set of write data pages stored in PBs of the PB pool, wherein each write data page of the set of write data pages corresponds to unreplicated write data of a storage object on a first system configured for replication to a second system.

8. The computer-implemented method of claim 7 , wherein the storage object is any of a logical device, volume, file system, or file.

9. The computer-implemented method of claim 7 , wherein the storage object is configured for asynchronous replication.

10. The computer-implemented method of claim 7 , wherein the storage object is configured for semi-synchronous replication denoting a mode of asynchronous replication with a recovery point objective (RPO) less than a specified minimum.

11. The computer-implemented method of claim 7 , further comprising:

replicating the set of write data pages demoted to the PLB pool; and

responsive to said replicating, performing processing including:

reclaiming one or more PLBs of the PLB pool storing the set of write data pages replicated; and

reclaiming PDESCs associated with the set of write data pages replicated by said replicating.

12. The computer-implemented method of claim 1 , wherein the one or more criteria includes a criterion that indicates to select for demotion from the PB pool to the PLB pool a set of write data pages stored in PBs of the PB pool, wherein each write data page of the set of write data pages corresponds to write hot data associated with a corresponding target logical address that is overwritten at a frequency exceeding a specified threshold.

13. The computer-implemented method of claim 12 , further comprising:

performing a write folding optimization of recorded write operations of the write cache or log, wherein said write folding optimization includes:

determining that a first write data page of the set corresponds to first content stored at a first logical address that is overwritten with second content of a second data page of the set; and

responsive to said determining that a first write data page of the set corresponds to first content stored at a first logical address that is overwritten with second content of a second data page of the set, reclaiming a first storage location in the PLB pool, wherein the first write data page that is overwritten is stored at the first storage location in the PLB pool.

14. The computer-implemented method of claim 1 , wherein the PDESC pool and the PB pool are included in first non-volatile storage of the write cache or log, and wherein the PLB pool is included in an extension of the write cache or log included in the storage tier of BE non-volatile storage.

15. The computer-implemented method of claim 14 , wherein the storage tier of BE non-volatile storage including the PLB pool has a first write latency that is greater than a second write latency of the first non-volatile storage including the PDESC pool and the PB pool.

16. The computer-implemented method of claim 1 , further comprising:

marking the first plurality of PBs as free and available for reuse subsequent to said persistently storing the first plurality of write data pages from the first plurality of PBs of the PB pool in the first PLB.

17. One or more non-transitory computer readable media comprising code stored thereon that, when executed, performs a method comprising:

receiving a first set of write operations;

persistently recording, in a write cache or log, the first set of write operations, wherein said recording each write operation of the first set includes persistently recording information describing said each write operation in a corresponding page descriptor (PDESC) of a PDESC pool and persistently storing a corresponding write data page written by said each write operation in a corresponding page buffer (PB) of a PB pool;

selecting, in accordance with one or more criteria, a first plurality of write data pages stored in a first plurality of PBs of the PB pool for demotion to a first physical large block (PLB) of a PLB pool of non-volatile storage included in a storage tier of backend (BE) non-volatile storage, wherein each of the write data pages of the first plurality of write data pages selected denotes content written by a corresponding one of a first plurality of write operations of the first set;

responsive to said selecting, persistently storing the first plurality of write data pages from the first plurality of PBs of the PB pool in the first PLB; and

updating a first plurality of PDESCs associated with the first plurality of write data pages of the first plurality of write operations to reference corresponding storage locations in the first PLB rather than the first plurality of PBs.

18. The one or more non-transitory computer readable media of claim 17 , wherein said selecting, said persistently storing and said updating are included in demotion processing performed responsive to detecting an occurrence of a trigger condition that triggers performance of said demotion processing.

19. The one or more non-transitory computer readable media of claim 18 , wherein said trigger condition specifies to perform said demotion processing when a current utilization of PBs of the PB pool is above a specified threshold, or when a current level of free PBs of the PB pool is below a specified threshold.

20. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method comprising:

receiving a first set of write operations;

persistently recording, in a write cache or log, the first set of write operations, wherein said recording each write operation of the first set includes persistently recording information describing said each write operation in a corresponding page descriptor (PDESC) of a PDESC pool and persistently storing a corresponding write data page written by said each write operation in a corresponding page buffer (PB) of a PB pool;

selecting, in accordance with one or more criteria, a first plurality of write data pages stored in a first plurality of PBs of the PB pool for demotion to a first physical large block (PLB) of a PLB pool of non-volatile storage included in a storage tier of backend (BE) non-volatile storage, wherein each of the write data pages of the first plurality of write data pages selected denotes content written by a corresponding one of a first plurality of write operations of the first set;

responsive to said selecting, persistently storing the first plurality of write data pages from the first plurality of PBs of the PB pool in the first PLB; and

updating a first plurality of PDESCs associated with the first plurality of write data pages of the first plurality of write operations to reference corresponding storage locations in the first PLB rather than the first plurality of PBs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2023
From: VANKAMAMIDI, VAMSI K.; HAN, GENG; PRABHAKAR, VIKRAM A.
To: DELL PRODUCTS L.P.
Reel/Frame 064550/0651 →
Cited By (7)
US 12,511,262 US 12,541,316 US 12,547,565 US 12,579,088 US 12,585,400 US 12,591,388 US 12,591,536