Enforcing path consistency in graph database path query evaluation

US11720543B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11720543-B2
Application numberUS-202117466717-A
CountryUS
Kind codeB2
Filing dateSep 3, 2021
Priority dateSep 30, 2019
Publication dateAug 8, 2023
Grant dateAug 8, 2023

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.

The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system stores intermediate results of the query in a structure comprising rows in a set of tables and links between pairs of rows in different tables in the set of tables. Next, the system tracks, in the structure, representations of data, relationships, and path consistency in the query. The system then applies one or more operations to existing rows in the structure to generate a final result of the query. Finally, the system provides the final result in a response to the query.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for storing intermediate results of a path query in a computer memory, the method comprising: processing a query that traverses at least two nodes and at least one edge of a graph database; configuring the computer memory according to an intermediate data structure, the intermediate data structure comprising: a plurality of tables, each table comprising a plurality of rows and a plurality of columns; a plurality of links between rows in different tables of the plurality of tables; and at least one invariant that tracks or enforces path consistency during the processing of the query; storing data related to processing a first portion of the query in a source table of the plurality of tables; applying one or more operations to one or more rows of the source table; storing output of the one or more operations in one or more rows of a destination table of the plurality of tables; and creating a link between the one or more rows of the source table and the one or more rows of the destination table. 2. The method of claim 1 , further comprising: storing a first set of intermediate results of processing a first portion of the query in a first table of the plurality of tables; storing a second set of intermediate results of processing a second portion of the query different than the first portion in a second table of the plurality of tables; and creating a link between one or more rows of the first table and one or more rows of the second table. 3. The method of claim 1 , further comprising: determining first and second steps of processing the query; storing data related to the first step in a first table of the plurality of tables; storing data related to the second step in a second table of the plurality of tables different than the first table; and creating a link between the first table and the second table. 4. The method of claim 1 , further comprising: generating one or more additional tables in the intermediate data structure until the processing of the query produces a final result. 5. The method of claim 1 , further comprising: adding one or more additional links between rows of the plurality of tables until the processing of the query produces a final result. 6. The method of claim 1 , wherein at least one of the links indicates a one-to-one relationship between a row of a source table of the plurality of tables and a row of a destination table of the plurality of tables. 7. The method of claim 1 , wherein at least one of the links indicates a one-to-many relationship between a row of a source table of the plurality of tables and a plurality of rows of a destination table of the plurality of tables. 8. The method of claim 1 , further comprising: tracking relationships between rows of source and destination tables by storing, in an array, data representing one or more rows of a destination table produced from one or more rows of a source table. 9. The method of claim 1 , further comprising: storing, in a column of a table of the plurality of tables, data that indicates an evaluation mode of the table. 10. A system, comprising: one or more processors; and computer memory storing instructions that, when executed by the one or more processors, cause the one or more processors to be capable of: processing a path query; creating an intermediate data structure comprising: a plurality of tables, each table comprising a plurality of rows and a plurality of columns; a plurality of links between rows in different tables of the plurality of tables; and at least one invariant that tracks or enforces path consistency during the processing of the path query; and tracking relationships between rows of source and destination tables by storing, in an array, data representing one or more rows of a destination table produced from one or more rows of a source table. 11. The system of claim 10 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to be capable of: storing a first set of intermediate results of processing a first portion of the path query in a first table of the plurality of tables; storing a second set of intermediate results of processing a second portion of the path query different than the first portion in a second table of the plurality of tables; and creating a link between one or more rows of the first table and one or more rows of the second table. 12. The system of claim 10 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to be capable of: determining first and second steps of processing the path query; storing data related to the first step in a first table of the plurality of tables; storing data related to the second step in a second table of the plurality of tables different than the first table; and creating a link between the first table and the second table. 13. The system of claim 10 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to be capable of: storing data related to processing a first portion of the path query in a source table of the plurality of tables; applying one or more operations to one or more rows of the source table; storing output of the one or more operations in one or more rows of a destination table of the plurality of tables; creating a link between the one or more rows of the source table and the one or more rows of the destination table. 14. The system of claim 10 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to be capable of: generating one or more additional tables in the intermediate data structure until the processing of the path query produces a final result. 15. The system of claim 10 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to be capable of: adding one or more additional links between rows of the plurality of tables until the processing of the path query produces a final result. 16. The system of claim 10 , wherein at least one of the links indicates a one-to-one relationship between a row of a source table of the plurality of tables and a row of a destination table of the plurality of tables. 17. The system of claim 10 , wherein at least one of the links indicates a one-to-many relationship between a row of a source table of the plurality of tables and a plurality of rows of a destination table of the plurality of tables. 18. The system of claim 10 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to be capable of: storing, in a column of a table of the plurality of tables, data that indicates an evaluation mode of the table.

Assignees

Inventors

Classifications

  • Ensuring data consistency and integrity · CPC title

  • Tablespace storage structures; Management thereof · CPC title

  • Presentation of query results · CPC title

  • Relational databases · CPC title

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

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 US11720543B2 cover?
The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system stores intermediate results of the query in a structure comprising rows in a set of tables and links between pairs of rows in different tables in the set of tables. Next, the system tracks, in the structure, representations of data, relationships, and path consistency in the query…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/2365. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2023 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).