US 11,720,630 B2
Generating new and unique distributed graph ID
Arnaud Delamare, Zurich (CH); Vasileios Trigonakis, Zurich (CH); Yahya Ez-Zainabi, Berrechid (MA); Sungpack Hong, Palo Alto, CA (US); and Hassan Chafi, San Mateo, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Jan. 4, 2021, as Appl. No. 17/141,018.
Prior Publication US 2022/0215055 A1, Jul. 7, 2022
Int. Cl. G06F 16/901 (2019.01)
CPC G06F 16/9024 (2019.01) [G06F 16/9027 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
during a loading of a graph that is distributed in a multi-node computing system into memory, determining a plurality of available IDs, each of which is unique, for a plurality of unidentified graph components of the graph;
wherein the graph comprises a plurality of existing graph components and is distributed in the multi-node computing system, wherein each vertex in the graph is in a node in the multi-node computing system and each edge in the graph connects a source vertex with a destination vertex in the graph;
wherein each of the plurality of unidentified graph components is a vertex or an edge, in the graph, that is not associated with a unique ID;
wherein determining the plurality of available IDs for the plurality of unidentified graph components comprises:
at each node in the multi-node computing system:
generating a local data structure comprising a plurality of arrays;
wherein each of the plurality of arrays comprises K slots, K being a whole number greater than one, wherein the K slots of a respective array representing a subdomain of identifiers associated with a domain of possible identifiers;
wherein the plurality of arrays includes a root array in a root layer associated with the domain, a plurality of parent arrays, and a plurality of child arrays, wherein each child array of the plurality of arrays is linked with a slot in a respective parent array;
wherein a property of each slot in each of the plurality of arrays indicates an availability of IDs, in the subdomain represented by a respective slot; and
wherein generating the local data structure comprises, for each of the plurality of existing graph components:
inserting an ID of a respective existing graph component into a corresponding slot in the local data structure; and
deleting all sublayers of the corresponding slot responsive to determining the corresponding slot is full;
generating a merged data structure using data from the local data structure and data from local data structures associated with other nodes in the multi-node computing system; and
traversing the merged data structure to identify the plurality of available IDs based on the property of each slot in the merged data structure.