IP Library Granted Patent US 12,182,201
Granted Patent B2
US 12,182,201 · App. 17/160,172 · Granted Dec 31, 2024

Graph data storage method, system and electronic device

Inventors: Wenfei Fan (Beijing, CN); Wenyuan Yu (Beijing, CN); Jingbo Xu (Beijing, CN); Xiaojian Luo (Beijing, CN)
Assignee: ZHEJIANG TMALL TECHNOLOGY CO., LTD.
G06F16/9024G06F12/0813G06F2212/2542
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,182,201
App. No.
17/160,172
Granted
Dec 31, 2024
Kind
B2
Abstract

A graph data storage method for non-uniform memory access architecture (NUMA) processing system is provided. The processing system includes at least one computing device, each computing device corresponding to multiple memories, and each memory corresponding to multiple processors. The method includes: performing three-level partitioning on graph data to obtain multiple third-level partitions based on a communication mode among computing device(s), memories, and processors; and separately storing graph data of the multiple third-level partitions in NUMA nodes corresponding to the processors. A graph data storage system and an electronic device are further provided.

Claims (48)

1. A method implemented by a system, the method comprising:

performing three-level partitioning on graph data to obtain multiple third-level partitions based on a communication mode among one or more computing devices, multiple memories, and multiple processors; and

separately storing graph data of the multiple third-level partitions in non-uniform memory access architecture (NUMA) nodes corresponding to the multiple processors, the separately storing the graph data of the multiple third-level partitions in the NUMA nodes corresponding to the multiple processors comprising:

storing a content of a first part of the graph data into the memories by way of the three-level partitioning on the graph data, the first part including a graph structure, data, and context; and

storing a content of a second part of the graph data into the memories in a first interleaved mode, the content of the second part of the graph data being controlled by the multiple processors to control from which NUMA node each memory block is allocated, the content of the second part of the content including information that notifies different third-level partitions needing to synchronize state information; and

storing a content of a third part of the graph data into the memories in a second interleaved mode different from the first interleaved mode, the content of the third part of the graph data being controlled by a graph computing engine to control from which NUMA node each memory block is allocated according to an access frequency and a load balance, the content of the third part including a partition table.

2. The method recited in claim 1 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode among the one or more computing devices, the multiple memories, and the multiple processors comprises:

partitioning the graph data according to a number of the one or more computing devices and a communication overhead between the one or more computing devices to obtain multiple first-level partitions.

3. The method recited in claim 2 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode among the one or more computing devices, the multiple memories, and the multiple processors further comprises:

dividing each first-level partition into multiple second-level partitions according to a number of NUMA nodes in each computing device and a communication overhead between NUMA nodes.

4. The method recited in claim 3 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode among the one or more computing devices, the multiple memories, and the multiple processors further comprises:

dividing each second-level partition into a plurality of third-level partitions according to a number of working nodes in each NUMA node and a communication overhead between each working node, the working nodes including a processor of the multiple processors or a thread on the processor.

5. The method recited in claim 1 , wherein the graph data comprises multiple data blocks, and each data block is alternately stored on a different NUMA node in an interleaved mode.

6. One or more computer readable media storing executable instructions that, when executed by a processing system, cause the processing system to perform acts comprising:

performing three-level partitioning on graph data to obtain multiple third-level partitions based on a communication mode among one or more computing devices, multiple memories, and multiple processors; and

separately storing graph data of the multiple third-level partitions in non-uniform memory access architecture (NUMA) nodes corresponding to the multiple processors, the separately storing the graph data of the multiple third-level partitions in the NUMA nodes corresponding to the multiple processors comprising:

storing a content of a first part of the graph data into the memories by way of the three-level partitioning on the graph data, the first part including a graph structure; and

storing a content of a second part of the graph data into the memories in an first interleaved mode, the content of the second part of the content including information that notifies different third-level partitions needing to synchronize state information.

7. The one or more computer readable media recited in claim 6 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode among the one or more computing devices, the multiple memories, and the multiple processors further comprises:

partitioning the graph data according to a number of the one or more computing devices and a communication overhead between the one or more computing devices to obtain multiple first-level partitions; and

dividing each first-level partition into multiple second-level partitions according to a number of NUMA nodes in each computing device and a communication overhead between NUMA nodes.

