IP Library Granted Patent US 10,956,504
Granted Patent B2
US 10,956,504 · App. 15/760,378 · Granted Mar 23, 2021

Graph database query classification based on previous queries stored in repository

Inventors: Mahashweta Das (Palo Alto, CA); Alkis Simitsis (Palo Alto, CA); William K. Wilkinson (Palo Alto, CA)
Assignee: MICRO FOCUS LLC
G06F16/90335G06F16/28G06F16/9024G06F17/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,956,504
App. No.
15/760,378
Filed
Mar 15, 2018
Granted
Mar 23, 2021
Kind
B2
Art Unit
2162
USPC
707/713
Abstract

Examples for graph database query classification include receiving a graph query and determining if the graph query matches benchmark data. In the event that the graph query does not match benchmark data, the query may be parsed, a canonical internal representation of the query may be determined, the representation may be mapped to a rule, and the query may be classified based on the rule. In the event that the confidence score for the query classification does not exceed a threshold, the query may be sent to a synthetic graph or synopsis for simulation. In some examples, the simulation may include selecting computationally expensive graph operators in the query for simulation.

Claims (52)

1. A graph database query classification system, comprising:

a repository of benchmark data;

a graph processor engine; and

a memory storing instructions that when executed cause the graph processor engine to:

receive a graph query from an application;

determine whether the graph query matches a previously submitted query stored in the repository of benchmark data;

in response to a determination that the graph query matches a previously submitted query stored in the repository of benchmark data, classify the graph query to a classification associated with the previously submitted query;

in response to a determination that the graph query does not match a previously submitted query stored in the repository of benchmark data, determine a canonical internal representation of the graph query, map the canonical internal representation of the graph query to a rule, and classify the graph query to a classification associated with the rule;

determine a confidence score of the classification of the graph query;

in response to a determination that the confidence score of the classification of the graph query is less than a threshold score, determine that the classification of the graph query does not meet a predetermined condition; and

in response to a determination that the classification of the graph query does not meet the predetermined condition, simulate an execution of the graph query on a synthetic graph.

2. The graph database query classification system of claim 1 , wherein the rule is determined based on historical logs of queries stored in the repository of benchmark data.

3. The graph database query classification system of claim 1 , wherein, to simulate the execution of the graph query, the instructions are executable to cause the graph processor engine to:

select an operator in the graph query; and

simulate the execution of the graph query on the synthetic graph for the selected operator.

4. The graph database query classification system of claim 3 , wherein the instructions are executable to cause the graph processor engine to:

determine whether a total number of graph nodes accessed during the simulated execution of the graph query is greater than a threshold number of nodes; and

in response to a determination that the total number of graph nodes accessed in the simulated execution of the graph query is greater than the threshold number of nodes, classify the graph query as a graph analytic query.

5. The graph database query classification system of claim 4 , wherein the instructions are executable to cause the graph processor engine to:

in response to a determination that the total number of graph nodes accessed in the simulated execution of the graph query is less than the threshold number of nodes, classify the graph query as a graph navigation query.

6. The graph database query classification system of claim 3 , wherein the selected operator is an operator that demands more computing resources than other operators in the graph query.

7. A method for classifying a graph database query, comprising:

receiving a graph query;

determining whether the graph query matches a previously submitted query stored in a repository of benchmark data;

in response to a determination that the graph query matches a previously submitted query stored in the repository of benchmark data, classifying the graph query to a classification associated with the previously submitted query;

in response to a determination that the graph query does not match a previously submitted query stored in the repository of benchmark data, parsing the graph query, determining a canonical internal representation of the graph query, mapping the canonical internal representation of the graph query to a rule, and classifying the graph query into a classification associated with the rule;

determining a confidence score for the classification of the graph query; and

in response to a determination that the confidence score does not exceed a threshold score, sending the graph query to a synthetic graph for simulation.

8. The method of claim 7 , further comprising:

selecting operators in the graph query; and

simulating an execution of the graph query on the synthetic graph for the selected operators.

9. The method of claim 8 , further comprising:

determining whether a total number of graph nodes accessed in the simulated execution of the graph query is greater than a threshold number of nodes; and

in response to a determination that the total number of graph nodes accessed in the simulated execution is greater than the threshold number of nodes, classifying the graph query as a graph analytic query.

10. The method of claim 9 , further comprising:

in response to a determination that the total number of graph nodes accessed in the simulated execution is less than the threshold number of nodes, classifying the graph query as a graph navigation query.

11. The method of claim 8 , wherein the selected operators are operators that demand more computing resources than other operators in the graph query.

12. An article comprising at least one non-transitory machine-readable storage medium that stores instructions executable by a processing resource of a graph database classification system to:

determine whether a received query matches a previously submitted query stored in a repository of benchmark data;

in response to a determination that the received query matches a previously submitted query stored in the repository of benchmark data, classify the received query to a classification associated with the previously submitted query;

in response to a determination that the received query does not match a previously submitted query stored in the repository of benchmark data, determine a canonical internal representation of the received query, map the canonical internal representation of the received query to a rule, and classify the received query to a classification associated with the rule;

determine a confidence score of the classification of the received query; and

in response to a determination that the confidence score is less than a threshold score, simulate an execution of the received query on a synthetic graph.

13. The article of claim 12 , wherein, to simulate the execution of the received query, the instructions are executable to cause the processing resource to:

select an operator in the received query; and

simulate the execution of the received query with the selected operator.

14. The article of claim 13 , wherein the instructions are executable to cause the processing resource to:

determine whether a total number of graph elements accessed in the simulated execution is greater than a threshold number; and

in response to a determination that the total number of graph elements accessed in the simulated execution is greater than the threshold number, classify the received query as a graph analytic query.

15. The article of claim 14 , wherein the instructions are executable to cause the processing resource to:

in response to a determination that the total number of graph elements is less than the threshold number, classify the received query as a graph navigation query.

16. The article of claim 15 , wherein the graph elements are a plurality of graph edges or a plurality of graph nodes.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2026
From: OPEN TEXT US LLC
To: ROCKET SOFTWARE, INC.
Reel/Frame 075791/0327 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2018
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 046440/0633 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2018
From: DAS, MAHASHWETA; SIMITSIS, ALKIS; WILKINSON, WILLIAM K
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 046213/0649 →
Continuity (1)
Related Publication 20180268079A1 · Sep 20, 2018