| 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 |

|
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.
|