<@U0A71G31CDV> is multi warehouse support planned ...
# questions-and-troubleshooting
l
@Rocky is multi warehouse support planned to be added to starrocks open source? If not, is there a recommended way to achieve ingest/query split with starrocks open source?
r
Yes, multi-warehouse support was officially announced to be moved into the StarRocks open-source project during the StarRocks Summit in late 2025. It is a key part of the StarRocks 4.0/2026 roadmap, specifically designed for the Shared-data (storage-compute separation) architecture. If you are using a version where full multi-warehouse management is not yet available, or if you are looking for the best way to achieve ingest/query split today, here is the recommended approach: 1. Use Shared-data Architecture The foundation for ingest/query split is the Shared-data mode (introduced in v3.0). In this mode, data is stored in remote object storage (S3, GCS, HDFS, etc.), and compute is handled by Compute Nodes (CN). • Unlike the Shared-nothing architecture (where BEs store local data), CNs are stateless. • This allows you to scale compute independently of storage. 2. Isolate with Compute Node (CN) Groups You can achieve a "multi-warehouse" effect by grouping your CN nodes. • Dedicated Ingestion Group: Point your loading tasks (like Stream Load or Broker Load) to a specific set of CN nodes. • Dedicated Query Group: Point your BI tools or SQL clients to a different set of CN nodes. • Because they all share the same remote storage and FE metadata, the ingestion group updates the data while the query group reads it without competing for the same CPU/Memory resources. 3. Resource Groups (Fine-grained Isolation) If you are running everything on a single cluster (or even within the same CN group), you should use Resource Groups. • Hard Limits: From v3.3.5 onwards, StarRocks supports hard CPU limits (
exclusive_cpu_cores
). • Workload Classification: You can create a resource group for
INSERT
tasks and another for
SELECT
queries. • Example:
Copy code
sql
  CREATE RESOURCE GROUP ingest_group
  PROPERTIES (
      "cpu_core_limit" = "10",
      "mem_limit" = "20%",
      "concurrency_limit" = "20"
  );
  -- Bind a user or specific query patterns to this group
  SET PROPERTY FOR 'loader_user' 'resource_group' = 'ingest_group';
4. Warehouse-based Statistics (v3.2+) StarRocks also supports offloading background tasks. For example, you can execute statistics collection (which can be resource-intensive) in a separate "warehouse" or CN group to ensure it doesn't impact user queries. Summary Recommendation * For the cleanest split: Deploy a Shared-data cluster and use separate CN node groups for ingestion and querying. This prevents "noisy neighbor" issues at the hardware level. * For cost efficiency: Use a single cluster with Resource Groups and Query Queues to enforce strict resource boundaries between loading and analytical workloads. References • administration/management/resource_management/resource_group.md • knowledge/usage/best-practice.md • faq/resource_isolation_faq.md • administration/management/resource_management/query_queues.md