Kikyou1997 commented on code in PR #18653:
URL: https://github.com/apache/doris/pull/18653#discussion_r1166242504


##########
fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java:
##########
@@ -100,16 +98,24 @@ public void createAnalysisJob(AnalyzeStmt analyzeStmt) 
throws DdlException {
         Set<String> partitionNames = analyzeStmt.getPartitionNames();
         Map<Long, AnalysisTaskInfo> analysisTaskInfos = new HashMap<>();
         long jobId = Env.getCurrentEnv().getNextId();
+
         // If the analysis is not incremental, need to delete existing 
statistics.
-        // we cannot collect histograms incrementally and do not support it
+        // we cannot collect histograms incrementally and do not support it.
         if (!analyzeStmt.isIncrement && !analyzeStmt.isHistogram) {
             long dbId = analyzeStmt.getDbId();
             TableIf table = analyzeStmt.getTable();
             Set<Long> tblIds = Sets.newHashSet(table.getId());
             Set<Long> partIds = partitionNames.stream()
                     .map(p -> table.getPartition(p).getId())
                     .collect(Collectors.toSet());
-            StatisticsRepository.dropStatistics(dbId, tblIds, colNames, 
partIds);
+            try {
+                StatisticsRepository.markStatsAsDeleted(dbId, tblIds, 
colNames, partIds);
+            } catch (Exception e) {
+                throw new DdlException("Fail to mark statistics as deleted", 
e);
+            }
+            // Removing statistics maybe be slow and use asynchronous method
+            Env.getCurrentEnv().getAnalysisHelper().asyncExecute(() ->
+                    StatisticsRepository.dropStatistics(dbId, tblIds, 
colNames, partIds));

Review Comment:
   It's really puzzling here, if you has an insatiable craving for deletion 
here AND submit a async task to do this, then what's the necessary to update 
`column_statistics` table synchronously to mark a row should be deleted instead 
of let async task delete them directly



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to