IP Library Granted Patent US 12,675,501
Granted Patent B2
US 12,675,501 · App. 18/977,258 · Granted Jul 7, 2026

Efficient synchronization mechanisms for graph databases

Inventors: Cheng Chen (Singapore, SG); Wei Zhang (Beijing, CN); Zhigang Zeng (Beijing, CN); Shijiao Yang (Beijing, CN); Bingyu Zhou (Beijing, CN); Huiming Zhu (Beijing, CN); Chao Chen (Beijing, CN); Yongjun Zhao (Beijing, CN); Yingqian Hu (Beijing, CN); Miaomiao Cheng (Beijing, CN); Meng Li (Beijing, CN); Hongfei Tan (Beijing, CN); Mengjin Liu (Beijing, CN); Hexiang Lin (Beijing, CN); Shuai Zhang (Beijing, CN); Lei Zhang (Beijing, CN)
Assignees: Lemon Inc.; Beijing Volcano Engine Technology Co., Ltd.
G06F16/27G06F16/2358G06F16/9024
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,675,501
App. No.
18/977,258
Filed
Dec 11, 2024
Granted
Jul 7, 2026
Kind
B2
Art Unit
2168
USPC
707/610
Abstract

Implementations for I/O efficient synchronization on a graph database are provided. One example includes a computing system comprising: processing circuitry and memory storing instructions that, during execution, causes the processing circuitry to: implement the graph database using at least: a read-write node and a read-only node operating in cache memory; and a shared storage for data persistence, wherein the shared storage stores a mapping table of the graph database; receive an update query; update the read-write node based on the update query; write, using the read-write node, a set of logs corresponding to the update query to a write-ahead log journal in the shared storage; and retrieve, using the read-only node, the set of logs from the write-ahead log journal.

Claims (74)

1 . A computing system for efficient synchronization on a graph database, the computing system comprising:

processing circuitry and memory storing instructions that, during execution, causes the processing circuitry to:

implement the graph database using at least:

a read-write node and a read-only node operating in cache memory; and

a shared storage for data persistence, wherein the shared storage stores a mapping table of the graph database;

receive an update query;

update the read-write node based on the update query;

write, using the read-write node, a set of logs corresponding to the update query to a write-ahead log (WAL) journal in the shared storage;

retrieve, using the read-only node, the set of logs corresponding to the update query from the WAL journal;

asynchronously flush the cache memory of the read-write node to the shared storage; and

after the flushing of the cache memory of the read-write node to the shared storage, update the mapping table of the graph database in the shared storage based on the update query.

2 . The computing system of claim 1 , wherein the instructions, during execution, further causes the processing circuitry to:

synchronous with the updating of the mapping table in the shared storage, write a log in the WAL journal indicating the shared storage has been updated; and

retrieve, using the read-only node, the log indicating the shared storage has been updated.

3 . The computing system of claim 2 , wherein the instructions, during execution, further causes the processing circuitry to:

update the read-only node using the retrieved set of logs corresponding to the update query; and

discard logs up to the log indicating the shared storage has been updated, including the retrieved set of logs corresponding to the update query.

4 . The computing system of claim 1 , wherein the instructions, during execution, further causes the processing circuitry to:

receive, using the read-only node, a query requesting access to a data element affected by the update of the read-write node;

update the read-only node using the retrieved set of logs corresponding to the update query; and

return, using the read-only node, a query result containing the data element.

5 . The computing system of claim 4 , wherein the instructions, during execution, further causes the processing circuitry to:

synchronous with the updating of the mapping table in the shared storage, write a log in the WAL journal indicating the shared storage has been updated;

retrieve, using the read-only node, the log indicating the shared storage has been updated; and

discard logs up to the log indicating the shared storage has been updated, including the retrieved set of logs corresponding to the update query.

6 . The computing system of claim 4 , wherein updating the read-only node using the retrieved set of logs corresponding to the update query comprises:

performing actions described in the retrieved set of logs corresponding to the update query to update a mapping of the graph database in the read-only node; and

retrieving, using the read-only node, one or more pages from the shared storage using the mapping table of the graph database in the shared storage.

