Patent ID: 8566341

Claim:
A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor, cause the processor to perform aggregation, the aggregation comprising: calculating an initial aggregation of one or more values for each data partition of a system that comprises a plurality of data partitions, wherein each data partition comprises a distinct portion of a data set, wherein each data partition is processed by a separate computer processing unit, wherein a current intermediate state is maintained for each data partition, and wherein each current intermediate state represents the initial aggregation of one or more values of the corresponding data partition; calculating an overall aggregate value for the data set by aggregating the plurality of current intermediate states for the plurality of data partitions; receiving, by a continuous aggregation event handler, an event, wherein the event represents a change to at least one value of a data partition; transforming the event into a delta value, wherein the delta value represents a difference between the current intermediate state of the data partition and an actual state of the data partition that comprises the change to the at least one value of the data partition; setting a new intermediate state of the data partition to an aggregate of the current intermediate state of the data partition and the delta value; updating the current intermediate state with the new intermediate state; storing the new intermediate state; reducing, by the continuous aggregation event hander, the new intermediate state into a form suitable for aggregation; updating at least one other intermediate state of at least one other data partition by performing, in parallel, the receiving, transforming, setting, updating, storing, and reducing, for at least one of the other data partitions; and updating the overall aggregate value for the data set by aggregating the new intermediate state with the other intermediate states of the other data partitions.