Incremental erasure coding for storage systems
US-2018004414-A1 · Jan 4, 2018 · US
US10514847B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10514847-B2 |
| Application number | US-201615392857-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 28, 2016 |
| Priority date | Dec 28, 2016 |
| Publication date | Dec 24, 2019 |
| Grant date | Dec 24, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A data storage system includes multiple head nodes and multiple data storage sleds mounted in a rack. For a particular volume or volume partition one of the head nodes is designated as a primary head node for the volume or volume partition. The primary head node is configured to store data for the volume in a data storage of the primary head node and cause the data to be replicated to a secondary head node. The primary head node is also configured to cause the data for the volume to be stored in a plurality of respective mass storage devices each in different ones of the plurality of data storage sleds of the data storage system.
Opening claim text (preview).
What is claimed is: 1. A data storage system, comprising: a plurality of head nodes; and a plurality of mass storage devices, wherein for a volume partition of a volume to be stored in the data storage system, a control plane implemented on at least one of the plurality of head nodes is configured to designate a first of the plurality of head nodes as a primary head node for the volume partition and designate a second of the plurality of head nodes as a secondary head node for the volume partition, wherein, based, at least in part, on receiving a write request for the volume partition, the primary head node for the volume partition is configured to: write data included with the write request to a storage of the primary head node; and cause the data included with the write request to be replicated to the secondary head node; wherein in response to a failure of the primary head node or the secondary head node: the control plane is configured to designate a third of the plurality of head nodes as a replacement secondary head node; wherein the primary head node for the volume partition is further configured to cause respective parts of the data stored in the storage of the primary head node to be erasure encoded and stored in a plurality of the mass storage devices. 2. The data storage system of claim 1 , wherein the plurality of mass storage devices that store the erasure encoded respective parts of the data are in different ones of a plurality of data storage sleds of the data storage system. 3. The data storage system of claim 1 , wherein at least a portion of the data written to the storage of the primary head node is caused to be erasure encoded and stored in the plurality of respective mass storage devices based, at least in part, on: a quantity of data stored in the storage of the primary head node exceeding a threshold amount of stored data; or an amount of time, since data stored in the storage of the primary head node was stored, exceeding a threshold amount of time. 4. The data storage system of claim 1 , wherein the primary head node is configured to release storage space of the primary head node subsequent to performing said cause respective parts of the data stored in the storage of the primary head node to be stored in the plurality of the mass storage devices; and wherein the primary head node is configured to cause storage space of the secondary head node to be released subsequent to performing said cause respective parts of the data stored in the storage of the primary head node to be stored in the plurality of mass storage devices. 5. A data storage system, comprising: a head node of the data storage system; wherein the head node is configured to: serve as a primary head node for a volume partition based, at least in part, on being designated as the primary head node for the volume partition by a control plane implemented on at least one of a plurality of head nodes of the data storage system; and serve as a secondary head node for the volume partition based, at least in part, on being designated by the control plane as the secondary head node for the volume partition; wherein, based, at least in part, on receiving a write request for the volume partition, the head node, when acting as a primary head node of the data storage system for the volume partition, is configured to: write data included with the write request to a storage of the head node; and cause the data included with the write request to be replicated from the head node to another head node of the data storage system designated by the control plane as a secondary head node for the volume partition; and the head node, when acting as a secondary head node of the data storage system for the volume partition, is configured to: write data to a storage of the head node in response to replication caused by another head node of the data storage system designated by the control plane as the primary head node of the data storage system for the volume partition; and in response to a failure of the other head node designated as the primary head node of the data storage system for the volume partition, assume a role of primary head node of the data storage system for the volume partition, wherein the control plane designates a third of the plurality of head nodes of the data storage system as a replacement secondary head node for the volume partition; wherein the head node is further configured to cause respective parts of the data stored in the storage of the head node to be stored in a plurality of respective mass storage devices in different ones of a plurality of data storage sleds of the data storage system. 6. The data storage system of claim 5 , wherein the data is stored at a particular level of data durability when stored in the storage of the head node acting as the primary head node and stored in the storage of the other head node designated as the secondary head node; and wherein the data is stored at another level of data durability when the respective parts of the data are stored in the plurality of respective mass storage devices each in different ones of the plurality of data storage sleds of the data storage system. 7. The data storage system of claim 6 , wherein the head node when acting as the primary head node is configured to cause the data included in the write request to be replicated to one or more additional head nodes. 8. The data storage system of claim 6 , wherein the head node when acting as the primary head node is configured to adjust a number of data storage sleds across which the data stored in the storage of the head node is caused to be stored. 9. The data storage system of claim 5 , wherein the storage of the head node and the storage of the other head node are log-structured storages. 10. The data storage system of claim 9 , wherein the storage of the head node comprises an index, wherein for the volume partition, the index identifies a location within the log of the head node at which the data included in the write request is stored, wherein the head node is configured to update the index to identify respective portions of the plurality of respective mass storage devices each in different ones of the plurality of data storage sleds where the respective parts of the data are stored. 11. The data storage system of claim 5 , wherein the head node is configured to cause respective parts of the data stored in the storage of the head node to be stored in a plurality of respective mass storage devices asynchronously with the data being stored in the storage of the head node and in a storage of the other head node designated as the secondary head node. 12. The data storage system of claim 5 , wherein to cause the respective parts of the data stored in the in the storage of the head node to be stored in the plurality of respective mass storage devices, the head node is further configured to erasure encode the data stored in the storage of the head node across the plurality of mass storage devices. 13. The data storage system of claim 5 , wherein the head node, when acting as the primary head node of the data storage system for the volume partition, is configured to act as a secondary head node for another volume partition stored in the data storage system. 14. The data storage system of claim 13 , wherein the head node, when designated as a secondary head node for the other volume partition, does not cause data of the other volume partition to be stored in mass storage devices of the data storage sleds; and wherein the head node, upon being designated as a primary head node for the other volume partition is con
Hierarchically arranged intermediate devices, e.g. for hierarchical caching · CPC title
Sector or disk block · CPC title
Mirrored cache memory · CPC title
Non-volatile memory · CPC title
Multiple device management, e.g. distributing data over multiple flash devices · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.