private void submitQueueDrainThreads(VectorMapJoinFastTableContainer vectorMapJoinFastTableContainer)
      throws InterruptedException, IOException, SerDeException {
    for (int partitionId = 0; partitionId < numLoadThreads; partitionId++) {
      int finalPartitionId = partitionId;
      this.loadExecService.submit(() -> {
        try {
          LOG.info("Partition id {} with Queue size {}", finalPartitionId, loadBatchQueues[finalPartitionId].size());
          drainAndLoadForPartition(finalPartitionId, vectorMapJoinFastTableContainer);
        } catch (IOException | InterruptedException | SerDeException | HiveException e) {
          throw new RuntimeException("Failed to start HT Load threads", e);
        }
      });
    }
  }
HashTableLoader for Tez constructs the hashtable from records read from
a broadcast edge.
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastHashTableLoader.java