Cache performance on a storage system

US10809918B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10809918-B2
Application numberUS-201916263541-A
CountryUS
Kind codeB2
Filing dateJan 31, 2019
Priority dateJan 31, 2019
Publication dateOct 20, 2020
Grant dateOct 20, 2020

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.

Options for handling write operations may be selected based on a determined probability that a read operation for a portion of data will occur while the data portion is still in an I/O cache as a result of a write operation. As used herein, a “read-after-write event (“RAW”) is an occurrence of a read operation for a portion of data while the data portion is still in an I/O cache as a result of a write operation. The probability of a RAW may be determined by applying Bayesian inference, and may include applying exponential smoothing to calculations made on historical I/O information so that more recent I/O events have greater weight in determining RAW probability. Based on the determined RAW probability, write data may either be journaled in a write journal or written to a cache slot and de-staged to a physical storage device as part of write-in-place processing.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of managing an input/output (I/O) cache on a storage system, comprising: for at least a first storage device of the storage system, determining a probability that a read operation for a portion of data will be received while the portion of data resides in the I/O cache as a result of a write operation for the portion of data; receiving a write request for the at least first storage device, the write request specifying a write operation for a first portion of data and an address range within the at least first storage device; and determining based at least in part on the probability whether to: to record a journal entry for the first portion of data in a journal, or write to the I/O cache as part of writing in place. 2. The method of claim 1 , wherein determining the probability includes applying exponential smoothing to historical read and write information so that more recent historical read and write information has greater weight in determining the probability. 3. The method of claim 1 , wherein determining based at least in part on the probability includes: comparing the probability to a predefined probability threshold; if the probability is less than or equal to the predefined probability threshold, determining to record the journal entry; and if the probability is greater than the predefined probability threshold, determining to perform the write to the I/O cache as part of writing in place. 4. The method of claim 1 , further comprising: if it is determined to record the journal entry, applying a hash function to the address range to produce a hash value, wherein the journal corresponds to the hash value. 5. The method of claim 4 , further comprising: storing the hash value in an entry of a hash table, the entry specifying a reference to the journal. 6. The method of claim 1 , wherein the storage system includes one or more journals, the method further comprising: receiving a read request specifying a read operation for an address range of a storage device; and determining that either: there is not a journal entry for the address range of the storage device in the one or more journals or there may be a journal entry for the address range of the storage device in a first of the one or more journals. 7. The method of claim 6 , further comprising: if it determined that there may be a journal entry in the first journal for the address range of the storage device, playing back the first journal to determine if there is a journal entry. 8. A storage system comprising: an I/O cache; at least a first storage device; one or more processors; and memory comprising code stored thereon that, when executed, performs a method of managing the I/O cache comprising: for the at least first storage device, determining a probability that a read operation for a portion of data will be received while the portion of data resides in the I/O cache as a result of a write operation for the portion of data; receiving a write request for the at least first storage device, the write request specifying a write operation for a first portion of data and an address range within the at least first storage device; and determining based at least in part on the probability whether to: to record a journal entry for the first portion of data in a journal, or write to the I/O cache as part of writing in place. 9. The system of claim 8 , wherein determining the probability includes applying exponential smoothing to historical read and write information so that more recent historical read and write information has greater weight in determining the probability. 10. The system of claim 8 , wherein determining based at least in part on the probability includes: comparing the probability to a predefined probability threshold; if the probability is less than or equal to the predefined probability threshold, determining to record the journal entry; and if the probability is greater than the predefined probability threshold, determining to perform the write to the I/O cache as part of writing in place. 11. The system of claim 8 , the method further comprising: if it is determined to record the journal entry, applying a hash function to the address range to produce a hash value, wherein the journal corresponds to the hash value. 12. The system of claim 11 , the method further comprising: storing the hash value in an entry of a hash table, the entry specifying a reference to the journal. 13. The system of claim 8 , wherein the storage system includes one or more journals, the method further comprising: receiving a read request specifying a read operation for an address range of a storage device; and determining that either: there is not a journal entry for the address range of the storage device in the one or more journals; or there may be a journal entry for the address range of the storage device in a first of the one or more journals. 14. The system of claim 13 , the method further comprising: if it determined that there may be a journal entry in the first journal for the address range of the storage device, playing back the first journal to determine if there is a journal entry. 15. One or more non-transitory computer-readable media, the computer-readable media having software stored thereon for managing an I/O cache of a storage system, the software comprising: executable code that determines, for at least a first storage device of the storage system, a probability that a read operation for a portion of data will be received while the portion of data resides in the I/O cache as a result of a write operation for the portion of data; executable code that receives a write request for the at least first storage device, the write request specifying a write operation for a first portion of data and an address range within the at least first storage device; and executable code that determines based at least in part on the probability whether to: to record a journal entry for the first portion of data in a journal, or write to the I/O cache as part of writing in place. 16. The one or more non-transitory computer-readable media of claim 15 , wherein the executable code that determines the probability includes executable code that applies exponential smoothing to historical read and write information so that more recent historical read and write information has greater weight in determining the probability. 17. The one or more non-transitory computer-readable media of claim 15 , wherein the executable code that determines based at least in part on the probability includes: executable code that compares the probability to a predefined probability threshold; executable code that determines, if the probability is less than or equal to the predefined probability threshold, to record the journal entry; and executable code that determines, if the probability is greater than the predefined probability threshold, to perform the to the I/O cache as part of writing in place. 18. The one or more non-transitory computer-readable media of claim 15 , the software further comprising: executable code that applies, if it is determined to record the journal entry, a hash function to the address range to produce a hash value, wherein the journal corresponds to the hash value. 19. The one or more non-transitory computer-readable media of claim 18 , the software further comprising: executable code that stores the hash value in an entry of a hash table, the entry specifying a reference to the journal.

Assignees

Inventors

Classifications

  • Probabilistic graphical models, e.g. probabilistic networks · CPC title

  • Forward inferencing; Production systems · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Data buffering arrangements · 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 US10809918B2 cover?
Options for handling write operations may be selected based on a determined probability that a read operation for a portion of data will occur while the data portion is still in an I/O cache as a result of a write operation. As used herein, a “read-after-write event (“RAW”) is an occurrence of a read operation for a portion of data while the data portion is still in an I/O cache as a result of …
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 20 2020 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).