Selective use of data structure operations for path query evaluation

US11704309B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11704309-B2
Application numberUS-202117362907-A
CountryUS
Kind codeB2
Filing dateJun 29, 2021
Priority dateJun 29, 2021
Publication dateJul 18, 2023
Grant dateJul 18, 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 technologies are capable of selectively using data structure operations for path query evaluation. One technique involves reading a query that traverses at least two nodes and at least one edge of a graph in a graph database; compiling the query into a set of variables and a set of constraints, where the set of variables and the set of constraints correspond to the two nodes and the one edge of the graph; creating an in-memory data structure that comprises a table; using the set of variables and the set of constraints to determine an operation that is performable using the in-memory data structure; checking for an existence of a condition relating to the in-memory data structure or the operation; skipping the operation if the condition exists or executing the operation if the condition does not exist; and storing a set of intermediate query results in the table.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: reading a query that traverses at least two nodes and at least one edge of a graph in a graph database; compiling the query into a set of variables and a set of constraints, the set of variables and the set of constraints corresponding to the at least two nodes and the at least one edge of the graph; creating an in-memory data structure comprising at least one table; using the set of variables and the set of constraints, determining an operation that is performable using the in-memory data structure; checking for an existence of a condition relating to the in-memory data structure or the operation; if the condition exists, skipping the operation; if the condition does not exist, executing the operation; storing a set of intermediate query results in the at least one table; wherein checking for the existence of the condition comprises determining whether the in-memory data structure comprises a nested disjunction that includes at least one disjunctive child table that has zero rows; if the in-memory data structure comprises a nested disjunction that includes at least one disjunctive child table that has zero rows, the condition exists and skipping the operation comprises skipping a path consistency checking operation; and if the in-memory data structure does not comprise a nested disjunction that includes at least one disjunctive child table that has zero rows, the condition does not exist and executing the operation comprises executing a path consistency checking operation; wherein the method is performed by at least one computing device. 2. The method of claim 1 , wherein checking for the existence of the condition comprises determining whether a variable of the set of variables is a single row variable. 3. The method of claim 2 , wherein, if the variable is a single row variable, the condition exists and skipping the operation comprises skipping a path consistency checking operation. 4. The method of claim 3 , further comprising reading the set of intermediate query results from a data storage. 5. The method of claim 1 , wherein checking for the existence of the condition comprises determining whether a variable of the set of variables is a multi-row variable. 6. The method of claim 5 , wherein, if the variable is a multi-row variable, the condition does not exist and executing the operation comprises executing a path consistency checking operation. 7. The method of claim 6 , further comprising executing the path consistency checking operation prior to reading the set of intermediate query results from a data storage. 8. The method of claim 1 , wherein checking for the existence of the condition comprises determining whether the operation is non-selective. 9. The method of claim 8 , wherein, if the operation is non-selective, the condition exists and skipping the operation comprises skipping a table creation operation. 10. The method of claim 9 , further comprising creating an execution head without executing the table creation operation. 11. The method of claim 1 , wherein checking for the existence of the condition comprises determining whether the operation is selective. 12. The method of claim 11 , wherein, if the operation is selective, the condition does not exist and executing the operation comprises executing a table creation operation. 13. The method of claim 12 , further comprising creating an execution head prior to executing the table creation operation. 14. At least one non-transitory machine-readable storage medium comprising instructions which, when implemented by at least one machine, cause the at least one machine to perform operations comprising: reading a query that traverses at least two nodes and at least one edge of a graph in a graph database; compiling the query into a set of variables and a set of constraints; creating an in-memory data structure comprising at least one table; using the set of variables and the set of constraints, determining an operation that is performable using the in-memory data structure; checking for an existence of a condition relating to the in-memory data structure or the operation; if the condition exists, skipping the operation; storing a set of intermediate query results in the at least one table; and if the condition does not exist, executing the operation; wherein checking for the existence of the condition comprises: determining whether a variable of the set of variables is a single row variable, and if the variable is a single row variable, the condition exists and skipping the operation comprises skipping a path consistency checking operation; or determining whether a variable of the set of variables is a multi-row variable, and if the variable is a multi-row variable, the condition does not exist and executing the operation comprises executing a path consistency checking operation. 15. At least one non-transitory machine-readable storage medium comprising instructions which, when implemented by at least one machine, cause the at least one machine to perform operations comprising: reading a query that traverses at least two nodes and at least one edge of a graph in a graph database; compiling the query into a set of variables and a set of constraints; creating an in-memory data structure comprising at least one table; using the set of variables and the set of constraints, determining an operation that is performable using the in-memory data structure; checking for an existence of a condition relating to the in-memory data structure or the operation; if the condition exists, skipping the operation; storing a set of intermediate query results in the at least one table; and if the condition does not exist, executing the operation; wherein checking for the existence of the condition comprises: determining whether the operation is non-selective, and if the operation is non-selective, the condition exists and skipping the operation comprises skipping a table creation operation; or determining whether the operation is selective, and if the operation is selective, the condition does not exist and executing the operation comprises executing a table creation operation. 16. At least one non-transitory machine-readable storage medium comprising instructions which, when implemented by at least one machine, cause the at least one machine to perform operations comprising: reading a query that traverses at least two nodes and at least one edge of a graph in a graph database; compiling the query into a set of variables and a set of constraints; creating an in-memory data structure comprising at least one table; using the set of variables and the set of constraints, determining an operation that is performable using the in-memory data structure; checking for an existence of a condition relating to the in-memory data structure or the operation; if the condition exists, skipping the operation; storing a set of intermediate query results in the at least one table; and if the condition does not exist, executing the operation; wherein checking for the existence of the condition comprises: determining whether the in-memory data structure comprises a nested disjunction that includes at least one disjunctive child table that has zero rows; if the in-memory data structure comprises a nested disjunction that includes at least one disjunctive child table that has zero rows, the condition exists and skipping the operation comprises skipping a path consistency checking operation; or if the in-memory data structure does not comprise a nested disjunction that inclu

Assignees

Inventors

Classifications

  • Iterative querying; Query formulation based on the results of a preceding query · CPC title

  • Query optimisation · 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 US11704309B2 cover?
The disclosed technologies are capable of selectively using data structure operations for path query evaluation. One technique involves reading a query that traverses at least two nodes and at least one edge of a graph in a graph database; compiling the query into a set of variables and a set of constraints, where the set of variables and the set of constraints correspond to the two nodes and t…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/2425. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 18 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 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).