Executing continuous event processing (CEP) queries in parallel
First Claim
1. A computer-readable memory storing a plurality of instructions for causing a processor to perform operations, the plurality of instructions comprising:
- instructions that cause the processor to determine that multiple portions of a continuous event processing (CEP) query can be executed concurrently relative to an event in an event stream, the instructions comprising;
instructions that cause the processor to split the CEP query into a plurality of separate operators;
instructions that cause the processor to determine a separate constraint for each operator within the plurality of separate operators; and
instructions that cause the processor to determine, based at least in part on the separate constraint for each operator within the plurality of separate operators, whether at least a part of the CEP query can be executed in a concurrent manner;
instructions that cause the processor to execute the multiple portions of the CEP query concurrently against a first event received via the event stream in response to determining that at least part of the CEP query can be executed in a concurrent manner; and
instructions that cause the processor to merge, into a single shared operator, (a) a first operator that is used by a first CEP query that processes at least the first event in the event stream, and (b) a second operator that is used by a second CEP query that also processes at least the first event in the event stream, in response to determining that the first operator and the second operator both perform a particular type of operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A continuous event processing (CEP) query processor determines how and when a CEP query can be processed in a concurrent manner, such that multiple threads of execution can concurrently perform at least some of the CEP query'"'"'s operations concurrently with each other. According to one technique, a user can instruct a CEP query processor to attempt to execute a CEP query in a concurrent manner. The CEP query processor responsively determines whether the CEP query'"'"'s execution, or parts thereof, can be made concurrent based on certain constraints that can depend on inheritance and operation type. Based on this determination, the CEP query processor can execute at least certain parts of a CEP query in parallel relative to the same event within an event stream.
-
Citations
19 Claims
-
1. A computer-readable memory storing a plurality of instructions for causing a processor to perform operations, the plurality of instructions comprising:
-
instructions that cause the processor to determine that multiple portions of a continuous event processing (CEP) query can be executed concurrently relative to an event in an event stream, the instructions comprising; instructions that cause the processor to split the CEP query into a plurality of separate operators; instructions that cause the processor to determine a separate constraint for each operator within the plurality of separate operators; and instructions that cause the processor to determine, based at least in part on the separate constraint for each operator within the plurality of separate operators, whether at least a part of the CEP query can be executed in a concurrent manner; instructions that cause the processor to execute the multiple portions of the CEP query concurrently against a first event received via the event stream in response to determining that at least part of the CEP query can be executed in a concurrent manner; and instructions that cause the processor to merge, into a single shared operator, (a) a first operator that is used by a first CEP query that processes at least the first event in the event stream, and (b) a second operator that is used by a second CEP query that also processes at least the first event in the event stream, in response to determining that the first operator and the second operator both perform a particular type of operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for processing a data stream of events, the system comprising:
-
a memory storing a plurality of instructions; and a processor coupled to the memory, the processor configured to execute the plurality of instructions to; determine that multiple portions of a continuous event processing (CEP) query can be executed concurrently relative to an event in an event stream, the instructions to determine that multiple portions of the CEP query can be executed concurrently relative to an event in an event stream comprising instructions to; split the CEP query into a plurality of separate operators; determine a separate constraint for each operator within the plurality of separate operators; and determine, based at least in part on the separate constraint for each operator within the plurality of separate operators, whether at least a part of the CEP query can be executed in a concurrent manner; execute the multiple portions of the CEP query concurrently against a first event received via the event stream in response to determining that at least part of the CEP query can be executed in a concurrent manner; and merge, into a single shared operator, (a) a first operator that is used by a first CEP query that processes at least the first event in the event stream, and (b) a second operator that is used by a second CEP query that also processes at least the first event in the event stream, in response to determining that the first operator and the second operator both perform a particular type of operation. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A method for processing a data stream of events, the method comprising:
-
determining that multiple portions of a continuous event processing (CEP) query can be executed concurrently relative to an event in an event stream, the determining comprising; splitting the CEP query into a plurality of separate operators; determining a separate constraint for each operator within the plurality of separate operators; and determining, based on the separate constraint for each operator within the plurality of separate operators, whether at least a part of the CEP query can be executed in a concurrent manner; executing the multiple portions of the CEP query concurrently against a first event received via the event stream in response to determining that at least part of the CEP query can be executed in a concurrent manner; and merging, into a single shared operator, (a) a first operator that is used by a first CEP query that processes at least the first event in the event stream, and (b) a second operator that is used by a second CEP query that also processes at least the first event in the event stream, in response to determining that the first operator and the second operator both perform a particular type of operation. - View Dependent Claims (17, 18, 19)
-
Specification