Patent ID: 8131711
Filing Date: 2012-03-06
Classification: G06F

Abstract:
1. A method of performing a join operation in a parallel processing system that includes at least one processor, comprising: distributing a respective set of rows of a first table and a second table involved in a join operation to each of a plurality of processing modules, wherein the join operation comprises a join on a column of the first table and a column of the second table, and wherein the first table is larger than the second table; receiving, by each of the plurality of processing modules, a list of skewed values of the column of the first table, wherein the skewed values are not uniformly distributed among the plurality of processing modules by the distributing of the respective set of rows of the first table; redistributing, by each of the plurality of processing modules to at least another one of the plurality of processing modules, one or more rows of the distributed respective set of rows involved in the join operation that each has a value of the column of the first table that does not match any one of the skewed values, and one or more rows of the distributed respective set of rows involved in the join operation that each has a value of the column of the second table that does not match any one of the skewed values; locally maintaining, by a first processing module of the plurality of processing modules, one or more of the distributed respective set of rows that each has a value of the column of the first table that matches one of the skewed values; duplicating, by a second processing module of the plurality of processing modules, one or more of the distributed respective set of rows that each has a value of the column of the second table that matches one of the skewed values; and performing the join operation by the plurality of the processing modules on the column of the first table and the column of the second table.