FILE STORAGE USING VARIABLE STRIPE SIZES
First Claim
Patent Images
1. A system, comprising:
- one or more computing devices configured to;
receive, at a multi-tenant storage service configured to distribute file contents across a plurality of storage devices, a write request directed to a file, wherein the write request indicates (a) a write offset within the file and (b) a write data payload;
determine, based at least in part on the write offset and the write data payload, that storage space is to be allocated to respond to the write request;
select, based at least in part on the write offset within the file, a size of a particular stripe of storage space to be allocated for the file;
identify, based at least in part on the size of the particular stripe, a storage subsystem node of the multi-tenant storage service at which at least one replica of the particular stripe is to be stored, wherein at least one replica of another stripe of the file is stored at a different storage subsystem node, and wherein the size of the particular stripe differs from a size of the other stripe;
allocate storage at the particular storage subsystem node for the particular stripe; and
modify contents of the particular stripe in accordance with the write request.
1 Assignment
0 Petitions
Accused Products
Abstract
A write request directed to a storage object is received at a distributed file storage service. Based on a variable stripe size selection policy, a size of a particular stripe of storage space to be allocated for the storage object is determined, which differs from the size of another stripe allocated earlier for the same storage object. Allocation of storage for the particular stripe at a particular storage device is requested, and if the allocation succeeds, the contents of the storage device are modified in accordance with the write request.
-
Citations
21 Claims
-
1. A system, comprising:
one or more computing devices configured to; receive, at a multi-tenant storage service configured to distribute file contents across a plurality of storage devices, a write request directed to a file, wherein the write request indicates (a) a write offset within the file and (b) a write data payload; determine, based at least in part on the write offset and the write data payload, that storage space is to be allocated to respond to the write request; select, based at least in part on the write offset within the file, a size of a particular stripe of storage space to be allocated for the file; identify, based at least in part on the size of the particular stripe, a storage subsystem node of the multi-tenant storage service at which at least one replica of the particular stripe is to be stored, wherein at least one replica of another stripe of the file is stored at a different storage subsystem node, and wherein the size of the particular stripe differs from a size of the other stripe; allocate storage at the particular storage subsystem node for the particular stripe; and modify contents of the particular stripe in accordance with the write request. - View Dependent Claims (2, 3, 4, 5)
-
6. A method, comprising:
performing, by one or more computing devices; receiving, at a distributed storage service, a write request directed to a file; determining, based at least in part on a variable stripe size selection policy, a size of a particular stripe of storage space to be allocated for the file to accommodate the write request; allocating storage for the particular stripe at a particular storage device, wherein storage for another stripe of the file is allocated at a different storage device, and wherein the other stripe has a different size than the particular stripe; and modifying contents of the particular storage device in accordance with the write request. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
receive, at a distributed storage service, a write request directed to a storage object; determine, based at least in part on a variable stripe size selection policy, a size of a particular stripe of storage space to be allocated for the storage object; request an allocation of storage for the particular stripe at a particular storage device; and initiate a modification of contents of the particular storage device in accordance with the write request. - View Dependent Claims (18, 19, 20, 21)
-
Specification