IP Library Granted Patent US 11,663,134
Granted Patent B2
US 11,663,134 · App. 16/843,016 · Granted May 30, 2023

Method, device and computer program product for implementing file system

Inventors: Shuo Lv (Beijing, CN); Ming Zhang (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F12/0871G06F11/3034G06F12/0246G06F16/1734G06F16/182G06F16/22G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,663,134
App. No.
16/843,016
Granted
May 30, 2023
Kind
B2
Abstract

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.

Claims (58)

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. The electronic device of claim 14 , wherein the acts further comprise 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.

17. A computer program product having a non-transitory computer readable medium which stores a set of instructions to implement a file system; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

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.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2020
From: LV, SHUO; ZHANG, MING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052749/0684 →
Priority Claims (1)
CN 201910403635.9 · May 15, 2019 · national
Continuity (1)
Related Publication 20200364148A1 · Nov 19, 2020