Method and system for accelerated stream processing
First Claim
1. A method for operating a rule-based system, the method comprising:
- receiving a data stream within the rule-based system, the data stream comprising data representative of a plurality of events, the rule-based system being configured with a plurality of rules, each rule having at least one pre-defined rule condition, the rule-based system comprising a coprocessor, the coprocessor comprising a plurality of parallel processing paths, at least one of the parallel processing paths comprising a plurality of pipelined processing modules, the pipelined processing modules comprising a filtering module, a windowing module downstream from the filtering module, and a rule condition checking module downstream from the filtering module, and wherein at least another of the parallel processing paths comprises a rule condition checking module;
within the at least one parallel processing path;
the filtering module of the at least one parallel processing path filtering at least a portion of the data stream to pass a subset of the data stream;
the rule condition checking module of the at least one parallel processing path processing the filtered data stream to perform a rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the rule conditions;
the windowing module of the at least one parallel processing path caching event data corresponding to the filtered data stream, the cached event data comprising event data for a plurality of the events, the cached event data for use with a rule condition check operation that requires consideration of a plurality of events to determine whether a rule condition is satisfied;
within the at least another parallel processing path;
the rule condition checking module of the at least another parallel processing path processing at least a portion of the data stream to perform a different rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the other rule conditions;
the plurality of parallel processing paths thereby simultaneously performing a plurality of different rule condition check operations on the data stream to thereby generate a plurality of rule condition check results corresponding to the rules for the data stream in parallel.
4 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein is a method and system for hardware-accelerating various data processing operations in a rule-based decision-making system such as a business rules engine, an event stream processor, and a complex event stream processor. Preferably, incoming data streams are checked against a plurality of rule conditions. Among the data processing operations that are hardware-accelerated include rule condition check operations, filtering operations, and path merging operations. The rule condition check operations generate rule condition check results for the processed data streams, wherein the rule condition check results are indicative of any rule conditions which have been satisfied by the data streams. The generation of such results with a low degree of latency provides enterprises with the ability to perform timely decision-making based on the data present in received data streams.
-
Citations
97 Claims
-
1. A method for operating a rule-based system, the method comprising:
-
receiving a data stream within the rule-based system, the data stream comprising data representative of a plurality of events, the rule-based system being configured with a plurality of rules, each rule having at least one pre-defined rule condition, the rule-based system comprising a coprocessor, the coprocessor comprising a plurality of parallel processing paths, at least one of the parallel processing paths comprising a plurality of pipelined processing modules, the pipelined processing modules comprising a filtering module, a windowing module downstream from the filtering module, and a rule condition checking module downstream from the filtering module, and wherein at least another of the parallel processing paths comprises a rule condition checking module; within the at least one parallel processing path; the filtering module of the at least one parallel processing path filtering at least a portion of the data stream to pass a subset of the data stream; the rule condition checking module of the at least one parallel processing path processing the filtered data stream to perform a rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the rule conditions; the windowing module of the at least one parallel processing path caching event data corresponding to the filtered data stream, the cached event data comprising event data for a plurality of the events, the cached event data for use with a rule condition check operation that requires consideration of a plurality of events to determine whether a rule condition is satisfied; within the at least another parallel processing path; the rule condition checking module of the at least another parallel processing path processing at least a portion of the data stream to perform a different rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the other rule conditions; the plurality of parallel processing paths thereby simultaneously performing a plurality of different rule condition check operations on the data stream to thereby generate a plurality of rule condition check results corresponding to the rules for the data stream in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A system comprising:
-
a rule-based processing system, the rule-based processing system being configured to accept an incoming data stream, the data stream comprising data representative of a plurality of events, the rule-based processing system also being configured with a plurality of rules, each rule having at least one pre-defined rule condition based processing system comprising a coprocessor, the coprocessor comprising a plurality of parallel processing paths, at least one of the parallel processing paths comprising a plurality of pipelined processing modules, the pipelined processing modules comprising a filtering module, a windowing module downstream from the filtering module, and a rule condition checking module downstream from the filtering module, and wherein at least another of the parallel processing paths comprises a rule condition checking module; wherein the filtering module of the at least one parallel processing path is configured to filter at least a portion of the data stream to pass a subset of the data stream; wherein the rule condition checking module of the at least one parallel processing path is configured to process the filtered data stream to perform a rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the rule conditions; wherein the windowing module of the at least one parallel processing path is configured to cache event data corresponding to the filtered data stream, the cached event data comprising event data for a plurality of the events, the cached event data for use with a rule condition check operation that requires consideration of a plurality of events to determine whether a rule condition is satisfied; wherein the rule condition checking module of the at least another parallel processing path is configured to process at least a portion of the data stream to perform a different rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the other rule conditions; the plurality of parallel processing paths thereby being configured to simultaneously perform a plurality of different rule condition check operations on the data stream to thereby generate a plurality of rule condition check results corresponding to the rules for the data stream in parallel. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96)
-
-
71. A system for processing a bit stream against a plurality of rule conditions, the method comprising:
-
a field programmable gate array (FPGA) for processing configured to (1) accept a bit stream with respect to a plurality of rules, each rule comprising at least one rule condition, the bit stream comprising data representative of a plurality of events, the reconfigurable logic device comprising a plurality of parallel processing paths, at least one of the parallel processing paths comprising a plurality of pipelined processing modules, the pipelined processing modules comprising a filtering module, a windowing module downstream from the filtering module, and a rule condition checking module downstream from the filtering module, and wherein at least another of the parallel processing paths comprises a rule condition checking module; wherein the filtering module of the at least one parallel processing path is configured to filter at least a portion of the bit stream to pass a subset of the bit stream;
wherein the rule condition checking module of the at least one parallel processing path is configured to process the filtered bit stream to perform a rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the rule conditions;wherein the windowing module of the at least one parallel processing path is configured to cache event data corresponding to the filtered bit stream, the cached event data comprising event data for a plurality of the events, the cached event data for use with a rule condition check operation that requires consideration of a plurality of events to determine whether a rule condition is satisfied; wherein the rule condition checking module of the at least another parallel processing path is configured to process at least a portion of the bit stream to perform a different rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the other rule conditions; the plurality of parallel processing paths thereby being configured to simultaneously perform a plurality of different rule condition check operations on the bit stream to thereby generate a plurality of rule condition check results corresponding to the rules for the bit stream in parallel. - View Dependent Claims (72)
-
-
97. A method for operating a rule-based system, the method comprising:
-
receiving a data stream within the rule-based system, the data stream comprising data representative of a plurality of events, the rule-based system being configured with a plurality of rules, each rule having at least one pre-defined rule condition, the rule-based system comprising a reconfigurable logic device, the reconfigurable logic device comprising a plurality of parallel processing paths, at least one of the parallel processing paths comprising a plurality of pipelined processing modules, the pipelined processing modules comprising a filtering module, a windowing module downstream from the filtering module, and a rule condition checking module downstream from the filtering module, and wherein at least another of the parallel processing paths comprises a rule condition checking module; within the at least one parallel processing path; the filtering module of the at least one parallel processing path filtering at least a portion of the data stream to pass a subset of the data stream; the rule condition checking module of the at least one parallel processing path processing the filtered data stream to perform a rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the rule conditions; the windowing module of the at least one parallel processing path caching event data corresponding to the filtered data stream, the cached event data comprising event data for a plurality of the events, the cached event data for use with a rule condition check operation that requires consideration of a plurality of events to determine whether a rule condition is satisfied; within the at least another parallel processing path; the rule condition checking module of the at least another parallel processing path processing at least a portion of the data stream to perform a different rule condition check operation thereon to generate a rule condition check result corresponding to at least one of the other rule conditions; the plurality of parallel processing paths thereby simultaneously performing a plurality of different rule condition check operations on the data stream to thereby generate a plurality of rule condition check results corresponding to the rules for the data stream in parallel.
-
Specification