Support for user defined aggregations in a data stream management system
First Claim
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 said processing, receiving a command to create an aggregation and identification of a set of instructions to be executed to perform said aggregation;
during said processing, creating in a memory of said computer, a first structure comprising said identification;
during said processing, receiving a new continuous query to be executed using said aggregation;
during said processing, based on said first structure, creating in said memory an operator comprising at least one second structure, the second structure comprising a first field to hold a reference to an instance of said set of instructions, and at least one additional field to hold information on at least one argument of said aggregation;
during said processing, modifying the global plan by adding thereto said operator, thereby to obtain a modified plan;
altering said processing, to cause execution of the new continuous query in addition to said plurality of continuous queries, based on the modified plan;
during said execution of the new continuous query, creating said instance of said set of instructions;
during said execution of the new continuous query, using said instance to perform said aggregation on at least a portion of said data; and
outputting from said computer, a stream generated based at least partially on processing of said data by executing the new continuous query.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer is programmed to accept a command to create a new aggregation defined by a user during execution of continuous queries on streams of data. The computer is further programmed to thereafter accept and process new continuous queries using the new aggregation, in a manner similar to built-in aggregations. The user typically writes a set of instructions to perform the new aggregation, and identifies in the command, a location of the set of instructions. In response to such a command, the computer creates metadata identifying the new aggregation. The metadata is used to instantiate one aggregation for each group of data in a current window, grouped by an attribute identified in a new query.
-
Citations
9 Claims
-
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 said processing, receiving a command to create an aggregation and identification of a set of instructions to be executed to perform said aggregation; during said processing, creating in a memory of said computer, a first structure comprising said identification; during said processing, receiving a new continuous query to be executed using said aggregation; during said processing, based on said first structure, creating in said memory an operator comprising at least one second structure, the second structure comprising a first field to hold a reference to an instance of said set of instructions, and at least one additional field to hold information on at least one argument of said aggregation; during said processing, modifying the global plan by adding thereto said operator, thereby to obtain a modified plan; altering said processing, to cause execution of the new continuous query in addition to said plurality of continuous queries, based on the modified plan; during said execution of the new continuous query, creating said instance of said set of instructions; during said execution of the new continuous query, using said instance to perform said aggregation on at least a portion of said data; and outputting from said computer, a stream generated based at least partially on processing of said data by executing the new continuous query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data stream management system that processes streams of data using a plurality of continuous queries, the data stream management system comprising:
-
a store encoded with a plurality of tuples representing a relation, each tuple being time stamped; a memory encoded with a query plan currently being used in execution of the continuous queries; means, coupled to said store, for modifying the global plan in said memory in response receipt of a new continuous query that uses a new aggregation defined by a user, by using an operator to invoke one of a plurality of instances of the new aggregation based on a value of an attribute; wherein said new aggregation groups data in said plurality of streams by said attribute; and means, coupled to said means for modifying and to said store, for executing an instruction in the operator, to perform the new aggregation.
-
Specification