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 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 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 ordering constraint for each particular operator within the plurality of separate operators;
instructions that cause the processor to determine an ordering constraint for the CEP query based at least in part on the ordering constraints that the processor determined for the plurality of separate operators; and
instructions that cause the processor to determine, based on the ordering constraint for the CEP query, whether the multiple portions of the CEP query can be executed in a concurrent manner; and
instructions that cause the processor to execute the multiple portions of the CEP query concurrently against a first event received via the event stream, the instructions that cause the processor to execute the multiple portions of the CEP query concurrently against a first event received via the event stream comprising;
instructions that cause the processor to spawn multiple threads of execution that concurrently process the multiple portions of the CEP query against the first event received via the event stream in response to determining that the multiple portions of the CEP query can be executed in a concurrent manner.
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.
492 Citations
20 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 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 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 ordering constraint for each particular operator within the plurality of separate operators; instructions that cause the processor to determine an ordering constraint for the CEP query based at least in part on the ordering constraints that the processor determined for the plurality of separate operators; and instructions that cause the processor to determine, based on the ordering constraint for the CEP query, whether the multiple portions of the CEP query can be executed in a concurrent manner; and instructions that cause the processor to execute the multiple portions of the CEP query concurrently against a first event received via the event stream, the instructions that cause the processor to execute the multiple portions of the CEP query concurrently against a first event received via the event stream comprising; instructions that cause the processor to spawn multiple threads of execution that concurrently process the multiple portions of the CEP query against the first event received via the event stream in response to determining that the multiple portions of the CEP query can be executed in a concurrent manner. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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 a continuous event processing (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 ordering constraint for each particular operator within the plurality of separate operators; determine an ordering constraint for the CEP query based at least in part on the ordering constraints that the processor determined for the plurality of separate operators; and determine, based on the ordering constraint for the CEP query, whether the multiple portions of the CEP query can be executed in a concurrent manner; and execute the multiple portions of the CEP query concurrently against a first event received via the event stream, the instructions to execute the multiple portions of the CEP query concurrently against a first event received via the event stream comprising instructions to; spawn multiple threads of execution that concurrently process the multiple portions of the CEP query against the first event received via the event stream in response to determining that the multiple portions of the CEP query can be executed in a concurrent manner. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. 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 ordering constraint for each particular operator within the plurality of separate operators; determining an ordering constraint for the CEP query based at least in part on the ordering constraints that the processor determined for the plurality of separate operators; and determining, based on the ordering constraint for the CEP query, whether the multiple portions of the CEP query can be executed in a concurrent manner; and executing the multiple portions of the CEP query concurrently against a first event received via the event stream, the executing comprising; spawning multiple threads of execution that concurrently process the multiple portions of the CEP query against the first event received via the event stream in response to determining that the multiple portions of the CEP query can be executed in a concurrent manner. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification