Graph traversal operator inside a column store

US9697254B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9697254-B2
Application numberUS-201514634418-A
CountryUS
Kind codeB2
Filing dateFeb 27, 2015
Priority dateDec 13, 2012
Publication dateJul 4, 2017
Grant dateJul 4, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system, computer-implemented method, and a computer-readable storage medium for a data graph traversal are provided. The input parameters for traversing the data graph are received. The data graph having a set of vertices and a set of edges are stored in a column based format in a memory cache of a computer device based on the input parameters is traversed. The traversal generates a set of traversed vertices that are the result of the graph traversal.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for improved graph traversal in a memory-centric database, comprising: receiving, by at least one processor, an input parameter, wherein the input parameter includes a set of path step descriptions; recursively traversing an edge table for a data graph, wherein the edge table is a column oriented table in the memory-centric database, and the traversing identifies a set of traversed vertices and further comprises: selecting a path step description from the set of path step descriptions; extracting a path predicate from the selected path step description; evaluating the extracted path predicate against the edge table, wherein the evaluation generates a set of valid edges, and the set of valid edges reduces a scan range during traversing; determining a direction for scanning the set of valid edges based on the selected path step description; and generating the set of traversed vertices by scanning the set of valid edges using the determined direction; and returning the set of traversed vertices, wherein the set of traversed vertices are a set of vertices visited during the traversing. 2. The method of claim 1 , wherein at least one terminating condition is specified in the selected path step description. 3. The method of claim 1 , wherein at least one terminating condition is met when no vertices were identified during the scanning with a previous path step description. 4. The method of claim 1 , wherein evaluating the extracted path predicate against the edge table further comprises: generating a set of traversed edges by scanning the set of vertices and the set of valid edges in the edge table; eliminating the set of traversed edges from the set of the valid edges; generating a set of visited vertices from the set of the traversed edges; and merging the set of visited vertices into the set of traversed vertices, wherein the set of traversed vertices includes vertices from multiple path step descriptions. 5. The method of claim 1 , further comprising optimizing the traversing, wherein the optimizing comprises: identifying edge types in the data graph; generating a plurality of sub graphs, wherein a sub graph in the plurality of sub graphs is associated with an edge type included in the edge types; and traversing the plurality of sub graphs in parallel to determine the set of traversed vertices. 6. The method of claim 1 , further comprising optimizing the traversing, wherein the optimizing comprises: determining a topological ordering for a vertex in a set of vertices in the data graph; for the vertex, identifying a subset of vertices that includes vertices reachable from the vertex based on the topological ordering; and rearranging the edges in the edge table based on the subset of vertices, such that the edges associated with the subset of vertices are traversed during the traversing. 7. The method of claim 1 , further comprising optimizing the traversing, wherein the optimizing further comprises: determining a subset of vertices that includes vertices a predetermined path step away from a vertex; and storing the determined subset of vertices in a location in memory, such that the subset of vertices and the vertex are retrieved using a request for a single memory block during the traversing. 8. A system, comprising: a graph traversal operator stored in memory and executing on a processor and causes the processor to: receive an input parameter, wherein the input parameter includes a set of path step descriptions; recursively traverse an edge table for a data graph, wherein the edge table is stored in a column oriented table in a memory-centric database, and the traversing identifies a set of traversed vertices and to traverse the edge table the graph traversal operator is further configured to: selecting a path step description from the set of path step descriptions; extracting a path predicate from the selected path step description; evaluate the extracted path predicate against the edge table, wherein the evaluation generates a set of valid edges, and the set of valid edges reduces a scan range during traversing; determine a direction for scanning the set of valid edges based on the selected path step description; and generate the set of traversed vertices by scanning the set of valid edges using the determined direction; and return the set of traversed vertices, wherein the set of traversed vertices are a set of vertices visited during the traversing. 9. The system of claim 8 , wherein at least one terminating condition is specified in the selected path step description. 10. The system of claim 8 , wherein at least one terminating condition is met when no vertices were identified during the scanning with a previous path step description. 11. The system of claim 8 , wherein to evaluate the extracted path predicate against the edge table is further configured to: generate a set of traversed edges by scanning the set of vertices and the set of valid edges in the edge table; eliminate the set of traversed edges from the set of the valid edges; generate a set of visited vertices from the set of the traversed edges; and merge the set of visited vertices into the set of traversed vertices, wherein the set of traversed vertices includes vertices from multiple path step descriptions. 12. The system of claim 8 , further comprising an optimization module configured to optimize the traversal and configured to: identify edge types in the data graph; generate a plurality of sub graphs, wherein a sub graph in the plurality of sub graphs is associated with an edge type included in the edge types; and traverse the plurality of sub graphs in parallel to determine the set of traversed vertices. 13. The system of claim 8 , further comprising an optimization module configured to optimize the traversal and configured to: determine a topological ordering for a vertex in a set of vertices in the data graph; for the vertex, identify a subset of vertices that includes vertices reachable from the vertex based on the topological ordering; and rearrange the edges in the edge table based on the subset of vertices, such that the edges associated with the subset of vertices are traversed during the traversal. 14. The system of claim 8 , further comprising an optimization module configured to optimize the traversal and configured to: determine a subset of vertices that includes vertices a predetermined path step away from a vertex; and store the determined subset of vertices in a location in memory, such that the subset of vertices and the vertex are retrieved using a request for a single memory block during the traversal. 15. A tangible computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations, comprising: receiving an input parameter, wherein the input parameter includes a set of path step descriptions; recursively traversing an edge table for a data graph, wherein the edge table is a column oriented table in a memory-centric database, and the traversing identifies a set of traversed vertices and further comprises: selecting path step description from the set of path step descriptions; extracting a path predicate from the selected path step description; evaluating extracted path predicate against the edge table, wherein the evaluation generates a set of valid edges, and the set of valid edges reduces a scan range during traversing; determining a direction for scanning the set of valid edges based on

Assignees

Inventors

Classifications

  • Recursive queries · CPC title

  • G06F16/221Primary

    Column-oriented storage; Management thereof · CPC title

  • Indexing; Web crawling techniques · CPC title

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9697254B2 cover?
A system, computer-implemented method, and a computer-readable storage medium for a data graph traversal are provided. The input parameters for traversing the data graph are received. The data graph having a set of vertices and a set of edges are stored in a column based format in a memory cache of a computer device based on the input parameters is traversed. The traversal generates a set of tr…
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F16/24566. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).