This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new c0369e62386 branch-3.1: [improve](auto partition) random choose dummy
partition location to enhance fault tolerance #51732 (#51953)
c0369e62386 is described below
commit c0369e6238660ad0d805a78dc8cf6fb6ccd6a521
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Jun 20 11:05:51 2025 +0800
branch-3.1: [improve](auto partition) random choose dummy partition
location to enhance fault tolerance #51732 (#51953)
Cherry-picked from #51732
Co-authored-by: hui lai <[email protected]>
---
.../main/java/org/apache/doris/planner/OlapTableSink.java | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java
index 0f4f1f9f17d..3f5af10d4b1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java
@@ -617,23 +617,22 @@ public class OlapTableSink extends DataSink {
}
for (int i = 0; i < table.getIndexNumber(); i++) {
// only one fake tablet here
+ Long[] nodes = aliveBe.toArray(new Long[0]);
+ Random random = new SecureRandom();
+ int nodeIndex = random.nextInt(nodes.length);
if (singleReplicaLoad) {
- Long[] nodes = aliveBe.toArray(new Long[0]);
List<Long> slaveBe = aliveBe;
-
- Random random = new SecureRandom();
- int masterNode = random.nextInt(nodes.length);
locationParam.addToTablets(new TTabletLocation(fakeTabletId,
- Arrays.asList(nodes[masterNode])));
+ Arrays.asList(nodes[nodeIndex])));
- slaveBe.remove(masterNode);
+ slaveBe.remove(nodeIndex);
slaveLocationParam.addToTablets(new
TTabletLocation(fakeTabletId,
slaveBe));
} else {
locationParam.addToTablets(new TTabletLocation(fakeTabletId,
- Arrays.asList(aliveBe.get(0)))); // just one fake
location is enough
+ Arrays.asList(nodes[nodeIndex]))); // just one fake
location is enough
- LOG.info("created dummy location tablet_id={}, be_id={}",
fakeTabletId, aliveBe.get(0));
+ LOG.info("created dummy location tablet_id={}, be_id={}",
fakeTabletId, nodes[nodeIndex]);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]