This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new c9582197c82 [fix](cloud-streamload) support stream load cluster load
balance (#34336)
c9582197c82 is described below
commit c9582197c82b4d802c2c57b1a2eb67e40de29944
Author: HHoflittlefish777 <[email protected]>
AuthorDate: Tue Apr 30 20:03:32 2024 +0800
[fix](cloud-streamload) support stream load cluster load balance (#34336)
---
.../org/apache/doris/httpv2/rest/LoadAction.java | 27 ++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
index 692f0cc8ad3..c5f442ba832 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
@@ -275,7 +275,18 @@ public class LoadAction extends RestBaseController {
return new RestBaseResult(e.getMessage());
}
} else {
- redirectAddr = selectRedirectBackend(request, groupCommit);
+ if (Config.isCloudMode()) {
+ String cloudClusterName = getCloudClusterName(request);
+ if (Strings.isNullOrEmpty(cloudClusterName)) {
+ LOG.warn("cluster name is empty in stream load");
+ return new RestBaseResult("No cloud cluster name
selected.");
+ }
+ String reqHostStr =
request.getHeader(HttpHeaderNames.HOST.toString());
+ LOG.info("host header {}", reqHostStr);
+ redirectAddr =
selectCloudRedirectBackend(cloudClusterName, reqHostStr, groupCommit);
+ } else {
+ redirectAddr = selectRedirectBackend(request, groupCommit);
+ }
}
LOG.info("redirect load action to destination={}, stream: {}, db:
{}, tbl: {}, label: {}",
@@ -308,7 +319,19 @@ public class LoadAction extends RestBaseController {
return new RestBaseResult("No transaction operation(\'commit\'
or \'abort\') selected.");
}
- TNetworkAddress redirectAddr = selectRedirectBackend(request,
false);
+ TNetworkAddress redirectAddr;
+ if (Config.isCloudMode()) {
+ String cloudClusterName = getCloudClusterName(request);
+ if (Strings.isNullOrEmpty(cloudClusterName)) {
+ LOG.warn("cluster name is empty in stream load");
+ return new RestBaseResult("No cloud cluster name
selected.");
+ }
+ String reqHostStr =
request.getHeader(HttpHeaderNames.HOST.toString());
+ LOG.info("host header {}", reqHostStr);
+ redirectAddr = selectCloudRedirectBackend(cloudClusterName,
reqHostStr, false);
+ } else {
+ redirectAddr = selectRedirectBackend(request, false);
+ }
LOG.info("redirect stream load 2PC action to destination={}, db:
{}, txn: {}, operation: {}",
redirectAddr.toString(), dbName,
request.getHeader(TXN_ID_KEY), txnOperation);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]