Logical sector mapping in a flash storage array

US9454477B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9454477-B2
Application numberUS-201414477470-A
CountryUS
Kind codeB2
Filing dateSep 4, 2014
Priority dateAug 11, 2011
Publication dateSep 27, 2016
Grant dateSep 27, 2016

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 performing user storage virtualization for data stored in a storage system including 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 pairs of a key value and a pointer value. The levels are sorted by time. New records are inserted in a created newest (youngest) level. No edits are performed in-place. All levels other than the youngest may be read only. The system may further include an overlay table which identifies those keys within the mapping table that are invalid.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing system comprising: a data storage medium; a data storage controller coupled to the data storage medium, the controller configured to: identify a query value corresponding to a read request; select, in dependence upon the query value, from a plurality of levels within a mapping table, the youngest level associated with the query value; and search the selected youngest level for an entry that maps the query value to a value corresponding to a location within the data storage medium. 2. The system as recited in claim 1 , further comprising a plurality of processes; wherein each mapping table entry comprising a tuple including a tuple key value that may be used to identify data stored within the system; and wherein only a first process of the processes is permitted to modify data corresponding to a first subset of the tuple key values, and only a second process of the processes is permitted to modify data corresponding to a second subset of the key values, wherein the second subset does not overlap the first subset; wherein levels which are older than a given time may be accessed by multiple processes of the processes without requiring synchronization between the multiple processes. 3. The system as recited in claim 2 , wherein the mapping table includes a third subset of the tuple key values different from the first subset and the second subset, wherein a process is not assigned to manage modifications of the third subset of the tuple key values until an update to data corresponding to the third subset is performed. 4. The system as recited in claim 3 , wherein prior to a process being assigned to manage modifications of data corresponding to the third subset, any process of the processes may service a read access to the data corresponding to the third subset. 5. The system as recited in claim 2 , wherein two or more processes of the plurality of processes may service queries for a given key to multiple levels of the plurality of levels simultaneously. 6. The system as recited in claim 5 , wherein a result corresponding to a most recent level of the plurality of levels provided by the two or more processes is selected as the final result. 7. The system as recited in claim 5 , wherein the given key corresponds to a subset managed by a particular process and levels in memory are queried by the particular process, and wherein levels which may be cached by other processes may be queried by those other processes. 8. The system as recited in claim 1 , wherein levels of the plurality of levels other than the newest level are read only. 9. A method for use in a storage system, the method comprising: identifying a query value corresponding to a read request; selecting, in dependence upon the query value, from a plurality of levels within a mapping table, the youngest level associated with the query value; and searching the selected youngest level for an entry that maps the query value to a value corresponding to a location within the data storage medium. 10. The method as recited in claim 9 , further comprising executing a plurality of processes in the system; wherein each mapping table entry comprising a tuple including a tuple key value that may be used to identify data stored within the system; and wherein only a first process of the processes is permitted to modify data corresponding to a first subset of the tuple key values, and only a second process of the processes is permitted to modify data corresponding to a second subset of the key values, wherein the second subset does not overlap the first subset; the method further comprising permitting multiple processes of the processes to access levels which are older than a given time without requiring synchronization between the multiple processes. 11. The method as recited in claim 10 , wherein the mapping table includes a third subset of the tuple key values different from the first subset and the second subset, and wherein a process is not assigned to manage modifications of the third subset of the tuple key values until an update to data corresponding to the third subset is performed. 12. The method as recited in claim 11 , further comprising permitting any process of the processes to service a read access to the data corresponding to the third subset prior to a process being assigned to manage modifications of data corresponding to the third subset. 13. The method as recited in claim 10 , further comprising permitting two or more processes of the plurality of processes to service queries for a given key to multiple levels of the plurality of levels simultaneously. 14. The method as recited in claim 13 , further comprising selecting as a final result of two or more processes servicing queries for the given key, a result corresponding to a most recent level of the plurality of levels provided by the two or more processes. 15. The method as recited in claim 13 , wherein the given key corresponds to a subset managed by a particular process and levels in memory are queried by the particular process, and wherein levels which may be cached by other processes may be queried by those other processes. 16. The method as recited in claim 9 , wherein levels of the plurality of levels other than the newest level are read only. 17. A non-transitory computer readable storage medium storing program instruction executable by a processor to: identify a query value corresponding to a read request; select, in dependence upon the query value, from a plurality of levels within a mapping table, the youngest level associated with the query value; and search the selected youngest level for an entry that maps the query value to a value corresponding to a location within the data storage medium. 18. The storage medium as recited in claim 17 , further comprising executing a plurality of processes in the system; wherein each mapping table entry comprises a tuple including a tuple key value that may be used to identify data stored within the system; and wherein only a first process of the processes is permitted to modify data corresponding to a first subset of the tuple key values, and only a second process of the processes is permitted to modify data corresponding to a second subset of the key values, wherein the second subset does not overlap the first subset; wherein the program instructions are further executable to cause multiple processes of the processes to access levels of the time ordered levels which are older than a given time without requiring synchronization between the multiple processes. 19. The storage medium as recited in claim 18 , wherein the mapping table includes a third subset of the tuple key values different from the first subset and the second subset, and wherein the program instructions are executable to not assign a process to manage modifications of the third subset of the tuple key values until an update to data corresponding to the third subset is performed. 20. The storage medium as recited in claim 19 , wherein the program instructions are further executable to allow any process of the processes to service a read access to the data corresponding to the third subset prior to a process being assigned to manage modifications of data corresponding to the third subset.

Assignees

Inventors

Classifications

  • using page tables, e.g. page table structures · CPC title

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

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Organizing or formatting or addressing of data · CPC title

  • De-duplication techniques · 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 US9454477B2 cover?
A system and method for efficiently performing user storage virtualization for data stored in a storage system including 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 pairs of a key value and a pointer value. The levels are sorted by time. New records are in…
Who is the assignee on this patent?
Pure Storage 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 Sep 27 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).