Method, device and computer program product for implementing file system

US11663134B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11663134-B2
Application numberUS-202016843016-A
CountryUS
Kind codeB2
Filing dateApr 8, 2020
Priority dateMay 15, 2019
Publication dateMay 30, 2023
Grant dateMay 30, 2023

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.

Techniques involve implementing a file system. According to such techniques, a storage system creates a plurality of files in advance, each of which maintains a continuous space to simplify the process of processing read/write requests in the file system. When there is data to be written, an appropriate pre-created file is selected. Further, according to such techniques, a file system address is mapped to a physical address using a memory management unit. In this way, the file system performance is improved greatly.

First claim

Opening claim text (preview).

We claim: 1. A computer-implemented method, comprising: selecting, from a plurality of files, the plurality of files including a plurality of previously created empty files each storing no data, a target file for storing data, based on a size of data to be stored, wherein the plurality of files each have contiguous logical addresses and are allocated with physical storage resources, wherein the physical storage resources allocated to each one of the plurality of files have contiguous physical addresses, and wherein each one of the plurality of files has a file size indicating an actual size of the data stored in the file, a virtual size indicating an amount of virtual address space allocated to the file, and a mapped size indicating an amount of physical address space allocated to the file; determining a logical address offset of the target file relative to a start logical address of the plurality of files based on an index of the target file; determining physical storage resources corresponding to the target file based on a mapping relationship between logical addresses and physical addresses of a storage system, the start logical address, and the logical address offset; and storing the data on the corresponding physical storage resources. 2. The method of claim 1 , further comprising: determining whether unallocated physical storage resources in the storage system is lower than a predetermined threshold of physical storage resource; in response to the unallocated physical storage resources being lower than the predetermined threshold of physical storage resource, determining whether a total number of the empty files in the plurality of files is higher than a predetermined threshold number; and in response to the total number of the empty files being higher than the predetermined threshold number, releasing physical storage resources being allocated to the empty files. 3. The method of claim 2 , further comprising: in response to the number of empty files in the plurality of files being lower than a second predetermined threshold number, creating a plurality of empty files. 4. The method of claim 2 , further comprising: in response to at least one existing file in the plurality of files needing to be deleted, marking the file as an empty file without releasing physical storage resources allocated to the file. 5. The method of claim 1 , further comprising: receiving a request to read the data; determining the target file based on the request; determining the logical address offset of the target file relative to the start logical address of the plurality of files based on the index of the target file; determining the physical storage resources corresponding to the target file based on the mapping relationship, the start logical address, and the logical address offset; and reading the data from the corresponding physical storage resources. 6. The method of claim 1 , further comprising: in response to receiving a fence instruction, determining whether a first read/store request is executed, the first read/store request being received prior to receiving the fence instruction, the fence instruction being used for guaranteeing received read/store requests are executed in order; receiving a second read/store request; and in response to the first read/store request being executed prior to the fence instruction, executing the second read/store request. 7. The method of claim 6 , further comprising: in response to the read/store request failing to be executed prior to the fence instruction, refusing to execute the second read/store request. 8. The method of claim 1 , further comprising creating the plurality of files by mapping physical addresses of physical storage resources over which the plurality of files are distributed to contiguous logical addresses. 9. The method of claim 1 , wherein for each one of the plurality of files, the virtual size is always at least as large as the mapped size. 10. The method of claim 9 , wherein for each one of the plurality of files, the mapped size is always at least as large as the file size. 11. An electronic device, comprising: at least one processing unit; and at least memory coupled to the at least one processing unit and storing machine-executable instructions, the instructions, when implemented by the at least one processing unit, causing the device to perform acts, comprising: selecting, from a plurality of files, the plurality of files including a plurality of previously created empty files each storing no data, a target file for storing data, based on a size of data to be stored, wherein the plurality of files each have contiguous logical addresses and are allocated physical storage resources, wherein the physical storage resources allocated to each one of the plurality of files have contiguous physical addresses, and wherein each one of the plurality of files has a file size indicating an actual size of the data stored in the file, a virtual size indicating an amount of virtual address space allocated to the file, and a mapped size indicating an amount of physical address space allocated to the file; determining a logical address offset of the target file relative to start logical addresses of the plurality of files based on an index of the target file; determining physical storage resources corresponding to the target file based on a mapping relationship between logical addresses and physical addresses of a storage system, the start logical address, and the logical address offset; and storing the data on the corresponding physical storage resources. 12. The electronic device of claim 11 , wherein the acts further comprise: determining whether unallocated physical storage resources in the storage system is lower than a predetermined threshold of physical storage resource; in response to the unallocated physical storage resources being lower than the predetermined threshold of physical storage resource, determining whether a total number of the empty files in the plurality of files is higher than a predetermined threshold number; and in response to the total number of the empty files being higher than the predetermined threshold number, releasing physical storage resources being allocated to the empty files. 13. The electronic device of claim 11 , wherein the acts further comprise: receiving a request to read the data; determining the target file based on the request; determining the logical address offset of the target file relative to the start logical address of the plurality of files based on the index of the target file; determining the physical storage resources corresponding to the target file based on the mapping relationship, the start logical address, and the logical address offset; and reading the data from the corresponding physical storage resources. 14. The electronic device of claim 11 , wherein the acts further comprise: in response to receiving a fence instruction, determining whether a first read/store request is executed, the first read/store request being received prior to receiving the fence instruction, the fence instruction being used for guaranteeing a received read/store request is executed in order; receiving a second read/store request; and in response to a read/store request being executed prior to the fence instruction, executing the second read/store request. 15. The electronic device of claim 14 , wherein the acts further comprise: in response to the read/store request failing to be executed prior to the fence instruction, refusing to execute the second read/store request. 16.

Assignees

Inventors

Classifications

  • in block erasable memory, e.g. flash memory · CPC title

  • by allocating resources to storage systems · CPC title

  • Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs · CPC title

  • G06F16/182Primary

    Distributed file systems · CPC title

  • Logical to physical mapping or translation of blocks or pages · 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 US11663134B2 cover?
Techniques involve implementing a file system. According to such techniques, a storage system creates a plurality of files in advance, each of which maintains a continuous space to simplify the process of processing read/write requests in the file system. When there is data to be written, an appropriate pre-created file is selected. Further, according to such techniques, a file system address i…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/182. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 30 2023 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).