This is an automated email from the ASF dual-hosted git repository.

wyf pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 53d00d9  [Doris On ES][Bug-Fix] ES queries always route at same 3 BE 
nodes (#4351) (#4352)
53d00d9 is described below

commit 53d00d92cc29d2403e8a18d496c763957545f677
Author: caoyang10 <535011...@qq.com>
AuthorDate: Tue Aug 18 10:36:18 2020 +0800

    [Doris On ES][Bug-Fix] ES queries always route at same 3 BE nodes (#4351) 
(#4352)
    
    resolve the problem of querying ES table always route at same 3 BE nodes 
because of random strategy
---
 fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java
index 36984bf..7db0e00 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/EsScanNode.java
@@ -204,13 +204,14 @@ public class EsScanNode extends ScanNode {
                     String.join(",", unPartitionedIndices),
                     String.join(",", partitionedIndices));
         }
-        int beIndex = random.nextInt(backendList.size());
+        int size = backendList.size();
+        int beIndex = random.nextInt(size);
         List<TScanRangeLocations> result = Lists.newArrayList();
         for (EsShardPartitions indexState : selectedIndex) {
             for (List<EsShardRouting> shardRouting : 
indexState.getShardRoutings().values()) {
                 // get backends
                 Set<Backend> colocatedBes = Sets.newHashSet();
-                int numBe = Math.min(3, backendMap.size());
+                int numBe = Math.min(3, size);
                 List<TNetworkAddress> shardAllocations = new ArrayList<>();
                 for (EsShardRouting item : shardRouting) {
                     
shardAllocations.add(EsTable.TRANSPORT_HTTP.equals(table.getTransport()) ? 
item.getHttpAddress() : item.getAddress());
@@ -224,7 +225,7 @@ public class EsScanNode extends ScanNode {
                 List<Backend> candidateBeList = Lists.newArrayList();
                 if (usingRandomBackend) {
                     for (int i = 0; i < numBe; ++i) {
-                        candidateBeList.add(backendList.get(beIndex++ % 
numBe));
+                        candidateBeList.add(backendList.get(beIndex++ % size));
                     }
                 } else {
                     candidateBeList.addAll(colocatedBes);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to