ERASURE CODING FOR ELASTIC CLOUD STORAGE
First Claim
Patent Images
1. A method for use with a distributed storage system comprising a plurality of storage nodes each having attached storage devices, the method comprising:
- receiving a request from a client to store data;
storing a copy of the data within the storage devices attached to a first storage node;
storing a copy of the data within the storage devices attached to a second storage node;
returning an acknowledgement to the client;
scheduling a first erasure encoding task on the first storage node;
scheduling a second erasure encoding task on the second storage node;
executing, on the first storage node, the first erasure encoding task to generate a first plurality of coded fragments using the copy of the data stored within attached storage devices;
executing, on the second storage node, the second erasure encoding task to generate a second plurality of coded fragments using the copy of the data stored within attached storage devices; and
storing the first and second pluralities of coded fragments within storage devices attached to at least two different storage nodes.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for efficiently protecting data within a distributed storage system using erasure coding. Unnecessary network traffic can be eliminated by scheduling executing erasure coding tasks on storage nodes that have local copies of data. Encoding may be performed in parallel by multiple nodes to reduce elapsed encoding time.
10 Citations
16 Claims
-
1. A method for use with a distributed storage system comprising a plurality of storage nodes each having attached storage devices, the method comprising:
-
receiving a request from a client to store data; storing a copy of the data within the storage devices attached to a first storage node; storing a copy of the data within the storage devices attached to a second storage node; returning an acknowledgement to the client; scheduling a first erasure encoding task on the first storage node; scheduling a second erasure encoding task on the second storage node; executing, on the first storage node, the first erasure encoding task to generate a first plurality of coded fragments using the copy of the data stored within attached storage devices; executing, on the second storage node, the second erasure encoding task to generate a second plurality of coded fragments using the copy of the data stored within attached storage devices; and storing the first and second pluralities of coded fragments within storage devices attached to at least two different storage nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A distributed storage system, comprising:
-
a plurality of storage nodes having attached storage devices; a first storage node from the plurality of storage nodes having attached storage devices and configured to; receive a request from a client to store data; store a copy of the data within the storage devices attached to a second storage node; store a copy of the data within the storage devices attached to a third storage node; return an acknowledgement to the client; schedule a first erasure encoding task on the second storage node; and schedule a second erasure encoding task on the third storage node; the second storage node from the plurality of storage nodes having attached storage devices and configured to; execute the first erasure encoding task to generate a first plurality of coded fragments using the copy of the data stored within attached storage devices; and store the first plurality of coded fragments within storage devices attached to at least two different storage nodes; and the third storage node from the plurality of storage nodes having attached storage devices and configured to; execute the second erasure encoding task to generate a second plurality of coded fragments using the copy of the data stored within attached storage devices; and store the second plurality of coded fragments within storage devices attached to at least two different storage nodes. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification