IP Library Granted Patent US 11,494,115
Granted Patent B2
US 11,494,115 · App. 15/931,067 · Granted Nov 8, 2022

System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)

Inventor: Shu Li (Bothell, WA)
Assignee: Alibaba Group Holding Limited
G06F3/0659G06F3/0608G06F3/0619G06F3/0643G06F3/0644G06F3/0656G06F3/0673G06F11/1004G06F11/1044G06F21/602
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,494,115
App. No.
15/931,067
Granted
Nov 8, 2022
Kind
B2
Abstract

A system is provided to receive a request to write data to a storage device, wherein the data is associated with a file name and a file path. The system performs a hash function on an input based on the file name and the file path to obtain a hash value, wherein the hash function comprises a plurality of hash methods performed on the input. The system maps the hash value to a physical location in the storage device, and writes the data to the physical location in the storage device.

Claims (108)

1. A computer-implemented method, comprising:

receiving, by a controller of a storage device from a host, a request to write data to the storage device, wherein the data is associated with a file name and a file path, and wherein the controller performs one or more of:

providing a characterization or other information related to a non-volatile memory of the storage device;

providing a media interface to storage media of the storage device;

performing an error correction code (ECC) encoding or decoding on data;

performing a data recovery method;

performing an integrity check, including a cyclical redundancy check (CRC);

encrypting or decrypting data; and

processing data which requires an intensity which is greater than a predetermined threshold;

performing a hash function on an input based on the file name and the file path to obtain a hash value, wherein the hash function comprises a plurality of hash methods performed on the input;

mapping the hash value to a physical location in the storage device; and

writing the data to the physical location in the storage device.

2. The method of claim 1 , wherein the host performs one or more of the following functions:

mapping files to physical locations, including mapping the hash value to the physical location;

allocating physical space in the storage device;

freeing physical space in the storage device;

defragmenting data;

performing a data refresh or a data scrub operation;

determining where to place a file;

performing a data merge or a data flush operation;

providing assurance for data persistency; and

providing protection during a power loss.

3. The method of claim 1 ,

wherein the hash value comprises an index for an entry in a mapping table,

wherein the mapping table is sorted in an ascending order based on the hash value as the index, and

wherein the physical location in the mapping table indicates an offset and a length corresponding to the data.

4. The method of claim 1 , further comprising:

receiving a request to read the data previously written to the physical location in the storage device, wherein the read request indicates a requested file name and a requested file path;

performing the hash function on a second input based on the requested file name and the requested file path to obtain a calculated hash value;

performing, in a mapping table, a search based on the calculated hash value to obtain an entry which maps the hash value to the physical location; and

reading the data from the physical location based on the offset and the length.

5. The method of claim 4 , wherein the data is stored as a first and only file in a physical unit of a non-volatile memory of the storage device, and wherein the method further comprises:

responsive to detecting a condition, padding data to the first file until the physical unit is full.

6. The method of claim 5 , wherein reading the data from the physical location based on the offset and the length further comprises:

reading a physical unit associated with the physical location based on the offset to obtain a full unit of data;

dropping the padded data from the full unit of data to obtain the first file; and

returning, to a requesting host, the obtained first file.

7. The method of claim 4 , wherein the data is stored as a first file in a physical unit of a non-volatile memory of the storage device with at least a second file, and wherein the method further comprises:

storing the first file and at least the second file based on a format which includes one or more of a pre-amble, content of the data, metadata corresponding to a header for the content, parity information for the data, and a post-amble;

encoding the stored first file and at least the second file based on an error correction code (ECC) to obtain parity bits corresponding to the stored first file and at least the second file; and

storing the parity bits in the physical unit appended to the stored first file and at least the second file.

8. The method of claim 7 , wherein reading the data from the physical location based on the offset and the length further comprises:

reading data from a physical unit associated with the physical location based on the offset to obtain a full unit of data,

wherein the full unit of data includes the stored first file and at least the second file and the corresponding parity bits;

decoding, based on the error correction code, the full unit of data to obtain ECC-decoded data;

identifying, in the obtained ECC-decoded data, the first file based on a pre-amble and a post-amble stored as part of the first file; and

returning, to a requesting host, the identified first file.

9. A computer system, comprising:

a processor; and

a memory coupled to the processor and storing instructions which, when executed by the processor, cause the processor to perform a method, the method comprising:

receiving, by a controller of a storage device from a host, a request to write data to the storage device, wherein the data is associated with a file name and a file path, and wherein the host performs one or more of:

mapping files to physical locations, including mapping the hash value to the physical location;

allocating physical space in the storage device;

freeing physical space in the storage device;

defragmenting data;

performing a data refresh or a data scrub operation;

determining where to place a file;

performing a data merge or a data flush operation;

providing assurance for data persistency; and

providing protection during a power loss; and

wherein the controller performs one or more of the following functions:

providing a characterization or other information related to a non-volatile memory of the storage device;

providing a media interface to storage media of the storage device:

performing an error correction code (ECC) encoding or decoding on data;

performing a data recovery method;

performing an integrity check, including a cyclical redundancy check (CRC);

encrypting or decrypting data; and

processing data which requires an intensity which is greater than a predetermined threshold;

performing a hash function on an input based on the file name and the file path to obtain a hash value, wherein the hash function comprises a plurality of hash methods performed on the input;

mapping the hash value to a physical location in the storage device; and

writing the data to the physical location in the storage device.

10. The computer system of claim 9 ,

wherein the hash value comprises an index for an entry in a mapping table,

wherein the mapping table is sorted in an ascending order based on the hash value as the index, and

wherein the physical location in the mapping table indicates an offset and a length corresponding to the data.

11. The computer system of claim 9 , wherein the method further comprises:

receiving a request to read the data previously written to the physical location in the storage device, wherein the read request indicates a requested file name and a requested file path;

performing the hash function on a second input based on the requested file name and the requested file path to obtain a calculated hash value;

performing, in a mapping table, a search based on the calculated hash value to obtain an entry which maps the hash value to the physical location; and

reading the data from the physical location based on the offset and the length.

12. The computer system of claim 11 , wherein the data is stored as a first and only file in a physical unit of a non-volatile memory of the storage device, and wherein the method further comprises:

responsive to detecting a condition which requires no current processing of I/O data, padding data to the first file until the physical unit is full.

13. The computer system of claim 12 , wherein reading the data from the physical location based on the offset and the length further comprises:

reading a physical unit associated with the physical location based on the offset to obtain a full unit of data;

dropping the padded data from the full unit of data to obtain the first file; and

returning, to a requesting host, the obtained first file.

14. The computer system of claim 11 , wherein the data is stored as a first file in a physical unit of a non-volatile memory of the storage device with at least a second file, and wherein the method further comprises:

storing the first file and at least the second file based on a format which includes one or more of a pre-amble, content of the data, metadata corresponding to a header for the content, parity information for the data, and a post-amble;

encoding the stored first file and at least the second file based on an error correction code (ECC) to obtain parity bits corresponding to the stored first file and at least the second file; and

storing the parity bits in the physical unit appended to the stored first file and at least the second file.

15. The computer system of claim 14 , wherein reading the data from the physical location based on the offset and the length further comprises:

reading data from a physical unit associated with the physical location based on the offset to obtain a full unit of data,

wherein the full unit of data includes the stored first file and at least the second file and the corresponding parity bits;

decoding, based on the error correction code, the full unit of data to obtain ECC-decoded data;

identifying, in the obtained ECC-decoded data, the first file based on a pre-amble and a post-amble stored as part of the first file; and

returning, to a requesting host, the identified first file.

16. An apparatus, comprising:

a communication module configured to receive, by a controller of a storage device from a host, a request to write data to the storage device, wherein the data is associated with a file name and a file path, and wherein the controller performs one or more of:

providing a characterization or other information related to a non-volatile memory of the storage device;

providing a media interface to storage media of the storage device;

performing an error correction code (ECC) encoding or decoding on data;

performing a data recovery method;

performing an integrity check, including a cyclical redundancy check (CRC);

encrypting or decrypting data; and

processing data which requires an intensity which is greater than a predetermined threshold;

a hash-calculating module configured to perform a hash function on an input based on the file name and the file path to obtain a hash value, wherein the hash function comprises a plurality of hash methods performed on the input;

a physical location-mapping module configured to map the hash value to a physical location in the storage device; and

a data-writing module configured to write the data to the physical location in the storage device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075478/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2020
From: LI, SHU
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052653/0433 →
Continuity (1)
Related Publication 20210357147A1 · Nov 18, 2021