System and methods for providing fast cacheable access to a key-value device through a filesystem interface

US11301422B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11301422-B2
Application numberUS-201615143504-A
CountryUS
Kind codeB2
Filing dateApr 29, 2016
Priority dateFeb 23, 2016
Publication dateApr 12, 2022
Grant dateApr 12, 2022

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 leveraging a native operating system ( 130 ) page cache ( 315 ) when using non-block system storage devices ( 120 ) is disclosed. A computer ( 105 ) may include a processor ( 110 ), memory ( 115 ), and a non-block system storage device ( 120 ). A file system ( 135 ) may be stored in memory ( 115 ) and running on the processor ( 110 ), which may include a page cache ( 315 ). A key-value file system (KVFS) ( 145 ) may reside between the file system ( 135 ) and the storage device ( 120 ) and may map received file system commands ( 310 ) to key-value system commands ( 330 ) that may be executed by the storage device ( 120 ). Results of the key-value system commands ( 330 ) may be returned to the file system ( 135 ), permitting the operating system ( 130 ) to cache data in the page cache ( 315 ).

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a computer; a processor in the computer; a memory in the computer; a key-value file system (KVFS) shim stored in the memory and running on the processor, the KVFS shim including: a first reception unit to receive a first key-value system command, the first key-value system command including an object name; a first mapping unit to map the first key-value system command to a file system command; and a first command unit to send the file system command to a file system; the file system stored in the memory and running on the processor, the file system including a page cache; a KVFS stored in the memory and running on the processor, the KVFS including: a second reception unit to receive the file system command from the file system, the file system command including a file name identifying a file; a second mapping unit to map the file system command to a second key-value system command; a second command unit to send the second key-value system command to a key-value storage device; and a return unit to return a result of the second key-value system command to the file system, wherein an object is stored on the key-value storage device and data for the object is stored in the page cache. 2. A system according to claim 1 , wherein the key-value storage device stores a data object and a metadata object for the file. 3. A system according to claim 1 , wherein the KVFS shim further includes a file descriptor locator table to store a file descriptor corresponding to the file. 4. A system according to claim 3 , wherein the first command unit is operative to send the file system command and the file descriptor to the file system. 5. A system according to claim 3 , wherein the KVFS shim further includes a name generator unit to generate the file name from the object name. 6. A system according to claim 1 , wherein the KVFS includes a KVFS cache. 7. A system according to claim 6 , wherein the KVFS cache is operative to store a copy of the data for the object from the key-value storage device. 8. A system according to claim 7 , wherein the return unit is operative to return less than the entirety of the data for the object stored in the KVFS cache to the file system. 9. A system according to claim 1 , wherein the KVFS includes an inode, the inode storing metadata for an object from the key-value storage device. 10. A system according to claim 1 , wherein based at least in part on the page cache storing the data for the object and the file system command requesting the data for the object, the file system may return the data for the object from the page cache without sending the file system command to the KVFS. 11. A method, comprising: receiving a file system command, the file system command identifying a file; accessing an inode corresponding to the file; accessing an object name from the inode, the object name identifying an object stored in a key-value storage device; attempting to perform a command on the object in a key-value file system (KVFS) cache in a KVFS; and returning a result of the command, wherein the object is stored on the key-value storage device and data for the object is stored in a page cache in a file system. 12. A method according to claim 11 , wherein attempting to perform a command on an object in a key-value file system (KVFS) cache includes: searching the KVFS cache for the object name; and based at least in part on an object with the object name existing in the KVFS cache, performing a command on the object in the KVFS cache. 13. A method according to claim 12 , wherein attempting to perform a command on an object in a key-value file system (KVFS) cache further comprises, based at least in part on the object with the object name not existing in the KVFS cache, includes: mapping the file system command to a key-value system command; sending the key-value system command on the object with the object name to the key-value storage device; receiving the object from the key-value storage device; and storing the object in the KVFS cache. 14. A method according to claim 13 , wherein returning a result of the key-value system command includes: accessing less than the entirety of a data for the object; and returning the less than the entirety of the data as the key-value system result. 15. A method according to claim 11 , further comprising, based at least in part on not locating an inode corresponding to the file descriptor: requesting a metadata object from the key-value storage device, the metadata object identified by the file name; receiving the metadata object from the key-value storage device, the metadata object including metadata for the file; extracting the metadata from the metadata object; and creating the inode using the metadata. 16. A method according to claim 11 , wherein attempting to perform a command on an object in a key-value file system (KVFS) cache includes modifying the inode responsive to the file system command. 17. A method according to claim 16 , wherein attempting to perform a command on an object in a key-value file system (KVFS) cache further includes: deleting the metadata object from the key-value storage device; and storing a replacement metadata object on the key-value storage device.

Assignees

Inventors

Classifications

  • G06F16/172Primary

    Caching, prefetching or hoarding of files · CPC title

  • G06F16/188Primary

    Virtual file systems · CPC title

  • File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06) · CPC title

  • Delete operations (erasing in storage systems G06F3/0652) · CPC title

  • Mapping; Conversion · 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 US11301422B2 cover?
A system and method for leveraging a native operating system ( 130 ) page cache ( 315 ) when using non-block system storage devices ( 120 ) is disclosed. A computer ( 105 ) may include a processor ( 110 ), memory ( 115 ), and a non-block system storage device ( 120 ). A file system ( 135 ) may be stored in memory ( 115 ) and running on the processor ( 110 ), which may include a page cache ( 315…
Who is the assignee on this patent?
Sinha Vikas, Guz Zvi, Lin Ming, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F16/172. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 12 2022 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).