Serverless backfill is available starting from v2.8.0 and is disabled by default.
Overview
When you create a materialized view (MV) on existing data, RisingWave must first process all historical records, a phase called backfill. By default, this runs on the same compute nodes as your regular streaming workloads, which can cause resource contention and increased latency for existing pipelines. Serverless backfill offloads the backfill phase to a dedicated controller that manages execution independently from your main streaming graph. This decoupling helps large backfills complete while reducing their impact on the performance of existing streaming jobs. Serverless backfilling is supported only in RisingWave Cloud. Enable it under Resources -> Backfillings in the Cloud console first. See Serverless backfilling for portal setup, SKU, and replicas.How it works
When serverless backfill is enabled for aCREATE MATERIALIZED VIEW statement:
- The frontend generates a backfill plan and hands it to the serverless backfill controller.
- The controller schedules and drives the backfill execution separately from the main streaming graph.
- Once all backfill fragments report completion, the MV transitions to the standard incremental streaming phase.
- If the cluster restarts during backfill, the controller resumes from the last completed checkpoint rather than starting over.
- Serverless backfilling is not supported for databases in non-default resource groups.
Configuration
Session variable
Enable serverless backfill for subsequentCREATE MATERIALIZED VIEW statements in the current session:
false. This setting only affects new DDL operations issued after the SET command; it does not change the behavior of already-running jobs.
Per-statement WITH clause
You can also enable serverless backfill for a singleCREATE MATERIALIZED VIEW statement using the cloud.serverless_backfill_enabled option in the WITH clause:
Example
The following example creates a large materialized view with serverless backfill enabled to reduce the impact of the backfill on existing streaming workloads:Example: serverless backfill
Monitor progress
Monitoring
Use the following system catalog and metrics to track serverless backfill jobs:| Method | Description |
|---|---|
SHOW JOBS | Lists all background DDL jobs and their current status. |
SELECT * FROM rw_catalog.rw_ddl_progress | Shows per-fragment backfill progress as a percentage. |
| Grafana / metrics endpoint | Look for stream_backfill_* metrics on compute nodes to observe throughput and lag. |
Limitations
- Serverless backfilling is supported only in RisingWave Cloud, and you must enable it under Resources -> Backfillings before requesting it in SQL.
- Serverless backfilling is not supported for databases in non-default resource groups.
- Rate-limiting via
backfill_rate_limitstill applies to serverless backfill jobs. See View and configure runtime parameters.
Related pages
- Serverless backfilling — Configure backfiller SKU, replicas, and Cloud setup.
- Backfill — Overview of all backfill strategies in RisingWave.
- SET BACKGROUND_DDL — Run DDL operations in the background without blocking the client.
- CREATE MATERIALIZED VIEW — Full syntax and options for creating materialized views.
- View and configure runtime parameters — All session variables, including
enable_serverless_backfill.