public Optional<TDataNodeLocation> filterDataNodeWithOtherRegionReplica(
      TConsensusGroupId regionId, TDataNodeLocation filterLocation, NodeStatus... allowingStatus) {
    List<TDataNodeLocation> excludeLocations = Collections.singletonList(filterLocation);
    return filterDataNodeWithOtherRegionReplica(regionId, excludeLocations, allowingStatus);
  }
Filter a DataNode who contains other RegionReplica excepts the given one.

<p>Choose the RUNNING status datanode firstly, if no RUNNING status datanode match the
condition, then we choose the REMOVING status datanode.

<p>`addRegionPeer`, `removeRegionPeer` and `changeRegionLeader` invoke this method.

@param regionId The specific RegionId
@param filterLocation The DataNodeLocation that should be filtered
@return A DataNodeLocation that contains other RegionReplica and different from the
    filterLocation
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/RegionMaintainHandler.java