diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/external/FederationBackendPolicy.java b/fe/fe-core/src/main/java/org/apache/doris/planner/external/FederationBackendPolicy.java index c67f7a50bf..aee9252e2e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/external/FederationBackendPolicy.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/external/FederationBackendPolicy.java @@ -81,4 +81,8 @@ public class FederationBackendPolicy { public int numBackends() { return backends.size(); } + + public List getBackends() { + return backends; + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java index 0743a13304..af0801e0ad 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java @@ -62,6 +62,7 @@ import org.apache.doris.planner.ScanNode; import org.apache.doris.planner.SetOperationNode; import org.apache.doris.planner.UnionNode; import org.apache.doris.planner.external.ExternalScanNode; +import org.apache.doris.planner.external.FederationBackendPolicy; import org.apache.doris.proto.InternalService; import org.apache.doris.proto.InternalService.PExecPlanFragmentResult; import org.apache.doris.proto.InternalService.PExecPlanFragmentStartRequest; @@ -2035,8 +2036,9 @@ public class Coordinator { FragmentScanRangeAssignment assignment, Map assignedBytesPerHost, Map replicaNumPerHost) throws Exception { - Collection aliveBEs = idToBackend.values().stream().filter(SimpleScheduler::isAvailable) - .collect(Collectors.toList()); + FederationBackendPolicy federationBackendPolicy = new FederationBackendPolicy(); + federationBackendPolicy.init(); + Collection aliveBEs = federationBackendPolicy.getBackends(); if (aliveBEs.isEmpty()) { throw new UserException("No available backends"); }