Implementation:Apache Druid Tuning Config Form
| Knowledge Sources | |
|---|---|
| Domains | Data_Ingestion, Performance_Tuning |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
Concrete form-based UI pattern for configuring ingestion task tuning parameters in the batch ingestion wizard.
Description
The tuning configuration step renders an AutoForm component with TUNING_FIELDS that allows users to set resource limits and execution behavior parameters. These fields modify the spec.spec.tuningConfig object in the ingestion spec.
This is a pure configuration form with no API calls — values are stored in the spec for use during task execution by the Druid Overlord and MiddleManager processes.
Usage
Import this as part of the LoadDataView tuning step. Rendered after partitioning configuration and before publication settings.
Code Reference
Source Location
- Repository: Apache Druid
- File: web-console/src/views/load-data-view/load-data-view.tsx
- Lines: L2780-L2920 (approximate)
Signature
// Rendered within LoadDataView.renderTuningStep()
// Uses AutoForm component with TUNING_FIELDS constant
interface TuningFields {
'spec.spec.tuningConfig.maxRowsInMemory': number;
'spec.spec.tuningConfig.maxBytesInMemory': number;
'spec.spec.tuningConfig.maxTotalRows': number;
'spec.spec.tuningConfig.maxNumConcurrentSubTasks': number;
'spec.spec.tuningConfig.maxRetry': number;
'spec.spec.tuningConfig.taskStatusCheckPeriodMs': number;
'spec.spec.tuningConfig.chatHandlerTimeout': string;
'spec.spec.tuningConfig.chatHandlerNumRetries': number;
}
Import
// Internal to LoadDataView — not independently importable
import { LoadDataView } from './views/load-data-view/load-data-view';
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| spec | Partial<IngestionSpec> | Yes | Current ingestion spec with tuningConfig |
Outputs
| Name | Type | Description |
|---|---|---|
| spec.spec.tuningConfig | TuningConfig | Updated tuning configuration with resource limits and behavior settings |
Usage Examples
High-Throughput Tuning
{
tuningConfig: {
type: 'index_parallel',
maxRowsInMemory: 1000000,
maxBytesInMemory: 0, // 0 = use maxRowsInMemory only
maxNumConcurrentSubTasks: 4,
maxRetry: 3,
taskStatusCheckPeriodMs: 1000,
},
}