7 . The computing system of claim 6 , wherein updating the read-only node using the retrieved set of logs corresponding to the update query further comprises:

if the shared storage does not contain a page described in the retrieved set of logs corresponding to the update query, creating a copy of the page in the cache memory of the read-only node.

8 . The computing system of claim 1 , wherein updating the read-write node based on the update query comprises performing a page split.

9 . The computing system of claim 1 , wherein the shared storage is an append-only shared storage.

10 . The computing system of claim 1 , wherein the graph database comprises a Bw-tree graph database.

11 . A method for efficiency synchronization on a graph database, the method comprising:

implementing the graph database using at least:

a read-write node and a read-only node operating in cache memory; and

a shared storage for data persistence, wherein the shared storage stores a mapping table of the graph database;

receiving an update query;

updating the read-write node based on the update query;

writing, using the read-write node, a set of logs corresponding to the update query to a write-ahead log (WAL) journal in the shared storage;

retrieving, using the read-only node, the set of logs corresponding to the update query from the WAL journal;

asynchronously flushing the cache memory of the read-write node to the shared storage; and

after the flushing of the cache memory of the read-write node to the shared storage, updating the mapping table of the graph database in the shared storage based on the update query.

12 . The method of claim 11 , further comprising:

synchronous with the updating of the mapping table in the shared storage, writing a log in the WAL journal indicating the shared storage has been updated; and

retrieving, using the read-only node, the log indicating the shared storage has been updated.

13 . The method of claim 12 , further comprising:

updating the read-only node using the retrieved set of logs corresponding to the update query; and

discarding logs up to the log indicating the shared storage has been updated, including the retrieved set of logs corresponding to the update query.

14 . The method of claim 11 , further comprising:

receiving, using the read-only node, a query requesting access to a data element affected by the update of the read-write node;

updating the read-only node using the retrieved set of logs corresponding to the update query; and

returning, using the read-only node, a query result containing the data element.

15 . The method of claim 14 , further comprising:

synchronous with the updating of the mapping table in the shared storage, writing a log in the WAL journal indicating the shared storage has been updated;

retrieving, using the read-only node, the log indicating the shared storage has been updated; and

discarding logs up to the log indicating the shared storage has been updated, including the retrieved set of logs corresponding to the update query.

16 . The method of claim 14 , wherein updating the read-only node using the retrieved set of logs corresponding to the update query comprises:

performing actions described in the retrieved set of logs corresponding to the update query to update a mapping of the graph database in the read-only node;

retrieving, using the read-only node, one or more pages from the shared storage using the mapping table of the graph database in the shared storage; and

if the shared storage does not contain a page described in the retrieved set of logs corresponding to the update query, creating a copy of the page in the cache memory of the read-only node.

17 . The method of claim 11 , wherein updating the read-write node based on the update query comprises performing a page split.

18 . The method of claim 11 , wherein the shared storage is an append-only shared storage.

19 . The method of claim 11 , wherein the graph database comprises a Bw-tree graph database.

20 . A method for efficiency synchronization on a Bw-tree graph database, the method comprising:

implementing the Bw-tree graph database using at least:

a read-write node and a read-only node operating in cache memory; and

an append-only shared cloud storage for data persistence;

updating the read-write node based on a received update query;

writing, using the read-write node, a set of logs corresponding to the received update query to a write-ahead log (WAL) journal in the append-only shared cloud storage;

retrieving, using the read-only node, the set of logs corresponding to the update query from the WAL journal asynchronously flushing the cache memory of the read-write node to the append-only shared cloud storage;

updating the append-only shared cloud storage based on the update query;

synchronous with the updating of the append-only shared cloud storage, writing a log in the WAL journal indicating the append-only shared cloud storage has been updated; and

