Memory system and host device
US-2024394189-A1 · Nov 28, 2024 · US
US9778860B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9778860-B2 |
| Application number | US-201213612517-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 12, 2012 |
| Priority date | Sep 12, 2012 |
| Publication date | Oct 3, 2017 |
| Grant date | Oct 3, 2017 |
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.
An invention is disclosed for maintaining out-of-band metadata for data. In embodiments of the invention, an upper layer of a storage stack determines that the metadata of a lower layer of that storage stack may have become out of sync. In response, the upper layer may issue a series of commands to the lower layer based on the metadata. In other embodiments of the invention, an offload-copy operation on data may also transfer out-of-band metadata so that it is applied to the data at the destination.
Opening claim text (preview).
What is claimed: 1. A method for re-establishing out-of-band metadata in a lower layer of a storage stack of a computer system, the storage stack comprising an upper layer and the lower layer, comprising: determining, by the upper layer, a probability that out-of-band metadata in the lower layer has become out of sync with the upper layer; determining, by the upper layer, based at least in part on the probability that out-of-band metadata in the lower layer has become out of sync, a set of metadata maintenance commands for the lower layer, wherein the set of metadata maintenance commands are sent independent of whether those commands have already been issued, and independent of whether a portion of the lower layer has become free; sending, by the upper layer, the set of metadata maintenance commands to the lower layer; and modifying, by the lower layer, at least one of the data and the metadata stored in the lower layer, in response to receiving the set of metadata maintenance commands. 2. The method of claim 1 , where the metadata maintenance commands comprise TRIM operations, and wherein determining the set of metadata maintenance commands comprises: determining the set of metadata maintenance commands based on free space identified in a free space map of the lower layer that is maintained by the upper layer. 3. The method of claim 2 , wherein determining the set of metadata maintenance commands comprises: allocating and then deallocating ranges from free space of the lower layer as identified in the free space map; and sending a TRIM command to the lower layer corresponding to the free space, based on deallocating ranges in free space of the lower layer. 4. The method of claim 1 , wherein the upper layer is implemented on the lower layer, and wherein out-of-band metadata comprises: metadata stored on the upper layer, where corresponding payload data is stored on the lower layer without being stored on the upper layer; and metadata stored on the lower layer in a different physical location than corresponding payload data stored on the lower layer. 5. The method of claim 1 , wherein determining, by the upper layer, a probability that out-of-band metadata in the lower layer has become out of sync, comprises at least one of: determining that a pre-determined amount of time has elapsed since the lower layer became present in the storage stack, or since the upper layer has last determined a different set of metadata maintenance commands for the lower layer; determining that a threshold amount of input/output (I/O) activity directed toward the lower layer has occurred; determining, by the upper layer, that an identifier of an epoch for the lower layer has changed, the identifier of the epoch changing in response to the lower layer configuration being modified, or the lower layer being added or removed; receiving, by the upper layer, a request from the lower layer that out-of-band metadata for the lower layer be re-established; determining that the lower layer has been added to the storage stack; determining, by the upper layer, that an operation on the lower layer has occurred that may potentially have caused out-of-band metadata for the lower layer to become out of sync; determining that an amount of mirroring of data in the lower layer has increased; or determining that a block size of the lower layer has potentially changed, wherein, determining that the block size has changed from a known value to an unknown value, or to from an unknown value to a known value. 6. The method of claim 1 , wherein the out-of-band metadata comprises a heat map that indicates a portion of the lower layer to be kept in a more accessible portion of the lower layer, and wherein determining the set of metadata maintenance commands for the lower layer comprises: determining a command to indicate to the lower layer to keep the portion of the lower layer in the more accessible portion of the lower layer. 7. The method of claim 1 , wherein determining, by the upper layer, the set of metadata maintenance commands for the lower layer comprises: translating a byte range from an address space in the upper layer to an address space in the lower layer, the set of metadata maintenance commands identifying the byte range in the address space in the lower layer. 8. The method of claim 1 , wherein modifying, by the lower layer, at least one of the data and the metadata stored in the lower layer, in response to receiving the set of metadata maintenance commands comprises: determining, by the lower layer, a first portion of the set of metadata maintenance commands to be implemented by the lower layer, and a second portion of the set of metadata maintenance commands to be implemented by a layer below the lower layer; implementing, by the lower layer and on the lower layer, the first portion of the set of metadata maintenance commands; modifying, by the lower layer, at least one of the data and the metadata stored in the lower layer based on the first portion of the set of metadata maintenance commands; sending, by the lower layer, the second portion of the set of metadata maintenance commands to the layer below the lower layer; and modifying, by the layer below the lower layer, at least one of the data and the metadata stored in the layer below the lower layer, in response to receiving the second portion of the set of metadata maintenance commands. 9. The method of claim 1 , wherein the set of metadata maintenance commands comprise TRIM commands, and wherein modifying, by the lower layer, at least one of the data and the metadata stored in the lower layer, in response to receiving the set of metadata maintenance commands comprises: trimming logical ranges of the lower layer, by the lower layer, based on the metadata maintenance commands. 10. A computer-readable storage medium, excluding signals per se, for re-establishing out-of-band metadata in a lower layer of a storage stack comprising an upper layer and that lower layer, bearing computer-executable instructions that, when executed on a computer, cause the computer to perform operations comprising: determining, by the upper layer, a probability that out-of-band metadata in the lower layer has become out of sync with the upper layer; determining, by the upper layer, based at least in part on the probability that out-of-band metadata in the lower layer has become out of sync, a set of metadata maintenance commands for the lower layer, independent of whether those commands have already been issued, and independent of whether a portion of the lower layer has become free; sending, by the upper layer, the set of metadata maintenance commands to the lower layer; and modifying, by the lower layer, at least one of the data and the metadata stored in the lower layer, in response to receiving the set of metadata maintenance commands. 11. The computer-readable storage medium, excluding signals per se, of claim 10 , wherein determining, by the upper layer, a probability that out-of-band metadata in the lower layer has become out of sync, comprises: determining that a pre-determined amount of time has elapsed since the lower layer became present in the storage stack, or since the upper layer has last determined a different set of metadata maintenance commands for the lower layer. 12. The computer-readable storage medium, excluding signals per se, of claim 10 , wherein determining, by the upper layer, a probability that out-of-band metadata in the lower layer has become out of sync, comprises: determining that a threshold amount of input/output (I/O) activity directed toward the lower layer has occurred. 13. The com
Improving the reliability of storage systems · CPC title
Improving I/O performance · CPC title
Replication mechanisms · CPC title
Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title
Management of blocks · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.