Optimizing flattening in a multi-level data structure

US9977600B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9977600-B1
Application numberUS-201715638912-A
CountryUS
Kind codeB1
Filing dateJun 30, 2017
Priority dateNov 24, 2014
Publication dateMay 22, 2018
Grant dateMay 22, 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.

A system and method for efficiently maintaining metadata stored among a plurality of solid-state storage devices. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels. Each level stores at least pairs of a key value and a physical pointer value. The levels are sorted by time. New records are inserted in a created new highest (youngest) level. No edits are performed in-place. A data storage controller determines both a cost of searching a given table exceeds a threshold and an amount of memory used to flatten levels exceeds a threshold. In response, the controller incrementally flattens selected levels within the table based on key ranges. After flattening the records in the selected levels within the key range, the records may be removed from the selected levels. The process repeats with another different key range.

First claim

Opening claim text (preview).

The invention claimed is: 1. A node-based storage cluster, the node-based storage cluster configured to: detect a condition for flattening two or more levels within a multi-level data structure that includes a plurality of levels, where each level includes one or more entries and each entry within a level is associated with a key that is unique from all other entries in the level; and responsive to detecting the condition: select two or more levels for flattening; create a new level to be added to the multi-level data structure; insert, within the new level, each entry in the two or more levels whose key does not match the key of any other entry in the two or more levels; insert, within the new level, each valid entry in the two or more levels whose key does match the key of another entry in the two or more levels; receive, from each node in the node-based storage cluster, verification that the node is ready to utilize the new level; and remove, from the node-based storage cluster, the two or more levels for flattening, including archiving the two or more levels for flattening in offline storage. 2. The node-based storage cluster as recited in claim 1 , wherein the plurality of levels are organized based on temporal relationships between the levels. 3. The node-based storage cluster as recited in claim 1 , wherein the entry in the two or more levels whose key does match the key of another entry in the two or more levels is valid if the entry is included within a more recent level than any other entries in the two or more levels that are associated with the same key. 4. The node-based storage cluster as recited in claim 1 , wherein the entry in the two or more levels whose key does match the key of another entry in the two or more levels is invalid if the entry is included within a less recent level than any other entries in the two or more levels that are associated with the same key. 5. The node-based storage cluster as recited in claim 3 , wherein the node-based storage cluster is further configured to select the two or more levels based at least in part on an age of the two or more levels relative to other levels in the multi-level data structure. 6. The node-based storage cluster as recited in claim 1 , wherein the condition for flattening the two or more levels comprises an amount of memory used to store the plurality of levels exceeds a threshold. 7. The node-based storage cluster as recited in claim 1 , wherein the condition for flattening the two or more levels comprises a time to search for a given key in the plurality of levels exceeds a threshold. 8. A method for use in a storage system, the method comprising: detecting a condition for flattening two or more levels within a multi-level data structure, where each level includes one or more entries and each entry within a level is associated with a key that is unique from all other entries in the level; and responsive to detecting the condition: selecting two or more levels for flattening; creating a new level to be added to the multi-level data structure; inserting, within the new level, each entry in the two or more levels whose key does not match the key of any other entry in the two or more levels; inserting, within the new level, each valid entry in the two or more levels whose key does match the key of another entry in the two or more levels; receiving, from each node in the node-based storage cluster, verification that the node is ready to utilize the new level; and removing, from the node-based storage cluster, the two or more levels for flattening, including archiving the two or more levels for flattening in offline storage. 9. The method as recited in claim 8 , wherein the plurality of levels are organized based on temporal relationships between the levels. 10. The method as recited in claim 8 , wherein the entry in the two or more levels whose key does match the key of another entry in the two or more levels is valid if the entry is included within a more recent level than any other entries in the two or more levels that are associated with the same key. 11. The method as recited in claim 8 , wherein the entry in the two or more levels whose key does match the key of another entry in the two or more levels is invalid if the entry is included within a less recent level than any other entries in the two or more levels that are associated with the same key. 12. The method as recited in claim 8 , further comprising selecting the two or more levels based at least in part on an age of the two or more levels relative to other levels in the mapping table. 13. The method as recited in claim 8 , wherein the condition for flattening the two or more levels comprises an amount of memory used to store the plurality of levels exceeds a threshold. 14. The method as recited in claim 8 , wherein each of the one or more entries is associated with a key value and entries within a level are sorted by key value. 15. The method as recited in claim 8 , wherein the condition for flattening the two or more levels comprises a time to search for a given key in the plurality of levels exceeds a threshold. 16. A non-transitory computer readable storage medium storing program instruction executable by a processor to: detect a condition for flattening two or more levels within a multi-level data structure, where each level includes one or more entries and each entry within a level is associated with a key that is unique from all other entries in the level; and responsive to detecting the condition: select two or more levels for flattening; create a new level to be added to the multi-level data structure; insert, within the new level, each entry in the two or more levels whose key does not match the key of any other entry in the two or more levels; insert, within the new level, each valid entry in the two or more levels whose key does match the key of another entry in the two or more levels; receive, from each node in the node-based storage cluster, verification that the node is ready to utilize the new level; and remove, from the node-based storage cluster, the two or more levels for flattening, including archiving the two or more levels for flattening in offline storage. 17. The computer readable storage medium as recited in claim 16 , wherein the plurality of levels are organized based on temporal relationships between the levels. 18. The computer readable storage medium as recited in claim 16 , wherein the entry in the two or more levels whose key does match the key of another entry in the two or more levels is valid if the entry is included within a more recent level than any other entries in the two or more levels that are associated with the same key. 19. The computer readable storage medium as recited in claim 16 , wherein the entry in the two or more levels whose key does match the key of another entry in the two or more levels is invalid if the entry is included within a less recent level than any other entries in the two or more levels that are associated with the same key. 20. The node-based storage cluster of claim 1 , wherein the multi-level data structure is an append log.

Assignees

Inventors

Classifications

  • using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10) · CPC title

  • at area level, e.g. provisioning of virtual or logical volumes · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • De-duplication techniques · CPC title

  • Disk arrays, e.g. RAID, JBOD · 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 US9977600B1 cover?
A system and method for efficiently maintaining metadata stored among a plurality of solid-state storage devices. A data storage subsystem supports multiple mapping tables. Records within a mapping table are arranged in multiple levels. Each level stores at least pairs of a key value and a physical pointer value. The levels are sorted by time. New records are inserted in a created new highest (…
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0292. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 22 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).