Defining subgraphs declaratively with vertex and edge filters

US11294899B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11294899-B2
Application numberUS-201916548687-A
CountryUS
Kind codeB2
Filing dateAug 22, 2019
Priority dateMay 10, 2017
Publication dateApr 5, 2022
Grant dateApr 5, 2022

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.

Techniques herein optimally distribute graph query processing across heterogeneous tiers. In an embodiment, a computer receives a graph query to extract a query result (QR) from a graph in a database operated by a database management system (DBMS). The graph has vertices interconnected by edges. Each vertex has vertex properties, and each edge has edge properties. The computer decomposes the graph query into filter expressions (FE's). Each FE is processed as follows. A filtration tier to execute the FE is selected from: the DBMS which sends at least the QR to a stream, a stream evaluator that processes the stream as it arrives without waiting for the entire QR to arrive and that stores at least the QR into memory, and an in-memory evaluator that identifies the QR in memory. A translation of the FE executes on the filtration tier to obtain vertices and/or edges that satisfy the FE.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: executing a graph query to be applied to content of a computerized data store by: automatically decomposing the graph query into at least a first filter expression and a second filter expression; executing the first filter expression on a database management system (DBMS) tier that comprises a DBMS; performing pipeline concurrency by at least executing, concurrent to said executing the first filter expression on the DBMS tier, the second filter expression on another processing tier, wherein: data in the other processing tier comprises data retrieved from the DBMS tier; said data in the other processing tier exceeds available memory in the other processing tier. 2. The method of claim 1 wherein said data retrieved from the DBMS tier comprises extensible markup language (XML). 3. The method of claim 1 wherein said executing the first filter expression on the DBMS tier comprises sending an XML query to the DBMS for execution. 4. The method of claim 1 wherein said executing the second filter expression on the other processing tier comprises performing native object deserialization. 5. The method of claim 1 wherein the first filter expression cannot be context free. 6. The method of claim 1 wherein the DBMS tier and the other processing tier reside on one selected from the group consisting of: separate computers and a same computer. 7. The method of claim 1 wherein said executing the second filter expression on the other processing tier comprises unmarshalling said data in the other processing tier into data binding objects. 8. The method of claim 1 wherein said executing the second filter expression on the other processing tier comprises using a sliding window to store a portion of said data in the other processing tier. 9. The method of claim 1 wherein said executing the second filter expression on the other processing tier comprises detecting that said executing the second filter expression has quadratic complexity. 10. A method comprising: executing a graph query to be applied to content of a computerized data store by: automatically decomposing the graph query into at least a first filter expression and a second filter expression; executing the first filter expression on a database management system (DBMS) tier that comprises a DBMS; executing the second filter expression on another processing tier, wherein: data in the other processing tier comprises data retrieved from the DBMS tier, and said executing the second filter expression on the other processing tier comprises not storing said data in the other processing tier unless a streaming XML parser detects that said data in the other processing tier satisfies said second filter expression. 11. The method of claim 1 wherein: said data in the other processing tier comprises a first portion and a second portion; said executing the second filter expression on the other processing tier comprises concurrently processing the first portion and the second portion by respective cores of a processor. 12. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause: executing a graph query to be applied to content of a computerized data store by: automatically decomposing the graph query into at least a first filter expression and a second filter expression; executing the first filter expression on a database management system (DBMS) tier that comprises a DBMS; performing pipeline concurrency by at least executing, concurrent to said executing the first filter expression on the DBMS tier, the second filter expression on another processing tier, wherein; data in the other processing tier comprises data retrieved from the DBMS tier; said data in the other processing tier exceeds available memory in the other processing tier. 13. The one or more non-transitory computer-readable media of claim 12 wherein said data retrieved from the DBMS tier comprises extensible markup language (XML). 14. The one or more non-transitory computer-readable media of claim 12 wherein said executing the first filter expression on the DBMS tier comprises sending an XML query to the DBMS for execution. 15. The one or more non-transitory computer-readable media of claim 12 wherein said executing the second filter expression on the other processing tier comprises at least one selected from the group consisting of: a) a relational join, b) native object deserialization, b) unmarshalling said data in the other processing tier into data binding objects, c) a sliding window storing a portion of said data in the other processing tier, and d) detecting that said executing the second filter expression has quadratic complexity. 16. The one or more non-transitory computer-readable media of claim 12 wherein the first filter expression cannot be context free. 17. The one or more non-transitory computer-readable media of claim 12 wherein the DBMS tier and the other processing tier reside on one selected from the group consisting of: separate computers and a same computer. 18. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause: executing a graph query to be applied to content of a computerized data store by: automatically decomposing the graph query into at least a first filter expression and a second filter expression; executing the first filter expression on a database management system (DBMS) tier that comprises a DBMS; executing the second filter expression on another processing tier, wherein: data in the other processing tier comprises data retrieved from the DBMS tier, and said executing the second filter expression on the other processing tier comprises at least one selected from the group consisting of: a) not storing said data in the other processing tier unless a streaming XML parser detects that said data in the other processing tier satisfies said second filter expression, and b) generating a logical graph or a logical tree. 19. The one or more non-transitory computer-readable media of claim 12 wherein: said data in the other processing tier comprises a first portion and a second portion; said executing the second filter expression on the other processing tier comprises concurrently processing the first portion and the second portion by respective cores of a processor. 20. A method comprising: executing a graph query to be applied to content of a computerized data store by: automatically decomposing the graph query into at least a first filter expression and a second filter expression; executing the first filter expression on a database management system (DBMS) tier that comprises a DBMS; executing the second filter expression on another processing tier, wherein: data in the other processing tier comprises data retrieved from the DBMS tier, and said executing the second filter expression on the other processing tier comprises generating one selected from the group consisting of a logical graph and a logical tree.

Assignees

Inventors

Classifications

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

  • Presentation of query results · CPC title

  • of sub-queries or views · CPC title

  • Data partitioning, e.g. horizontal or vertical partitioning · CPC title

  • between a Database Management System and a front-end application · 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 US11294899B2 cover?
Techniques herein optimally distribute graph query processing across heterogeneous tiers. In an embodiment, a computer receives a graph query to extract a query result (QR) from a graph in a database operated by a database management system (DBMS). The graph has vertices interconnected by edges. Each vertex has vertex properties, and each edge has edge properties. The computer decomposes the gr…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/9024. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 05 2022 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 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).