This is an automated email from the ASF dual-hosted git repository.
lijibing 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 464620431d6 Improve analyze timeout. (#33836)
464620431d6 is described below
commit 464620431d69e1959287469119e50752c16261eb
Author: Jibing-Li <[email protected]>
AuthorDate: Fri Apr 26 16:33:40 2024 +0800
Improve analyze timeout. (#33836)
---
.../src/main/java/org/apache/doris/statistics/AnalysisManager.java | 4 ++--
.../java/org/apache/doris/statistics/ExternalAnalysisTask.java | 3 +++
.../main/java/org/apache/doris/statistics/JdbcAnalysisTask.java | 3 +++
.../main/java/org/apache/doris/statistics/OlapAnalysisTask.java | 3 +++
.../external_table_p2/hive/test_hive_statistic_timeout.groovy | 7 ++++---
5 files changed, 15 insertions(+), 5 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java
b/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java
index 03314fe7748..b697c6f8327 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java
@@ -867,7 +867,7 @@ public class AnalysisManager implements Writable {
executor.submit(() -> {
try {
if (cancelled) {
- errorMessages.add("Query timeout or user
cancelled."
+ errorMessages.add("Query Timeout or user
Cancelled."
+ "Could set analyze_timeout to a bigger
value.");
return;
}
@@ -890,7 +890,7 @@ public class AnalysisManager implements Writable {
}
if (!colNames.isEmpty()) {
if (cancelled) {
- throw new RuntimeException("Cancelled");
+ throw new RuntimeException("User Cancelled or Timeout.");
}
throw new RuntimeException("Failed to analyze following
columns:[" + String.join(",", colNames)
+ "] Reasons: " + String.join(",", errorMessages));
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/statistics/ExternalAnalysisTask.java
b/fe/fe-core/src/main/java/org/apache/doris/statistics/ExternalAnalysisTask.java
index 7d3c9af2548..d59133017ab 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/statistics/ExternalAnalysisTask.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/statistics/ExternalAnalysisTask.java
@@ -56,6 +56,9 @@ public class ExternalAnalysisTask extends BaseAnalysisTask {
}
public void doExecute() throws Exception {
+ if (killed) {
+ return;
+ }
if (isTableLevelTask) {
getTableStats();
} else {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/statistics/JdbcAnalysisTask.java
b/fe/fe-core/src/main/java/org/apache/doris/statistics/JdbcAnalysisTask.java
index a318bd4594e..4562d4336e8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/JdbcAnalysisTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/JdbcAnalysisTask.java
@@ -60,6 +60,9 @@ public class JdbcAnalysisTask extends BaseAnalysisTask {
}
public void doExecute() throws Exception {
+ if (killed) {
+ return;
+ }
if (isTableLevelTask) {
getTableStats();
} else {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
b/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
index ce7982d4f1a..4b651d322ba 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/OlapAnalysisTask.java
@@ -64,6 +64,9 @@ public class OlapAnalysisTask extends BaseAnalysisTask {
}
public void doExecute() throws Exception {
+ if (killed) {
+ return;
+ }
// For empty table, write empty result directly, no need to run SQL to
collect stats.
if (info.rowCount == 0 && tableSample != null) {
StatsId statsId = new StatsId(concatColumnStatsId(),
info.catalogId, info.dbId,
diff --git
a/regression-test/suites/external_table_p2/hive/test_hive_statistic_timeout.groovy
b/regression-test/suites/external_table_p2/hive/test_hive_statistic_timeout.groovy
index a3329f87712..a52a2304788 100644
---
a/regression-test/suites/external_table_p2/hive/test_hive_statistic_timeout.groovy
+++
b/regression-test/suites/external_table_p2/hive/test_hive_statistic_timeout.groovy
@@ -34,9 +34,10 @@ suite("test_hive_statistic_timeout",
"p2,external,hive,external_remote,external_
sql """use ${catalog_name}.tpch_1000_parquet"""
sql """set global analyze_timeout=1"""
try {
- sql """analyze table part (p_partkey, p_container, p_type,
p_retailprice) with sync with full;"""
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Cancelled"));
+ test {
+ sql """analyze table part (p_partkey, p_container, p_type,
p_retailprice) with sync with full;"""
+ exception "Timeout"
+ }
} finally {
sql """set global analyze_timeout=43200"""
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]