Storage cluster and method that efficiently store small objects with erasure codes

US10120576B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10120576-B2
Application numberUS-201615065025-A
CountryUS
Kind codeB2
Filing dateMar 9, 2016
Priority dateMar 9, 2016
Publication dateNov 6, 2018
Grant dateNov 6, 2018

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.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. 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. 2. The storage cluster of claim 1 , wherein copying the object data creates a temporary copy of the first object in the non-volatile temporary memory. 3. The storage cluster of claim 2 , wherein a source of the first object is notified of a permanent storage of the first object subsequent to a creation of the temporary copy of the first object in the non-volatile temporary memory and prior to permanently storing the first object in the permanent storage units. 4. The storage cluster of claim 1 , wherein the object data copied to the non-volatile temporary memory responsive to the latency condition occurring is of a predefined amount of data. 5. The storage cluster of claim 1 , wherein permanently storing the second object, and all objects in the input buffer including the first object, in the permanent storage units using erasure codes includes: combining the second object, and all objects in the input buffer including the first object, into a single object; chunking the single object into a number of chunks; encoding the number of chunks to form a number of erasure-encoded chunks; and transferring the number of erasure-encoded chunks to the permanent storage units, wherein the permanent storage units permanently store the number of erasure-encoded chunks. 6. The storage cluster of claim 1 , wherein the input buffer is a volatile memory. 7. The storage cluster of claim 1 , wherein the controller is further configured to: receive a third object that is larger than the input buffer, wherein the input buffer is empty; and permanently store the third object in the permanent storage units using erasure codes. 8. 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. 9. The method of claim 8 , wherein copying the object data creates a temporary copy of the first object in the non-volatile temporary memory. 10. The method of claim 8 , wherein the object data copied to the non-volatile temporary memory responsive to the latency condition occurring is of a predefined amount of data. 11. The method of claim 8 , wherein a source of the first object is notified of a permanent storage of the first object subsequent to a creation of a temporary copy of the first object in the non-volatile temporary memory and prior to permanently storing the first object in the non-volatile permanent memories. 12. The method of claim 8 , wherein permanently storing the second object, and all objects in the input buffer including the first object, in the non-volatile permanent memories using erasure codes includes: combining the second object, and all objects in the input buffer including the first object, into a single object; chunking the single object into a number of chunks; encoding the number of chunks to form a number of erasure-encoded chunks; and transferring the number of erasure-encoded chunks to a number of non-volatile permanent memories, wherein the non-volatile permanent memories permanently store the number of erasure-encoded chunks. 13. The method of claim 8 , wherein the input buffer is a volatile memory. 14. The method of claim 8 , further comprising: receiving a third object that is larger than the input buffer, wherein the input buffer is empty; and permanently storing the third object in the non-volatile permanent memories using erasure codes. 15. 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. 16. The method of claim 15 , wherein copying the object data creates a temporary copy of the first object in the non-volatile temporary memory. 17. The method of claim 15 , wherein the object data copied to the non-volatile temporary memory responsive to the latency condition occurring is of a predefined amount of data. 18. The method of claim 15 , wherein a source of the first object is notified of a permanent storage of the first object subsequent to a creation of a temporary copy of the first object in the non-volatile temporary memory and prior to permanently storing the first object in non-volatile permanent memories. 19. The method of claim 15 , wherein the input buffer is volatile memory. 20. The method of claim 15 , further comprising: receiving a third object that is larger than the input

Assignees

Inventors

Classifications

  • Data buffering arrangements · CPC title

  • Format or protocol conversion arrangements · CPC title

  • Monitoring storage devices or systems · CPC title

  • G06F3/0608Primary

    Saving storage space on storage systems · CPC title

  • Management of files · 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 US10120576B2 cover?
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.
Who is the assignee on this patent?
HGST Netherlands BV, Western Digital Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0608. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 06 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).