synchronizing the read-only node to be consistent with the read-write node.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: CHEN, CHAO
To: BEIJING OCEAN ENGINE NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 074928/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: ZHANG, WEI; ZENG, ZHIGANG; YANG, SHIJIAO; LI, MENG; TAN, HONGFEI
To: BEIJING ZITIAO NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 074928/0469 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: ZHOU, BINGYU; ZHU, HUIMING; ZHAO, YONGJUN
To: CHENGDU OCEAN ENGINE INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 074928/0648 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: ZHANG, SHUAI
To: DOUYIN VISION CO., LTD.
Reel/Frame 074928/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: HU, YINGQIAN; CHENG, MIAOMIAO; LIU, MENGJIN; LIN, HEXIANG
To: HANGZHOU JINRITOUTIAO TECHNOLOGY CO., LTD.
Reel/Frame 074928/0803 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: ZHANG, LEI
To: SHENZHEN JINRITOUTIAO TECHNOLOGY CO., LTD.
Reel/Frame 074928/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: CHEN, CHENG
To: TIKTOK PTE. LTD.
Reel/Frame 074928/0888 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: TIKTOK PTE. LTD.; BEIJING ZITIAO NETWORK TECHNOLOGY CO., LTD.; CHENGDU OCEAN ENGINE INFORMATION TECHNOLOGY CO., LTD.; BEIJING OCEAN ENGINE NETWORK TECHNOLOGY CO., LTD.; HANGZHOU JINRITOUTIAO TECHNOLOGY CO., LTD.; DOUYIN VISION CO., LTD.; SHENZHEN JINRITOUTIAO TECHNOLOGY CO., LTD.
To: LEMON INC.; BEIJING VOLCANO ENGINE TECHNOLOGY CO., LTD.
Reel/Frame 074928/0961 →
Continuity (1)
Related Publication 20250103613A1 · Mar 27, 2025
References Cited (24)
US 9280591B1 · Kharatishvili · 2016 [cited by examiner]
US 9507843B1 · Madhavarapu · 2016 [cited by examiner]
US 9519664B1 · Kharatishvili · 2016 [cited by examiner]
US 9613120B1 · Kharatishvili · 2017 [cited by examiner]
US 11386072B1 · Narayan · 2022 [cited by examiner]
US 11816073B1 · Chakrabarti · 2023 [cited by examiner]
US 11921699B1 · Govindagowda · 2024 [cited by examiner]
US 11947555B1 · Mohideen · 2024 [cited by examiner]
US 12007954B1 · Chakrabarti · 2024 [cited by examiner]
US 12105692B1 · Kumar · 2024 [cited by examiner]
US 12147317B1 · Mohideen · 2024 [cited by examiner]
US 12242505B1 · Shankar · 2025 [cited by examiner]
US 12292881B1 · Verbitski · 2025 [cited by examiner]
US 12346327B1 · Brooker · 2025 [cited by examiner]
US 20240256605A1 · Schilders · 2024 [cited by examiner]
US 20240257417A1 · Schilders · 2024 [cited by examiner]
US 20250173338A1 · Shanthakumar · 2025 [cited by examiner]
US 20250298784A1 · Mohammed · 2025 [cited by examiner]
CN 112015807A · 2020 [cited by examiner]
Wang et al., “Bw-tree An Evolution of Bw-tree on Fast Storage”,Jul. 23, 2024,IEEE,pp. 1-20 (Year: 2024). [cited by examiner]
Levandoski, J. et al. “The Bw-Tree: A B-tree for New Hardware Platforms,” Proceedings of the 2013 IEEE 29th International Conference on Data Engineering (ICDE), Apr. 8, 2013, Brisbane, QLD, Australia, 12 pages. [cited by applicant]
Li, C. et al., “ByteGraph: A High-Performance Distributed Graph Database in ByteDance,” Proceedings of the VLDB Endowment, vol. 15, No. 12, Aug. 1, 2022, 13 pages. [cited by applicant]
European Patent Office, Extended European Search Report Issued in Application No. 25197421.8, Jan. 23, 2026, Germany, 12 pages. [cited by applicant]
Zhang, W. et al., “BG3: A Cost Effective and I/O Efficient Graph Database in Bytedance,” Proceedings of “Sigmod/ Pods '24: International Conference on Management of Data”, Jun. 9, 2024, Santiago, Chile, 13 pages. [cited by applicant]