Page cache write logging at block-based storage

US10503650B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10503650-B2
Application numberUS-201816105481-A
CountryUS
Kind codeB2
Filing dateAug 20, 2018
Priority dateMar 11, 2014
Publication dateDec 10, 2019
Grant dateDec 10, 2019

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.

A block-based storage system may implement page cache write logging. Write requests for a data volume maintained at a storage node may be received at a storage node. A page cache for may be updated in accordance with the request. A log record describing the page cache update may be stored in a page cache write log maintained in a persistent storage device. Once the write request is performed in the page cache and recorded in a log record in the page cache write log, the write request may be acknowledged. Upon recovery from a system failure where data in the page cache is lost, log records in the page cache write log may be replayed to restore to the page cache a state of the page cache prior to the system failure.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a storage node of a plurality of storage nodes that maintain replicas of data volumes, wherein at least some of the storage nodes do not maintain a respective page cache write log for write requests with respect to the data volumes, the storage node comprising: one or more block-based storage devices maintaining one or more data volumes; and a system memory, comprising a page cache, wherein the page cache is flushed to the one or more block-based storage devices in order to persistently update the one or more data volumes; and one or more computing devices that implement a control plane configured to: evaluate storage nodes to determine durability scores for the storage nodes; instruct, based at least in part on one or more of the durability scores, one or more storage nodes of the storage nodes to implement a respective page cache write log for write requests with respect to a data volume that corresponds to that storage node such that at least one storage node performs page cache write logging for the data volume; wherein a storage node that implements a page cache write log comprises a persistent storage device that maintains the page cache write log that maintains a plurality of log records that describe updates to the page cache; wherein the storage node that implements the page cache write log is configured to: receive a write request for the corresponding data volume of the one or more data volumes; update at least one corresponding entry of a plurality of entries in the page cache for the write request; store a log record describing the update to the at least one corresponding page cache entry in the page cache write log; and in response to said update the page cache entry and said store the log record in the page cache write log, acknowledge the write request as complete. 2. The system of claim 1 , wherein the storage node that implements the page cache write log is further configured to: upon recovery from a system failure: obtain from the persistent storage device maintaining the page cache write log, the log record and the plurality of log records; and apply the log record and the plurality of log records maintained in the page cache write log to write to the page cache a state of the page cache prior to the system failure. 3. The system of claim 1 , wherein the storage node that implements the page cache write log is further configured to: detect a trim event for the page cache write log; in response to detecting the trim event: identify a trim location in the page cache write log; perform one or more flush operations to write at least some page cache entries from the system memory to the one or more block-based storage devices; and upon completion of the one or more flush operations, reclaim one or more portions of the persistent storage device maintaining the page cache write log for storing additional log records describing updates to the page cache. 4. The system of claim 1 , wherein the storage node that implements the page cache write log is implemented as part of a network-based block-based storage service, wherein a least one other storage node implemented as part of the block-based storage service maintains a replica of the corresponding data volume, and wherein the at least one other storage node is configured to perform said receive, said update, said store, and said acknowledge. 5. A method, comprising: performing, by one or more computing devices: evaluating, by a control plane, storage nodes that maintain replicas of data volumes, to determine durability scores of the storage nodes, the durability scores for determining whether to implement page cache write logging on one or more of the storage nodes, wherein page cache write logging comprises: receiving, at a storage node, a write request for a data volume persisted in at least one block-based storage device maintained at the storage node; updating at least one corresponding entry of a plurality of entries in a page cache maintained in system memory at the storage node for the write request, wherein the plurality of entries in the page cache are flushed to the at least one block-based storage device in order to persistently update the data volume; storing a log record describing the update to the at least one corresponding page cache entry in a page cache write log maintained in a persistent storage device; and in response to updating the page cache entry and storing the log record in the page cache write log, acknowledging the write request as complete; and selecting by the control plane, based at least in part on one or more of the durability scores, one or more of the storage nodes to implement page cache write logging such that at least one storage node performs page cache write logging for a volume. 6. The method of claim 5 , wherein said storing the log record describing the update to the at least one corresponding page cache entry in the page cache write log maintained in the persistent storage device includes storing the log record along with a plurality of other log records maintained in the persistent storage device, wherein the log record and the plurality of other log records describe a state of the page cache including the updated page cache entry to be restored to the page cache in the event of a system failure resulting in a loss of data in the page cache; the method further comprising: upon recovery from a system failure: obtaining from the persistent storage device maintaining the page cache write log, the log record and the plurality of other log records; and applying the log record and the plurality of other log records maintained in the page cache write log to write to the page cache a state of the page cache prior to the system failure. 7. The method of claim 5 , wherein the selected storage node is one of two or more storage nodes that maintain replicas of a particular data volume, and wherein at least one of the two or more storage nodes different than the selected storage node does not maintain a respective page cache write log for write requests with respect to the particular data volume. 8. The method of claim 7 , further comprising: upon recovery from a system failure of the two or more storage nodes, identifying one of the two or more storage nodes that maintains the respective page cache write log as maintaining a current replica of the data volume prior to the system failure in order to make the current replica of the data volume available for processing subsequent input/output requests for the data volume. 9. The method of claim 5 , further comprising: detecting a trim event for the page cache write log; in response to detecting the trim event: identifying a trim location in the page cache write log; performing one or more flush operations to write at least some of the plurality of page cache entries from the system memory to the at least one block-based storage device; and upon completion of the one or more flush operations, reclaiming one or more portions of the persistent storage device maintaining the page cache write log for storing additional log records describing updates to the page cache. 10. The method of claim 9 , further comprising: in response to detecting the trim event, determining a flush operation size for the one or more flush operations. 11. The method of claim 5 , wherein the at least one block-based storage device is at least one of a plurality of block-based storage devices maintained at the storage node, and wherein the method further comprises: receiving another write request for another data volume persisted in at least one other block-based storage de

Assignees

Inventors

Classifications

  • involving logging of persistent data for recovery · CPC title

  • Performance improvement · CPC title

  • Reliability improvement, data loss prevention, degraded operation etc · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

  • for I/O devices · 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 US10503650B2 cover?
A block-based storage system may implement page cache write logging. Write requests for a data volume maintained at a storage node may be received at a storage node. A page cache for may be updated in accordance with the request. A log record describing the page cache update may be stored in a page cache write log maintained in a persistent storage device. Once the write request is performed in…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0866. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 10 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).