ScyllaDB University LIVE, FREE Virtual Training Event | March 21
Register for Free
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
    • Supported Driver Versions
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Search Ask AI
ScyllaDB Docs ScyllaDB Manual CQL Reference Configuring a Cluster with CQL
For AI agents: a documentation index is available at https://docs.scylladb.com/manual/master/llms.txt. A Markdown version of this page is at https://docs.scylladb.com/manual/master/cql/cluster-config.md.

Caution

You're viewing documentation for an unstable version of ScyllaDB Manual. Switch to the latest stable version.

Configuring a Cluster with CQL¶

CQL cluster configuration provides an additional way to configure ScyllaDB, next to scylla.yaml. An option set through CQL is stored once and applied by all nodes in the cluster, without editing scylla.yaml on every node or restarting anything. An option is set at a scope, which determines what it applies to: the whole cluster, a datacenter, a rack, a node, a keyspace, or a table; see Scopes. The stored values are part of the schema: they are replicated to every node through the same path as tables and keyspaces, and they appear in DESCRIBE output.

The options and scopes currently available through CQL are listed in Available options at the end of this page. They are a separate set from the scylla.yaml parameters; more options will be added over time.

Note

You can set a cluster configuration option only when all nodes in the cluster run a ScyllaDB version that supports it. During a rolling upgrade, attempts to set an option that is not supported by every node are rejected. Retry the statement when every node supports the option. Existing option values continue to apply during the upgrade.

Scopes¶

An option can be set at several scopes. A value set at a narrower scope takes precedence over a value set at a broader one:

  • TABLE overrides KEYSPACE, which overrides CLUSTER.

  • NODE overrides RACK, which overrides DATACENTER, which overrides CLUSTER.

Each option supports a fixed set of scopes. Options that describe a table (such as auto_repair_enabled) can be set at TABLE, KEYSPACE and CLUSTER scope. No option currently supports the DATACENTER, RACK or NODE scopes.

Each scope stores only the values that were explicitly set there. The effective value of an option for a table is the value stored at the narrowest scope that has one: the table’s own value if it has one, otherwise the keyspace’s, otherwise the cluster’s. If no scope stores a value, the option’s built-in default applies.

Setting an option¶

For a table or a keyspace, use the WITH clause of the usual statements. The option name is used directly as a property name:

CREATE TABLE ks.tbl (pk int PRIMARY KEY) WITH auto_repair_enabled = true;
ALTER TABLE ks.tbl WITH auto_repair_enabled = false;
ALTER KEYSPACE ks WITH auto_repair_enabled = true;

Cluster configuration options can be combined with other properties in the same statement, for example WITH comment = 'orders' AND auto_repair_enabled = true. The one exception is a tablets replication-factor change, which cannot be combined with a cluster configuration option in the same ALTER KEYSPACE statement. This is rejected:

ALTER KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 3} AND auto_repair_enabled = true;

Use separate statements instead:

ALTER KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 3};
ALTER KEYSPACE ks WITH auto_repair_enabled = true;

For the cluster as a whole, use ALTER CLUSTER:

ALTER CLUSTER WITH auto_repair_enabled = true;

The statements for the node-oriented scopes exist for options that will support them:

alter_cluster_statement:    ALTER CLUSTER WITH `option` '=' `value`
alter_datacenter_statement: ALTER DATACENTER `datacenter_name` WITH `option` '=' `value`
alter_rack_statement:       ALTER RACK `datacenter_name` `rack_name` WITH `option` '=' `value`
alter_node_statement:       ALTER NODE `host_id` WITH `option` '=' `value`

The datacenter, rack, or node named in the statement must exist in the cluster.

Values are validated against the option’s type before anything is stored: a boolean option accepts true and false (in any letter case), an integer option accepts a signed 64-bit integer, and so on, and a text option accepts at most 4096 bytes. An unknown option name, an option used at a scope it does not support, or a value of the wrong type is rejected and nothing changes.

Removing an option¶

Setting an option to NULL removes the value stored at that scope, so the option falls back to the next broader scope, or to its default:

ALTER TABLE ks.tbl WITH auto_repair_enabled = NULL;   -- ks.tbl now follows its keyspace
ALTER CLUSTER WITH auto_repair_enabled = NULL;        -- back to the built-in default

Only the bare NULL keyword removes a value. The string 'null' is an ordinary value and is validated like any other, so a boolean option rejects it.

Permissions¶

The permission required depends on the scope, not on the option:

  • ALTER TABLE ... WITH requires ALTER permission on the table.

  • ALTER KEYSPACE ... WITH requires ALTER permission on the keyspace.

  • ALTER CLUSTER, ALTER DATACENTER, ALTER RACK and ALTER NODE require a superuser.

Inspecting effective values¶

DESCRIBE KEYSPACE and DESCRIBE TABLE show the cluster configuration options that are in force for the described object, in the WITH clause alongside the other properties. Each such line ends with a comment that says where the value comes from and what every scope stores (NULL means nothing is stored at that scope).

A value stored at the described object’s own scope is shown as a regular property:

... AND auto_repair_enabled = true  -- from table (table=true, keyspace=false, cluster=NULL)

A value inherited from a broader scope is shown as a commented-out property, so replaying the DESCRIBE output recreates exactly what was stored and nothing more:

... -- AND auto_repair_enabled = false  -- from keyspace (table=NULL, keyspace=false, cluster=NULL)

Removing the leading -- marker and running the statement pins the inherited value at that scope as an explicit setting. An option that no scope stores is not shown at all.

DESCRIBE SCHEMA lists the cluster-scope values first, before any keyspace, as ALTER CLUSTER WITH ... statements, so a schema dump carries them. Under DESCRIBE SCHEMA WITH INTERNALS the trailing comments are omitted and only stored values are emitted, which is the form used for backup and restore. See DESCRIBE SCHEMA.

Available options¶

Option

Type

Scopes

Description

auto_repair_enabled

boolean

CLUSTER, KEYSPACE, TABLE

Enable automatic repair for tablet-based tables. Default: false.

Was this page helpful?

PREVIOUS
DESCRIBE SCHEMA
NEXT
Service Levels
  • Create an issue
  • Edit this page

On this page

  • Configuring a Cluster with CQL
    • Scopes
    • Setting an option
    • Removing an option
    • Permissions
    • Inspecting effective values
    • Available options
