Purushotham Malipedda
07/14/2026, 12:16 PMRocky
07/14/2026, 12:16 PMsql
-- Create a warehouse for ingestion
CREATE WAREHOUSE ingest_wh;
-- Create a warehouse for Materialized View maintenance
CREATE WAREHOUSE mv_refresh_wh;
-- Create a warehouse for query serving
CREATE WAREHOUSE query_wh;
To assign CN nodes to these warehouses, you typically specify the warehouse name in the CN's configuration file (cn.conf) using the warehouse parameter before starting the node, or by labeling them in a Kubernetes environment. You can verify the assignments with:
sql
SHOW COMPUTE NODES; -- Check the 'WarehouseName' column
2. Isolate Ingestion
To direct ingestion to the ingest_wh, use the appropriate method for your data source:
* INSERT INTO: Set the warehouse for the current session before running the command.
sql
SET warehouse = 'ingest_wh';
INSERT INTO target_table SELECT * FROM source_table;
* Stream Load: Include the warehouse parameter in the HTTP header.
bash
curl --location-trusted -u user:passwd \
-H "warehouse: ingest_wh" \
-H "label: load_123" \
-T data.csv \
<http://fe_host:http_port/api/db/table/_stream_load>
* Routine Load: Specify the warehouse in the PROPERTIES of the load job.
sql
CREATE ROUTINE LOAD my_load ON my_table
PROPERTIES ("warehouse" = "ingest_wh")
...
3. Isolate MV Creation and Refresh
When creating or altering an asynchronous Materialized View, you can bind it to a specific warehouse using the warehouse property. This ensures that the background refresh tasks only consume resources from the designated CN set.
sql
CREATE MATERIALIZED VIEW my_mv
REFRESH ASYNC
PROPERTIES (
"warehouse" = "mv_refresh_wh"
)
AS SELECT ...;
Note: If you have an existing MV, you can alter its warehouse property:
sql
ALTER MATERIALIZED VIEW my_mv SET ("warehouse" = "mv_refresh_wh");
4. Isolate Query Serving
To ensure user queries are served by the query_wh, you can control this at the session or user level:
* Session Level: Users or applications can switch warehouses after connecting.
sql
SET warehouse = 'query_wh';
SELECT * FROM my_mv WHERE ...;
* User Property: You can set a default warehouse for specific users so they always use the query-dedicated nodes.
sql
SET PROPERTY FOR 'query_user' 'default_warehouse' = 'query_wh';
Summary of Benefits
* Resource Guarantee: Ingestion spikes won't cause query latency, as they run on different CNs.
* Independent Scaling: You can scale the query_wh (add more CNs) during peak hours without affecting the MV refresh or ingestion processes.
* Cache Isolation: Since each warehouse manages its own local disk cache, the hot data for queries won't be evicted by the massive data scans required for ETL/MV refreshes.
References
• sql-reference/sql-statements/cluster-management/nodes_processes/ALTER_SYSTEM.md
• administration/management/Scale_up_down.md
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_COMPUTE_NODES.mdPurushotham Malipedda
07/14/2026, 1:37 PMPurushotham Malipedda
07/14/2026, 1:37 PMRocky
07/14/2026, 1:38 PMWAREHOUSE syntax.
2. Configuration: Your cluster is likely configured with run_mode = shared_nothing (the default) in the fe.conf file. In this mode, commands like CREATE WAREHOUSE or SET WAREHOUSE are stubbed out and return the "not implemented" error because the underlying resource management logic for multiple warehouses is only active in shared_data mode.
How to resolve or verify:
* Check your run mode: Execute the following to see if your cluster is in shared-data mode:
sql
SHOW FRONTENDS; -- Look for the 'RunMode' column.
* Isolate workloads in Shared-nothing: If you are using the Shared-nothing architecture and want to achieve isolation (e.g., separating ingestion from queries), you should use Resource Groups and BE Tags instead of Warehouses.
* Tag your BE nodes (e.g., tag.location: query_node).
* Create Resource Groups to limit CPU/Memory.
* Use the replication_allocation property on tables to pin data to specific nodes.
* Switch to Shared-data: If you require Multi-Warehouse functionality, you must deploy (or redeploy) StarRocks in Shared-data mode. This requires:
* Setting run_mode = shared_data in fe.conf.
* Configuring a remote storage backend (like AWS S3, MinIO, or HDFS).
* Note: You cannot convert an existing Shared-nothing cluster directly to Shared-data; it requires a new deployment and data migration.
Summary
The error is a safeguard indicating that the command you are running is not supported by your current cluster architecture. In version 4.0.8, ensure your fe.conf has run_mode = shared_data if you intend to use the Multi-Warehouse feature.
References
• quick_start/shared-nothing.md
• introduction/Architecture.md
• deployment/shared_data/feature-support-shared-data.mdPurushotham Malipedda
07/14/2026, 1:40 PMsql
SHOW FRONTENDS;Purushotham Malipedda
07/14/2026, 1:41 PMsql
SHOW FRONTENDS;Rocky
07/14/2026, 1:42 PMSHOW FRONTENDS command does not include a runmode or RunMode column in the standard StarRocks distribution. The previous mention of that column was likely based on a misunderstanding of your specific environment's output.
In StarRocks 4.0.8, the error "Multi-Warehouse is not implemented" is a explicit indicator that the cluster is currently operating in Shared-nothing mode. The Multi-Warehouse (Compute Group) feature is architecturally exclusive to Shared-data mode.
How to verify your Run Mode
To confirm your cluster's architecture, use the following command to check the configuration directly:
sql
ADMIN SHOW FRONTEND CONFIG LIKE 'run_mode';
* If the value is shared_nothing, Multi-Warehouse is not supported.
* If the value is shared_data, the feature should be available (unless there is a licensing or deployment-specific restriction).
Other ways to identify the architecture:
* Table Type: Run SHOW CREATE TABLE <table_name>\G. In Shared-data mode, you will often see properties like storage_volume or the table type will be identified as CLOUD_NATIVE in metadata.
* Storage Path: Check the storage details of your database:
sql
-- Get your DB ID first from SHOW DATABASES
SHOW PROC '/dbs/<db_id>';
If you see a StoragePath starting with s3://, oss://, or hdfs:// and the table type is CLOUD_NATIVE, it is Shared-data. If it shows local paths or standard BE storage, it is Shared-nothing.
Why you see the error in 4.0.8
Even though 4.0.x is a very recent version, StarRocks maintains two distinct kernels:
1. Shared-nothing (Standard): Data is stored on Local Disks of BEs. This mode uses Resource Groups for isolation, not Warehouses.
2. Shared-data (Cloud-native): Data is stored on Object Storage (S3/OSS/HDFS). This mode uses Warehouses for isolation.
If you are on a Shared-nothing cluster, you cannot use CREATE WAREHOUSE or SET warehouse = .... Instead, you should use Resource Groups to manage CPU and memory isolation for your different workloads.
If you need the Multi-Warehouse feature, you must redeploy the cluster with run_mode = shared_data in your fe.conf. Note that you cannot switch an existing cluster between these modes without a migration of data is required.
References
• data_source/catalog/unified_catalog.md
• release_notes/release-2.0.md
• release_notes/release-3.2.md
• release_notes/release-2.4.mdPurushotham Malipedda
07/14/2026, 1:49 PMKey AliasNames Value Type IsMutable Comment
run_mode [] shared_data String falsePurushotham Malipedda
07/14/2026, 1:49 PMKey AliasNames Value Type IsMutable Comment
run_mode [] shared_data String falseRocky
07/14/2026, 1:50 PMshared_data mode typically points to one of three specific configuration or deployment issues. Although the Multi-Warehouse (Compute Group) feature was open-sourced in version 4.0, it is not always enabled by default in all distributions or may require specific metadata service configurations.
1. Enable the Multi-Warehouse Flag
In many StarRocks 4.0.x builds, the Multi-Warehouse logic is guarded by a configuration flag in the Frontend (FE). You likely need to explicitly enable it in your `fe.conf`:
1. Open fe.conf on all FE nodes.
2. Add or update the following line:
properties
enable_multi_warehouse = true
3. Restart your FE nodes.
If this parameter is set to false (which was the default for earlier "community" versions before the full open-source merge), any CREATE WAREHOUSE or SET WAREHOUSE command will return the "not implemented" error.
2. Verify StarOS / Shared-Data Metadata Service
The Multi-Warehouse feature in the shared-data architecture relies on the StarOS (often referred to as the Cloud Native metadata service).
* Ensure that your fe.conf has a valid cloud_native_meta_port (default is 6090).
* Check your FE logs (fe.log) for any errors related to "StarOS" or "Compute Group Manager" initialization. If the internal StarOS service fails to start, the warehouse management logic will remain inactive, leading to this error.
3. Check for "Warehouse" vs "Compute Group" Syntax
While version 4.0 supports the WAREHOUSE keyword, some experimental or early 4.0 builds preferred the term Compute Group. Try running the equivalent command to see if the parser accepts it:
sql
SHOW COMPUTE GROUPS;
-- or
CREATE COMPUTE GROUP test_group;
If CREATE COMPUTE GROUP works but CREATE WAREHOUSE fails with "not implemented," it indicates a syntax aliasing issue in your specific point release.
Summary Checklist
* Version Check: Ensure you are truly on a version where the feature is compiled. Run SELECT VERSION(); to verify.
* FE Config: Verify enable_multi_warehouse = true is in fe.conf.
* Run Mode: Double-check ADMIN SHOW FRONTEND CONFIG LIKE 'run_mode'; returns shared_data.
* Storage Volume: Ensure you have already created and set a default Storage Volume (CREATE STORAGE VOLUME ...), as warehouses cannot function without a target shared storage.
If you have confirmed enable_multi_warehouse = true and the cluster is in shared_data mode but the error persists, it is possible your specific binary build (e.g., a custom or older 4.0.x build) lacks the integrated Warehouse component. In that case, upgrading to a later stable version like 4.0.12 or 4.1.x is recommended.
References
• administration/management/Scale_up_down.md
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_COMPUTE_NODES.md
• sql-reference/sql-statements/cluster-management/nodes_processes/ALTER_SYSTEM.mdPurushotham Malipedda
07/14/2026, 2:27 PMRocky
07/14/2026, 2:28 PMenable_multi_warehouse parameter. You are correct—that specific configuration key does not exist in the 4.1.x or late 4.0.x source code, and my previous mention of it was incorrect.
In StarRocks 4.0.8 (and the 4.x series), the error "Multi-Warehouse is not implemented" is returned because the Multi-Warehouse (Compute Group) feature is fundamentally powered by StarOS (the cloud-native metadata and resource management layer).
Even if run_mode is set to shared_data, the "Multi-Warehouse" logic is conditionally enabled in the source code based on whether the FE's internal Warehouse Manager successfully initializes.
Why this error is triggered in 4.0.8:
1. StarOS Service Connectivity: The Warehouse Manager in the FE requires a functioning StarOS/Worker service. If the FE cannot communicate with the StarOS metadata service (typically because it wasn't started or is misconfigured), it falls back to a "dummy" implementation of the warehouse interface, which returns the "not implemented" error for all warehouse-related SQL.
2. Missing cloud_native_storage_type: In shared_data mode, you must have a storage volume or a legacy cloud storage configuration. Without a valid storage backend initialized at the FE level, the warehouse management service often fails to start.
3. Feature Gate in GlobalStateMgr: In the source code (specifically around WarehouseMgr.java and GlobalStateMgr.java), the system checks if the cluster is "Cloud Native" (Shared Data) and if the warehouse service is ready. If the service encountered an exception during startup (check your fe.log), it will throw this specific error.
How to troubleshoot:
* Check fe.log: Search for "WarehouseMgr" or "StarOS". You will likely see an error during the FE's boot sequence like: Failed to initialize WarehouseMgr. This is the root cause.
* Verify StarOS Port: Ensure cloud_native_meta_port (default 6090) is not blocked and that the FE is successfully binding to it.
* Check Storage Volumes:
sql
SHOW STORAGE VOLUMES;
If no storage volume is set as IS_DEFAULT = 'true', the cloud-native metadata layer may not fully activate.
Regarding the "Disconnected" Response:
My previous response relied on older community discussions from the 3.x transition period rather than the specific 4.x source tree. In the 4.x "Shared Data" architecture, the feature is technically present in the code but requires the underlying StarOS metadata service to be fully healthy to "implement" the commands.
If your fe.log shows that StarOS is running but you still see this error, please check if your build includes the staros sub-module, as some custom community builds omit the compute-group management components.
References
• deployment/shared_data/feature-support-shared-data.md
• faq/shared_data_faq.md
• sql-reference/sql-statements/cluster-management/nodes_processes/SHOW_COMPUTE_NODES.md
References
• data_source/catalog/unified_catalog.md
• sql-reference/sql-functions/utility-functions/current_warehouse.md
• integrations/dbt.md
• faq/Deploy_faq.md
• faq/shared_data_faq.md
• using_starrocks/async_mv/use_cases/query_rewrite_with_materialized_views.mdRocky
07/14/2026, 2:28 PM