IP Library Granted Patent US 9,760,604
Granted Patent B2
US 9,760,604 · App. 15/383,674 · Granted Sep 12, 2017

System and method for adaptive filtering of data requests

Inventors: Adrian Brian Billington (England, GB); Paul Robert Bridger (London, GB); Tanel Poder (Irving, TX)
Assignee: GLUENT INC.
G06F17/30466G06F17/30867
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 9,760,604
App. No.
15/383,674
Granted
Sep 12, 2017
Kind
B2
Abstract

This disclosure describes systems and methods related to filtering data requests. In some embodiments, a system may determine an execution plan tree. The system may determine a backend-processed target table in the at least one first storage device. The system may traverse at least one first branch and at least one first node in the execution plan tree. The system may traverse at least one second branch and at least one second node from the parent join node. The system may determine that the rowsource is referenced at the rowsource-access node. The system may determine that the rowsource referenced at the rowsource-access node is a filtered-rowsource. The system may extract at least one join column from a join condition associated with the backend-processed target table and the filtered-rowsource. The system may determine at least one storage location of the filtered-rowsource. The system may determine an adaptive processing path based at least in part on the at least one storage location of the filtered-rowsource, the at least one join column determined from the join condition and the at least one direct predicate determined for the filtered-rowsource. The system may generate at least one target filter predicate for the backend-processed target table.

Claims (51)

1. A system, including:

at least one first server;

at least one first storage device;

at least one memory storing computer-executable instructions; and

at least one processor configured to access the at least one memory and to execute the computer-executable instructions to:

determine an execution plan tree;

determine a backend-processed target table in the at least one first storage device;

traverse at least one first branch and at least one first node in the execution plan tree until a parent join node of the backend-processed target table referenced by a table-scanning node is reached;

traverse at least one second branch and at least one second node from the parent join node until a rowsource-access node is reached, wherein the rowsource-access node is a root node in the execution plan tree;

determine that the rowsource is referenced at the rowsource-access node;

determine that the rowsource referenced at the rowsource-access node is a filtered-rowsource, wherein the filtered-rowsource is a database table associated with a data structure;

extract at least one join column from a join condition associated with the backend-processed target table and the filtered-rowsource;

determine at least one storage location of the filtered-rowsource;

determine an adaptive processing path based at least in part on the at least one storage location of the filtered-rowsource, the at least one join column determined from the join condition and at least one direct predicate determined for the filtered-rowsource; and

generate at least one target filter predicate for the backend-processed target table, to filter the backend-processed target table.

2. The system of claim 1 , wherein the at least one first server is a processing frontend server comprising a first memory.

3. The system of claim 2 , wherein determining the execution plan tree further comprises reading a first computer-executable instructions from the first memory.

4. The system of claim 3 , wherein the first computer-executable instructions comprise at least one binary structure.

5. The system of claim 2 , wherein determining the execution plan tree further comprises querying at least one catalog view of the first memory or reading at least one first memory directly.

6. The system of claim 1 , wherein the backend-processed target table is referenced by a table-scanning node in an execution plan tree.

7. The system of claim 1 , wherein the at least one processor is further configured to access the at least one memory and to execute the computer-executable instructions to:

determine that the rowsource that is referenced at the rowsource-access node is joined to the backend-processed target table.

8. The system of claim 1 , wherein the at least one processor is further configured to access the at least one memory and to execute the computer-executable instructions to:

determine that the rowsource referenced at the rowsource-access node is a filtered-rowsource by determining that there is at least one direct filter predicate against the filtered-rowsource.

9. The system of claim 1 , wherein the generation of the at least one target filter predicate for the backend-processed target table is based at least in part on the at least one storage location of the filtered-rowsource and the adaptive processing path.

10. A non-transitory computer-readable media storing computer-executable instructions, which when executed by one or more processors cause the one or more processors to perform operations of:

determining an execution plan tree;

determining a backend-processed target table;

traversing at least one first branch and at least one first node in the execution plan tree until a parent join node of the backend-processed target table referenced by a table-scanning node is reached;

traversing at least one second branch and at least one second node from the parent join node until a rowsource-access node is reached, wherein the rowsource-access node is a root node in the execution plan tree;

determining that the rowsource is referenced at the rowsource-access node;

determining that the rowsource referenced at the rowsource-access node is a filtered-rowsource, wherein the filtered-rowsource is a database table associated with a data structure;

extracting at least one join column from a join condition associated with backend-processed target table and the filtered-rowsource;

determining at least one storage location of the filtered-rowsource;

determining an adaptive processing path based at least in part on the at least one storage location of the filtered-rowsource, the at least one join column determined from the join condition and the at least one direct predicate determined for the filtered-rowsource; and

generating at least one target filter predicate for the backend-processed target table, to filter the backend-processed target table.

11. The non-transitory computer-readable media of claim 10 , wherein determining the execution plan tree further comprises reading a first computer-executable instructions from a first memory in a processing frontend server.

12. The non-transitory computer-readable media of claim 11 , wherein the first computer-executable instructions comprise at least one binary structure.

13. The non-transitory computer-readable media of claim 11 , wherein determining the execution plan tree further comprises querying at least one catalog view of the first memory.

14. The non-transitory computer-readable media of claim 10 , wherein the backend-processed target table is referenced by a table-scanning node in an execution plan tree.

15. A method comprising:

determining an execution plan tree;

determining a backend-processed target table;

traversing at least one first branch and at least one first node in the execution plan tree until a parent join node of the backend-processed target table referenced by a table-scanning node is reached;

traversing at least one second branch and at least one second node from the parent join node until a rowsource-access node is reached, wherein the rowsource-access node is a root node in the execution plan tree;

determining that the rowsource is referenced at the rowsource-access node;

determining that the rowsource referenced at the rowsource-access node is a filtered-rowsource, wherein the filtered-rowsource is a database table associated with a data structure;

extracting at least one join column from a join condition associated with backend-processed target table and the filtered-rowsource;

determining at least one storage location of the filtered-rowsource;

determining an adaptive processing path based at least in part on the at least one storage location of the filtered-rowsource, the at least one join column determined from the join condition and the at least one direct predicate determined for the filtered-rowsource; and

generating at least one target filter predicate for the backend-processed target table, to filter the backend-processed target table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2016
From: BILLINGTON, ADRIAN BRIAN; BRIDGER, PAUL ROBERT; PODER, TANEL
To: GLUENT INC.
Reel/Frame 041129/0228 →
Continuity (2)
Provisional Application 62285013 · Dec 23, 2015
Related Publication 20170185647A1 · Jun 29, 2017