This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new 9ff45a3a0c1 [fix](fe) add compatible code for CloudReplica (#60088)
9ff45a3a0c1 is described below
commit 9ff45a3a0c149e2272f28673d28e9acc3e38019c
Author: meiyi <[email protected]>
AuthorDate: Wed Jan 21 17:46:40 2026 +0800
[fix](fe) add compatible code for CloudReplica (#60088)
### What problem does this PR solve?
https://github.com/apache/doris/pull/59932 modify bes to be in
CloudReplica, and will merge into 4.1.
This pr add compatible code for CloudReplica to make 4.1 can downgrade
to 4.0.
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [ ] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
---
.../org/apache/doris/cloud/catalog/CloudReplica.java | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudReplica.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudReplica.java
index 2834551b2da..68ebfc5bd3a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudReplica.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudReplica.java
@@ -29,6 +29,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.Pair;
import org.apache.doris.common.util.DebugPointUtil;
+import org.apache.doris.persist.gson.GsonPostProcessable;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.system.Backend;
@@ -41,6 +42,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -48,7 +50,7 @@ import java.util.Random;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
-public class CloudReplica extends Replica {
+public class CloudReplica extends Replica implements GsonPostProcessable {
private static final Logger LOG = LogManager.getLogger(CloudReplica.class);
// In the future, a replica may be mapped to multiple BEs in a cluster,
@@ -56,6 +58,8 @@ public class CloudReplica extends Replica {
@SerializedName(value = "bes")
private ConcurrentHashMap<String, List<Long>> primaryClusterToBackends
= new ConcurrentHashMap<String, List<Long>>();
+ @SerializedName(value = "be")
+ private ConcurrentHashMap<String, Long> primaryClusterToBackend = null;
@SerializedName(value = "dbId")
private long dbId = -1;
@SerializedName(value = "tableId")
@@ -626,4 +630,18 @@ public class CloudReplica extends Replica {
});
return result;
}
+
+ @Override
+ public void gsonPostProcess() throws IOException {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("convert CloudReplica: {}, primaryClusterToBackend: {},
primaryClusterToBackends: {}",
+ this.getId(), this.primaryClusterToBackend,
this.primaryClusterToBackends);
+ }
+ if (primaryClusterToBackend != null) {
+ for (Map.Entry<String, Long> entry :
primaryClusterToBackend.entrySet()) {
+ primaryClusterToBackends.put(entry.getKey(),
Lists.newArrayList(entry.getValue()));
+ }
+ this.primaryClusterToBackend = null;
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]