Re-TRIM of free space within VHDX

US9778860B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9778860-B2
Application numberUS-201213612517-A
CountryUS
Kind codeB2
Filing dateSep 12, 2012
Priority dateSep 12, 2012
Publication dateOct 3, 2017
Grant dateOct 3, 2017

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.

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.

First claim

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

Assignees

Inventors

Classifications

  • G06F3/0614Primary

    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

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 US9778860B2 cover?
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 ope…
Who is the assignee on this patent?
Green Dustin, Starks John, Christiansen Neal, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F3/0614. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 03 2017 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).