8. The one or more computer readable media recited in claim 7 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode among the one or more computing devices, the multiple memories, and the multiple processors further comprises:

dividing each second-level partition into a plurality of third-level partitions according to a number of working nodes in each NUMA node and a communication overhead between each working node, the working nodes including a processor of the multiple processors or a thread on the processor.

9. The one or more computer readable media recited in claim 6 , wherein the first part further includes data, and context.

10. The one or more computer readable media recited in claim 9 , wherein the content of the second part of the graph data is controlled by the multiple processors to control from which NUMA node each memory block is allocated.

11. The one or more computer readable media recited in claim 10 , wherein the separately storing the graph data of the multiple third-level partitions in the NUMA nodes corresponding to the multiple processors further comprises:

storing content of a third part of the graph data into the memories in another interleaved mode, where from which NUMA node each memory block is allocated is controlled according to an access frequency and a load balance, and the content of the third part includes a partition table.

12. The one or more computer readable media recited in claim 6 , wherein the graph data comprises multiple data blocks, and each data block is alternately stored on a different NUMA node in an interleaved mode.

13. An electronic device comprising:

multiple processors; and

multiple memories storing executable instructions that, when executed by the multiple processors, cause the multiple processors to perform acts comprising:

performing three-level partitioning on graph data to obtain multiple third-level partitions based on a communication mode between the multiple memories and the multiple processors; and

separately storing graph data of the multiple third-level partitions in non-uniform memory access architecture (NUMA) nodes corresponding to the multiple processors, the separately storing the graph data of the multiple third-level partitions in the NUMA nodes corresponding to the multiple processors comprising:

storing a content of a first part of the graph data into the memories by way of the three-level partitioning on the graph data, the first part including a graph structure; and

storing a content of a second part of the graph data into the memories in an interleaved mode, the content of the second part of the content including information that notifies different third-level partitions needing to synchronize state information.

14. The electronic device recited in claim 13 , wherein the multiple processors and the multiple memories adopt a NUMA mode.

15. The electronic device recited in claim 13 , wherein the separately storing the graph data of the multiple third-level partitions in the NUMA nodes corresponding to the processors further comprises:

storing content of a first part of the graph data into the memory by way of the three-level partitioning of the graph data, wherein the first part includes a graph structure, data, and context;

storing content of a second part of the graph data into the memory in an interleaved mode, wherein the processor controls from which NUMA node each memory block is allocated, and the content of the second part of the content includes information; and

storing content of a third part of the graph data into the memory in an interleaved mode, wherein from which NUMA node each memory block is allocated is controlled according to an access frequency and a load balance, and the content of the third part includes a partition table.

16. The electronic device recited in claim 2 , wherein the content of the third part of the graph data is controlled by a graph computing engine to control from which NUMA node each memory block is allocated according to the access frequency and the load balance.

17. The electronic device recited in claim 13 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode between the multiple memories and the multiple processors comprises:

partitioning the graph data according to a number of one or more computing devices and a communication overhead between the one or more computing devices to obtain multiple first-level partitions.

18. The electronic device recited in claim 17 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode between the multiple memories and the multiple processors further comprises:

dividing each first-level partition into multiple second-level partitions according to a number of NUMA nodes in each computing device and a communication overhead between NUMA nodes.

19. The electronic device recited in claim 18 , wherein the performing the three-level partitioning on the graph data to obtain the multiple third-level partitions based on the communication mode between the multiple memories and the multiple processors further comprises:

dividing each second-level partition into a plurality of third-level partitions according to a number of working nodes in each NUMA node and a communication overhead between each working node, the working nodes including a processor or a thread on the processor.

20. The electronic device recited in claim 13 , wherein the content of the second part of the graph data is controlled by the multiple processors to control from which NUMA node each memory block is allocated, the content of the second part of the content including information that notifies different third-level partitions needing to synchronize state information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2021
From: FAN, WENFEI; YU, WENYUAN; XU, JINGBO; LUO, XIAOJIAN
To: ZHEJIANG TMALL TECHNOLOGY CO., LTD.
Reel/Frame 056059/0690 →
Continuity (2)
Continuation PCTCN2018097516 · Jul 27, 2018
Related Publication 20210149960A1 · May 20, 2021