Snowflake

Multi-Cluster Warehouses for Concurrency Scaling

Handle high query concurrency by automatically spinning up additional compute clusters.

A multi-cluster warehouse addresses a different scaling dimension than resizing: instead of making each query faster (which is what increasing warehouse size does), it handles more concurrent queries by automatically starting additional identically-sized clusters when queuing is detected. This is essential for workloads with unpredictable or bursty concurrent user counts, such as BI dashboards accessed simultaneously by many users at the start of a business day.

It's like a checkout area at a store that automatically opens more registers (clusters) the moment lines get long, and closes them again once the rush passes — versus warehouse sizing, which is more like giving each cashier a faster scanner so each individual transaction completes quicker.

Key Concepts

1
Multi-cluster warehouses are configured with a MIN_CLUSTER_COUNT and MAX_CLUSTER_COUNT, plus a SCALING_POLICY of either STANDARD (favors spinning up new clusters quickly to minimize queuing, even at higher cost) or ECONOMY (favors keeping fewer clusters running, tolerating brief queuing to conserve credits, only scaling out when sustained demand justifies it).
MIN_CLUSTER_COUNTMAX_CLUSTER_COUNTSCALING_POLICYSTANDARDECONOMY
2
When MIN_CLUSTER_COUNT equals MAX_CLUSTER_COUNT, the warehouse behaves as a fixed-size multi-cluster pool (always running that many clusters when active) — useful for guaranteeing consistent concurrency headroom for a known high-traffic period. When MAX_CLUSTER_COUNT exceeds MIN_CLUSTER_COUNT, Snowflake auto-scales the number of running clusters between those bounds based on real-time query queuing.
MIN_CLUSTER_COUNTMAX_CLUSTER_COUNT
3
Crucially, this is distinct from — and complementary to — warehouse sizing: you might run a MEDIUM multi-cluster warehouse scaling from 1 to 5 clusters to handle many simultaneous moderate-complexity queries, whereas a single X-LARGE warehouse would instead be the choice for making a small number of very heavy queries individually faster.
MEDIUMX-LARGE