IP Library Granted Patent US 11,269,547
Granted Patent B2
US 11,269,547 · App. 16/879,459 · Granted Mar 8, 2022

Reusing overwritten portion of write buffer of a storage system

Inventors: Yousheng Liu (Beijing, CN); Socheavy D. Heng (Framingham, MA); Xinlei Xu (Beijing, CN); Geng Han (Beijing, CN); Jian Gao (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0656G06F3/0604G06F3/065G06F3/0644G06F3/0659G06F3/0673
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,269,547
App. No.
16/879,459
Granted
Mar 8, 2022
Kind
B2
Abstract

An apparatus comprises at least one processing device comprising a processor coupled to a memory. The at least one processing device is configured to receive a write command at a control module of a storage system, wherein the write command comprises a write operation configured to cause one or more data pages in a page buffer associated with the control module to be overwritten with incoming data. The at least one processing device is also configured to invalidate the one or more overwritten data pages in the page buffer after committing the write operation. The at least one processing device is further configured to release the one or more invalidated data pages in the page buffer to a page buffer pool associated with the control module, wherein the page buffer pool manages available data pages in the page buffer.

Claims (41)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to:

receive a write command at a control module of a storage system, wherein the write command comprises a write operation configured to cause one or more data pages in a page buffer associated with the control module to be overwritten with incoming data;

invalidate the one or more overwritten data pages in the page buffer after committing the write operation; and

release the one or more invalidated data pages in the page buffer to a page buffer pool associated with the control module, wherein the page buffer pool manages available data pages in the page buffer, and wherein the page buffer pool is configured as a data structure with one or more nodes, and wherein each node of the one or more nodes specifies a segment of continuous data pages available in the page buffer.

2. The apparatus of claim 1 , wherein the at least one processing device is further configured to:

receive a subsequent write command at the control module; and

reuse at least a portion of the one or more released data pages managed by the page buffer pool to process the subsequent write command.

3. The apparatus of claim 1 , wherein the at least one processing device is further configured to:

determine that one or more data pages in the page buffer is associated with a storage snapshot creation; and

persist the one or more data pages associated with the storage snapshot creation when the received write command comprises a write operation that would otherwise cause the one or more data pages associated with the storage snapshot creation to be overwritten.

4. The apparatus of claim 1 , wherein each node of the one or more nodes specifies information comprising a starting page index of the segment, an ending page index of the segment, and a number of pages in the segment.

5. The apparatus of claim 4 , wherein the at least one processing device is further configured to update the information in a given one of nodes when a data page is released to or allocated from the given one of the nodes.

6. The apparatus of claim 1 , wherein the at least one processing device is further configured to allocate continuous pages from a given one of the nodes of the page buffer pool.

7. The apparatus of claim 6 , wherein the at least one processing device is further configured to allocate one or more additional pages from at least another given one of the nodes of the page buffer pool when there are insufficient pages specified in the given one of the nodes.

8. The apparatus of claim 7 , wherein one or more of the one or more additional pages from the at least other given one of the nodes are continuous with respect to the continuous pages from the given one of the nodes.

9. The apparatus of claim 7 , wherein one or more of the one or more additional pages from the at least other given one of the nodes are not continuous with respect to the continuous pages from the given one of the nodes.

10. The apparatus of claim 1 , wherein the at least one processing device is further configured to allocate pages from a given one of the nodes of the page buffer pool using an allocation pointer.

11. The apparatus of claim 1 , wherein the at least one processing device is further configured to allocate pages from a given one of the nodes of the page buffer pool by determining a best fit segment.

12. The apparatus of claim 1 , wherein the at least one processing device is further configured to allocate pages from two or more nodes of the nodes of the page buffer pool.

13. The apparatus of claim 1 , wherein the at least one processing device is further configured to release the one or more invalidated data pages in the page buffer to the page buffer pool by creating an additional node in the page buffer pool and inserting the one or more released data pages into the additional node.

14. The apparatus of claim 1 , wherein the at least one processing device is further configured to release the one or more invalidated data pages in the page buffer to the page buffer pool by merging the one or more released data pages into an existing node in the page buffer pool.

15. The apparatus of claim 1 , wherein the at least one processing device is further configured to perform a replay operation during a recovery of the storage system in accordance with the page buffer pool.

16. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

receiving a write command at a control module of a storage system, wherein the write command comprises a write operation configured to cause one or more data pages in a page buffer associated with the control module to be overwritten with incoming data;

invalidating the one or more overwritten data pages in the page buffer after committing the write operation; and

releasing the one or more invalidated data pages in the page buffer to a page buffer pool associated with the control module, wherein the page buffer pool manages available data pages in the page buffer, wherein the page buffer pool is configured as a data structure with one or more nodes, and wherein each node of the one or more nodes specifies a segment of continuous data pages available in the page buffer.

17. The computer program product of claim 16 , wherein the program code when executed by at least one processing device further causes the at least one processing device to perform steps of:

receiving a subsequent write command at the control module; and

reusing at least a portion of the one or more released data pages managed by the page buffer pool to process the subsequent write command.

18. The computer program product of claim 16 , wherein the program code when executed by at least one processing device further causes the at least one processing device to perform steps of:

determining that one or more data pages in the page buffer is associated with a storage snapshot creation; and

persisting the one or more data pages associated with the storage snapshot creation when the received write command comprises a write operation that would otherwise cause the one or more data pages associated with the storage snapshot creation to be overwritten.

19. A method comprising steps of:

receiving a write command at a control module of a storage system, wherein the write command comprises a write operation configured to cause one or more data pages in a page buffer associated with the control module to be overwritten with incoming data;

invalidating the one or more overwritten data pages in the page buffer after committing the write operation; and

releasing the one or more invalidated data pages in the page buffer to a page buffer pool associated with the control module, wherein the page buffer pool manages available data pages in the page buffer, wherein the page buffer pool is configured as a data structure with one or more nodes, and wherein each node of the one or more nodes specifies a segment of continuous data pages available in the page buffer.

20. The method of claim 19 , further comprising steps of:

receiving a subsequent write command at the control module; and

reusing at least a portion of the one or more released data pages managed by the page buffer pool to process the subsequent write command.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2020
From: LIU, YOUSHENG; HENG, SOCHEAVY D.; XU, XINLEI; HAN, GENG; GAO, JIAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052716/0661 →