public boolean isParallelEdgeSupported(Pair<Operator<?>, Operator<?>> pair) {

    Operator<?> rs = pair.left;
    if (rs instanceof ReduceSinkOperator && !colMappingInverseKeys((ReduceSinkOperator) rs).isPresent()) {
      return false;
    }

    Operator<?> child = pair.right;
    if (child instanceof MapJoinOperator) {
      return true;
    }
    if (child instanceof TableScanOperator) {
      return true;
    }
    return false;
  }
To achieve reproducible plans - the operators must be placed in some stable order.
ql/src/java/org/apache/hadoop/hive/ql/optimizer/ParallelEdgeFixer.java