×

Variable duration windows on continuous data streams

  • US 10,298,444 B2
  • Filed: 03/15/2013
  • Issued: 05/21/2019
  • Est. Priority Date: 01/15/2013
  • Status: Active Grant
First Claim
Patent Images

1. A method comprising:

  • receiving, by a computing device, a query for an event stream, the event stream having an associated schema that each event received via the event stream conforms to, each event received via the event stream having one or more attributes associated with that event, the schema identifying how the one or more attributes for each event received via the event stream are organized, and the query specifying an expression indicating how an expiration duration is to be calculated for each event received via the event stream based on a first attribute of the one or more attributes associated with that event, the first attribute associated with each event identifiable based on the schema, the event stream generated by one or more event sources;

    determining, by the computing device, a first expiration duration for a first event received via the event stream, the first expiration duration indicating a first amount of time that the first event is eligible to remain in a time-based window specified for the event stream, the first expiration duration determined based at least in part on the first attribute of the first event and the expression, the expression indicating how the first duration is to be calculated for the first event as specified in the query, the time-based window identifying a set of events of the event stream that are eligible to be queried by the query specified for the event stream;

    determining, by the computing device, a second expiration duration for a second event received via the event stream, the second expiration duration indicating a second amount of time that the second event is eligible to remain in the time-based window, the second expiration duration determined based at least in part on the first attribute of the second event and the expression, the expression indicating how the second duration is to be calculated for the second event as specified in the query, wherein the second amount of time is different from the first amount 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 amount 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 amount of time;

    repeatedly 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 a set of one or more output events based on executing the query against the set of events.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×