Julien David
02/17/2026, 11:49 PM김병주
02/18/2026, 4:55 PMADMIN SET FRONTEND CONFIG ("enable_statistic_collect_on_first_load" = "false");
This completely disables the immediate statistics collection triggered after all data loading — including INSERT INTO (MV refresh), INSERT OVERWRITE, Stream Load, and Broker Load. It eliminates the 30-second synchronous blocking entirely, which is the most effective fix for your case.
The trade-off is that statistics for regular tables will also no longer be collected immediately after loading. However, StarRocks has a background Auto Collector (default: every 5 minutes) that will keep all table and MV statistics up to date, so query plan quality should not be affected.
Option 2: Reduce the synchronous await timeout
ADMIN SET FRONTEND CONFIG ("semi_sync_collect_statistic_await_seconds" = "5");
This keeps the immediate statistics collection enabled for all load types, but reduces the maximum blocking time from 30 seconds to 5 seconds.
Statistics collection still happens on every MV refresh, but the TaskRun thread won't be blocked for as long. If the collection takes longer than 5 seconds, it continues asynchronously in the background, so there's minimal risk.
Key difference: Option 1 completely removes the statistics overhead from MV refresh, while Option 2 only reduces the blocking time. For your environment with 10k+ MV refreshes/day, Option 1 would be more effective.
Choose Option 2 if you prefer to keep immediate statistics collection for regular INSERT and Stream Load operations.
Note that these two options are independent — if you choose Option 1, Option 2 becomes unnecessary since the collection itself is skipped entirely.
After applying either option, you can try increasing task_runs_concurrency gradually (5 → 7 → 8) while monitoring FE heap usage and query latency.
Thanks.Julien David
02/18/2026, 8:29 PM김병주
02/21/2026, 5:16 PMtask_runs_max_history_number from the default 10,000 to around 1,000:
ADMIN SET FRONTEND CONFIG ("task_runs_max_history_number" = "1000");
This reduces FE memory usage and speeds up the scheduling loop, so pending refreshes get picked up a bit faster. It's not a major change but helps with overall queue throughput. The tradeoff is you'll only see the most recent ~1,000 refresh history entries.
Thanks.Julien David
02/21/2026, 10:38 PM