From a4e69f7272ea2c99c6db552d6b7e9150a0e3ed00 Mon Sep 17 00:00:00 2001 From: Jibing-Li <64681310+Jibing-Li@users.noreply.github.com> Date: Wed, 27 Dec 2023 09:59:34 +0800 Subject: [PATCH] [improvement](statistics)Remove retry load when load stats cache fail (#28904) Remove retry load when load stats cache fail. This case usually happens when BE is down or BE OOM, retry doesn't work in these cases and may increase BE work load. --- .../ColumnStatisticsCacheLoader.java | 42 +------------------ .../doris/statistics/StatisticsCache.java | 4 -- 2 files changed, 2 insertions(+), 44 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java index 22f0cad9d0..08a410b859 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatisticsCacheLoader.java @@ -17,7 +17,6 @@ package org.apache.doris.statistics; -import org.apache.doris.catalog.Env; import org.apache.doris.catalog.TableIf; import org.apache.doris.common.ThreadPoolManager; import org.apache.doris.qe.InternalQueryExecutionException; @@ -64,7 +63,8 @@ public class ColumnStatisticsCacheLoader extends StatisticsCacheLoader columnResults = null; - try { - columnResults = StatisticsRepository.loadColStats(key.tableId, key.idxId, key.colName); - } catch (InternalQueryExecutionException e) { - if (this.retryTimes < StatisticConstants.LOAD_RETRY_TIMES) { - retryTimes++; - singleThreadPool.submit(this); - } - return; - } - ColumnStatistic columnStatistics; - try { - columnStatistics = StatisticsUtil.deserializeToColumnStatistics(columnResults); - } catch (Exception e) { - LOG.warn("Exception to deserialize column statistics", e); - return; - } - if (columnStatistics != null) { - Env.getCurrentEnv().getStatisticsCache().putCache(key, columnStatistics); - } - } - } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java index d4b91b0736..fbec9a60fa 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java @@ -39,9 +39,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.time.Duration; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadPoolExecutor; @@ -201,7 +199,6 @@ public class StatisticsCache { if (CollectionUtils.isEmpty(recentStatsUpdatedCols)) { return; } - Map keyToColStats = new HashMap<>(); for (ResultRow r : recentStatsUpdatedCols) { try { StatsId statsId = new StatsId(r); @@ -211,7 +208,6 @@ public class StatisticsCache { final StatisticsCacheKey k = new StatisticsCacheKey(tblId, idxId, colId); final ColumnStatistic c = ColumnStatistic.fromResultRow(r); - keyToColStats.put(k, c); putCache(k, c); } catch (Throwable t) { LOG.warn("Error when preheating stats cache", t);