IP Library Granted Patent US 12,373,440
Granted Patent B2
US 12,373,440 · App. 17/336,047 · Granted Jul 29, 2025

High-performance key-value store

Inventors: Zhu Pang (Bellevue, WA); Qingda Lu (Bellevue, WA); Shuo Chen (Bellevue, WA); Yikang Xu (Redmond, WA); Jiesheng Wu (Redmond, WA); Rui Wang (Redmond, WA)
Assignee: Alibaba Innovation Private Limited
G06F16/24561G06F16/1805G06F16/2246G06F16/2322G06F16/256
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,373,440
App. No.
17/336,047
Granted
Jul 29, 2025
Kind
B2
Abstract

A key-value store is provided, implementing multiple-tiered sorted data structures in memory and storage, including concurrent write buffers in memory, and page-level consolidation of updates on storage, where pages are trivially translated in physical-to-virtual address mapping. The key-value store is built on an indexed sorted data structure on storage, occupying much less storage space and incurring much less disk activity in consolidating updates than a conventional log-structured merge tree organized into files. Concurrent write buffers operate concurrently and independently so that data is committed from memory to storage in an efficient manner, while maintaining chronological sequence of delta pages. Trivial mapping allows mappings of a number of physical pages to be omitted, enabling page mapping tables to occupy less storage space, and simplifying processing workload of read operation retrievals from storage.

Claims (55)

1. A method comprising:

receiving a plurality of inserted record updates at a first write buffer in memory of a storage system;

appending the plurality of inserted record updates to a page stream on storage of the storage system as a page, wherein the storage comprises a file system; and

writing an indexed sorted data structure to the storage, the indexed sorted data structure comprising a virtual page non-translatory mapped to the page of the page stream by a same offset address of a same extent address as the page on the storage, wherein the offset address and the extent address are each addressed by the file system.

2. The method of claim 1 , wherein the first write buffer is operative to store each inserted record update in a sorted order; and

further comprising:

freezing the first write buffer; and

creating a second write buffer in the memory operative to receive record updates.

3. The method of claim 1 , wherein a page comprises a plurality of keys corresponding to records not stored in the indexed sorted data structure;

wherein the indexed sorted data structure further comprises a page mapping table, and a mapping from the virtual page to the page of the page stream is not recorded in the page mapping table.

4. The method of claim 1 , wherein appending the plurality of inserted record updates comprises substantially concurrently appending to a first page stream as a base page and appending to a second page stream as a delta page; and

wherein a delta page further comprises a system timestamp, and each delta page is appended to the second page stream in order of system timestamps.

5. The method of claim 1 , further comprising consolidating a plurality of delta pages of a delta chain appended to the virtual page, writing at least one new page based on the consolidated plurality of delta pages, and appending the at least one new page to the page stream; and

wherein appending the plurality of inserted record updates is performed at least in part concurrently as consolidating the plurality of delta pages of the delta chain;

appending the plurality of inserted record updates comprises appending a delta page to the delta chain; and appending the plurality of inserted record updates is performed after consolidating the plurality of delta pages of the delta chain.

6. The method of claim 1 , further comprising consolidating a plurality of delta pages of a delta chain appended to the virtual page with the virtual page;

wherein consolidating the plurality of delta pages further comprises writing at least one new page based on the consolidated plurality of delta pages and the virtual page, and linking a parent page of the virtual page to the at least one new page; and

wherein consolidating the plurality of delta pages further comprises creating a rewrite table.

7. The method of claim 1 , further comprising merging a child page of the virtual page into the virtual page, and recording the rewriting of the child page into the virtual page in a rewrite table; appending an inserted record update to the page stream;

referencing the rewrite table; and appending a delta page comprising the inserted record update to the virtual page instead of the child page.

8. A storage system comprising:

one or more processors;

hosted storage; and

memory communicatively coupled to the one or more processors, the memory storing computer-executable modules executable by the one or more processors that, when executed by the one or more processors, perform associated operations, the computer-executable modules comprising:

