Selective application of block virtualization structures in a file system
US-10970259-B1 · Apr 6, 2021 · US
US11663134B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11663134-B2 |
| Application number | US-202016843016-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 8, 2020 |
| Priority date | May 15, 2019 |
| Publication date | May 30, 2023 |
| Grant date | May 30, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
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
Distributed file systems · CPC title
Logical to physical mapping or translation of blocks or pages · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.