Variable duration windows on continuous data streams
AssigneeOracle International Corporation
InventorsSandeep Bishnoi, Anand Srinivasan
Life of this patent
Estimating the term…
Abstract
Improved techniques are provided for processing streams of data. The duration of the time that an event is eligible for remaining in a time-based window can be variable for different events received via the same event stream. In certain embodiments, the duration of time that an input event spends in a time-based window is a function of one or more values of one or more attributes of the event. Since different events can have different one or more attribute values, the different events can spend different amounts of time in the time-based window for that event stream. The amount of time that an event spends in a time-based window can be controlled via the one or more attributes of the event.
Claims20
A method, comprising:
- receiving, by a computing device, a query for an event stream with a specified time-based window, the specified time-based window identifying a set of events of the event stream that are eligible to be queried by the query;
- determining, by the computing device, a first duration of time for a first event received via the event stream, the first duration of time indicating a time duration that the first event is eligible to remain in the time-based window specified for the event stream;
- determining, by the computing device, a second duration of time for a second event received via the event stream, the second duration of time indicating a time duration that the second event is eligible to remain in the time-based window, wherein the second duration of time is different from the first duration of time;
- removing, by the computing device, the first event from the time-based window after the first event has been in the time-based window for the first duration of time;
- removing, by the computing device, the second event from the time-based window after the second event has been in the time-based window for the second duration of time;
- executing, by the computing device, the query against the set of events received via the event stream that are present within the time-based window when the query is executed;
- and
- generating, by the computing device, a set of one or more output events based at least in part on executing the query against the set of events.
A computing device, comprising:
- a memory;
- and
- one or more processing units, the one or more processing units configured to:
- receive a query for an event stream with a specified time-based window, the time-based window identifying a set of events of the event stream that are eligible to be queried by the query;
- determine a first duration of time for a first event received via the event stream, the first duration of time indicating a time duration that the first event is eligible to remain in the time-based window specified for the event stream;
- determine a second duration of time for a second event received via the event stream, the second duration of time indicating a time duration that the second event is eligible to remain in the time-based window, wherein the second time duration is different from the first time duration;
- remove the first event from the time-based window after the first event has been in the time-based window for the first duration of time;
- remove the second event from the time-based window after the second event has been in the time-based window for the second duration of time;
- execute the query against the set of events received via the event stream that are present within the time-based window when the query is executed;
- and
- generate a set of one or more output events based at least in part on executing the query against the set of events.
A computer-readable memory storing a plurality of instructions executable by one or more processing units, the plurality of instructions comprising instructions for:
- receiving a query for an event stream with a specified time-based window, the time-based window identifying a set of events of the event stream that are eligible to be queried by the query;
- determining a first duration of time for a first event received via the event stream, the first duration of time indicating a time duration that the first event is eligible to remain in the time-based window specified for the event stream;
- determining a second duration of time for a second event received via the event stream, the second duration of time indicating a time duration that the second event is eligible to remain in the time-based window, wherein the second time duration is different from the first time duration;
- removing the first event from the time-based window after the first event has been in the time-based window for the first duration of time;
- removing the second event from the time-based window after the second event has been in the time-based window for the second duration of time;
- executing the query against the set of events received via the event stream that are present within the time-based window when the query is executed;
- and
- generating a set of one or more output events based at least in part on executing the query against the set of events.
Dependencies are inferred from the claim text.