Offload read and write offload provider
First Claim
Patent Images
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 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20)
-
-
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. - View Dependent Claims (17, 18)
-
19. A computer-implemented method comprising:
-
sending an offload read request to an offload provider, the offload provider operable to generate a token in response to receiving the offload read request, the token 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; receiving the token; sending a write request including the token, a length corresponding with the data represented by the token, 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; 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, performing an action selected from the group consisting of; copying at least a portion of data to a storage location in response to receiving the write request, unsharing shared storage used to store the data, logically copying data to a storage location in conjunction with providing the token in response to receiving the offload read request, writing a portion of the data as indicated by the write request to a newly-allocated physical storage location, taking a snapshot of the storage container or a portion thereof, and associating the token with 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.
-
Specification