This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 7b28e338157 [improvement](statistics)Remove read lock when doing db
analyze. (#49250) (#49320)
7b28e338157 is described below
commit 7b28e338157982348929bf6eb2309f359e47f3cb
Author: James <[email protected]>
AuthorDate: Fri Mar 21 18:04:38 2025 +0800
[improvement](statistics)Remove read lock when doing db analyze. (#49250)
(#49320)
backport: https://github.com/apache/doris/pull/49250
---
.../apache/doris/statistics/AnalysisManager.java | 53 ++++++++++------------
1 file changed, 24 insertions(+), 29 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 c43136a08f6..9c43aed6c97 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
@@ -176,39 +176,34 @@ public class AnalysisManager implements Writable {
public List<AnalysisInfo> buildAnalysisInfosForDB(DatabaseIf<TableIf> db,
AnalyzeProperties analyzeProperties)
throws AnalysisException {
- db.readLock();
List<TableIf> tbls = db.getTables();
List<AnalysisInfo> analysisInfos = new ArrayList<>();
- try {
- List<AnalyzeTblStmt> analyzeStmts = new ArrayList<>();
- for (TableIf table : tbls) {
- if (table instanceof View) {
- continue;
- }
- TableName tableName = new TableName(db.getCatalog().getName(),
db.getFullName(),
- table.getName());
- // columnNames null means to add all visitable columns.
- // Will get all the visible columns in analyzeTblStmt.check()
- AnalyzeTblStmt analyzeTblStmt = new
AnalyzeTblStmt(analyzeProperties, tableName,
- null, db.getId(), table);
- try {
- analyzeTblStmt.check();
- } catch (AnalysisException analysisException) {
- LOG.warn("Failed to build analyze job: {}",
- analysisException.getMessage(), analysisException);
- }
- analyzeStmts.add(analyzeTblStmt);
+ List<AnalyzeTblStmt> analyzeStmts = new ArrayList<>();
+ for (TableIf table : tbls) {
+ if (table instanceof View) {
+ continue;
}
- for (AnalyzeTblStmt analyzeTblStmt : analyzeStmts) {
- try {
- analysisInfos.add(buildAndAssignJob(analyzeTblStmt));
- } catch (DdlException e) {
- LOG.warn("Failed to build analyze job: {}",
- e.getMessage(), e);
- }
+ TableName tableName = new TableName(db.getCatalog().getName(),
db.getFullName(),
+ table.getName());
+ // columnNames null means to add all visitable columns.
+ // Will get all the visible columns in analyzeTblStmt.check()
+ AnalyzeTblStmt analyzeTblStmt = new
AnalyzeTblStmt(analyzeProperties, tableName,
+ null, db.getId(), table);
+ try {
+ analyzeTblStmt.check();
+ } catch (AnalysisException analysisException) {
+ LOG.warn("Failed to build analyze job: {}",
+ analysisException.getMessage(), analysisException);
+ }
+ analyzeStmts.add(analyzeTblStmt);
+ }
+ for (AnalyzeTblStmt analyzeTblStmt : analyzeStmts) {
+ try {
+ analysisInfos.add(buildAndAssignJob(analyzeTblStmt));
+ } catch (DdlException e) {
+ LOG.warn("Failed to build analyze job: {}",
+ e.getMessage(), e);
}
- } finally {
- db.readUnlock();
}
return analysisInfos;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]