Set<String> getPreferredDeletionZone(Set<Member> members) {
    Set<String> distributionSet = new HashSet<>();
    Set<String> zonesToDeleteFrom = new HashSet<>();

    // for each member
    for (Member member : members) {
      // get the redundancy zone
      String zoneName = getRedundancyZone(member.getMemberId());
      // See if the zoneName is in the list

      if (distributionSet.contains(zoneName)) {
        // We have two members so that means it is preferred
        zonesToDeleteFrom.add(zoneName);
      } else {
        // first occurrence of the zone name in the set
        distributionSet.add(zoneName);
      }
    }
    // return nothing if this is the first member
    // because there is no preferred deletion zone yet.
    return zonesToDeleteFrom;
  }
Look for a zone that has more than one member represented. That is where we want to try to
delete first.

@param members set of members that are hosting this bucket
@return null or a string containing the zone to delete a member from
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/rebalance/model/PartitionedRegionLoadModel.java