@Override
  public Iterator<RegionEntry> getBestIterator(boolean includeValues) {
    DiskRegion dr = getDiskRegion();

    if (DiskPage.DISK_PAGE_SIZE > 0 && includeValues && dr != null) {
      // Wait for the disk region to recover values first.
      dr.waitForAsyncRecovery();
      if (dr.getNumOverflowOnDisk() > 0) {
        return new DiskSavvyIterator();
      }
    }
    return entries.regionEntries().iterator();
  }
Get the best iterator for iterating over the contents of this region. This method will either
an iterator that uses hash ordering from the entry map, or, in the case of an overflow region,
an iterator that iterates over the entries in disk order.
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedRegion.java