Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US10809918B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10809918-B2 |
| Application number | US-201916263541-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 31, 2019 |
| Priority date | Jan 31, 2019 |
| Publication date | Oct 20, 2020 |
| Grant date | Oct 20, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
Probabilistic graphical models, e.g. probabilistic networks · CPC title
Forward inferencing; Production systems · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Improving I/O performance · CPC title
Data buffering arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.