IP Library › Granted Patent US 12,307,109
Granted Patent B2
US 12,307,109 · App. 18/476,685 · Granted May 20, 2025

Journal based data storage in block-level storage

Inventors: Peng Xu (Los Angeles, CA); Fei Liu (Los Angeles, CA); Sheng Qiu (Los Angeles, CA); Kyoungryun Bae (Los Angeles, CA); Ming Lin (Los Angeles, CA); Jinwei Xie (Beijing, CN); Shan Xiao (Beijing, CN); Bhanu Gogineni (Los Angeles, CA)
Assignee: Lemon Inc.
G06F3/064G06F3/0604G06F3/0679
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,307,109
App. No.
18/476,685
Granted
May 20, 2025
Kind
B2
Abstract

A method is directed to storing data in a non-volatile storage. The method includes writing sequentially at least a main portion of a data record in one or more logic blocks of an append-only storage zone of the non-volatile storage until the one or more first logic blocks are written full. The method also includes generating a first journal including a remainder portion of the first data record and a first journal entry for the remainder portion. A storage device control system includes a non-volatile storage and a controller for the non-volatile storage.

Claims (45)

1. A method of storing data in a non-volatile storage, comprising:

writing sequentially at least a main portion of a first data record in one or more first logic blocks of a first append-only storage zone of the non-volatile storage until the one or more first logic blocks are written full; and

generating a first journal including a remainder portion of the first data record and a journal entry for the remainder portion, wherein the journal entry includes a location of the one or more first logic blocks in the non-volatile storage.

2. The method of claim 1 , wherein the first journal is generated by writing both the remainder portion of the first data record and the journal entry into a logic block of a second append-only storage zone of the non-volatile storage.

3. The method of claim 2 , wherein the non-volatile storage includes a plurality of adjacent append-only storage zones that includes a group of sequential append-only data storage zones and a group of sequential append-only journal storage zones, the group of sequential append-only data storage zones including the first append-only storage zone, and the group of sequential append-only journal storage zones including the second append-only storage zone.

4. The method of claim 1 , wherein the first journal is stored in a memory cache.

5. The method of claim 1 , wherein a size of the first data record is larger than a logic block size of the non-volatile storage, and the one or more first logic blocks comprise a plurality of sequential logic blocks.

6. The method of claim 1 , further comprising:

writing sequentially the remainder portion of the first data record and a main portion of a second data record in one or more second logic blocks in the first append-only storage zone until the one or more second logic blocks are full; and

generating a second journal including a remainder portion of the second data record and a journal entry for the remainder portion of the second data record.

7. The method of claim 6 , further comprising:

writing the first journal in a logic block of a second append-only storage zone of the non-volatile storage; and

writing the second journal in a second logic block of the second append-only storage zone of the non-volatile storage.

8. The method of claim 7 , further comprising:

resetting the second append-only storage zone, after the remainder portion of the first data record has been written in the first append-only storage zone.

9. The method of claim 8 , further comprising:

opening the second append-only storage zone, after the resetting of the second append-only storage zone, wherein the second append-only storage zone is opened as a data storage zone in the non-volatile storage.

10. The method of claim 6 , further comprising:

writing sequential a remainder portion of the second data record and a main portion of a third data record in one or more third logic blocks in the first append-only storage zone until the one or more third logic blocks are written full; and

generating a third journal including a remainder portion of the third data record and a journal entry for the remainder portion of the second data record.

11. The method of claim 10 , further comprising:

writing the first journal in a logic block of a second append-only storage zone of the non-volatile storage;

writing the second journal in a second logic block of the second append-only storage zone of the non-volatile storage; and

writing the third journal in a third logic block of the second append-only storage zone of the non-volatile storage,

wherein the journal entry of the first journal, the journal entry of the second journal, and the journal entry of the third journal include sequential numbering.

12. A storage device control system, comprising:

a non-volatile storage; and

a controller configured to:

write sequentially at least a main portion of a first data record in one or more first logic blocks of a first append-only storage zone of the non-volatile storage until the one or more first logic blocks are written full, and

generate a first journal including a remainder portion of the first data record and a journal entry for the remainder portion, wherein the journal entry includes a location of the one or more first logic blocks in the non-volatile storage.

13. The storage device control system of claim 12 , wherein the non-volatile storage is configured to be a shingled magnetic recording block-storage device.

14. The storage device control system of claim 13 , wherein the controller is configured to:

store the first journal in a memory cache of the controller.

15. The storage device control system of claim 13 , wherein the controller is configured to:

store the first journal in a second append-only storage zone of the non-volatile storage.

16. The storage device control system of claim 13 , wherein the controller is configured to:

write sequentially the remainder portion of the first data record and a main portion of a second data record in one or more second logic blocks in the first append-only storage zone until the one or more second logic blocks are written full, and

generate a second journal including a remainder portion of the second data record and a second journal entry for the remainder portion of the second data record.

17. The storage device control system of claim 16 , wherein the controller is configured to:

write the first journal in a first logic block of a second append-only storage zone of the non-volatile storage, and

write the second journal in a second logic block of the second append-only storage zone of the non-volatile storage, wherein the journal entry of the first journal and the journal entry of the second journal include sequential numbering.

18. The storage device control system of claim 16 , wherein the first data record corresponds with a first record IO received by the controller, and the second data record corresponds with a second record IO received by the controller after the first record IO.

19. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, upon execution, cause one or more processors to perform operations comprising:

writing sequentially at least a main portion of a first data record in one or more logic blocks of a first append-only storage zone of a non-volatile storage until the one or more first logic blocks are written full; and

generating a first journal including a remainder portion of the first data record and a journal entry for the remainder portion, wherein the journal entry includes a location of the one or more first logic blocks in the non-volatile storage.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2025
From: XIE, JINWEI; XIAO, SHAN
To: CHENGDU OCEAN ENGINE INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 070840/0222 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2025
From: BYTEDANCE INC.; CHENGDU OCEAN ENGINE INFORMATION TECHNOLOGY CO., LTD.
To: BEIJING VOLCANO ENGINE TECHNOLOGY CO., LTD.
Reel/Frame 070840/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2025
From: BYTEDANCE INC.; CHENGDU OCEAN ENGINE INFORMATION TECHNOLOGY CO., LTD.
To: LEMON INC.
Reel/Frame 070840/0851 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2025
From: XU, PENG; LIU, FEI; QIU, SHENG; BAE, KYOUNGRYUN; LIN, MING; GOGINENI, BHANU
To: BYTEDANCE INC.
Reel/Frame 070850/0076 →
Continuity (1)
Related Publication 20250110652A1 · Apr 3, 2025
References Cited (8)
US 10417190B1 · Donlan · 2019 [cited by examiner]
US 20080222214A1 · Tokuda · 2008 [cited by examiner]
US 20140379715A1 · Kesselman · 2014 [cited by examiner]
US 20170242583A1 · Yang et al. · 2017 [cited by applicant]
US 20220300163A1 · Jose · 2022 [cited by examiner]
Extended European Search Report for European Application No. 24193728.3, mailed Jan. 31, 2025, 8 pages. [cited by applicant]
Jung S., et al., “Hierarchical Architecture of Flash-based Storage Systems for High Performance and Durability,” Design Automation Conference, 2009, DAC 09, 46th ACM/IEEE, Jul. 26, 2009, pp. 907-910. [cited by applicant]
Jung S., et al., “Hierarchical Use of Heterogeneous Flash Memories for Hign Performance and Durability,” IEEE Transactions on Consumer Electronics, 2009, vol. 55, No. 3, pp. 1383-391. [cited by applicant]