Patent ID: 8996464
Filing Date: 2015-03-31
Classification: G06F,Y10S

Abstract:
1. A method for repartitioning a data set among multiple computing devices, the method comprising the steps of: receiving, at a computing device, a query directed to the data set, which is currently partitioned into a first quantity of partitions distributed among a first set of computing devices; selecting, if the current partitioning was based upon hash values of individual data entries of the data set, a repartitioning strategy at the computing device to repartition the data set among a second set of computing devices, the selected repartitioning strategy comprising: hashing values of individual data entries of the data set with a same hash function as was utilized to effectuate the current partitioning; and selecting a second quantity of partitions into which the data set is to be repartitioned to have a common positive factor greater than one with the first quantity of partitions, thereby expressly providing that at least some computing devices of the first set of computing devices do not provide data to at least some computing devices of the second set of computing devices; selecting, if the current partitioning was based upon ranges of values of a first collection of one or more data elements of the data entries of the data set, the repartitioning strategy at the computing device to repartition the data set among the second set of computing devices, the selected repartitioning strategy comprising: selecting a second collection of one or more data elements of the data entries of the data set to include at least one data element from the first collection; and selecting ranges of values of the second collection of one or more data elements of the data entries of the data set such that repartitioning the data set in accordance with the selected ranges of values results in at least some computing devices of the first set of computing devices not providing data to at least some computing devices of the second set of computing devices; and instructing, by the computing device, the computing devices of the first set of computing devices to repartition the data set in accordance with the selected repartitioning strategy.