×

Support for incrementally processing user defined aggregations in a data stream management system

  • US 20090106440A1
  • Filed: 10/20/2007
  • Published: 04/23/2009
  • Est. Priority Date: 10/20/2007
  • Status: Active Grant
First Claim
Patent Images

1. A method implemented in a computer of processing a plurality of streams of data, the method comprising:

  • processing the plurality of streams, to execute thereon a plurality of continuous queries based on a global plan;

    during the processing, receiving a command to create an aggregation and identification of a set of instructions comprising a function to be executed to perform the aggregation;

    during the processing, creating in a memory of the computer, a first structure comprising the identification;

    during the processing, receiving a new continuous query to be executed using the aggregation;

    during the processing, based on the first structure, creating in the memory an operator comprising at least one count and at least one second structure, the count being initialized to an initial value, the second structure comprising a first field to hold a reference to the instance, and at least one additional field corresponding to at least one argument of the aggregation;

    during the processing, modifying the global plan by adding thereto the operator, thereby to obtain a modified plan; and

    altering the processing, to cause execution of the new continuous query in addition to the plurality of continuous queries, based on the modified plan;

    during execution of the new continuous query;

    if the count is at the initial value on receipt of a message, creating an instance of the set of instructions;

    changing the count to a new value;

    invoking the function in the instance to process a tuple of the data in the message, wherein the function is identified based at least on a first type of the message;

    repeatedly performing the changing and the invoking, for each receipt of an additional message;

    wherein if the additional message is of the first type, the invoking is performed only once; and

    if the count is at the new value on receipt of yet another message of a second type, releasing memory occupied by the instance and changing the count to the initial value;

    wherein the first type indicates addition of the message into a window and the second type indicates removal of the message from the window; and

    outputting from said computer, a stream generated based at least partially on processing of said data by executing the new continuous query.

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