public long computeOnlineDataSizeFast(Statistics statistics) {
    switch (hashMapDataStructure) {
    case LONG_KEYED:
      return computeOnlineDataSizeFastLongKeyed(statistics);
    case COMPOSITE_KEYED:
      return computeOnlineDataSizeFastCompositeKeyed(statistics);
    default:
      throw new RuntimeException("invalid mode");
    }
  }
ConvertJoinMapJoin is an optimization that replaces a common join
(aka shuffle join) with a map join (aka broadcast or fragment replicate
join when possible. Map joins have restrictions on which joins can be
converted (e.g.: full outer joins cannot be handled as map joins) as well
as memory restrictions (one side of the join has to fit into memory).
ql/src/java/org/apache/hadoop/hive/ql/optimizer/ConvertJoinMapJoin.java