Managed ClickHouse® 25.8 default settings
Managed ClickHouse® uses a managed configuration that differs from upstream ClickHouse defaults. These differences help keep services reliable, secure, and predictable in Exoscale-managed environments.
The following sections list the settings that Exoscale manages or constrains on version 25.8, grouped by session, table, and server scope. Some of them keep the upstream default value while the platform prevents you from changing it.
How to read the settings tables
Each setting includes an Exoscale default value and indicates whether you can change it:
- Can be changed: No: Exoscale manages the setting value. You cannot override it.
- Can be changed: Yes: Exoscale sets the default value, but you can change it where the setting is configurable.
Where Exoscale defaults vary by service plan or node resources, the Exoscale default column shows ranges or placeholders. The Description column explains why the default differs or lists any configurable bounds, such as an allowed range or minimum value.
Values shown as ranges or placeholders, such as
[3..80, depending on CPU count], {cpu_count}, or [~7% of RAM], are sized
automatically based on your service plan and node resources.
Note
For Exoscale-defined limits, see Limits and limitations.
Session settings
These settings apply to sessions and queries.
| Setting | Exoscale default | Can be changed | Description |
|---|---|---|---|
allow_deprecated_error_prone_window_functions | 0 | No | Keeps deprecated, error-prone window functions disabled. |
allow_deprecated_snowflake_conversion_functions | 0 | No | Keeps deprecated Snowflake conversion functions disabled. |
allow_experimental_kafka_offsets_storage_in_keeper | 0 | No | Keeps experimental Kafka offset storage in Keeper disabled. |
allow_introspection_functions | 0 | Yes | Keeps sensitive debugging and introspection functions disabled by default. |
allow_non_default_profile | 0 | No | Prevents switching to unmanaged profiles. |
cancel_http_readonly_queries_on_client_close | 1 | Yes | Cancels read-only HTTP queries when clients disconnect. |
cluster_function_process_archive_on_multiple_nodes | 0 | Yes | Disables archive processing on multiple nodes by default. |
compatibility | "" | Yes | Does not force a lower compatibility profile by default. |
database_replicated_allow_replicated_engine_arguments | 1 | No | Supports replicated database and table creation in Exoscale-managed services. |
distributed_ddl_entry_format_version | 7 | No | Pins the distributed DDL entry format to avoid inconsistencies during version upgrades. |
distributed_ddl_output_mode | null_status_on_timeout | Yes | Makes distributed DDL timeout reporting more resilient to recoverable errors. Because databases use the Replicated engine, every DDL statement runs as a distributed DDL, and any output mode other than none returns one row per node instead of the empty output stock ClickHouse prints. See Read the output of a DDL statement. |
format_display_secrets_in_show_and_select | 0 | Yes | Avoids exposing secrets in SHOW and SELECT output by default. |
http_write_exception_in_output_format | 0 | Yes | Keeps exceptions out of the requested output format so client errors are easier to detect. |
max_autoincrement_series | 1000 | No | Limits automatic sequence expansion. |
max_concurrent_queries_for_all_users | [100..800, depending on service size] | No | Enforces a service-wide concurrency limit. |
max_http_get_redirects | 10 | Yes | Limits HTTP redirect following. |
max_insert_threads | 2 | Yes | Allowed range: 1..{cpu_count}. Caps insert parallelism so a single query does not use too many shared service resources. |
max_threads | {cpu_count} | Yes | Allowed range: 1..{cpu_count}. Caps general query parallelism to the node CPU count. |
memory_profiler_sample_probability | 0 | No | Disables random memory profiler sampling. |
memory_profiler_step | 4194304 | Yes | Minimum value: 100000. Keeps the upstream memory profiler granularity while preventing very low values. |
min_free_disk_ratio_to_perform_insert | 0.05 | No | Keeps a disk headroom guard before accepting inserts. |
output_format_json_quote_64bit_integers | 1 | Yes | Keeps JSON output compatible with clients that cannot safely represent 64-bit integers. This default can change in a future version. |
postgresql_connection_attempt_timeout | 10 | Yes | Limits each PostgreSQL connection attempt. |
postgresql_connection_pool_connect_timeout | 10 | Yes | Limits pooled PostgreSQL connection setup. |
push_external_roles_in_interserver_queries | 0 | No | External authorization is not supported. Roles must be synchronized between nodes. |
query_profiler_cpu_time_period_ns | 1000000000 | Yes | Minimum value: 1000000. Keeps the upstream CPU profiler sampling period while preventing sub-millisecond values. |
query_profiler_real_time_period_ns | 1000000000 | Yes | Minimum value: 1000000. Keeps the upstream real-time profiler sampling period while preventing sub-millisecond values. |
readonly | 0 | Yes | Controls read/write access for the session. You can change the value from 0 to 1, but not from 1 to 0. |
stream_like_engine_allow_direct_select | 1 | Yes | Allows direct SELECT queries on stream-like engines, which can have suboptimal performance or behavior. A future release returns this default to the upstream default. |
write_full_path_in_iceberg_metadata | 1 | Yes | Writes full Iceberg metadata paths for compatibility with mainstream ClickHouse behavior. |
Replicated MergeTree table settings
These settings apply to the ReplicatedMergeTree table engine family. On the
Exoscale, MergeTree engines are remapped to their ReplicatedMergeTree
variants. See
Supported table engines.
| Setting | Exoscale default | Can be changed | Description |
|---|---|---|---|
allow_remote_fs_zero_copy_replication | 0 | No | Keeps zero-copy replication for remote filesystem storage disabled. Exoscale manages this storage behavior. |
disable_detach_partition_for_zero_copy_replication | 1 | No | Blocks DETACH PARTITION on zero-copy replicated tables. |
disable_fetch_partition_for_zero_copy_replication | 1 | No | Blocks FETCH PARTITION on zero-copy replicated tables. |
disable_freeze_partition_for_zero_copy_replication | 1 | No | Blocks FREEZE PARTITION on zero-copy replicated tables. |
enable_max_bytes_limit_for_min_age_to_force_merge | 0 | No | Leaves the byte-size limit unenforced when age-based forced merges are considered. |
finished_mutations_to_keep | 100 | Yes | Limits retained finished mutation metadata so ZooKeeper or Keeper state does not grow unnecessarily. |
max_parts_in_total | 100000 | Yes | Sets a cap on table part count to protect merge performance and metadata size. |
number_of_free_entries_in_pool_to_execute_mutation | 20 | Yes | Uses the upstream default while limiting the value below the service background pool capacity. |
number_of_free_entries_in_pool_to_execute_optimize_entire_partition | 25 | Yes | Uses the upstream default while limiting the value below the service background pool capacity. |
number_of_free_entries_in_pool_to_lower_max_size_of_merge | 8 | Yes | Uses the upstream default while limiting the value below the service background pool capacity. |
old_parts_lifetime | 480 | Yes | Reduces the lifetime of outdated merged parts to lower the number of ZooKeeper or Keeper metadata nodes. |
Server settings
These settings are configured at the server level and are managed by Exoscale. They
are not configurable as session settings. Most settings are derived from your
service plan. Some settings, such as vector_similarity_index_cache_size, are
exposed through advanced configuration.
| Setting | Exoscale default | Description |
|---|---|---|
background_pool_size | [8..32, depending on CPU count] | Sizes the background merge and mutation pool based on service CPU capacity. If an explicit service-level override is configured, Exoscale preserves it. |
cgroups_memory_usage_observer_wait_time | 0 | Disables the ClickHouse cgroup memory usage observer because Exoscale sets explicit memory limits for the managed server process. |
cluster_database | default | Sets the database used by cluster-related helpers to the managed default database. |
database_atomic_delay_before_drop_table_sec | 0 | Removes the Atomic database delayed-drop wait to prevent race conditions in refreshable materialized views. |
default_database | default | Uses the managed default database unless another database is selected explicitly. |
default_replica_name | {replica} | Uses the Exoscale-provided replica macro in replicated table paths. |
dictionary_user | avnadmin | Runs dictionary queries through the managed admin user. |
disable_internal_dns_cache | 1 | Prevents ClickHouse from keeping stale internal DNS results in a managed environment where node addresses can change. |
display_secrets_in_show_and_select | 1 | Keeps server-level secret display available for privileged managed operations. User-facing profile settings hide secrets by default. |
iceberg_catalog_threadpool_pool_size | [3..80, depending on CPU count] | Scales Iceberg catalog worker concurrency with service CPU capacity. |
iceberg_metadata_files_cache_size | [~7% of RAM] | Sizes the Iceberg metadata file cache based on the managed memory budget. |
index_mark_cache_size | [~7% of RAM] | Sizes the secondary index mark cache based on the managed memory budget. |
keep_alive_timeout | 10 | Limits idle keep-alive connections to 10 seconds so clients cannot hold server resources indefinitely. |
mark_cache_size | [~7% of RAM] | Sizes the primary mark cache based on the managed memory budget. |
max_concurrent_queries | [147..847, depending on service size] | Sets a server-wide concurrency limit based on the service plan, with extra internal capacity reserved for monitoring, backup, and operator queries. |
max_connections | 4000 | Sets the connection limit per node. Measured at 4000 on the Startup plans. |
max_database_num_to_throw | 400 | Enforces a hard limit on the number of databases to protect metadata and reduce operational overhead. |
max_database_num_to_warn | 200 | Warns before the hard database-count limit is reached. |
max_format_parsing_thread_pool_size | [3..80, depending on CPU count] | Scales the format parsing thread pool with service CPU capacity. |
max_partition_size_to_drop | 0 | Removes the server-side partition-size guard for drops to avoid common operational issues. |
max_prefixes_deserialization_thread_pool_size | [3..80, depending on CPU count] | Scales the prefixes deserialization thread pool with service CPU capacity. |
max_server_memory_usage | [65%..70% of host RAM, depending on service size] | Caps ClickHouse memory use below total host RAM so the node retains memory for the operating system, caching, and service management operations. |
max_table_size_to_drop | 0 | Removes the server-side table-size guard for drops to avoid common operational issues. |
memory_worker_correct_memory_tracker | 1 | Lets the ClickHouse memory worker correct memory tracking drift. |
prefetch_threadpool_pool_size | [3..80, depending on CPU count] | Scales the prefetch thread pool with service CPU capacity. |
prepare_system_log_tables_on_startup | 1 | Ensures system log tables are ready immediately after startup for managed observability and diagnostics. |
reserved_replicated_database_prefixes | ["aiven", "endpoint_", "service_"] | Reserves internal database name prefixes for Exoscale-managed objects. |
series_keeper_path | /clickhouse/series | Sets the Keeper path for generateSerialID counter nodes. |
show_addresses_in_stack_traces | 0 | Avoids exposing raw addresses in stack traces returned to users or logs. |
threadpool_local_fs_reader_pool_size | [3..80, depending on CPU count] | Scales local filesystem reader concurrency with service CPU capacity. |
threadpool_remote_fs_reader_pool_size | [3..80, depending on CPU count] | Scales remote filesystem reader concurrency with service CPU capacity. |
threadpool_writer_pool_size | [3..80, depending on CPU count] | Scales filesystem writer concurrency with service CPU capacity. |
uncompressed_cache_size | [~7% of RAM] | Sizes the uncompressed block cache based on the managed memory budget. |
user_with_indirect_database_creation | avnadmin | Restricts indirect database creation privileges to the managed admin user. |
vector_similarity_index_cache_size | 0.07 | Sizes the vector similarity index cache as a fraction of total server memory. The default is 0.07, or 7% of RAM. Set to 0 to disable the cache. Maximum value: 0.5. This setting can be changed in advanced configuration and applies to ClickHouse 25.8 or later. |