@Override
  public long getEstimatedMemorySize() {
    JavaDataModel jdm = JavaDataModel.get();
    long size = 0;
    size += hashMap.getEstimatedMemorySize();
    size += directWriteHelper == null ? 0 : directWriteHelper.getEstimatedMemorySize();
    size += writeHelper == null ? 0 : writeHelper.getEstimatedMemorySize();
    size += sortableSortOrders == null ? 0 : jdm.lengthForBooleanArrayOfSize(sortableSortOrders.length);
    size += nullMarkers == null ? 0 : jdm.lengthForByteArrayOfSize(nullMarkers.length);
    size += notNullMarkers == null ? 0 : jdm.lengthForByteArrayOfSize(notNullMarkers.length);
    size += jdm.arrayList(); // empty list
    size += DEFAULT_OBJECT_INSPECTOR_MEMORY_SIZE;
    return size;
  }
For FULL OUTER MapJoin: Iterates through the Small Table hash table and returns the key and
value rows for any non-matched keys.
ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinBytesTableContainer.java