High performance and memory efficient metadata caching

US2017192892A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017192892-A1
Application numberUS-201614989392-A
CountryUS
Kind codeA1
Filing dateJan 6, 2016
Priority dateJan 6, 2016
Publication dateJul 6, 2017
Grant date

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 technique provides memory efficient caching of metadata managed by a volume layer of a storage input/output stack executing on one or more nodes of a cluster. Efficient caching of the metadata in a memory of a node may be realized through the use of a caching data structure, i.e., a page cache, configured to store a key-value pair, wherein the key is an extent key and the value is a metadata page containing the index entries. The page cache illustratively includes two data structures configured to maintain the properties of Least Recently Used (LRU) and Least Frequently Used (LFU) for the cache. The first data structure is a hash table that stores a dense tree metadata page (value) indexed by the extent key. The second data structure is a recycle queue that controls the metadata page stored in the hash table based on spatial and temporal locality of the page.

First claim

Opening claim text (preview).

What is claimed is: 1 . A system comprising: a processor of a storage system; and a memory coupled to the processor and configured to store a storage input/output (I/O) stack executable by the processor, the memory including a page cache configured to provide caching of metadata managed the storage I/O stack, the metadata embodied as mappings from logical block addresses of a logical unit to extent keys associated with storage locations of extents organized as metadata pages, the page cache including a hash table having one or more entries, each entry configured to store a metadata page indexed by an extent key, the page cache further including a recycle queue configured to control the metadata page stored in the hash table based on spatial and temporal locality of the metadata page. 2 . The system of claim 1 wherein the recycle queue is configured to transform the page cache into a priority cache by controlling the metadata page stored in the cache based on priority. 3 . The system of claim 1 wherein the hash table and the recycle queue are configured to maintain properties of Least Recently Used (LRU) and Least Frequently Used (LFU) for the metadata pages in the cache. 4 . The system of claim 3 wherein the recycle queue comprises a multi-level data structure and wherein each level indicates a priority associated with each metadata page at a time of insertion into the hash table of the page cache. 5 . The system of claim 4 wherein each level of the recycle queue is organized as a doubly-linked list of elements and wherein each element has a first pointer referencing a corresponding entry in the hash table that includes a second pointer referencing the element in the recycle queue. 6 . The system of claim 5 wherein a position of the element within the doubly-linked list indicates an ordinal ranking of access to the metadata page corresponding to the element to maintain the LRU property of the page cache. 7 . The system of claim 6 wherein each entry of the hash table includes a pointer field configured to store a pointer that references a corresponding element of the recycle queue. 8 . The system of claim 7 wherein each entry of the hash table further includes a reference count field configured to store a first value indicating a number of references to the metadata page of the entry. 9 . The system of claim 8 wherein each entry of the hash table further includes a recycle count field configured to store a second value indicating a number of times the metadata page of the entry is inserted into the recycle queue. 10 . A method comprising: storing a storage input/output (I/O) stack in a memory coupled to a processor, the storage I/O stack executable by the processor to manage metadata cached in a page cache of the memory, the metadata embodied as mappings from logical block addresses of a logical unit to extent keys associated with storage locations of extents organized as metadata pages; organizing the page cache as a hash table and a recycle queue; storing a metadata page in an entry of the hash table; indexing the metadata page by an extent key; and controlling the metadata page stored in the hash table using the recycle queue, wherein the metadata page is controlled based on spatial and temporal locality of the metadata page. 11 . The method of claim 10 wherein controlling the metadata page comprises: controlling the metadata page stored in the cache based on priority to transform the page cache into a priority cache. 12 . The method of claim 11 further comprising: configuring the hash table and the recycle queue to maintain properties of Least Recently Used (LRU) and Least Frequently Used (LFU) for the metadata pages in the cache. 13 . The method of claim 12 further comprising: organizing the recycle queue as a multi-level data structure, wherein each level indicates a priority associated with each metadata page at a time of insertion into the hash table of the page cache. 14 . The method of claim 13 further comprising: organizing each level of the recycle queue as a doubly-linked list of elements, wherein each element has a first pointer referencing a corresponding entry in the hash table that includes a second pointer referencing the element in the recycle queue. 15 . The method of claim 14 further comprising: indicating an ordinal ranking of access to the metadata page corresponding to the element based on a position of the element within the doubly-linked list to maintain the LRU property of the page cache. 16 . The method of claim 15 further comprising: storing a pointer that references a corresponding element of the recycle queue in a pointer field of each entry of the hash table. 17 . The method of claim 16 further comprising: storing a first value indicating a number of references to the metadata page of each entry in a reference count field of the respective entry of the hash table. 18 . The method of claim 17 further comprising: storing a second value indicating a number of times the metadata page of each entry is inserted into the recycle queue in a recycle count field of the respective entry of the hash table. 19 . A non-transitory computer readable medium including program instructions for execution on a processor of a storage system, the program instructions when executed operable to: store a storage input/output (I/O) stack in a memory coupled to a processor, the storage I/O stack executable by the processor to manage metadata cached in a page cache of the memory, the metadata embodied as mappings from logical block addresses of a logical unit to extent keys associated with storage locations of extents organized as metadata pages; organize the page cache as a hash table and a recycle queue; store a metadata page in an entry of the hash table; index the metadata page by an extent key; and control the metadata page stored in the hash table using the recycle queue, wherein the metadata page is controlled based on spatial and temporal locality of the metadata page. 20 . The non-transitory computer readable medium of claim 19 wherein the program instructions when executed to control the metadata page is are further operable to: control the metadata page stored in the page cache based on priority to transform the page cache into a priority cache.

Assignees

Inventors

Classifications

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • In storage device · CPC title

  • Distributed directories, e.g. linked lists of caches · CPC title

  • Data transfer between cache memory and other subsystems, e.g. storage devices or host systems · CPC title

  • Correctness of operation, e.g. memory ordering · 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 US2017192892A1 cover?
A technique provides memory efficient caching of metadata managed by a volume layer of a storage input/output stack executing on one or more nodes of a cluster. Efficient caching of the metadata in a memory of a node may be realized through the use of a caching data structure, i.e., a page cache, configured to store a key-value pair, wherein the key is an extent key and the value is a metadata …
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0804. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 06 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).