Offload read and write offload provider

US9817582B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9817582-B2
Application numberUS-201213345753-A
CountryUS
Kind codeB2
Filing dateJan 9, 2012
Priority dateJan 9, 2012
Publication dateNov 14, 2017
Grant dateNov 14, 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.

Aspects of the subject matter described herein relate to an offload provider. In aspects, an offload provider may provide a token that represents data. The offload provider may be expected to ensure that the data the token represents will not change while the token is valid. The offload provider may take actions to ensure the immutability of the data. The actions may be taken, for example, in conjunction with receiving an offload read and/or offload write, and/or in conjunction with receiving another write that, if allowed to proceed, would otherwise change the data represented by the token.

First claim

Opening claim text (preview).

What is claimed is: 1. A method implemented at least in part by a computer, the method comprising: receiving, at a data access component, a write request directed at a storage container, the write request involving one or more first storage locations of data represented by a token, the token previously generated during a read request by an offload provider responsible to ensure that the data represented by the token is unchanged while the token is valid, wherein the write request includes the token, a length, a token offset and a destination offset, wherein the token offset represents an offset from the beginning of the data represented by the token, and wherein the destination offset represents an offset from the beginning of the data at the storage location, and wherein the token offset is different from the destination offset; in response to receiving the write request, determining whether there has been an attempt to change the data represented by the token; and when it is determined that the attempt to change the data represented by the token has occurred, copying at least a portion of data affected by the write request to memory and updating the token to reference the memory. 2. The method of claim 1 , further comprising cancelling or truncating one or more of the in-progress offload writes. 3. The method of claim 1 , further comprising placing a reference to a range of the data in a destination write cache prior to receiving the write request and after receiving the write request, copying the range of the data into the write cache or a destination storage container prior to allowing the write request to modify data in the range. 4. The method of claim 1 , further comprising: prior to receiving the write request, updating a sharing data structure that tracks physical data used to share data between two or more storage containers, creating the token, and causing the token to reference a portion of the physical data, the updating the sharing data structure causing the sharing data structure to share the portion of the physical data for representation by the token; after receiving the write request, updating the sharing data structure to unshare the physical data for the destination of the write request; and allowing the write request to proceed. 5. The method of claim 4 , further comprising updating a reverse-map data structure in conjunction with updating the sharing data structure, the reverse-map data structure tracking usage of physical data by a logical storage container. 6. The method of claim 1 , further comprising performing a garbage collection of storage to maintain data structures that use physical data to back two or more logical copies. 7. The method of claim 1 , further comprising: receiving an offload read request prior to receiving the write request; and generating the token in response to receiving the offload read request and obtaining an opportunistic lock on the data in the generated token. 8. The method of claim 1 , further comprising: after receiving an offload write request in conjunction with the token, updating a sharing data structure that tracks physical data used to share data between two or more storage containers, and causing a destination of the offload write to reference a portion of the physical data, the portion of the physical data also associated with the token, the updating the sharing data structure causing the sharing data structure to share the portion of the physical data between the destination of the offload write and the token; after receiving the write request, updating the sharing data structure to unshare the portion of the physical data for a destination of the write request, and allowing the write request to proceed. 9. The method of claim 8 , wherein performing the action comprises performing the action prior to releasing an opportunistic lock on the data. 10. The method of claim 1 , further comprising: receiving an offload read request prior to receiving the write request; and in response to receiving the offload read request, copying data associated with the token to memory prior to providing the token. 11. The method of claim 10 , further comprising copying the data associated with the token to additional memory prior to receiving the write request, the additional memory including one or more of volatile or nonvolatile memory. 12. The method of claim 1 , further comprising receiving an offload read request prior to receiving the write request, and in response creating a token that is associated with data of the storage container, the storage container being a read-only storage container when the offload read request is received. 13. The method of claim 12 , further comprising creating a snapshot of the read-only storage container prior to allowing the write request to change the storage container to a read-write storage container, the write request being a request to change the storage container to a read-write storage container. 14. The method of claim 13 , wherein creating a snapshot of the read-only storage container comprises creating a snapshot for the entire read-only storage container. 15. The method of claim 13 , wherein creating a snapshot of the read-only storage container comprises creating a snapshot of a portion of the read-only storage container, the portion backing the data of the token. 16. In a computing environment, a system, comprising: an offload provider, in a computing device, operable to generate a token in response to receiving an offload read request, the token initially representing data of a storage container, the offload provider responsible to: ensure that the data represented by the token is unchanged while the token is valid, receive a write request including the token, a length, a token offset and a destination offset, wherein the token offset represents an offset from the beginning of the data represented by the token, and wherein destination offset represents an offset from the beginning of the data at one or more second storage locations, and wherein the token offset is different from the destination offset, and determine that the write request involves one or more first storage locations also used to store data represented by the token, determine whether there has been an attempt to change the data represented by the token; and when it is determined that the attempt to change the data represented by the token has occurred, performing an action selected from the group consisting of: copying at least a portion of data to one or more second storage locations in response to receiving the write request, unsharing shared storage used to store the data, logically copying at least a portion of data to one or more second storage locations in conjunction with providing the token in response to receiving the offload read request, in performing a logical write, writing a portion of the logically-written data to a newly-allocated physical storage location, taking a snapshot of the storage container or a portion thereof, and associating the token with a portion of a read-only storage container that logically includes the data, wherein a portion of data affected by the action is indicated by the length of the write request. 17. The system of claim 16 , wherein the offload provider is operable to ensure that the data represented by the token is unchangeable by being operable to take an additional action, the additional action including obtaining an opportunistic lock on the data in conjunction with providing the token in response to receiving the offload read request.

Assignees

Inventors

Classifications

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • G06F3/0611Primary

    in relation to response time · CPC title

  • Single storage device · CPC title

  • Replication mechanisms · 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 US9817582B2 cover?
Aspects of the subject matter described herein relate to an offload provider. In aspects, an offload provider may provide a token that represents data. The offload provider may be expected to ensure that the data the token represents will not change while the token is valid. The offload provider may take actions to ensure the immutability of the data. The actions may be taken, for example, in c…
Who is the assignee on this patent?
Green Dustin L, Nagar Rajeev, Christiansen Neal R, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F3/0611. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 14 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).