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 split a continuous event processing (CEP) query into a plurality of separate operators;
instructions that cause the processor to determine a separate constraint for each particular operator within the plurality of separate operators;
instructions that cause the processor to determine a constraint for the CEP query based at least in part on the constraints that the processor determined for the plurality of separate operators; and
instructions that cause the processor to determine, based on the constraint for the CEP query, whether at least a part of the CEP query can be executed in a concurrent manner; and
instructions that cause the processor to spawn multiple threads of execution that concurrently process events from an event stream in response to determining that at least part 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.
57 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 split a continuous event processing (CEP) query into a plurality of separate operators; instructions that cause the processor to determine a separate constraint for each particular operator within the plurality of separate operators; instructions that cause the processor to determine a constraint for the CEP query based at least in part on the constraints that the processor determined for the plurality of separate operators; and instructions that cause the processor to determine, based on the constraint for the CEP query, whether at least a part of the CEP query can be executed in a concurrent manner; and instructions that cause the processor to spawn multiple threads of execution that concurrently process events from an event stream in response to determining that at least part 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; split a continuous event processing (CEP) query into a plurality of separate operators; determine a separate constraint for each particular operator within the plurality of separate operators; determine a constraint for the CEP query based at least in part on the constraints that the processor determined for the plurality of separate operators; and determine, based on the constraint for the CEP query, whether at least a part of the CEP query can be executed in a concurrent manner; and spawn multiple threads of execution that concurrently process events from an event stream in response to determining that at least part 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:
-
splitting a continuous event processing (CEP) query into a plurality of separate operators; determining a separate constraint for each particular operator within the plurality of separate operators; determining a constraint for the CEP query based at least in part on the constraints that the processor determined for the plurality of separate operators; and determining, based on the constraint for the CEP query, whether at least a part of the CEP query can be executed in a concurrent manner; and spawning multiple threads of execution that concurrently process events from an event stream in response to determining that at least part of the CEP query can be executed in a concurrent manner. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification