# US 12,182,065 B2 · Performance of file system operations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,065 B2
- Document ID: US12182065B2
- Status: Granted
- Kind: B2
- Application number: 18/133,263
- Filed: 2023-04-11
- Published: 2023-08-03
- Granted: 2024-12-31
- Earliest claimed: 2023-04-11
- Assignees: Lemon Inc.; Beijing Youzhuju Network Technology Co., Ltd.
- Applicants: Lemon Inc.; Beijing Youzhuju Network Technology Co., Ltd.
- Inventors: Viacheslav Dubeyko; Jian Wang
- Web page: https://patentgrep.com/patent/US12182065B2

## CPC

- G06F 16/122: {using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185)}
- G06F 16/1815: {Journaling file systems}
- G06F 16/172: Caching, prefetching or hoarding of files
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/1744: {using compression, e.g. sparse files}
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for improving performance of file system operations are provided. Dirty memory pages may be copied from a file system into a memory associated with a first hardware accelerator. Content of the memory pages may be compressed by one or more cores of the hardware accelerator. The compressed data may be compacted into a payload area of at least one log. Metadata of the at least one log may be prepared by the one or more cores of the hardware accelerator. The at least one log may be flushed into a storage device. A read operation may be performed on the at least one log. On a read path, in response to determining that a size of data from a plurality of logs is greater than a predetermined threshold, a new log may be created by combining the data using compression by a second hardware accelerator.

## Claims

### Claim 1

A method of improving performance of file system operations, comprising:
copying dirty memory pages from a file system into a memory associated with a first hardware accelerator associated with a host;
compressing content of the memory pages by one or more cores of the first hardware accelerator;
compacting compressed data into a payload area of at least one log;
preparing metadata of the at least one log by the one or more cores of the first hardware accelerator;
flushing the at least one log into a storage device;
wherein the method further comprises:
identifying a location of the at least one log using a mapping table by the first hardware accelerator in response to a request of reading data in the at least one log from at least one physical sector;
accessing the at least one log by the first hardware accelerator based on the identified location;
parsing the at least one log and executing decompression operations by the first hardware accelerator to retrieve the requested data; and
delivering the requested data to a page cache of the file system.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
creating a mapping table by the first hardware accelerator, the mapping table configured to identify locations of logs in the storage device.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
identifying a location of the at least one log using a mapping table in response to a request of reading data in the at least one log from a plurality of physical sectors;
parsing the at least one log and executing decompression operations by a second hardware accelerator associated with the storage device;
in response to determining that a size of data extracted from the plurality of physical sectors is greater than a predetermined threshold, creating a new log by combining the data from the plurality of physical sectors using compression by the second hardware accelerator associated with the storage device; and
sending the new log to the first hardware accelerator.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
parsing the new log and executing decompression operations by the first hardware accelerator associated with the host; and
delivering the requested data to a page cache of the file system.

### Claim 5 (depends on 3)

The method of claim 3, wherein the creating a new log further comprises:
executing delta-decoding operations by the second hardware accelerator; and
creating the new log for delta-decoded data.

### Claim 6 (depends on 1)

The method of claim 1, wherein the at least one log further comprises a header depicting a structure of the payload area.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
processing a plurality of requests for log creation in parallel by the first hardware accelerator.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
executing data operations associated with different logs in a massively parallel manner.

### Claim 9

A system, comprising:
at least one processor; and
at least one memory comprising computer-readable instructions that upon execution by the at least one processor cause the computing device to perform operations comprising:
copying dirty memory pages from a file system into a memory associated with a first hardware accelerator associated with a host;
compressing content of the memory pages by one or more cores of the first hardware accelerator;
compacting compressed data into a payload area of at least one log;
preparing metadata of the at least one log by the one or more cores of the first hardware accelerator;
flushing the at least one log into a storage device;
wherein the operations further comprise:
identifying a location of the at least one log using a mapping table by the first hardware accelerator in response to a request of reading data in the at least one log from at least one physical sector;
accessing the at least one log by the first hardware accelerator based on the identified location;
parsing the at least one log and executing decompression operations by the first hardware accelerator to retrieve the requested data; and
delivering the requested data to a page cache of the file system.

### Claim 10 (depends on 9)

The system of claim 9, the operations further comprising:
creating a mapping table by the first hardware accelerator, the mapping table configured to identify locations of logs in the storage device.

### Claim 11 (depends on 9)

The system of claim 9, the operations further comprising:
identifying a location of the at least one log using a mapping table in response to a request of reading data in the at least one log from a plurality of physical sectors;
parsing the at least one log and executing decompression operations by a second hardware accelerator associated with the storage device;
in response to determining that a size of data extracted from the plurality of physical sectors is greater than a predetermined threshold, creating a new log by combining the data from the plurality of physical sectors using compression by the second hardware accelerator associated with the storage device; and
sending the new log to the first hardware accelerator.

### Claim 12 (depends on 11)

The system of claim 11, the operations further comprising:
parsing the new log and executing decompression operations by the first hardware accelerator associated with the host; and
delivering the requested data to a page cache of the file system.

### Claim 13 (depends on 11)

The system of claim 11, wherein the creating a new log further comprises:
executing delta-decoding operations by the second hardware accelerator; and
creating the new log for delta-decoded data.

### Claim 14

A non-transitory computer-readable storage medium, storing computer-readable instructions that upon execution by a processor cause the processor to implement operations, the operations comprising:
copying dirty memory pages from a file system into a memory associated with a first hardware accelerator associated with a host;
compressing content of the memory pages by one or more cores of the first hardware accelerator;
compacting compressed data into a payload area of at least one log;
preparing metadata of the at least one log by the one or more cores of the first hardware accelerator;
flushing the at least one log into a storage device;
wherein the operations further comprise:
identifying a location of the at least one log using a mapping table by the first hardware accelerator in response to a request of reading data in the at least one log from at least one physical sector;
accessing the at least one log by the first hardware accelerator based on the identified location;
parsing the at least one log and executing decompression operations by the first hardware accelerator to retrieve the requested data; and
delivering the requested data to a page cache of the file system.

### Claim 15 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, the operations further comprising:
creating a mapping table by the first hardware accelerator, the mapping table configured to identify locations of logs in the storage device.

### Claim 16 (depends on 14)

The non-transitory computer-readable storage medium of claim 14, the operations further comprising:
identifying a location of the at least one log using a mapping table in response to a request of reading data in the at least one log from a plurality of physical sectors;
parsing the at least one log and executing decompression operations by a second hardware accelerator associated with the storage device;
in response to determining that a size of data extracted from the plurality of physical sectors is greater than a predetermined threshold, creating a new log by combining the data from the plurality of physical sectors using compression by the second hardware accelerator associated with the storage device; and
sending the new log to the first hardware accelerator.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, the operations further comprising:
parsing the new log and executing decompression operations by the first hardware accelerator associated with the host; and
delivering the requested data to a page cache of the file system.