a checkpoint module configured to receive a plurality of inserted record updates at a first write buffer in memory of a storage system; append the plurality of inserted record updates to a page stream on storage of the storage system as a page, wherein the storage comprises a file system; and write an indexed sorted data structure to the storage, the indexed sorted data structure comprising a virtual page non-translatory mapped to the page of the page stream by a same offset address of a same extent address as the page on the storage; wherein the offset address and the extent address are each addressed by the file system.

9. The system of claim 8 , wherein the first write buffer is operative to store each inserted record update in a sorted order; and

wherein the checkpoint module is further configured to freeze the first write buffer, and create a second write buffer in the memory operative to receive record updates.

10. The system of claim 8 , wherein a page comprises a plurality of keys corresponding to records not stored in the indexed sorted data structure; wherein the indexed sorted data structure further comprises a page mapping table, and a mapping from the virtual page to the page of the page stream is not recorded in the page mapping table.

11. The system of claim 8 , wherein the checkpoint module is configured to append the plurality of inserted record updates at least in part concurrently to a first page stream as a base page and to a second page stream as a delta page; and

wherein a delta page further comprises a system timestamp, and each delta page is appended to the second page stream in order of system timestamps.

12. The system of claim 8 , further comprising a consolidating module configured to consolidate a plurality of delta pages of a delta chain appended to the virtual page as a new page, write at least one new page based on the consolidated plurality of delta pages, and append the at least one new page to the page stream; and

wherein the checkpoint module is configured to append the plurality of inserted record updates at least in part concurrently as the consolidating module consolidating the plurality of delta pages of the delta chain; the checkpoint module is configured to append the plurality of inserted record updates comprises appending a delta page to the delta chain; and the checkpoint module is configured to append the plurality of inserted record updates after the consolidating module consolidates the plurality of delta pages of the delta chain.

13. The system of claim 8 , wherein the consolidating module is further configured to consolidate a plurality of delta pages of a delta chain appended to the virtual page with the virtual page;

wherein the consolidating module is further configured to consolidate the plurality of delta pages further by writing at least one new page based on the consolidated plurality of delta pages and the virtual page, and linking a parent page of the virtual page to the at least one new page; and

wherein the consolidating module is further configured to consolidate the plurality of delta pages by creating a rewrite table.

14. The system of claim 8 , further comprising a tree shrinking module configured to merge a child page of the virtual page into the virtual page, and record the rewriting of the child page into the virtual page in a rewrite table; and

wherein the checkpoint module is further configured to append an inserted record update to the page stream; reference the rewrite table; and append a delta page comprising the inserted record update to the virtual page instead of the child page.

15. A computer-readable storage medium storing computer-readable instructions executable by one or more processors, that when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving a plurality of inserted record updates at a first write buffer in memory of a storage system;

appending the plurality of inserted record updates to a page stream on storage of the storage system as a page, wherein the storage comprises a file system; and

writing an indexed sorted data structure to the storage, the indexed sorted data structure comprising a virtual page non-translatory mapped to the page of the page stream by a same offset address of a same extent address as the page on the storage, wherein the offset address and the extent address are each addressed by the file system.

16. The computer-readable storage medium of claim 15 , wherein the first write buffer is operative to store each inserted record update in a sorted order; and

wherein the operations further comprise:

freezing the first write buffer; and

creating a second write buffer in the memory operative to receive record updates.

17. The computer-readable storage medium of claim 15 , wherein a page comprises a plurality of keys corresponding to records not stored in the indexed sorted data structure;

wherein the indexed sorted data structure further comprises a page mapping table, and a mapping from the virtual page to the page of the page stream is not recorded in the page mapping table.

18. The computer-readable storage medium of claim 15 , wherein the operations further comprise consolidating a plurality of delta pages of a delta chain appended to the virtual page; and

wherein appending the plurality of inserted record updates is performed at least in part concurrently as consolidating the plurality of delta pages of the delta chain;

