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 ea0028dbbd..4a2bb6e872 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 @@ -20,6 +20,7 @@ package org.apache.doris.statistics; import org.apache.doris.common.ThreadPoolManager; import org.apache.doris.qe.ConnectContext; import org.apache.doris.statistics.util.InternalQueryResult.ResultRow; +import org.apache.doris.statistics.util.StatisticsUtil; import com.github.benmanes.caffeine.cache.AsyncLoadingCache; import com.github.benmanes.caffeine.cache.Caffeine; @@ -146,6 +147,14 @@ public class StatisticsCache { private void doPreHeat() { List recentStatsUpdatedCols = null; long retryTimes = 0; + while (!StatisticsUtil.statsTblAvailable()) { + try { + Thread.sleep(100L); + } catch (InterruptedException e) { + // IGNORE + } + } + while (retryTimes < StatisticConstants.PRELOAD_RETRY_TIMES) { try { recentStatsUpdatedCols = StatisticsRepository.fetchRecentStatsUpdatedCol(); @@ -194,6 +203,9 @@ public class StatisticsCache { return Optional.of(c); } }; + if (c == ColumnStatistic.UNKNOWN) { + continue; + } columnStatisticsCache.put(k, f); } catch (Throwable t) { LOG.warn("Error when preheating stats cache", t);