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.
117 Citations
20 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. One or more non-transitory computer readable storage media comprising instructions that when executed by a computer cause the computer to:
-
process the plurality of streams, to execute thereon a plurality of continuous queries based on a global plan; during execution of instructions to process, receive a command to create an aggregation and identification of a set of instructions to be executed to perform said aggregation; during execution of instructions to process, create in a memory of said computer, a first structure comprising said identification; during execution of instructions to process, receive a new continuous query to be executed using said aggregation; during execution of instructions to process, based on said first structure, create 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 execution of instructions to process, modify the global plan by adding thereto said operator, thereby to obtain a modified plan; alter said instructions to process, 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, create said instance of said set of instructions; during said execution of the new continuous query, use said instance to perform said aggregation on at least a portion of said data; and output from said computer, a stream generated based at least partially on processing of said data by execution of the new continuous query. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for processing a plurality of streams of data, the apparatus comprising:
-
means for processing the plurality of streams, to execute thereon a plurality of continuous queries based on a global plan; means for receiving a command to create an aggregation and identification of a set of instructions to be executed to perform said aggregation; means for creating in a memory, a first structure comprising said identification; means for receiving a new continuous query to be executed using said aggregation; means, based on said first structure, for 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; means for modifying the global plan by adding thereto said operator, thereby to obtain a modified plan; means for altering said means for processing, to cause execution of the new continuous query in addition to said plurality of continuous queries, based on the modified plan; means for creating said instance of said set of instructions; means for using said instance to perform said aggregation on at least a portion of said data; and means for outputting a stream generated based at least partially on processing of said data by executing the new continuous query. - View Dependent Claims (18, 19, 20)
-
Specification