[ 
https://issues.apache.org/jira/browse/TAJO-976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14077379#comment-14077379
 ] 

Hudson commented on TAJO-976:
-----------------------------

FAILURE: Integrated in Tajo-master-build #319 (See 
[https://builds.apache.org/job/Tajo-master-build/319/])
TAJO-976: HashPartitioner doesn't make desired number of partitions 
infrequently. (Hyoungjun Kim via hyunsik) (hyunsik: rev 
8be501f43fc1b20c2a57790259aceafb02987df5)
* 
tajo-core/src/test/resources/results/TestJoinBroadcast/testBroadcastMultiColumnPartitionTable.result
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs1.sql
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashPartitioner.java
* tajo-common/src/main/java/org/apache/tajo/datum/Float8Datum.java
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testHavingWithNamedTarget.sql
* tajo-common/src/main/java/org/apache/tajo/util/MurmurHash.java
* tajo-common/src/main/java/org/apache/tajo/datum/Int4Datum.java
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameExprs2.sql
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestGroupByQuery.java
* 
tajo-core/src/test/resources/queries/TestGroupByQuery/testGroupByWithSameConstantKeys1.sql
* tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinBroadcast.java
* 
tajo-core/src/test/resources/results/TestGroupByQuery/testHavingWithNamedTarget.result
* tajo-core/src/test/resources/results/TestGroupByQuery/testGroupBy2.result
* 
tajo-core/src/test/resources/results/TestGroupByQuery/testGroupByWithSameConstantKeys1.result
* tajo-common/src/main/java/org/apache/tajo/datum/TextDatum.java
* 
tajo-core/src/test/resources/results/TestGroupByQuery/testGroupbyWithJson.result
* 
tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashPartitioner.java
* tajo-common/src/main/java/org/apache/tajo/datum/Int2Datum.java
* tajo-common/src/main/java/org/apache/tajo/datum/Float4Datum.java
* tajo-common/src/main/java/org/apache/tajo/datum/Int8Datum.java


> HashPartitioner doesn't make desired number of partitions infrequently.
> -----------------------------------------------------------------------
>
>                 Key: TAJO-976
>                 URL: https://issues.apache.org/jira/browse/TAJO-976
>             Project: Tajo
>          Issue Type: Improvement
>            Reporter: Hyoungjun Kim
>            Assignee: Hyoungjun Kim
>            Priority: Minor
>
> If the number desired partition is a multiples of 31, HashPartitioner doesn't 
> make desired number of partitions. I tested with the following code.
> {code}
> Random rand = new Random();
> String[][] data = new String[1000][];
> for (int i = 0; i < 1000; i++) {
>   data[i] = new String[]{ String.valueOf(rand.nextInt(1000)), 
> String.valueOf(rand.nextInt(1000)), String.valueOf(rand.nextInt(1000))};
> }
> int[] testNumPartitions = new int[]{31, 62, 124, 32, 63, 125};
> for (int index = 0; index <  testNumPartitions.length; index++) {
>   Set<Integer> ids = new TreeSet<Integer>();
>   for (int i = 0; i < data.length; i++) {
>     VTuple vtuple = new VTuple(new Datum[]{new TextDatum(data[i][0]), new 
> TextDatum(data[i][1]), new TextDatum(data[i][2])});
>     int hashValue = vtuple.hashCode();
>     int partitionId = (hashValue & Integer.MAX_VALUE) % 
> testNumPartitions[index];
>     ids.add(partitionId);
>   }
>   System.out.println("Expected partition num: " + testNumPartitions[index] + 
> ", real partition num:" + ids.size());
> }
> {code}
> {noformat}
> Expected partition num: 31, real partition num:10
> Expected partition num: 62, real partition num:20
> Expected partition num: 124, real partition num:40
> Expected partition num: 32, real partition num:32
> Expected partition num: 63, real partition num:63
> Expected partition num: 125, real partition num:125
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to