IP Library Granted Patent US 8,433,701
Granted Patent B2
US 8,433,701 · App. 12/950,582 · Granted Apr 30, 2013

System and method for optimizing pattern query searches on a graph database

Inventors: Daniel Sargeant (Austin, TX); Morgan Hollinger (Cedar Park, TX)
Assignee: 21CT, Inc.
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 8,433,701
App. No.
12/950,582
Granted
Apr 30, 2013
Kind
B2
Abstract

An embodiment of the system and method for optimizing pattern query searches on a graph database uses a pattern query optimizer to optimize execution of the search plan for any sequence of SQL expressions by separating or breaking a pattern query into multiple subpattern queries before converting the subpattern queries into SQL expressions. An embodiment of the pattern query optimizer algorithmically, without intervention by an analyst, decomposes any pattern query into a set of subpattern queries by first identifying branches and cycles within a pattern query and then decomposing each identified branch and cycle into equivalent straight line paths, i.e., straight line nodes joined by edges. Cardinality may be used to improve the performance of pattern searches.

Claims (40)

1. A method for optimizing pattern query searches on a graph database, the method being implemented by a computer including at least one processor and comprising:

reading a first pattern query for a pattern search;

identifying, using a pattern query optimizer executed by the at least one processor, a complex configuration in the first pattern query, the complex configuration including at least one branch or cycle; and

generating, using the pattern query optimizer, two or more subpattern queries by decomposing each branch and cycle of the complex configuration into equivalent straight line nodes joined by edges to be converted to search expressions, wherein the generating includes:

forming subgraphs by removing nodes that are adjacent to more than two other nodes in the first pattern query;

separating the subgraphs into connected components;

searching for and locating nodes in any of the connected components that are connected to less than two other nodes in a same connected component;

adding nodes in the first pattern query that are adjacent to the located nodes into the connected components along with connecting edges; and

when a cycle is found, splitting the cycle into two or more separate paths.

2. The method of claim 1 , wherein the graph database is implemented in a relational database management system (RDBMS).

3. The method of claim 1 , wherein at least one search expression comprises a search query language (SQL) expression.

4. The method of claim 1 , further comprising:

executing each search expression; and

storing execution results in a temporary table.

5. The method of claim 1 , further comprising using a final search query language (SQL) expression to join the two or more subpattern queries.

6. The method of claim 1 , wherein the search expressions include all exported, constrained, and joined nodes.

7. A system for optimizing pattern query searches in a graph database, the system being implemented by a computer having a memory and at least one processor; comprising:

a pattern query optimizer designed and arranged to:

identify a complex configuration in a first pattern query, the complex configuration including at least one branch or cycle; and

generate two or more subpattern queries by decomposing each branch and cycle into equivalent straight line nodes joined by edges to be converted to search query language (SQL) expressions;

wherein the pattern query optimizer is implemented in a plurality of lines of computer code maintained in the memory for execution by the at least one processor and, wherein the pattern query optimizer:

forms subgraphs by removing nodes that are adjacent to more than two other nodes in the first pattern query;

separates the subgraphs into connected components;

searches for and locates nodes in any of the connected components that are connected to less than two other nodes in a same connected component;

adds nodes in the first pattern query that are adjacent to the located nodes into the connected components along with connecting edges; and

when a cycle is found, splits the cycle into two or more separate paths.

8. The system of claim 7 , wherein the graph database is implemented in a relational database management system (RDBMS).

9. The system of claim 7 , wherein the pattern query optimizer uses a final SQL expression to join the two or more subpattern queries.

10. The system of claim 7 , wherein the SQL expressions include all exported, constrained, and joined nodes.

11. A non-transitory computer readable medium providing instructions for optimizing pattern query searches on a graph database, the instructions comprising:

reading a first pattern query for a pattern search;

identifying a complex configuration in the first pattern query, the complex configuration including at least one branch or cycle; and

generating two or more subpattern queries by decomposing each branch and cycle of the complex configuration into equivalent straight line nodes joined by edges to be converted to search expressions, wherein the generating further includes:

forming subgraphs by removing nodes that are adjacent to more than two other nodes in the first pattern query;

separating the subgraphs into connected components;

searching for and locating nodes in any of the connected components that are connected to less than two other nodes in a same connected component;

adding nodes in the first pattern query that are adjacent to the located nodes into the connected components along with connecting edges; and

when a cycle is found, splitting the cycle into two or more separate paths.

12. The computer readable medium of claim 11 , wherein the graph database is implemented in a relational database management system (RDBMS).

13. The computer readable medium of claim 11 , wherein at least one search expression comprises a search query language (SQL) expression.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2015
From: 21CT, INC.
To: NORTHROP GRUMMAN SYSTEMS CORPORATION
Reel/Frame 036241/0873 →
PARTIAL TERMINATION OF SECURITY INTEREST IN PATENTS AND TRADEMARKS Recorded Mar 25, 2015
From: CADENCE BANK
To: 21CT, INC.
Reel/Frame 035293/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2013
From: SARGEANT, DANIEL; HOLLINGER, MORGAN
To: 21ST CENTURY TECHNOLOGIES, INC.
Reel/Frame 030123/0086 →
Continuity (2)
Provisional Application 61262917 · Nov 19, 2009
Related Publication 20110119245A1 · May 19, 2011