This is an automated email from the ASF dual-hosted git repository.
englefly 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 7d89b57706 [enhancement](stats) Optimize stats pre-load logic #19138
7d89b57706 is described below
commit 7d89b57706a9ece57310ba4fafb868eaaa970b73
Author: AKIRA <[email protected]>
AuthorDate: Thu Apr 27 17:01:31 2023 +0900
[enhancement](stats) Optimize stats pre-load logic #19138
1. Don't do pre-load until stats table gets ready
2. Don't put pre-loaded unknown stats to cache
---
.../java/org/apache/doris/statistics/StatisticsCache.java | 12 ++++++++++++
1 file changed, 12 insertions(+)
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<ResultRow> 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);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]