Skip to main content
These settings are available in system.settings and are autogenerated from source.

parallel_replicas_allow_in_with_subquery

If true, subquery for IN will be executed on every follower replica.

parallel_replicas_allow_materialized_views

Allow usage of materialized views with parallel replicas

parallel_replicas_allow_view_over_mergetree

Allow parallel replicas to execute the outer query of a simple view over MergeTree tables (instead of the view’s inner query), improving parallelization across nodes. Also applies to UNION ALL views whose branches all read from different MergeTree tables.

parallel_replicas_connect_timeout_ms

The timeout in milliseconds for connecting to a remote replica during query execution with parallel replicas. If the timeout is expired, the corresponding replicas is not used for query executio

parallel_replicas_count

This is internal setting that should not be used directly and represents an implementation detail of the ‘parallel replicas’ mode. This setting will be automatically set up by the initiator server for distributed queries to the number of parallel replicas participating in query processing.

parallel_replicas_custom_key

An arbitrary integer expression that can be used to split work between replicas for a specific table. The value can be any integer expression. Simple expressions using primary keys are preferred. If the setting is used on a cluster that consists of a single shard with multiple replicas, those replicas will be converted into virtual shards. Otherwise, it will behave same as for SAMPLE key, it will use multiple replicas of each shard.

parallel_replicas_custom_key_range_lower

Allows the filter type range to split the work evenly between replicas based on the custom range [parallel_replicas_custom_key_range_lower, INT_MAX]. When used in conjunction with parallel_replicas_custom_key_range_upper, it lets the filter evenly split the work over replicas for the range [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]. Note: This setting will not cause any additional data to be filtered during query processing, rather it changes the points at which the range filter breaks up the range [0, INT_MAX] for parallel processing.

parallel_replicas_custom_key_range_upper

Allows the filter type range to split the work evenly between replicas based on the custom range [0, parallel_replicas_custom_key_range_upper]. A value of 0 disables the upper bound, setting it the max value of the custom key expression. When used in conjunction with parallel_replicas_custom_key_range_lower, it lets the filter evenly split the work over replicas for the range [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]. Note: This setting will not cause any additional data to be filtered during query processing, rather it changes the points at which the range filter breaks up the range [0, INT_MAX] for parallel processing

parallel_replicas_filter_pushdown

Allow pushing down filters to part of query which parallel replicas choose to execute

parallel_replicas_for_cluster_engines

Replace table function engines with their -Cluster alternatives

parallel_replicas_for_non_replicated_merge_tree

If true, ClickHouse will use parallel replicas algorithm also for non-replicated MergeTree tables

parallel_replicas_index_analysis_only_on_coordinator

Index analysis done only on replica-coordinator and skipped on other replicas. Effective only with enabled parallel_replicas_local_pla

parallel_replicas_insert_select_local_pipeline

Use local pipeline during distributed INSERT SELECT with parallel replicas

parallel_replicas_local_plan

Build local plan for local replica

parallel_replicas_mark_segment_size

Parts virtually divided into segments to be distributed between replicas for parallel reading. This setting controls the size of these segments. Not recommended to change until you’re absolutely sure in what you’re doing. Value should be in range [128; 16384]

parallel_replicas_min_number_of_rows_per_replica

Limit the number of replicas used in a query to (estimated rows to read / min_number_of_rows_per_replica). The max is still limited by ‘max_parallel_replicas’

parallel_replicas_mode

Type of filter to use with custom key for parallel replicas. default - use modulo operation on the custom key, range - use range filter on custom key using all possible values for the value type of custom key.

parallel_replicas_only_with_analyzer

The analyzer should be enabled to use parallel replicas. With disabled analyzer query execution fallbacks to local execution, even if parallel reading from replicas is enabled. Using parallel replicas without the analyzer enabled is not supported

parallel_replicas_plan_based

Express the parallel replicas local/remote boundary as a plan transformation. The planner builds a plain local plan; a split step is then inserted above the reading step and replaced with a UNION of a local read and a remote read of the part of the plan below the split step, so that fragment runs on the replicas while the rest runs on the coordinator. Experimental, takes precedence over parallel_replicas_local_plan.

parallel_replicas_prefer_local_join

If true, and JOIN can be executed with parallel replicas algorithm, and all storages of right JOIN part are *MergeTree, local JOIN will be used instead of GLOBAL JOIN.

parallel_replicas_prefer_local_replica

When enabled (default), the local replica is always included in the set of replicas used for parallel reading. When disabled, the local replica is not given any preference and replicas are selected purely by the load balancing algorithm. This allows queries with max_parallel_replicas = 1 to be directed to another host, which can improve cache locality when many short queries are distributed across a cluster.

parallel_replicas_support_projection

Optimization of projections can be applied in parallel replicas. Effective only with enabled parallel_replicas_local_plan and aggregation_in_order is inactive.
Last modified on July 24, 2026