Patent ID: 7779008

Claim:
A method of performing, in parallel, an aggregation operation on data items that reside in one or more containers stored on non-volatile storage, wherein the aggregation operation aggregates the data items based on groups established by one or more grouping keys, the method comprising: determining that at least one of the one or more grouping keys is related to at least one partition key used to establish partitions of the one or more containers; in response to determining that at least one of the one or more grouping keys is related to at least one partition key, based on the partitions, establishing scan assignments that dictate which portions of the one or more containers are to be scanned by each slave cluster of a plurality of slave clusters, wherein each slave cluster includes one or more slaves; establishing said scan assignments for the slave clusters on a partition-by-partition basis, such that no two slave clusters are assigned to scan the same partition; each slave cluster of the plurality of slave clusters scanning one or more portions of the one or more containers based on the scan assignments; and based on the one or more grouping keys, aggregating the data items scanned by the plurality of slave clusters; wherein said scan assignments guaranty that when a particular slave cluster of the plurality of slave clusters scans any data item for a particular group established by the one or more grouping keys, then the particular slave cluster will scan all data items for the particular group; wherein the method is performed by one or more computing devices programmed to be special purpose machines pursuant to program instructions.