IP Library Granted Patent US 12,326,838
Granted Patent B2
US 12,326,838 · App. 18/475,943 · Granted Jun 10, 2025

Implementation for efficient log storage

Inventors: Hao Wang (Los Angeles, CA); Sheng Qiu (Los Angeles, CA); Yizheng Jiao (Los Angeles, CA); Jianyang Hu (Beijing, CN); Kuankuan Guo (Beijing, CN)
Assignees: Lemon Inc.; Beijing Volcano Engine Technology Co., Ltd.
G06F16/1805G06F12/0253G06F16/1734G06F16/176G06F2212/7205
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 12,326,838
App. No.
18/475,943
Granted
Jun 10, 2025
Kind
B2
Abstract

Methods and systems of a log engine for logging data operation in a file system is disclosed. The log engine includes a user interface module configured to receive a plurality of data operation logs that respectively record a data operation and a sequence ID corresponding to an order of the data operation being performed; and a shared log manager configured to provide an in queue configured to consolidate the plurality of data operation logs, and swap the plurality of data operation logs to an out queue with the plurality of data operation logs being ordered based on the sequence ID and saved in a shared log.

Claims (52)

1. A log engine configured to log data operation in a file system, the log engine comprising:

a physical processor configured to execute instructions to generate:

a user interface module configured to receive a plurality of data operation logs that respectively record a data operation and a sequence ID corresponding to an order of the data operation being performed; and

a shared log manager, implemented with a lock-free queue, that is configured to:

provide an in queue configured to consolidate the plurality of data operation logs, and

swap the plurality of data operation logs to an out queue with the plurality of data operation logs being ordered based on the sequence ID and saved in memory in a shared log, wherein

the shared log includes the plurality of data operation logs in sequential order based on the sequence ID and extended memory allocations such that tail latency from random write is avoided, wherein the extended memory allocations result from an extend of memory allocation for storing the shared log when the shared log having a file size exceeds a predefined file size allocation.

2. The log engine of claim 1 , wherein the processor is configured to further generate:

a key-value file system collaborator configured to persist the shared log in the predefined file size allocation for updating the shared log; and

wherein the shared log manager is further configured to request the extend of memory allocation for storing the shared log when the shared log having the file size exceeds the predefined file size allocation.

3. The log engine of claim 1 , wherein the processor is configured to further generate:

when saving the shared log in a persistent storage, a key-value file system collaborator configured to omit metadata on the file size of the shared log.

4. The log engine of claim 1 , wherein

the shared log manager is configured to conduct a cyclic redundancy check for error detection in a log file.

5. The log engine of claim 1 , wherein the processor is configured to further generate:

a background thread configured to move a log file of a metadata log file to persistent storage when the metadata log file exceeds a predefined file size.

6. The log engine of claim 1 , wherein the processor is configured to further generate:

a metadata manager configured to move a metadata log file to persistent storage.

7. The log engine of claim 1 , wherein the processor is configured to further generate:

a garbage collection module of the log engine, the garbage collection module configured to chronologically validate entries in the shared log.

8. The log engine of claim 1 , wherein the processor is configured to further generate:

a recovery manager configured to read a checkpoint file for executing a fuzzy checkpoint to recover from a system failure.

9. A method for logging data operation in a file system, the method comprising:

receiving a plurality of data operation logs that respectively record a data operation and a sequence ID corresponding to an order of the data operation being performed;

consolidating the plurality of data operation logs in a lock-free in queue; and

swapping the plurality of data operation logs to an out queue with the plurality of data operation logs being ordered based on the sequence ID and saved in a shared log that includes the plurality of data operation logs in sequential order based on the sequence ID and extended memory allocations such that tail latency from random write is avoided, wherein the extended memory allocations result from an extend of memory allocation for storing the shared log when the shared log having a file size exceeds a predefined file size allocation.

10. The method of claim 9 , further comprising:

persisting the shared log in the predefined file size allocation for updating the shared log while omitting metadata on the file size of the shared log; and

requesting the extend of memory allocation for storing the shared log when the shared log having the file size exceeds the predefined file size allocation.

11. The method of claim 9 , further comprising:

conducting a cyclic redundancy check for error detection in a log file.

12. The method of claim 9 , further comprising:

making a log file of a metadata log persistent by a background thread when the log file exceeds a predefined file size.

13. The method of claim 9 , further comprising:

chronologically validating entries in the shared log for garbage collection.

14. The method of claim 9 , further comprising:

reading a checkpoint file for executing a fuzzy checkpoint to recover from a system failure.

15. A non-transitory computer-readable medium containing instructions that, when executed by a processor, direct the processor to:

receive a plurality of data operation logs that respectively record a data operation and a sequence ID corresponding to an order of the data operation being performed;

provide a lock-free in queue configured to consolidate the plurality of data operation logs; and

swap the plurality of data operation logs to an out queue with the plurality of data operation logs being ordered based on the sequence ID and saved in a shared log that includes the plurality of data operation logs in sequential order based on the sequence ID and extended memory allocations such that tail latency from random write is avoided, wherein the extended memory allocations result from an extend of memory allocation for storing the shared log when the shared log having a file size exceeds a predefined file size allocation.

16. The non-transitory computer-readable medium of claim 15 further containing instructions that, when executed by the processor, direct the processor to:

persist the shared log in the predefined file size allocation for updating the shared log while omitting metadata on the file size of the shared log, and

request the extend of memory allocation for storing the shared log when the shared log having the file size exceeds the predefined file size allocation.

17. The non-transitory computer-readable medium of claim 15 further containing instructions that, when executed by the processor, direct the processor to:

conducting a cyclic redundancy check for error detection in a log file.

18. The non-transitory computer-readable medium of claim 15 further containing instructions that, when executed by the processor, direct the processor to:

make a log file of a metadata log persistent, using a background thread, when the log file exceeds a predefined file size.

19. The non-transitory computer-readable medium of claim 15 further containing instructions that, when executed by the processor, direct the processor to:

chronologically validate entries in the shared log for garbage collection.

20. The non-transitory computer-readable medium of claim 15 further containing instructions that, when executed by the processor, direct the processor to:

read a checkpoint file for executing a fuzzy checkpoint to recover from a system failure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2025
From: HU, JIANYANG; GUO, KUANKUAN
To: DOUYIN VISION CO., LTD.
Reel/Frame 071030/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2025
From: DOUYIN VISION CO., LTD.
To: LEMON INC.; BEIJING VOLCANO ENGINE TECHNOLOGY CO., LTD.
Reel/Frame 071031/0778 →
Continuity (1)
Related Publication 20240020277A1 · Jan 18, 2024
References Cited (11)
US 10185653B2 · Parkes et al. · 2019 [cited by applicant]
US 10394915B1 · Raghavendran et al. · 2019 [cited by applicant]
US 11340829B1 · Shveidel · 2022 [cited by examiner]
US 20030055809A1 · Bhat · 2003 [cited by applicant]
US 20100231944A1 · Takahashi · 2010 [cited by examiner]
US 20140137222A1 · Nguyen · 2014 [cited by examiner]
US 20160301753A1 · Auch · 2016 [cited by examiner]
US 20170221140A1 · Melamed · 2017 [cited by examiner]
US 20200174989A1 · Koza · 2020 [cited by examiner]
Extended European Search Report for European Application No. 24197938.4, mailed Feb. 14, 2025, 13 pages. [cited by applicant]
Xiongpai Q., et al., “A Parallel Recovery Scheme for Update Intensive Main Memory Database Systems”, Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies, XP031373748, , IE… [cited by applicant]