IP Library Granted Patent US 9,600,550
Granted Patent B2
US 9,600,550 · App. 14/214,490 · Granted Mar 21, 2017

Optimization for real-time, parallel execution of models for extracting high-value information from data streams

Inventors: Luis Stevens (San Jose, CA); Curtis Andrus (San Jose, CA); Vince Schiavone (San Jose, CA)
Assignee: UDA, LLC
G06F17/30572G06F17/30486G06F17/30516G06Q50/01
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,600,550
App. No.
14/214,490
Granted
Mar 21, 2017
Kind
B2
Abstract

A computer system identifies high-value information in data streams. The computer system receives a filter graph definition. The filter graph definition includes a plurality of filter nodes, each filter node including one or more filters that accept or reject packets. Each respective filter is categorized by a number of operations, and the one or more filters are arranged in a general graph. The computer system performs one or more optimization operations, including: determining if a closed circuit exists within the graph, and when the closed circuit exists within the graph, removing the closed circuit; reordering the filters based at least in part on the number of operations; and parallelizing the general graph such that the one or more filters are configured to be executed on one or more processors.

Claims (50)

1. A method of optimizing a network of filters for extracting real-time, high-value information from a stream of packets, comprising:

at a computer system including a plurality of processors and memory storing programs for execution by the processors:

receiving a filter graph definition, wherein the filter graph definition includes a plurality of filter nodes, each filter node including one or more filters that accept or reject packets, wherein each respective filter is categorized by a count of operations needed to execute the respective filter, and wherein the one or more filters are arranged in a general graph;

optimizing the filter graph definition, the optimizing including:

determining if a closed circuit exists within the graph, and when the closed circuit exists within the graph, removing the closed circuit;

reordering a first filter and a second filter of the filter graph definition based at least in part on respective counts of operations needed to execute the first filter and the second filter; and

parallelizing the one or more filters to be executed on the plurality of processors.

2. The method of claim 1 , wherein the general graph is a non-optimized general graph.

3. The method of claim 1 , wherein removing the closed circuit produces a higher degree of acyclicity within the graph.

4. The method of claim 3 , wherein removing the closed circuit includes reordering/rearranging the graph.

5. The method of claim 1 , wherein reordering the first filter and the second filter of the filter graph definition based at least in part on the respective counts of operations needed to execute the first filter and the second filter includes, when the respective count of operations needed to execute the first filter is smaller than the respective count of operations needed to execute the second filter, configuring the first filter to be executed before the second filter.

6. The method of claim 1 , further comprising translating the filters into a plurality of deterministic finite automaton (DFA), and merging one or more DFAs based on predefined criteria.

7. The method of claim 6 , wherein:

accept DFA in series are merged; and

reject DFAs in parallel are merged.

8. A computer system for identifying high-value information in data streams, comprising:

one or more processors;

memory storing one or more programs to be executed by the one or more processors;

the one or more programs comprising instructions for:

receiving a filter graph definition, wherein the filter graph definition includes a plurality of filter nodes, each filter node including one or more filters that accept or reject packets, wherein each respective filter is categorized by a count of operations needed to execute the respective filter, and wherein the one or more filters are arranged in a general graph;

optimizing the filter graph definition, the optimizing including:

determining if a closed circuit exists within the graph, and when the closed circuit exists within the graph, removing the closed circuit;

reordering a first filter and a second filter of the filter graph definition based at least in part on respective counts of operations needed to execute the first filter and the second filter; and

parallelizing the one or more filters to be executed on the plurality of processors.

9. The computer system of claim 8 , wherein the general graph is a non-optimized general graph.

10. The computer system of claim 8 , wherein removing the closed circuit produces a higher degree of acyclicity within the graph.

11. The computer system of claim 10 , wherein removing the closed circuit includes reordering/rearranging the graph.

12. The computer system of claim 8 , wherein reordering the first filter and the second filter of the filter graph definition based at least in part on the respective counts of operations needed to execute the first filter and the second filter includes, when the respective count of operations needed to execute the first filter is smaller than the respective count of operations needed to execute the second filter, configuring the first filter to be executed before the second filter.

13. The computer system of claim 8 , the one or more programs further comprising instructions for:

translating the filters into a plurality of deterministic finite automaton (DFA);

and merging one or more DFAs based on predefined criteria.

14. The computer system of claim 13 , wherein:

accept DFA in series are merged; and

reject DFAs in parallel are merged.

15. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer system, the one or more programs comprising instructions for:

receiving a filter graph definition, wherein the filter graph definition includes a plurality of filter nodes, each filter node including one or more filters that accept or reject packets, wherein each respective filter is categorized by a count of operations needed to execute the respective filter, and wherein the one or more filters are arranged in a general graph;

optimizing the filter graph definition, the optimizing including:

determining if a closed circuit exists within the graph, and when the closed circuit exists within the graph, removing the closed circuit;

reordering a first filter and a second filter of the filter graph definition based at least in part on respective counts of operations needed to execute the first filter and the second filter; and

parallelizing the one or more filters to be executed on the plurality of processors.

16. The non-transitory computer readable storage medium of claim 15 , wherein the general graph is a non-optimized general graph.

17. The non-transitory computer readable storage medium of claim 15 , wherein removing the closed circuit produces a higher degree of acyclicity within the graph.

18. The non-transitory computer readable storage medium of claim 17 , wherein removing the closed circuit includes reordering/rearranging the graph.

19. The non-transitory computer readable storage medium of claim 15 , wherein reordering the first filter and the second filter of the filter graph definition based at least in part on the respective counts of operations needed to execute the first filter and the second filter includes, when the respective count of operations needed to execute the first filter is smaller than the respective count of operations needed to execute the second filter, configuring the first filter to be executed before the second filter.

20. The non-transitory computer readable storage medium of claim 15 , the one or more programs further comprising instructions for:

translating the filters into a plurality of deterministic finite automaton (DFA);

and merging one or more DFAs based on predefined criteria.

21. The non-transitory computer readable storage medium of claim 20 , wherein:

accept DFA in series are merged; and

reject DFAs in parallel are merged.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: UDA, LLC; AKUDA LABS, LLC
To: TARGET BRANDS, INC.
Reel/Frame 055166/0843 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 034241 FRAME: 0825. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 25, 2016
From: STEVENS, LUIS; ANDRUS, CURTIS; SCHIAVONE, VINCE
To: UDA, LLC
Reel/Frame 038538/0124 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2014
From: STEVENS, LUIS; ANDRUS, CURTIS; SCHIAVONE, VINCE
To: AKUDA LABS LLC
Reel/Frame 034241/0825 →
Continuity (2)
Provisional Application 61802353 · Mar 15, 2013
Related Publication 20140297665A1 · Oct 2, 2014