Patent ID: 8543538
Filing Date: 2013-09-24
Classification: G06F

Abstract:
1. A method of redistributing data in a distributed database comprising a plurality of rows of data distributed across a plurality of slices of a table in the database, the method comprising: hashing one or more column values in a row into a column value hash; determining one hash range, out of a plurality of hash ranges, into which the column value hash falls; assigning the row to one of the slices based on the determined hash range; distributing the rows of data across the slices according to a first function based on one or more columns of the database, the first function comprising a hash function; monitoring at least one database statistic indicative of variation in a distribution of the rows of data across the slices, the at least one database statistic comprising a plurality of occupancy ratios, one for each hash range of the plurality of hash ranges, each occupancy ratio comprising a ratio of a total number of rows falling into a hash range to a size of the hash range; detecting a redistribution condition based on the at least one monitored database statistic; and responding to the detected redistribution condition by redistributing the rows of data across the slices according to a second function based on a different number of columns than the first function, wherein the method is performed by one or more computing devices.