ScyllaDB Manual
Search Ask AI
  • master
    • master
    • 2026.3
    • 2026.2
    • 2026.1
    • 2025.4
    • 2025.3
    • 2025.2
    • 2025.1
  • Getting Started
    • Install ScyllaDB 2026.3
      • Launch ScyllaDB 2026.3 on AWS
      • Launch ScyllaDB 2026.3 on GCP
      • Launch ScyllaDB 2026.3 on Azure
      • Launch ScyllaDB 2026.3 on Oracle Cloud Infrastructure (OCI)
      • ScyllaDB Web Installer for Linux
      • Install ScyllaDB 2026.3 Linux Packages
      • Run ScyllaDB in Docker
      • Install ScyllaDB Without root Privileges
      • Air-gapped Server Installation
      • ScyllaDB Housekeeping and how to disable it
      • ScyllaDB Developer Mode
    • Configure ScyllaDB
    • ScyllaDB Configuration Reference
    • ScyllaDB Requirements
      • System Requirements
      • OS Support
      • Cloud Instance Recommendations
      • ScyllaDB in a Shared Environment
    • Migrate to ScyllaDB
      • Migration Process from Cassandra to ScyllaDB
      • ScyllaDB and Apache Cassandra Compatibility
      • Migration Tools Overview
    • Integration Solutions
      • Integrate ScyllaDB with Spark
      • Integrate ScyllaDB with KairosDB
      • Integrate ScyllaDB with Presto
      • Integrate ScyllaDB with Elasticsearch
      • Integrate ScyllaDB with Kubernetes
      • Integrate ScyllaDB with the JanusGraph Graph Data System
      • Integrate ScyllaDB with DataDog
      • Integrate ScyllaDB with Kafka
      • Integrate ScyllaDB with IOTA Chronicle
      • Integrate ScyllaDB with Spring
      • Shard-Aware Kafka Connector for ScyllaDB
      • Install ScyllaDB with Ansible
      • Integrate ScyllaDB with Databricks
      • Integrate ScyllaDB with Jaeger Server
      • Integrate ScyllaDB with MindsDB
  • ScyllaDB for Administrators
    • Administration Guide
    • Procedures
      • Cluster Management
      • Backup & Restore
      • Change Configuration
      • Maintenance
      • Best Practices
      • Benchmarking ScyllaDB
      • Migrate from Cassandra to ScyllaDB
      • Disable Housekeeping
    • Security
      • ScyllaDB Security Checklist
      • Enable Authentication
      • Enable and Disable Authentication Without Downtime
      • Creating a Superuser
      • Generate a cqlshrc File
      • Reset Authenticator Password
      • Enable Authorization
      • Grant Authorization CQL Reference
      • Certificate-based Authentication
      • Certificate or Password Authentication
      • Role Based Access Control (RBAC)
      • ScyllaDB Auditing Guide
      • Encryption: Data in Transit Client to Node
      • Encryption: Data in Transit Node to Node
      • Generating a self-signed Certificate Chain Using openssl
      • Configure SaslauthdAuthenticator
      • Encryption at Rest
      • LDAP Authentication
      • LDAP Authorization (Role Management)
      • Software Bill Of Materials (SBOM)
    • Admin Tools
      • Nodetool Reference
      • CQLSh
      • Admin REST API
      • Tracing
      • ScyllaDB SStable
      • ScyllaDB SStable Script API
      • ScyllaDB Types
      • SSTableLoader
      • cassandra-stress
      • ScyllaDB Logs
      • Seastar Perftune
      • Virtual Tables
      • Reading mutation fragments
      • Maintenance socket
      • Maintenance mode
      • Task manager
      • Compression Advisor
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
    • ScyllaDB Manager
    • Upgrade Procedures
      • Upgrade Guides
    • System Configuration
      • System Configuration Guide
      • scylla.yaml
      • ScyllaDB Snitches
      • Configuration Parameters
    • Benchmarking ScyllaDB
    • ScyllaDB Diagnostic Tools
  • ScyllaDB for Developers
    • Develop with ScyllaDB
    • Tutorials and Example Projects
    • Learn to Use ScyllaDB
    • ScyllaDB Alternator
    • ScyllaDB Drivers
  • CQL Reference
    • CQLSh: the CQL shell
    • Reserved CQL Keywords and Types (Appendices)
    • Compaction
    • Consistency Levels
    • Consistency Level Calculator
    • Data Definition
    • Data Manipulation
      • SELECT
      • INSERT
      • UPDATE
      • DELETE
      • BATCH
    • Data Types
    • Definitions
    • Global Secondary Indexes
    • Expiring Data with Time to Live (TTL)
    • Functions
    • CQL Guardrails
    • Wasm support for user-defined functions
    • JSON Support
    • Materialized Views
    • DESCRIBE SCHEMA
    • Configuring a Cluster with CQL
    • Service Levels
    • ScyllaDB CQL Extensions
  • Alternator: DynamoDB API in ScyllaDB
    • Getting Started With ScyllaDB Alternator
    • ScyllaDB Alternator for DynamoDB users
    • Alternator-specific APIs
    • Reducing network costs in Alternator
    • Alternator Vector Search
    • Alternator client libraries
  • Features
    • Lightweight Transactions
    • Global Secondary Indexes
    • Local Secondary Indexes
    • Materialized Views
    • Counters
    • Change Data Capture
      • CDC Overview
      • The CDC Log Table
      • Basic operations in CDC
      • CDC Streams
      • CDC Stream Changes
      • Querying CDC Streams
      • Advanced column types
      • Preimages and postimages
      • Data Consistency in CDC
    • Workload Attributes
    • Workload Prioritization
    • Backup and Restore
    • Incremental Repair
    • Automatic Repair
    • Vector Search
    • Full-Text Search
  • ScyllaDB Architecture
    • Data Distribution with Tablets
    • ScyllaDB Ring Architecture
    • ScyllaDB Fault Tolerance
    • Consistency Level Console Demo
    • ScyllaDB Anti-Entropy
      • ScyllaDB Hinted Handoff
      • ScyllaDB Read Repair
      • ScyllaDB Repair
    • SSTable
      • ScyllaDB SSTable - 2.x
      • ScyllaDB SSTable - 3.x
    • Compaction Strategies
    • Raft Consensus Algorithm in ScyllaDB
    • Zero-token Nodes
  • Troubleshooting ScyllaDB
    • Errors and Support
      • Report a ScyllaDB problem
      • Error Messages
      • Change Log Level
    • ScyllaDB Startup
      • Ownership Problems
      • ScyllaDB will not Start
    • Cluster and Node
      • Handling Node Failures
      • Failure to Add, Remove, or Replace a Node
      • Failed Decommission Problem
      • Cluster Timeouts
      • Node Joined With No Data
      • NullPointerException
      • Failed Schema Sync
    • Data Modeling
      • ScyllaDB Large Partitions Table
      • ScyllaDB Large Rows and Cells Table
      • Large Partitions Hunting
      • Failure to Update the Schema
    • Data Storage and SSTables
      • Space Utilization Increasing
      • Disk Space is not Reclaimed
      • SSTable Corruption Problem
      • Pointless Compactions
      • Limiting Compaction
    • CQL
      • Time Range Query Fails
      • COPY FROM Fails
      • CQL Connection Table
    • ScyllaDB Monitor and Manager
      • Manager and Monitoring integration
      • Manager lists healthy nodes as down
    • Installation and Removal
      • Removing ScyllaDB on Ubuntu breaks system packages
  • Knowledge Base
    • Upgrading from experimental CDC
    • Compaction
    • Consistency in ScyllaDB
    • Counting all rows in a table is slow
    • CQL Query Does Not Display Entire Result Set
    • When CQLSh query returns partial results with followed by “More”
    • Run ScyllaDB and supporting services as a custom user:group
    • Customizing CPUSET
    • Decoding Stack Traces
    • Snapshots and Disk Utilization
    • DPDK mode
    • Debug your database with Flame Graphs
    • Efficient Tombstone Garbage Collection in ICS
    • How to Change gc_grace_seconds for a Table
    • Gossip in ScyllaDB
    • How does ScyllaDB LWT Differ from Apache Cassandra ?
    • Map CPUs to ScyllaDB Shards
    • ScyllaDB Memory Usage
    • NTP Configuration for ScyllaDB
    • POSIX networking for ScyllaDB
    • ScyllaDB consistency quiz for administrators
    • Recreate RAID devices
    • How to Safely Increase the Replication Factor
    • ScyllaDB and Spark integration
    • Increase ScyllaDB resource limits over systemd
    • ScyllaDB Seed Nodes
    • How to Set up a Swap Space
    • ScyllaDB Snapshots
    • ScyllaDB payload sent duplicated static columns
    • Stopping a local repair
    • System Limits
    • How to flush old tombstones from a table
    • Time to Live (TTL) and Compaction
    • ScyllaDB Nodes are Unresponsive
    • Update a Primary Key
    • Using the perf utility with ScyllaDB
    • Configure ScyllaDB Networking with Multiple NIC/IP Combinations
  • Reference
    • AWS Images
    • Azure Images
    • GCP Images
    • Configuration Parameters
    • Glossary
    • Limits
    • API Reference
      • Authorization Cache
      • Cache Service
      • Column Family
      • Commit Log
      • Compaction Manager
      • Endpoint Snitch Info
      • Error Injection
      • Failure Detector
      • Gossiper
      • Hinted Handoff
      • LSA
      • Messaging Service
      • Raft
      • Storage Proxy
      • Storage Service
      • Stream Manager
      • System
      • Task Manager Test
      • Task Manager
      • Tasks
    • Metrics
  • ScyllaDB FAQ
  • 2024.2 and earlier documentation
Docs Tutorials University Contact Us About Us
© 2026, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 16 Sep 2026.
Powered by Sphinx 9.1.0 & ScyllaDB Theme 1.9.3