Techniques for reclaiming dirty cache pages

US11782842B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11782842-B1
Application numberUS-202217722696-A
CountryUS
Kind codeB1
Filing dateApr 18, 2022
Priority dateApr 18, 2022
Publication dateOct 10, 2023
Grant dateOct 10, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In a log based system, a reclamation list of cache pages containing dirty data can be maintained and used. The cached dirty data pages identified by the reclamation list can be candidates for eviction from the cache. A cached dirty data page on the reclamation list can be persistently logged in a transaction log extension having storage allocated from a non-volatile solid state drive (SSD). The reclamation list can include descriptors of the cached dirty data pages prioritized for eviction in accordance with a least recently used (LRU) policy so that the LRU cached dirty data page can be selected for eviction. When a dirty data page which was evicted from the cache is reloaded into cache, the dirty data page can be added to the reclamation list by adding its page descriptor to the reclamation list. A dirty data page can be removed from the reclamation list once flushed.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: receiving a write operation that writes first data to a first logical address; responsive to receiving the write operation, performing first processing that logs the write operation in a transaction log, the first processing including: storing the first data at a first location on a non-volatile solid state drive (SSD) providing storage for an extension of the transaction log; storing, in a first cache page of a cache, the first data written by the write operation; marking the first cache page as a dirty cache page that has not been flushed to backend non-volatile storage; storing, in a metadata log, a first page descriptor for the first data, wherein the first page descriptor includes first information indicating that the first data is written to the first logical address, indicating that the first data is stored at the first location on the non-volatile SSD providing storage for the extension of the transaction log, and indicating that the first data is loaded into the first cache page of the cache; storing, in a dirty page list, the first page descriptor, wherein each page descriptor of the dirty page list identifies a data page that has not been flushed to the backend non-volatile storage; and storing, in a reclamation list, the first page descriptor, wherein each page descriptor of the reclamation list identifies a data page which is stored in the cache, has not been flushed to the backend non-volatile storage, and references dirty data stored on the non-volatile SSD providing storage for the extension of the transaction log; and performing second processing to obtain a new cache page from the cache, the second processing including: selecting, for eviction from the cache using the reclamation list, the first data which is stored in the first cache page and which is described by the first page descriptor included in the reclamation list; removing the first page descriptor from the reclamation list; and allocating the first cache page as a free cache page available for reuse as the new cache page. 2. The computer-implemented method of claim 1 , further comprising: receiving a read operation requesting to read content stored at the first logical address; determining that content stored at the first logical address is not stored in the cache thereby resulting in a cache miss; and responsive to the cache miss, performing cache miss processing using the dirty page list, said cache miss processing including: locating the first page descriptor in the dirty page list; retrieving, using the first information of the first page descriptor of the dirty page list, the first data from the first location on the non-volatile SSD providing storage for the extension of the transaction log; responsive to said retrieving, storing the first data in a second cache page of the cache; updating the first information of the first page descriptor for the first data to indicate that the first data is stored in the second cache page; adding the first page descriptor to the reclamation list; and marking the second cache page as a dirty cache page that has not been flushed to the backend non-volatile storage. 3. The computer-implemented method of claim 2 , further comprising flushing the write operation recorded in the transaction log, wherein said flushing includes: reading, from the metadata log, the first page descriptor for the first data written to the first logical address by the write operation, wherein the first data is stored at the first location on the non-volatile SSD providing storage for the extension of the transaction log; binding the first logical address to the first location on the non-volatile SSD, wherein said binding includes updating mapping information that maps the first logical address to the first location on the non-volatile SSD; and removing the first page descriptor from the reclamation list. 4. The computer-implemented method of claim 1 , wherein said second processing to obtain a new cache page from the cache further includes: determining that there are no free pages in the cache; and responsive to said determining that there are no free pages in the cache, searching a clean page list for a clean page of data for eviction from the cache, wherein the clean page list includes page descriptors for pages of data which are stored in the cache and which have been flushed to the backend non-volatile storage. 5. The computer-implemented method of claim 4 , wherein said second processing includes: determining, using the clean page list, that there are no clean pages of data in the cache. 6. The computer-implemented method of claim 5 , wherein said second processing includes: responsive to determining that there are no clean pages in the cache, searching the reclamation list for a dirty cache page of data for eviction from the cache. 7. The computer-implemented method of claim 6 , wherein said searching the reclamation list includes: performing said selecting, for eviction from the cache using the reclamation list, the first data which is stored in the first cache page and which is described by the first page descriptor included in the reclamation list. 8. The computer-implemented method of claim 4 , wherein a cache page of the cache marked as free does not include valid data used to service read operations. 9. The computer-implemented method of claim 4 , wherein a cache page of the cache marked as clean includes valid data used to service read operations. 10. The computer-implemented method of claim 1 , wherein the transaction log includes storage of a non-volatile random access memory (NVRAM). 11. The computer-implemented method of claim 10 , wherein a second page descriptor is included in the metadata log for second data written by a second write operation to a second logical address, wherein the second page descriptor includes second information indicating that the second data is written to the second logical address, indicating that the second data is stored at a second location on the NVRAM providing storage for the transaction log, and indicating that the second data is loaded into a second cache page of the cache, wherein the second page of the cache is marked as dirty since the second data has not yet been flushed to the backend non-volatile storage. 12. The computer-implemented method of claim 11 , wherein the second page descriptor is included in the dirty page list, and wherein the second page descriptor is not included in the reclamation list since the reclamation list does not include page descriptors associated with dirty data stored on the NVRAM providing storage for the transaction log. 13. The computer-implemented method of claim 12 , further comprising flushing the second write operation recorded in the transaction log, said flushing including: storing the second data from the second cache page to a physical storage location on the backend non-volatile storage; and binding the second logical address to the physical storage location on the backend non-volatile storage, wherein said binding includes updating mapping information that maps the second logical address to the physical storage location on the backend non-volatile storage. 14. The computer-implemented method of claim 1 , wherein the reclamation list identifies cached dirty pages of data which are candidates for eviction from the cache. 15. The computer-implemented method of claim 1 , wherein each cached dirty page of data stored on a non-volatile random access memory (NVRAM) providing storage for the transaction log is not included on the

Assignees

Inventors

Classifications

  • using clearing, invalidating or resetting means · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

  • Flash memory · CPC title

  • Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title

  • Logical to physical mapping or translation of blocks or pages · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11782842B1 cover?
In a log based system, a reclamation list of cache pages containing dirty data can be maintained and used. The cached dirty data pages identified by the reclamation list can be candidates for eviction from the cache. A cached dirty data page on the reclamation list can be persistently logged in a transaction log extension having storage allocated from a non-volatile solid state drive (SSD). The…
Who is the assignee on this patent?
Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification G06F12/0891. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 10 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).