Back to results
US 10,120,576 B2Granted
Storage cluster and method that efficiently store small objects with erasure codes
AssigneeWestern Digital Technologies, Inc.
InventorsAdam Manzanares, Lluis Pamies-Juarez, Cyril Guyot, Koen De Keyser, Mark Christiaens, Robert Mateescu
Life of this patent
Estimating the term…
Abstract
Small objects are efficiently stored with erasure codes by combining a small object with other small objects and/or large objects to form a single large object for chunking, and providing early notification of permanent storage to the sources of the objects to prevent small objects from becoming stale while waiting for additional objects to be combined.
Claims20
A storage cluster comprising:
- a number of permanent storage units;
- and
- a controller coupled to the number of permanent storage units, the controller having an input buffer and a non-volatile temporary memory, the controller configured to:
- receive a first object;
- determine that the first object is smaller than an unused portion of the input buffer;
- add the first object to the input buffer, thereby decreasing the unused portion of the input buffer;
- responsive to a latency condition occurring:
- copy object data including the first object from the input buffer to the non-volatile temporary memory, and
- automatically notify a source of the first object that the first object has been permanently stored,
- wherein the latency condition occurs when the first object waits in the input buffer for more than a predefined time;
- receive a second object;
- responsive to a determination that the second object is larger than the unused portion of the input buffer that includes the first object, permanently store the second object, and all objects in the input buffer including the first object, in the permanent storage units using erasure codes;
- and
- automatically notify a source of the second object that the second object has been permanently stored.
11 more elements
A method of operating a storage cluster, the method comprising:
- receiving a first object;
- determining that the first object is smaller than an unused portion of an input buffer;
- adding the first object to the input buffer, thereby decreasing the unused portion of the input buffer;
- responsive to a latency condition occurring:
- copying object data including the first object from the input buffer to a non-volatile temporary memory, and
- automatically notifying a source of the first object that the first object has been permanently stored,
- wherein the latency condition occurs when the first object waits in the input buffer for more than a predefined time;
- receiving a second object;
- responsive to a determination that the second object is larger than the unused portion of the input buffer that includes the first object, permanently storing the second object, and all objects in the input buffer including the first object, in non-volatile permanent memories using erasure codes;
- and
- automatically notifying a source of the second object that the second object has been permanently stored.
8 more elements
A method of operating a controller, the method comprising:
- receiving a first object that is smaller than an unused portion of an input buffer;
- adding the first object to the input buffer, thereby decreasing the unused portion of the input buffer;
- responsive to a latency condition occurring:
- copying object data including the first object from the input buffer to a non-volatile temporary memory, and
- automatically notifying a source of the first object that the first object has been permanently stored,
- wherein the latency condition occurs when the first object waits in the input buffer for more than a predefined time;
- receiving a second object;
- determining that the second object is larger than the unused portion of the input buffer;
- chunking the second object and all objects in the input buffer including the first object, as a single combined object, thereby forming combined chunks
- encoding the combined chunks to form combined erasure-encoded chunks;
- and
- automatically notifying a source of the second object that the second object has been permanently stored.
9 more elements
Dependencies are inferred from the claim text.