Key value file system

US11030155B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11030155-B2
Application numberUS-201715645916-A
CountryUS
Kind codeB2
Filing dateJul 10, 2017
Priority dateApr 26, 2017
Publication dateJun 8, 2021
Grant dateJun 8, 2021

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 file system includes: an application programming interface (API) configured to provide a file system access to an application running on a host computer; a key value file system configured to represent a file or a directory as an inode including one or more key-value pairs; a virtual file system configured to direct a file system call received from the application to the key value file system; and a key value API configured to provide the file system access to data stored in a data storage device. Each key-value pair contained in the inode includes a name of the file or the directory as a key and an identifier of a container that is associated with the file or the directory as a value. The data of the file is stored in the data storage device as being divided into one or more data blocks of a fixed size, and each of the one or more data blocks associated with the data of the file is accessible within the key value file system using the one or more key-value pairs.

First claim

Opening claim text (preview).

What is claimed is: 1. A file system comprising: an application programming interface (API) configured to provide a file system access to an application running on a host computer; a key value file system configured to represent a file or a directory as an inode including one or more key-value pairs; a virtual file system configured to direct a file system call received from the application to the key value file system; and a key value API configured to provide the file system access to data stored in a data storage device, wherein each key-value pair contained in the inode includes a name of the file or the directory as a key and an identifier of a container that is associated with the file or the directory as a value, wherein the data of the file is stored in the data storage device as being divided into one or more data blocks of a fixed size, and each of the one or more data blocks associated with the data of the file is accessible within the key value file system using the one or more key-value pairs, wherein the data storage device stores the inode as a container inode or an inline inode depending on a predetermined number of entries in the inode, and wherein the container inode includes one or more key-value pairs corresponding to each of the entries, and the inline inode includes a single key-value pair, a value of the single key-value pair includes a list of attributes corresponding to the entries. 2. The file system of claim 1 , wherein the API is portable operating system interface for Unix (POSIX) API, and an operating system of the file system is Linux. 3. The file system of claim 1 , wherein attributes of the inode are stored in a key-value pair of the one or more key-value pairs. 4. The file system of claim 1 , wherein the directory is represented by either a container directory or an inline directory depending on a number of key-value pair entries contained in the container of the directory. 5. The file system of claim 4 , wherein the container of the inline directory includes a single key-value pair, and wherein the value of the single key-value pair includes attributes of the inline directory and one or more key-value pairs corresponding to one or more subdirectories of the inline directory or one or more files stored in the inline directory. 6. The file system of claim 4 , the inline directory is converted to the container directory when the number of entries exceeds a predetermined size, and the container directory is converted to the inline directory when the number of entries is reduced below the predetermined size. 7. The file system of claim 1 , wherein the file is represented by either a container file or an inline file depending on a number of key-value pair entries contained in the container of the file. 8. The file system of claim 7 , wherein the container of the container file includes one or more key-value pairs corresponding to the one or more data blocks of the data for the container file. 9. The file system of claim 7 , wherein the container of the inline file includes one or more key-value pairs, and at least one key-value pair of the one or more key-value pairs includes a name of the inline file and data associated with the inline file, and wherein the data of the at least one key-value pair includes one or more key-value pairs corresponding to data blocks storing data of the inline file. 10. The file system of claim 7 , the inline file is converted to the container file when the number of entries in the container of the inline file exceeds a predetermined size, and the container file is converted to the inline file when the number of entries is reduced below the predetermined size. 11. The file system of claim 1 , wherein the file is stored in a plurality of data storage devices, and the inode includes one or more key-value tuples including an identifier of the data storage device, an identifier of the container, and the key. 12. The file system of claim 1 , wherein the file is truncatable or deletable in a single I/O operation within the key value file system without traversing layers of metadata corresponding to one or more directories within which the file is stored. 13. A method comprising: storing a file or a directory in a data storage device as an inode including one or more key-value pairs in a key value file system; receiving a file system access request from an application running on a host computer; directing the file system access request to a file system call to the data storage device; and providing the file system access to data stored in the data storage device, wherein each key-value pair contained in the inode includes a name of the file or the directory as a key and an identifier of a container that is associated with the file or the directory as a value, wherein the data of the file is stored in the data storage device as being divided into one or more data blocks of a fixed size, and each of the one or more data blocks associated with the data of the file is accessible within the key value file system using the one or more key-value pairs, wherein the data storage device stores the inode as a container inode or an inline inode depending on a predetermined number of entries in the inode, and wherein the container inode includes one or more key-value pairs corresponding to each of the entries, and the inline inode includes a single key-value pair, a value of the single key-value pair includes a list of attributes corresponding to the entries. 14. The method of claim 13 , wherein the file system access request from the application is received via POSIX API, and an operating system of the key value file system is Linux. 15. The method of claim 13 , wherein attributes of the inode is stored in a key-value pair of the one or more key-value pairs. 16. The method of claim 13 , wherein the directory is represented by either a container directory or an inline directory depending on a number of key-value pair entries contained in the container of the directory. 17. The method of claim 16 , wherein the container of the inline directory includes a single key-value pair, and wherein the value of the single key-value pair includes attributes of the inline directory and one or more key-value pairs corresponding to one or more subdirectories of the inline directory or one or more files stored in the inline directory. 18. The method of claim 16 , the inline directory is converted to the container directory when the number of entries exceeds a predetermined size, and the container directory is converted to the inline directory when the number of entries is reduced below the predetermined size. 19. The method of claim 13 , wherein the file is represented by either a container file or an inline file depending on a number of key-value pair entries contained in the container of the file. 20. The method of claim 19 , wherein the container of the container file includes one or more key-value pairs corresponding to the one or more data blocks of the data for the container file. 21. The method of claim 19 , wherein the container of the inline file includes one or more key-value pairs, and at least one key-value pair of the one or more key-value pairs includes a name of the inline file and data associated with the inline file, and wherein the data of the at least one key-value pair includes one or more key-value pairs corresponding to data blocks storing data of the inline file. 22. The method of claim 19 , the inline file is converted to th

Assignees

Inventors

Classifications

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • File search processing · CPC title

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

  • Details of de-fragmentation performed by the file system (saving storage space on storage systems G06F3/0608; management of blocks in storage devices G06F3/064) · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · 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 US11030155B2 cover?
A file system includes: an application programming interface (API) configured to provide a file system access to an application running on a host computer; a key value file system configured to represent a file or a directory as an inode including one or more key-value pairs; a virtual file system configured to direct a file system call received from the application to the key value file system…
Who is the assignee on this patent?
Samsung Electronics Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 08 2021 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 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).