US 12,326,866 B1
Out-of-core BFS for shortest path graph queries
Hugo Kapp, Zurich (CH); Laurent Phillipe Daynes, Saint-Ismier (FR); Vlad Ioan Haprian, Zurich (CH); Ioannis Alagiannis, Zurich (CH); Hassan Chafi, San Mateo, CA (US); Sungpack Hong, Palo Alto, CA (US); Andrew Witkowski, Foster City, CA (US); Angela Amor, Menlo Park, CA (US); and Huagang Li, San Jose, CA (US)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Mar. 29, 2024, as Appl. No. 18/622,301.
Int. Cl. G06F 7/00 (2006.01); G06F 16/22 (2019.01); G06F 16/245 (2019.01); G06F 16/2452 (2019.01); G06F 16/2455 (2019.01); G06F 16/27 (2019.01)
CPC G06F 16/24569 (2019.01) [G06F 16/2255 (2019.01); G06F 16/24526 (2019.01); G06F 16/24561 (2019.01); G06F 16/278 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
executing a breadth first search (BFS) algorithm, wherein:
a disk-spilling hash (DSH) table maps each visited vertex to a number of times that vertex has been reached,
the DSH table has a plurality of DSH partitions,
each partition of the plurality of DSH partitions is associated with a first disk-spilling queue (DSQ) representing a current BFS level and a second DSQ representing a next BFS level, wherein the first DSQ is in read-only mode and the second DSQ is in write-only mode and wherein last vertices of subpaths stored in a given DSQ belong to a same DSH partition,
executing the BFS algorithm comprises:
for an active DSH partition, reading a set of vertices representing a subpath from an entry in the first DSQ associated with the active DSH partition, wherein the subpath ends at a current vertex;
updating the number of times the current vertex has been visited in the active DSH partition;
expanding the current vertex to one or more neighbor vertices;
for each neighbor vertex in the one or more neighbor vertices, determining a particular DSH partition associated with the neighbor vertex and storing a new subpath comprising the set of vertices and the neighbor vertex in the second DSQ associated with the particular DSH partition,
wherein the method is performed by one or more computing devices.