appending the plurality of inserted record updates comprises appending a delta page to the delta chain; and appending the plurality of inserted record updates is performed after consolidating the plurality of delta pages of the delta chain.

19. The computer-readable storage medium of claim 15 , further comprising consolidating a plurality of delta pages of a delta chain appended to the virtual page with the virtual page;

wherein consolidating the plurality of delta pages further comprises writing at least one new page based on the consolidated plurality of delta pages and the virtual page, and linking a parent page of the virtual page to the at least one new page; and

wherein consolidating the plurality of delta pages further comprises creating a rewrite table.

20. The computer-readable storage medium of claim 15 , wherein the operations further comprise merging a child page of the virtual page into the virtual page, and recording the rewriting of the child page into the virtual page in a rewrite table; and

wherein the operations further comprise appending an inserted record update to the page stream; referencing the rewrite table; and appending a delta page comprising the inserted record update to the virtual page instead of the child page.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA INNOVATION PRIVATE LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075494/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2024
From: ALIBABA SINGAPORE HOLDING PRIVATE LIMITED
To: ALIBABA INNOVATION PRIVATE LIMITED
Reel/Frame 066397/0167 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2022
From: PANG, ZHU; WU, JIESHENG; LU, QINGDA; XU, YIKANG; WANG, RUI; CHEN, SHUO
To: ALIBABA SINGAPORE HOLDING PRIVATE LIMITED
Reel/Frame 060689/0407 →
Continuity (1)
Related Publication 20220382760A1 · Dec 1, 2022
References Cited (81)
US 7424499B2 · Lomet · 2008 [cited by applicant]
US 8612382B1 · Patel · 2013 [cited by examiner]
US 8620884B2 · Calder et al. · 2013 [cited by applicant]
US 8768977B2 · Golab et al. · 2014 [cited by applicant]
US 9176871B1 · Serlet · 2015 [cited by applicant]
US 9400816B1 · Gubarev · 2016 [cited by applicant]
US 9424070B2 · Hutton et al. · 2016 [cited by applicant]
US 9438426B2 · Li et al. · 2016 [cited by applicant]
US 9483516B2 · Lee et al. · 2016 [cited by applicant]
US 9684682B2 · Mukherjee et al. · 2017 [cited by applicant]
US 9785510B1 · Madhavarapu · 2017 [cited by examiner]
US 9811546B1 · Bent · 2017 [cited by examiner]
US 10078453B1 · Li · 2018 [cited by examiner]
US 10127260B2 · Goel et al. · 2018 [cited by applicant]
US 10146793B2 · Srivas · 2018 [cited by examiner]
US 10289340B2 · O'Krafka et al. · 2019 [cited by applicant]
US 10331797B2 · Chang et al. · 2019 [cited by applicant]
US 10359966B2 · Guerra Delgado · 2019 [cited by examiner]
US 10474656B1 · Bronnikov · 2019 [cited by examiner]
US 10482103B2 · Lee et al. · 2019 [cited by applicant]
US 10489406B2 · Toillion et al. · 2019 [cited by applicant]
US 10496283B2 · Waghulde · 2019 [cited by applicant]
US 10552402B2 · Eluri · 2020 [cited by examiner]
US 10585876B2 · Brodt et al. · 2020 [cited by applicant]
US 10592411B2 · Agarwal · 2020 [cited by examiner]
US 10666703B2 · Padurolu et al. · 2020 [cited by applicant]
US 10706105B2 · Boles et al. · 2020 [cited by applicant]
US 10706106B2 · Boles et al. · 2020 [cited by applicant]
US 10719562B2 · Gupta et al. · 2020 [cited by applicant]
US 10725988B2 · Boles et al. · 2020 [cited by applicant]
US 10795871B2 · Velayudhan Pillai et al. · 2020 [cited by applicant]
US 10956071B2 · Subbarao · 2021 [cited by applicant]
US 10984018B2 · Shoolman et al. · 2021 [cited by applicant]
US 10996884B2 · Danilov et al. · 2021 [cited by applicant]
US 11003689B2 · Lee et al. · 2021 [cited by applicant]
US 11023457B1 · Maretic · 2021 [cited by applicant]
US 11093149B2 · Gole et al. · 2021 [cited by applicant]
US 11100071B2 · Tomlinson et al. · 2021 [cited by applicant]
US 11188241B2 · Schreter · 2021 [cited by applicant]
US 11429587B1 · Barrell · 2022 [cited by examiner]
US 20040024729A1 · Worley · 2004 [cited by examiner]
US 20060219772A1 · Bernstein et al. · 2006 [cited by applicant]
US 20090119295A1 · Chou et al. · 2009 [cited by applicant]
US 20100106695A1 · Calder et al. · 2010 [cited by applicant]
US 20110307447A1 · Sabaa · 2011 [cited by examiner]
US 20120159098A1 · Cheung · 2012 [cited by examiner]
US 20140095810A1 · Loewenstein · 2014 [cited by examiner]
US 20160179865A1 · Bortnikov et al. · 2016 [cited by applicant]
US 20170011062A1 · Zaveri · 2017 [cited by examiner]
US 20170109394A1 · Chang · 2017 [cited by applicant]
US 20170177284A1 · Maesono · 2017 [cited by applicant]
US 20170220617A1 · Bortnikov et al. · 2017 [cited by applicant]
US 20170242785A1 · O'Krafka · 2017 [cited by examiner]
US 20170277726A1 · Huang et al. · 2017 [cited by applicant]
US 20180300350A1 · Mainali et al. · 2018 [cited by applicant]
US 20190236059A1 · Reddy et al. · 2019 [cited by applicant]
US 20190266100A1 · Mello et al. · 2019 [cited by applicant]
US 20190272254A1 · Srivas et al. · 2019 [cited by applicant]
US 20190278783A1 · Lipcon · 2019 [cited by applicant]
US 20190340277A1 · Thomsen · 2019 [cited by applicant]
US 20190370170A1 · Oltean et al. · 2019 [cited by applicant]
US 20200042533A1 · Lee et al. · 2020 [cited by applicant]
US 20200042617A1 · Kuang · 2020 [cited by examiner]
US 20200257669A1 · Boles et al. · 2020 [cited by applicant]
US 20200301900A1 · Draperi · 2020 [cited by examiner]
US 20210042286A1 · Kimura · 2021 [cited by applicant]
US 20210097036A1 · Wetterau et al. · 2021 [cited by applicant]
US 20210103397A1 · George · 2021 [cited by examiner]
US 20210224236A1 · Wang · 2021 [cited by examiner]
US 20210311880A1 · Gupta · 2021 [cited by examiner]
US 20220318227A1 · Le · 2022 [cited by applicant]
US 20220335027A1 · Subramanian Seshadri · 2022 [cited by examiner]
US 20220382651A1 · Lu · 2022 [cited by applicant]
US 20220382674A1 · Wang · 2022 [cited by applicant]
US 20220382734A1 · Peng · 2022 [cited by applicant]
US 20230046216A1 · Daga et al. · 2023 [cited by applicant]
Office Action for U.S. Appl. No. 17/335,728, mailed on Oct. 5, 2022, Lu, “Fast Recovery and Replication of Key-Value Stores”, 12 pages. [cited by applicant]
Office Action for U.S. Appl. No. 17/336,141, mailed on Oct. 18, 2022, Wang, “Granularly Timestamped Concurrency Control for Key-Value Store”, 12 Pages. [cited by applicant]
Kazmi, “Sort Duplicate Files According to Size and Delete Them”, Mar. 2019, 5 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 17/335,853, mailed on Jun. 5, 2023, “Garbage Collection of Tree Structure With Page Mappings”, 18 pages. [cited by applicant]
Pang, et al., “ArkDB: A Key-Value Engine for Scalable Cloud Storage Services”, Jun. 2021, 14 pgs. [cited by applicant]
Cited By (1)
US 12,461,941