Dry run does not mutate the live segment directories. It creates temporary copies for sampled local segments and deletes them after the check.
When to Use
Use reload dry run before:- Adding, removing, or changing indexes on a large table.
- Reloading segments after a schema or table-index config change.
- Estimating segment size growth from new index settings.
- Validating whether sampled segments can be reloaded successfully before triggering a full reload.
- Comparing index changes across old, latest, or random segment samples.
Endpoint
The controller:
- Resolves the table config and schema from ZooKeeper.
- Applies only index-loading-related fields from the request’s proposed
tableConfig. - Sends the enriched request to servers hosting the table.
- Aggregates server responses into one controller-level response.
Request Body
Example: Preview an Inverted Index
This request previews adding an inverted index to thestatus column and a bloom filter to customerId.
Example: Target Specific Segments
UsetargetSegments when you want to dry run the exact segments that failed a previous reload or segments representative of a known time range.
Sampling Strategies
Remote segments that are not locally materialized can be counted as needing reload but are excluded from sample execution. The dry-run response can therefore show
totalSegmentsNeedReload greater than sampledSegments.length.
Response Fields
Per-segment result fields:
Operational Notes
- Dry run uses temporary segment directories and deletes them after the request.
- Dry-run work is isolated from the real reload executor so it does not consume real reload worker threads.
sampleCountis capped at10to prevent expensive accidental scans.timeoutMsapplies to sampled segment dry-run work. Timed-out segments appear with an exception such asDry-run timed out.- The controller always starts from the ZooKeeper table config and applies proposed indexing and field-config changes from the request.
- Tier backend settings are adjusted so dry-run loading uses local temporary copies rather than writing to remote tier storage.
Interpreting Results
UsenetColumnIndexChanged to confirm the reload would perform the expected index transition. For example:
avgSizeChangeInBytes as a sample-based estimate, not an exact whole-table storage forecast. Multiply it by the number of segments that need reload to estimate rough footprint change, then validate with a larger or targeted sample if the result is close to your storage budget.
If numExceptions is non-zero, inspect serverResults before triggering a full reload. Common failures include invalid index config, incompatible schema changes, segment format issues, or request timeout.

