Max Zhu
07/14/2026, 1:56 AMRocky
07/14/2026, 6:19 AMsql
CREATE WAREHOUSE ingestion_wh;
CREATE WAREHOUSE query_wh;
3. Assign CNs: When starting your CN nodes, you can assign them to a specific warehouse by configuring the warehouse parameter in the cn.conf file or via SQL management commands (depending on your StarRocks version).
4. Workload Routing:
* For CDC Ingestion: If you are using Flink CDC or Stream Load, you can route the load to the ingestion warehouse. (Note: Many ingestion methods automatically hit the warehouse where they are initiated).
* For Queries: Users or applications can specify which warehouse to use at the session level:
sql
SET warehouse = 'query_wh';
SELECT * FROM your_table;
5. Resource Groups as an Alternative: If you are not using Shared-Data mode, you can still mitigate noisy neighbor issues in Shared-Nothing mode using Resource Groups. This allows you to set CPU and memory limits for specific users or query types (e.g., INSERT vs SELECT), though it is a "soft" logical isolation rather than the "hard" physical isolation provided by Multi-Warehouse.
Summary
If your primary goal is absolute isolation to protect query performance from heavy CDC ingestion, the Shared-Data architecture with Multi-Warehouse is the recommended path. This allows you to scale your ingestion and query layers independently and ensures they never compete for the same CPU/CPU/Memory on the same machine.
References
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_COMPUTE_NODES.md
• sql-reference/System_variable.md
• sql-reference/sql-statements/table_bucket_part_index/CREATE_TABLE.md
• sql-reference/sql-statements/cluster-management/resource_group/CREATE_RESOURCE_GROUP.mdMax Zhu
07/29/2026, 1:45 AMRocky
07/29/2026, 1:45 AMwarehouses and exclusive_cpu_weight) to ensure hard isolation between different compute clusters.
How you can use it today
To achieve the separation of CDC ingestion and read operations, you should follow these steps in a Shared-Data cluster:
1. Deploy Multiple CN Groups:
Deploy two sets of Compute Nodes (CN). For example, 3 nodes for queries and 2 nodes for ingestion.
2. Group Nodes via Resource Groups (v4.1+ Approach):
In the latest versions, you can use Resource Groups to bind specific compute resources to workloads.
sql
-- Example logic (syntax may vary slightly by minor version)
CREATE RESOURCE GROUP query_wg
PROPERTIES (
"cpu_weight_percent" = "70",
"warehouses" = "query_warehouse"
);
CREATE RESOURCE GROUP ingestion_wg
PROPERTIES (
"cpu_weight_percent" = "30",
"warehouses" = "ingestion_warehouse"
);
3. Assign Workloads:
* For Ingestion: Route your Flink CDC or Stream Load tasks to the CNs designated for ingestion. You can do this by pointing the load balancer or the specific CN IP/Port in your Flink configuration.
* For Queries: Users can specify which compute group to use for their session:
sql
SET warehouse = 'query_warehouse';
SELECT * FROM analytics_table;
Summary Recommendation
If you are planning a production setup now (mid-2026), you should use StarRocks 4.1 or higher. This version provides the most mature "Multi-Warehouse" experience with stable resource isolation, ensuring that heavy CDC data streaming won't impact your end-user query performance.
References
• release_notes/release-3.4.md
• sql-reference/sql-statements/cluster-management/resource_group/CREATE_RESOURCE_GROUP.md
• sql-reference/sql-statements/Resource/CREATE_RESOURCE.md
• sql-reference/sql-statements/backup_restore/CREATE_REPOSITORY.md
References
• sql-reference/sql-statements/cluster-management/resource_group/CREATE_RESOURCE_GROUP.md
• sql-reference/sql-statements/Resource/CREATE_RESOURCE.md
• sql-reference/sql-statements/backup_restore/CREATE_REPOSITORY.mdMax Zhu
07/30/2026, 5:36 AMRocky
07/30/2026, 5:36 AMCREATE WAREHOUSE in the OSS version will return Multi-Warehouse is not implemented.
* Fact: The only functional warehouse in OSS is the default_warehouse.
* Fact: You cannot currently group CN nodes into separate warehouses in the OSS version to achieve physical isolation between CDC ingestion and queries.
Current Reality for OSS Users
Since you cannot use Multi-Warehouse today in OSS, here is the state of "Noisy Neighbor" mitigation in a single cluster:
1. Logical Isolation via Resource Groups: This is your only native tool in OSS. You can create Resource Groups to limit the CPU and memory consumption of your CDC ingestion (e.g., using INSERT or Flink CDC) versus your ad-hoc queries. While this prevents a single query from starving the system, it is logical isolation, not the physical isolation you were looking for.
2. Scheduling Behavior: As you noted, the FE scheduler in OSS currently fans out queries across all available CN nodes. Even if you direct your Stream Load to a specific set of CN IPs, those same nodes will still be recruited by the FE to process query fragments, leading to resource contention.
3. Manual Entry Point Isolation: You can point your ingestion traffic to a specific Load Balancer (NLB) targeting a subset of CNs. This isolates the "entry point" overhead, but the actual data processing (shuffling, joining, and scanning) will still be distributed across the entire cluster by the FE.
Recommendation
If physical isolation is a strict requirement for your production environment and you are committed to the OSS version:
* Wait for the Full OSS Landing: The presence of the scaffolding (PR #66947 and session variables) suggests the project is moving toward an open implementation, but it is not functional yet.
* Scale Vertically/Resource Groups: Use Resource Groups with cpu_core_limit and mem_limit to cap the impact of heavy ingestion tasks.
* Use CelerData: If you need this specific "Multi-Warehouse" functionality immediately, it is currently available only in the CelerData (Enterprise/Cloud) distributions.
Thank you for the thorough audit. It is a vital reminder that "documented syntax" does not always equal "OSS availability."
References
• sql-reference/sql-statements/cluster-management/resource_group/CREATE_RESOURCE_GROUP.md
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_COMPUTE_NODES.md
• administration/resource_group.md
References
• data_source/catalog/unified_catalog.md
• data_source/catalog/iceberg/DDL.md
• data_source/feature-support-data-lake-analytics.md
• data_source/catalog/hive_catalog.md