> On May 12, 2015, 6:26 a.m., Alexander Pivovarov wrote: > > ql/src/java/org/apache/hadoop/hive/ql/optimizer/ReduceSinkMapJoinProc.java, > > line 107 > > <https://reviews.apache.org/r/34059/diff/1/?file=955672#file955672line107> > > > > ReduceSinkOperator uses Object.hashCode() and equals() methods. > > HashSet algo relies on hashCode/equals methods > > Jason Dere wrote: > So that means equals() only works if it is the exact same > ReduceSinkOperator object. This should be ok for our usage, if we are > referring to the same ReduceSinkOperator, we should be using that exact same > object. > > Alexander Pivovarov wrote: > Do you want to use IdentityHashMap then? > This class implements the Map interface with a hash table, using > reference-equality in place of object-equality when comparing keys (and > values). In other words, in an IdentityHashMap, two keys k1 and k2 are > considered equal if and only if (k1==k2) > > Jason Dere wrote: > We're using a Set here as opposed to a Map. I'll change to use > Sets.newIdentityHashSet() from Guava. > > Alexander Pivovarov wrote: > IdentityHashMap contains private KeySet class already > to get its instance you can call keySet() method > e.g. > IdentityHashMap<Integer, Object> rsMap = new IdentityHashMap<Integer, > Object>(); > rsMap.put(1, null); > rsMap.put(2, null); > rsMap.put(3, null); > Set<Integer> rsSet = rsMap.keySet(); > System.out.println(rsSet); > [3, 1, 2]
I do not see a need to change this further - it has already been changed to use an Identity-based set - Jason ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/34059/#review83362 ----------------------------------------------------------- On May 15, 2015, 10:02 p.m., Jason Dere wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/34059/ > ----------------------------------------------------------- > > (Updated May 15, 2015, 10:02 p.m.) > > > Review request for hive, Matt McCline and Vikram Dixit Kumaraswamy. > > > Bugs: HIVE-10673 > https://issues.apache.org/jira/browse/HIVE-10673 > > > Repository: hive-git > > > Description > ------- > > Reduce-side hash join (using MapJoinOperator), where the Tez inputs to the > reducer are unsorted. > > > Diffs > ----- > > common/src/java/org/apache/hadoop/hive/conf/HiveConf.java eff4d30 > itests/src/test/resources/testconfiguration.properties c79c36c > ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java b1352f3 > ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java d7f1b42 > ql/src/java/org/apache/hadoop/hive/ql/exec/tez/KeyValuesAdapter.java > PRE-CREATION > ql/src/java/org/apache/hadoop/hive/ql/exec/tez/KeyValuesFromKeyValue.java > PRE-CREATION > ql/src/java/org/apache/hadoop/hive/ql/exec/tez/KeyValuesFromKeyValues.java > PRE-CREATION > ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordProcessor.java > 545d7c6 > ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java > cdabe3a > > ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java > e9bd44a > > ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinCommonOperator.java > af78776 > ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java > bcffdbc > ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java > 4d84f0f > ql/src/java/org/apache/hadoop/hive/ql/optimizer/ReduceSinkMapJoinProc.java > f7e1dbc > ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezProcContext.java adc31ae > ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezUtils.java 0edfc5d > ql/src/java/org/apache/hadoop/hive/ql/parse/GenTezWork.java 6db8220 > ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java a342738 > ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java fb3c4a3 > ql/src/java/org/apache/hadoop/hive/ql/plan/MapJoinDesc.java cee9100 > ql/src/test/queries/clientpositive/tez_dynpart_hashjoin_1.q PRE-CREATION > ql/src/test/queries/clientpositive/tez_dynpart_hashjoin_2.q PRE-CREATION > ql/src/test/queries/clientpositive/tez_vector_dynpart_hashjoin_1.q > PRE-CREATION > ql/src/test/results/clientpositive/tez/tez_dynpart_hashjoin_1.q.out > PRE-CREATION > ql/src/test/results/clientpositive/tez/tez_dynpart_hashjoin_2.q.out > PRE-CREATION > ql/src/test/results/clientpositive/tez/tez_vector_dynpart_hashjoin_1.q.out > PRE-CREATION > > Diff: https://reviews.apache.org/r/34059/diff/ > > > Testing > ------- > > q-file tests added > > > Thanks, > > Jason Dere > >