ScyllaDB University LIVE, FREE Virtual Training Event | March 21
Register for Free
ScyllaDB Documentation Logo Documentation
  • Server
  • Cloud
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Download
ScyllaDB Docs ScyllaDB Enterprise Reference Configuration Parameters

Caution

You're viewing documentation for a previous version. Switch to the latest stable version.

Configuration Parameters¶

This section contains a list of properties that can be configured in scylla.yaml - the main configuration file for ScyllaDB. In addition, properties that support live updates (liveness) can be updated via the system.config virtual table or the REST API.

Live update means that parameters can be modified dynamically while the server is running. If liveness of a parameter is set to true, sending the SIGHUP signal to the server processes will trigger ScyllaDB to re-read its configuration and override the current configuration with the new value.

Configuration Precedence

As the parameters can be configured in more than one place, ScyllaDB applies them in the following order with scylla.yaml parameters updated via SIGHUP having the highest priority:

  1. Live update via scylla.yaml (with SIGHUP) or REST API

  2. system.config table

  3. command line options

  4. scylla.yaml

Ungrouped properties¶

memtable_flush_static_shares¶

If set to higher than 0, ignore the controller’s output and set the memtable shares statically. Do not set this unless you know what you are doing and suspect a problem in the controller. This option will be retired when the controller reaches more maturity.

  • Type: float

  • Default value: 0

  • Liveness: True

compaction_static_shares¶

If set to higher than 0, ignore the controller’s output and set the compaction shares statically. Do not set this unless you know what you are doing and suspect a problem in the controller. This option will be retired when the controller reaches more maturity.

  • Type: float

  • Default value: 0

  • Liveness: True

compaction_enforce_min_threshold¶

If set to true, enforce the min_threshold option for compactions strictly. If false (default), Scylla may decide to compact even if below min_threshold.

  • Type: bool

  • Default value: false

  • Liveness: True

compaction_flush_all_tables_before_major_seconds¶

Set the minimum interval in seconds between flushing all tables before each major compaction (default is 86400). This option is useful for maximizing tombstone garbage collection by releasing all active commitlog segments. Set to 0 to disable automatic flushing all tables before major compaction.

  • Type: uint32_t

  • Default value: 86400

  • Liveness: False

Initialization properties¶

The minimal properties needed for configuring a cluster.

cluster_name¶

The name of the cluster; used to prevent machines in one logical cluster from joining another. All nodes participating in a cluster must have the same value.

  • Type: sstring

  • Default value: ""

  • Liveness: False

listen_address¶

The IP address or hostname that Scylla binds to for connecting to other Scylla nodes. You must change the default setting for multiple nodes to communicate. Do not set to 0.0.0.0, unless you have set broadcast_address to an address that other nodes can use to reach this node.

  • Type: sstring

  • Default value: "localhost"

  • Liveness: False

listen_interface_prefer_ipv6¶

If you choose to specify the interface by name and the interface has an ipv4 and an ipv6 address you can specify which should be chosen using listen_interface_prefer_ipv6. If false the first ipv4 address will be used. If true the first ipv6 address will be used. Defaults to false preferring ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.

  • Type: bool

  • Default value: false

  • Liveness: False

Default directories¶

If you have changed any of the default directories during installation, make sure you have root access and set these properties.

workdir,W¶

The directory in which Scylla will put all its subdirectories. The location of individual subdirs can be overridden by the respective *_directory options.

  • Default value: "/var/lib/scylla"

  • Liveness: False

commitlog_directory¶

The directory where the commit log is stored. For optimal write performance, it is recommended the commit log be on a separate disk partition (ideally, a separate physical device) from the data file directories.

  • Type: sstring

  • Default value: ""

  • Liveness: False

schema_commitlog_directory¶

The directory where the schema commit log is stored. This is a special commitlog instance used for schema and system tables. For optimal write performance, it is recommended the commit log be on a separate disk partition (ideally, a separate physical device) from the data file directories.

  • Type: sstring

  • Default value: ""

  • Liveness: False

data_file_directories¶

The directory location where table data (SSTables) is stored.

  • Type: string_list

  • Default value: { }

  • Liveness: False

data_file_capacity¶

Total capacity in bytes for storing data files. Used by tablet load balancer to compute storage utilization. If not set, will use file system’s capacity.

  • Type: uint64_t

  • Default value: 0

  • Liveness: True

hints_directory¶

The directory where hints files are stored if hinted handoff is enabled.

  • Type: sstring

  • Default value: ""

  • Liveness: False

view_hints_directory¶

The directory where materialized-view updates are stored while a view replica is unreachable.

  • Type: sstring

  • Default value: ""

  • Liveness: False

Common initialization properties¶

Be sure to set the properties in the Quick start section as well.

endpoint_snitch¶
Set to a class that implements the IEndpointSnitch. Scylla uses snitches for locating nodes and routing requests.
  • SimpleSnitch: Use for single-data center deployments or single-zone in public clouds. Does not recognize data center or rack information. It treats strategy order as proximity, which can improve cache locality when disabling read repair.

  • GossipingPropertyFileSnitch: Recommended for production. The rack and data center for the local node are defined in the cassandra-rackdc.properties file and propagated to other nodes via gossip. To allow migration from the PropertyFileSnitch, it uses the cassandra-topology.properties file if it is present.

  • Ec2Snitch: For EC2 deployments in a single region. Loads region and availability zone information from the EC2 API. The region is treated as the data center and the availability zone as the rack. Uses only private IPs. Subsequently it does not work across multiple regions.

  • Ec2MultiRegionSnitch: Uses public IPs as the broadcast_address to allow cross-region connectivity. This means you must also set seed addresses to the public IP and open the storage_port or ssl_storage_port on the public IP firewall. For intra-region traffic, Scylla switches to the private IP after establishing a connection.

  • GoogleCloudSnitch: For deployments on Google Cloud Platform across one or more regions. The region is treated as a datacenter and the availability zone is treated as a rack within the datacenter. The communication should occur over private IPs within the same logical network.

  • RackInferringSnitch: Proximity is determined by rack and data center, which are assumed to correspond to the 3rd and 2nd octet of each node’s IP address, respectively. This snitch is best used as an example for writing a custom snitch class (unless this happens to match your deployment conventions).

Related information: Snitches

  • Type: sstring

  • Default value: "org.apache.cassandra.locator.SimpleSnitch"

  • Liveness: False

rpc_address¶
The listen address for client connections (native transport).Valid values are:
  • unset: Resolves the address using the hostname configuration of the node. If left unset, the hostname must resolve to the IP address of this node using /etc/hostname, /etc/hosts, or DNS.

  • 0.0.0.0: Listens on all configured interfaces, but you must set the broadcast_rpc_address to a value other than 0.0.0.0.

  • IP address

  • hostname

Related information: Network

  • Type: sstring

  • Default value: "localhost"

  • Liveness: False

rpc_interface_prefer_ipv6¶

If you choose to specify the interface by name and the interface has an ipv4 and an ipv6 address you can specify which should be chosen using rpc_interface_prefer_ipv6. If false the first ipv4 address will be used. If true the first ipv6 address will be used. Defaults to false preferring ipv4. If there is only one address it will be selected regardless of ipv4/ipv6.

  • Type: bool

  • Default value: false

  • Liveness: False

seed_provider¶

The addresses of hosts deemed contact points. Scylla nodes use the -seeds list to find each other and learn the topology of the ring.

  • class_name (Default: org.apache.cassandra.locator.SimpleSeedProvider): The class within Scylla that handles the seed logic. It can be customized, but this is typically not required.

  • seeds (Default: 127.0.0.1): A comma-delimited list of IP addresses used by gossip for bootstrapping new nodes joining a cluster. When running multiple nodes, you must change the list from the default value. In multiple data-center clusters, the seed list should include at least one node from each data center (replication group). More than a single seed node per data center is recommended for fault tolerance. Otherwise, gossip has to communicate with another data center when bootstrapping a node. Making every node a seed node is not recommended because of increased maintenance and reduced gossip performance. Gossip optimization is not critical, but it is recommended to use a small seed list (approximately three nodes per data center).

Related information: Initializing a multiple node cluster (single data center) and Initializing a multiple node cluster (multiple data centers).

  • Type: seed_provider_type

  • Default value: seed_provider_type("org.apache.cassandra.locator.SimpleSeedProvider")

  • Liveness: False

Common compaction settings¶

Be sure to set the properties in the Quick start section as well.

compaction_throughput_mb_per_sec¶

Throttles compaction to the specified total throughput across the entire system. The faster you insert data, the faster you need to compact in order to keep the SSTable count down. The recommended Value is 16 to 32 times the rate of write throughput (in MBs/second). Setting the value to 0 disables compaction throttling.

Related information: Configuring compaction

  • Type: uint32_t

  • Default value: 0

  • Liveness: True

compaction_large_partition_warning_threshold_mb¶

Log a warning when writing partitions larger than this value.

  • Type: uint32_t

  • Default value: 1000

  • Liveness: True

compaction_large_row_warning_threshold_mb¶

Log a warning when writing rows larger than this value.

  • Type: uint32_t

  • Default value: 10

  • Liveness: True

compaction_large_cell_warning_threshold_mb¶

Log a warning when writing cells larger than this value.

  • Type: uint32_t

  • Default value: 1

  • Liveness: True

compaction_rows_count_warning_threshold¶

Log a warning when writing a number of rows larger than this value.

  • Type: uint32_t

  • Default value: 100000

  • Liveness: True

compaction_collection_elements_count_warning_threshold¶

Log a warning when writing a collection containing more elements than this value.

  • Type: uint32_t

  • Default value: 10000

  • Liveness: True

Common automatic backup settings¶

incremental_backups¶

Backs up data updated since the last snapshot was taken. When enabled, Scylla creates a hard link to each SSTable flushed or streamed locally in a backups/ subdirectory of the keyspace data. Removing these links is the operator’s responsibility.

Related information: Enabling incremental backups

  • Type: bool

  • Default value: false

  • Liveness: False

Common fault detection setting¶

phi_convict_threshold¶

Adjusts the sensitivity of the failure detector on an exponential scale. Generally this setting never needs adjusting.

Related information: Failure detection and recovery

  • Type: uint32_t

  • Default value: 8

  • Liveness: False

failure_detector_timeout_in_ms¶

Maximum time between two successful echo message before gossip mark a node down in milliseconds.

  • Type: uint32_t

  • Default value: 20 * 1000

  • Liveness: True

direct_failure_detector_ping_timeout_in_ms¶
Duration after which the direct failure detector aborts a ping message, so the next ping can start.

Note: this failure detector is used by Raft, and is different from gossiper’s failure detector (configured by failure_detector_timeout_in_ms).

  • Type: uint32_t

  • Default value: 600

  • Liveness: False

Commit log settings¶

commitlog_sync¶
The method that Scylla uses to acknowledge writes in milliseconds:
  • periodic: Used with commitlog_sync_period_in_ms (Default: 10000 - 10 seconds ) to control how often the commit log is synchronized to disk. Periodic syncs are acknowledged immediately.

  • batch: Used with commitlog_sync_batch_window_in_ms (Default: disabled **) to control how long Scylla waits for other writes before performing a sync. When using this method, writes are not acknowledged until fsynced to disk.

Related information: Durability

  • Type: sstring

  • Default value: "periodic"

  • Liveness: False

commitlog_segment_size_in_mb¶

Sets the size of the individual commitlog file segments. A commitlog segment may be archived, deleted, or recycled after all its data has been flushed to SSTables. This amount of data can potentially include commitlog segments from every table in the system. The default size is usually suitable for most commitlog archiving, but if you want a finer granularity, 8 or 16 MB is reasonable. See Commit log archive configuration.

Related information: Commit log archive configuration

  • Type: uint32_t

  • Default value: 64

  • Liveness: False

schema_commitlog_segment_size_in_mb¶

Sets the size of the individual schema commitlog file segments. The default size is larger than the default size of the data commitlog because the segment size puts a limit on the mutation size that can be written at once, and some schema mutation writes are much larger than average.

Related information: Commit log archive configuration

  • Type: uint32_t

  • Default value: 128

  • Liveness: False

commitlog_sync_period_in_ms¶

Controls how long the system waits for other writes before performing a sync in periodic mode.

  • Type: uint32_t

  • Default value: 10000

  • Liveness: False

commitlog_sync_batch_window_in_ms¶

Controls how long the system waits for other writes before performing a sync in batch mode.

  • Type: uint32_t

  • Default value: 10000

  • Liveness: False

commitlog_max_data_lifetime_in_seconds¶

Controls how long data remains in commit log before the system tries to evict it to sstable, regardless of usage pressure. (0 disables)

  • Type: uint32_t

  • Default value: 24*60*60

  • Liveness: True

commitlog_total_space_in_mb¶

Total space used for commitlogs. If the used space goes above this value, Scylla rounds up to the next nearest segment multiple and flushes memtables to disk for the oldest commitlog segments, removing those log segments. This reduces the amount of data to replay on startup, and prevents infrequently-updated tables from indefinitely keeping commitlog segments. A small total commitlog space tends to cause more flush activity on less-active tables.

Related information: Configuring memtable throughput

  • Type: int64_t

  • Default value: -1

  • Liveness: False

commitlog_flush_threshold_in_mb¶

Threshold for commitlog disk usage. When used disk space goes above this value, Scylla initiates flushes of memtables to disk for the oldest commitlog segments, removing those log segments. Adjusting this affects disk usage vs. write latency. Default is (approximately) commitlog_total_space_in_mb - <num shards>*commitlog_segment_size_in_mb.

  • Type: int64_t

  • Default value: -1

  • Liveness: False

commitlog_use_o_dsync¶

Whether or not to use O_DSYNC mode for commitlog segments IO. Can improve commitlog latency on some file systems.

  • Type: bool

  • Default value: true

  • Liveness: False

commitlog_use_fragmented_entries¶

Whether or not to allow commitlog entries to fragment across segments, allowing for larger entry sizes.

  • Type: bool

  • Default value: true

  • Liveness: False

Compaction settings¶

Related information: Configuring compaction

defragment_memory_on_idle¶

When set to true, will defragment memory when the cpu is idle. This reduces the amount of work Scylla performs when processing client requests.

  • Type: bool

  • Default value: false

  • Liveness: False

Cache and index settings¶

column_index_size_in_kb¶

Granularity of the index of rows within a partition. For huge rows, decrease this setting to improve seek time. If you use key cache, be careful not to make this setting too large because key cache will be overwhelmed. If you’re unsure of the size of the rows, it’s best to use the default setting.

  • Type: uint32_t

  • Default value: 64

  • Liveness: False

column_index_auto_scale_threshold_in_kb¶

Auto-reduce the promoted index granularity by half when reaching this threshold, to prevent promoted index bloating due to partitions with too many rows. Set to 0 to disable this feature.

  • Type: uint32_t

  • Default value: 10240

  • Liveness: True

Disks settings¶

stream_io_throughput_mb_per_sec¶

Throttles streaming I/O to the specified total throughput (in MiBs/s) across the entire system. Streaming I/O includes the one performed by repair and both RBNO and legacy topology operations such as adding or removing a node. Setting the value to 0 disables stream throttling.

  • Type: uint32_t

  • Default value: 0

  • Liveness: True

stream_plan_ranges_fraction¶

Specify the fraction of ranges to stream in a single stream plan. Value is between 0 and 1.

  • Type: double

  • Default value: 0.1

  • Liveness: True

enable_file_stream¶

Set true to use file based stream for tablet instead of mutation based stream

  • Type: bool

  • Default value: true

  • Liveness: True

Advanced initialization properties¶

Properties for advanced users or properties that are less commonly used.

auto_bootstrap¶
This setting has been removed from default configuration. It makes new (non-seed) nodes automatically migrate the right data to themselves. Do not set this to false unless you really know what you are doing.

Related information: Initializing a multiple node cluster (single data center) and Initializing a multiple node cluster (multiple data centers).

  • Type: bool

  • Default value: true

  • Liveness: False

batch_size_warn_threshold_in_kb¶

Log WARN on any batch size exceeding this value in kilobytes. Caution should be taken on increasing the size of this threshold as it can lead to node instability.

  • Type: uint32_t

  • Default value: 128

  • Liveness: False

batch_size_fail_threshold_in_kb¶

Fail any multiple-partition batch exceeding this value. 1 MiB (8x warn threshold) by default.

  • Type: uint32_t

  • Default value: 1024

  • Liveness: False

broadcast_address¶
The IP address a node tells other nodes in the cluster to contact it by. It allows public and private address to be different. For example, use the broadcast_address parameter in topologies where not all nodes have access to other nodes by their private IP addresses.

If your Scylla cluster is deployed across multiple Amazon EC2 regions and you use the EC2MultiRegionSnitch , set the broadcast_address to public IP address of the node and the listen_address to the private IP.

  • Type: sstring

  • Default value: {}

  • Liveness: False

listen_on_broadcast_address¶

When using multiple physical network interfaces, set this to true to listen on broadcast_address in addition to the listen_address, allowing nodes to communicate in both interfaces. Ignore this property if the network configuration automatically routes between the public and private networks such as EC2.

  • Type: bool

  • Default value: false

  • Liveness: False

initial_token¶
Used in the single-node-per-token architecture, where a node owns exactly one contiguous range in the ring space. Setting this property overrides num_tokens.

If you not using vnodes or have num_tokens set it to 1 or unspecified (#num_tokens), you should always specify this parameter when setting up a production cluster for the first time and when adding capacity. For more information, see this parameter in the Cassandra 1.1 Node and Cluster Configuration documentation. This parameter can be used with num_tokens (vnodes) in special cases such as Restoring from a snapshot.

  • Type: sstring

  • Default value: {}

  • Liveness: False

num_tokens¶
Defines the number of tokens randomly assigned to this node on the ring when using virtual nodes (vnodes). The more tokens, relative to other nodes, the larger the proportion of data that the node stores. Generally all nodes should have the same number of tokens assuming equal hardware capability. The recommended value is 256. If unspecified (#num_tokens), Scylla uses 1 (equivalent to #num_tokens1) for legacy compatibility and uses the initial_token setting.

If not using vnodes, comment #num_tokens : 256 or set num_tokens : 1 and use initial_token. If you already have an existing cluster with one token per node and wish to migrate to vnodes, see Enabling virtual nodes on an existing production cluster.

Note

If using DataStax Enterprise, the default setting of this property depends on the type of node and type of install.

  • Type: uint32_t

  • Default value: 1

  • Liveness: False

partitioner¶

Distributes rows (by partition key) across all nodes in the cluster. At the moment, only Murmur3Partitioner is supported. For new clusters use the default partitioner.

Related information: Partitioners

  • Type: sstring

  • Default value: "org.apache.cassandra.dht.Murmur3Partitioner"

  • Liveness: False

storage_port¶

The port for inter-node communication.

  • Type: uint16_t

  • Default value: 7000

  • Liveness: False

Advanced automatic backup setting¶

auto_snapshot¶

Enable or disable whether a snapshot is taken of the data before keyspace truncation or dropping of tables. To prevent data loss, using the default setting is strongly advised. If you set to false, you will lose data on truncation or drop.

  • Type: bool

  • Default value: true

  • Liveness: False

Tombstone settings¶

When executing a scan, within or across a partition, tombstones must be kept in memory to allow returning them to the coordinator. The coordinator uses them to ensure other replicas know about the deleted rows. Workloads that generate numerous tombstones may cause performance problems and exhaust the server heap. See Cassandra anti-patterns: Queues and queue-like datasets. Adjust these thresholds only if you understand the impact and want to scan more tombstones. Additionally, you can adjust these thresholds at runtime using the StorageServiceMBean. Related information: Cassandra anti-patterns: Queues and queue-like datasets.

tombstone_warn_threshold¶

The maximum number of tombstones a query can scan before warning. Tombstone warnings are only logged for single-partition queries. Tombstone logs for range-scans are logged with debug level (querier logger), as it is normal for range-scans to go through many tombstones.

  • Type: uint32_t

  • Default value: 1000

  • Liveness: False

query_tombstone_page_limit¶

The number of tombstones after which a query cuts a page, even if not full or even empty.

  • Type: uint64_t

  • Default value: 10000

  • Liveness: True

query_page_size_in_bytes¶

The size of pages in bytes, after a page accumulates this much data, the page is cut and sent to the client. Setting a too large value increases the risk of OOM.

  • Type: uint64_t

  • Default value: 1 << 20

  • Liveness: True

group0_tombstone_gc_refresh_interval_in_ms¶

The interval in milliseconds at which we update the time point for safe tombstone expiration in group0 tables.

  • Type: uint32_t

  • Default value: std::chrono::duration_cast<std::chrono::milliseconds>(60min).count()

  • Liveness: False

Network timeout settings¶

range_request_timeout_in_ms¶

The time in milliseconds that the coordinator waits for sequential or index scans to complete.

  • Type: uint32_t

  • Default value: 10000

  • Liveness: True

read_request_timeout_in_ms¶

The time that the coordinator waits for read operations to complete

  • Type: uint32_t

  • Default value: 5000

  • Liveness: True

counter_write_request_timeout_in_ms¶

The time that the coordinator waits for counter writes to complete.

  • Type: uint32_t

  • Default value: 5000

  • Liveness: True

cas_contention_timeout_in_ms¶

The time that the coordinator continues to retry a CAS (compare and set) operation that contends with other proposals for the same row.

  • Type: uint32_t

  • Default value: 1000

  • Liveness: True

truncate_request_timeout_in_ms¶

The time that the coordinator waits for truncates (remove all data from a table) to complete. The long default value allows for a snapshot to be taken before removing the data. If auto_snapshot is disabled (not recommended), you can reduce this time.

  • Type: uint32_t

  • Default value: 60000

  • Liveness: True

write_request_timeout_in_ms¶

The time in milliseconds that the coordinator waits for write operations to complete.

Related information: About hinted handoff writes

  • Type: uint32_t

  • Default value: 2000

  • Liveness: True

request_timeout_in_ms¶

The default timeout for other, miscellaneous operations.

Related information: About hinted handoff writes

  • Type: uint32_t

  • Default value: 10000

  • Liveness: True

Inter-node settings¶

internode_compression¶
Controls whether traffic between nodes is compressed. The valid values are:
  • all: All traffic is compressed.

  • dc : Traffic between data centers is compressed.

  • none : No compression.

  • Type: sstring

  • Default value: "none"

  • Liveness: False

internode_compression_zstd_max_cpu_fraction¶
ZSTD compression of RPC will consume at most this fraction of each internode_compression_zstd_quota_refresh_period_ms time slice.

If you wish to try out zstd for RPC compression, 0.05 is a reasonable starting point.

  • Type: float

  • Default value: 0.000

  • Liveness: True

internode_compression_zstd_cpu_quota_refresh_period_ms¶

Advanced. ZSTD compression of RPC will consume at most internode_compression_zstd_max_cpu_fraction (plus one message) of in each time slice of this length.

  • Type: uint32_t

  • Default value: 20

  • Liveness: True

internode_compression_zstd_max_longterm_cpu_fraction¶

ZSTD compression of RPC will consume at most this fraction of each internode_compression_zstd_longterm_cpu_quota_refresh_period_ms time slice.

  • Type: float

  • Default value: 1.000

  • Liveness: True

internode_compression_zstd_longterm_cpu_quota_refresh_period_ms¶

Advanced. ZSTD compression of RPC will consume at most internode_compression_zstd_max_longterm_cpu_fraction (plus one message) of in each time slice of this length.

  • Type: uint32_t

  • Default value: 10000

  • Liveness: True

internode_compression_zstd_min_message_size¶

Minimum RPC message size which can be compressed with ZSTD. Messages smaller than this threshold will always be compressed with LZ4. ZSTD has high per-message overhead, and might be a bad choice for small messages. This knob allows for some experimentation with that.

  • Type: uint32_t

  • Default value: 1024

  • Liveness: True

internode_compression_zstd_max_message_size¶

Maximum RPC message size which can be compressed with ZSTD. RPC messages might be large, but they are always compressed at once. This might cause reactor stalls. If this happens, this option can be used to make the stalls less severe.

  • Type: uint32_t

  • Default value: std::numeric_limits<uint32_t>::max()

  • Liveness: True

internode_compression_checksumming¶

Computes and checks checksums for compressed RPC frames. This is a paranoid precaution against corruption bugs in the compression protocol.

  • Type: bool

  • Default value: true

  • Liveness: True

internode_compression_algorithms¶

Specifies RPC compression algorithms supported by this node.

  • Type: utils::advanced_rpc_compressor::tracker::algo_config

  • Default value: { utils::compression_algorithm::type::ZSTD, utils::compression_algorithm::type::LZ4, }

  • Liveness: True

internode_compression_enable_advanced¶

Enables the new implementation of RPC compression. If disabled, Scylla will fall back to the old implementation.

  • Type: bool

  • Default value: false

  • Liveness: True

rpc_dict_training_when¶
Specifies when RPC compression dictionary training is performed by this node.
  • never disables it unconditionally.

  • when_leader enables it only whenever the node is the Raft leader.

  • always (not recommended) enables it unconditionally.

Training shouldn’t be enabled on more than one node at a time, because overly-frequent dictionary announcements might indefinitely delay nodes from agreeing on a new dictionary.

  • Type: enum_option<utils::dict_training_loop::when>

  • Default value: utils::dict_training_loop::when::type::NEVER

  • Liveness: True

rpc_dict_training_min_time_seconds¶

Specifies the minimum duration of RPC compression dictionary training.

  • Type: uint32_t

  • Default value: 3600

  • Liveness: True

rpc_dict_training_min_bytes¶

Specifies the minimum volume of RPC compression dictionary training.

  • Type: uint64_t

  • Default value: 1'000'000'000

  • Liveness: True

inter_dc_tcp_nodelay¶

Enable or disable tcp_nodelay for inter-data center communication. When disabled larger, but fewer, network packets are sent. This reduces overhead from the TCP protocol itself. However, if cross data-center responses are blocked, it will increase latency.

  • Type: bool

  • Default value: false

  • Liveness: False

Native transport (CQL Binary Protocol)¶

start_native_transport¶

Enable or disable the native transport server. Uses the same address as the rpc_address, but the port is different from the rpc_port. See native_transport_port.

  • Type: bool

  • Default value: true

  • Liveness: False

native_transport_port¶

Port on which the CQL native transport listens for clients.

  • Type: uint16_t

  • Default value: 9042

  • Liveness: False

maintenance_socket¶
The Unix Domain Socket the node uses for maintenance socket.

The possible options are: tignore the node will not open the maintenance socket. tworkdir the node will open the maintenance socket on the path <scylla’s workdir>/cql.m, t where <scylla’s workdir> is a path defined by the workdir configuration option t<socket path> the node will open the maintenance socket on the path <socket path>

  • Type: sstring

  • Default value: "ignore"

  • Liveness: False

maintenance_socket_group¶

The group that the maintenance socket will be owned by. If not set, the group will be the same as the user running the scylla node.

  • Type: sstring

  • Default value: ""

  • Liveness: False

maintenance_mode¶

If set to true, the node will not connect to other nodes. It will only serve requests to its local data.

  • Type: bool

  • Default value: false

  • Liveness: False

native_transport_port_ssl¶

Port on which the CQL TLS native transport listens for clients. Enabling client encryption and keeping native_transport_port_ssl disabled will use encryption for native_transport_port. Setting native_transport_port_ssl to a different value from native_transport_port will use encryption for native_transport_port_ssl while keeping native_transport_port unencrypted.

  • Type: uint16_t

  • Default value: 9142

  • Liveness: False

native_shard_aware_transport_port¶

Like native_transport_port, but clients-side port number (modulo smp) is used to route the connection to the specific shard.

  • Type: uint16_t

  • Default value: 19042

  • Liveness: False

native_shard_aware_transport_port_ssl¶

Like native_transport_port_ssl, but clients-side port number (modulo smp) is used to route the connection to the specific shard.

  • Type: uint16_t

  • Default value: 19142

  • Liveness: False

RPC (remote procedure call) settings¶

Settings for configuring and tuning client connections.

broadcast_rpc_address¶

RPC address to broadcast to drivers and other Scylla nodes. This cannot be set to 0.0.0.0. If blank, it is set to the value of the rpc_address or rpc_interface. If rpc_address or rpc_interfaceis set to 0.0.0.0, this property must be set.

  • Type: sstring

  • Default value: {}

  • Liveness: False

rpc_keepalive¶

Enable or disable keepalive on client connections (CQL native, Redis and the maintenance socket).

  • Type: bool

  • Default value: true

  • Liveness: False

cache_hit_rate_read_balancing¶

This boolean controls whether the replicas for read query will be chosen based on cache hit ratio.

  • Type: bool

  • Default value: true

  • Liveness: False

Advanced fault detection settings¶

Settings to handle poorly performing or failing nodes.

hinted_handoff_enabled¶
Enable or disable hinted handoff. To enable per data center, add data center list. For example: hinted_handoff_enabled: DC1,DC2. A hint indicates that the write needs to be replayed to an unavailable node.

Related information: About hinted handoff writes

  • Type: hinted_handoff_enabled_type

  • Default value: db::config::hinted_handoff_enabled_type(db::config::hinted_handoff_enabled_type::enabled_for_all_tag())

  • Liveness: False

max_hinted_handoff_concurrency¶

Maximum concurrency allowed for sending hints. The concurrency is divided across shards and rounded up if not divisible by the number of shards. By default (or when set to 0), concurrency of 8*shard_count will be used.

  • Type: uint32_t

  • Default value: 0

  • Liveness: True

max_hint_window_in_ms¶

Maximum amount of time that hints are generates hints for an unresponsive node. After this interval, new hints are no longer generated until the node is back up and responsive. If the node goes down again, a new interval begins. This setting can prevent a sudden demand for resources when a node is brought back online and the rest of the cluster attempts to replay a large volume of hinted writes.

Related information: Failure detection and recovery

  • Type: uint32_t

  • Default value: 10800000

  • Liveness: False

batchlog_replay_cleanup_after_replays¶

Clean up batchlog memtable after every N replays. Replays are issued on a timer, every 60 seconds. So if batchlog_replay_cleanup_after_replays is set to 60, the batchlog memtable is flushed every 60 * 60 seconds.

  • Type: uint32_t

  • Default value: 60

  • Liveness: True

Security properties¶

Server and client security settings.

authenticator¶
The authentication backend, used to identify users. The available authenticators are:
  • org.apache.cassandra.auth.AllowAllAuthenticator: Disables authentication; no checks are performed.

  • org.apache.cassandra.auth.PasswordAuthenticator: Authenticates users with user names and hashed passwords stored in the system_auth.credentials table. If you use the default, 1, and the node with the lone replica goes down, you will not be able to log into the cluster because the system_auth keyspace was not replicated.

  • com.scylladb.auth.CertificateAuthenticator: Authenticates users based on TLS certificate authentication subject. Roles and permissions still need to be defined as normal. Super user can be set using the ‘auth_superuser_name’ configuration value. Query to extract role name from subject string is set using ‘auth_certificate_role_queries’.

  • com.scylladb.auth.TransitionalAuthenticator: Wraps around the PasswordAuthenticator, logging them in if username/password pair provided is correct and treating them as anonymous users otherwise.

  • com.scylladb.auth.SaslauthdAuthenticator : Use saslauthd for authentication.

Related information: Internal authentication

  • Type: sstring

  • Default value: "org.apache.cassandra.auth.AllowAllAuthenticator"

  • Liveness: False

authorizer¶
The authorization backend. It implements IAuthenticator, which limits access and provides permissions. The available authorizers are:
  • AllowAllAuthorizer: Disables authorization; allows any action to any user.

  • CassandraAuthorizer: Stores permissions in system_auth.permissions table. If you use the default, 1, and the node with the lone replica goes down, you will not be able to log into the cluster because the system_auth keyspace was not replicated.

  • com.scylladb.auth.TransitionalAuthorizer: Wraps around the CassandraAuthorizer, which is used to authorize permission management. Other actions are allowed for all users.

Related information: Object permissions

  • Type: sstring

  • Default value: "org.apache.cassandra.auth.AllowAllAuthorizer"

  • Liveness: False

role_manager¶
The role-management backend, used to maintain grants and memberships between roles. The available role-managers are:
  • org.apache.cassandra.auth.CassandraRoleManager : Stores role data in the system_auth keyspace;

  • com.scylladb.auth.LDAPRoleManager : Fetches role data from an LDAP server;

  • Type: sstring

  • Default value: "org.apache.cassandra.auth.CassandraRoleManager"

  • Liveness: False

permissions_validity_in_ms¶

How long permissions in cache remain valid. Depending on the authorizer, such as CassandraAuthorizer, fetching permissions can be resource intensive. Permissions caching is disabled when this property is set to 0 or when AllowAllAuthorizer is used. The cached value is considered valid as long as both its value is not older than the permissions_validity_in_ms and the cached value has been read at least once during the permissions_validity_in_ms time frame. If any of these two conditions doesn’t hold the cached value is going to be evicted from the cache.

Related information: Object permissions

  • Type: uint32_t

  • Default value: 10000

  • Liveness: True

permissions_update_interval_in_ms¶

Refresh interval for permissions cache (if enabled). After this interval, cache entries become eligible for refresh. An async reload is scheduled every permissions_update_interval_in_ms time period and the old value is returned until it completes. If permissions_validity_in_ms has a non-zero value, then this property must also have a non-zero value. It’s recommended to set this value to be at least 3 times smaller than the permissions_validity_in_ms.

  • Type: uint32_t

  • Default value: 2000

  • Liveness: True

permissions_cache_max_entries¶

Maximum cached permission entries. Must have a non-zero value if permissions caching is enabled (see a permissions_validity_in_ms description).

  • Type: uint32_t

  • Default value: 1000

  • Liveness: True

server_encryption_options¶
Enable or disable inter-node encryption. You must also generate keys and provide the appropriate key and trust store locations and passwords. The available options are:
  • internode_encryption: (Default: none) Enable or disable encryption of inter-node communication using the TLS_RSA_WITH_AES_128_CBC_SHA cipher suite for authentication, key exchange, and encryption of data transfers. The available inter-node options are:
    • all: Encrypt all inter-node communications.

    • none: No encryption.

    • dc: Encrypt the traffic between the data centers (server only).

    • rack: Encrypt the traffic between the racks(server only).

  • certificate: (Default: conf/scylla.crt) The location of a PEM-encoded x509 certificate used to identify and encrypt the internode communication.

  • keyfile: (Default: conf/scylla.key) PEM Key file associated with certificate.

  • truststore: (Default: <not set, use system truststore> ) Location of the truststore containing the trusted certificate for authenticating remote servers.

  • certficate_revocation_list: (Default: <not set>) PEM encoded certificate revocation list.

The advanced settings are:

  • priority_string: (Default: not set, use default) GnuTLS priority string controlling TLS algorithms used/allowed.

  • require_client_auth: (Default: false ) Enables or disables certificate authentication.

Related information: Node-to-node encryption

  • Type: string_map

  • Default value: {}

  • Liveness: False

client_encryption_options¶
Enable or disable client-to-node encryption. You must also generate keys and provide the appropriate key and certificate. The available options are:
  • enabled: (Default: false) To enable, set to true.

  • certificate: (Default: conf/scylla.crt) The location of a PEM-encoded x509 certificate used to identify and encrypt the client/server communication.

  • keyfile: (Default: conf/scylla.key) PEM Key file associated with certificate.

  • truststore: (Default: <not set. use system truststore>) Location of the truststore containing the trusted certificate for authenticating remote servers.

  • certficate_revocation_list: (Default: <not set> ) PEM encoded certificate revocation list.

The advanced settings are:

  • priority_string: (Default: not set, use default) GnuTLS priority string controlling TLS algorithms used/allowed.

  • require_client_auth: (Default: false) Enables or disables certificate authentication.

  • enable_session_tickets: (Default: false) Enables or disables TLS1.3 session tickets.

Related information: Client-to-node encryption

  • Type: string_map

  • Default value: {}

  • Liveness: False

alternator_encryption_options¶
When Alternator via HTTPS is enabled with alternator_https_port, where to take the key and certificate. The available options are:
  • certificate: (Default: conf/scylla.crt) The location of a PEM-encoded x509 certificate used to identify and encrypt the client/server communication.

  • keyfile: (Default: conf/scylla.key) PEM Key file associated with certificate.

The advanced settings are:

  • priority_string: GnuTLS priority string controlling TLS algorithms used/allowed.

  • enable_session_tickets: (Default: false) Enables or disables TLS1.3 session tickets.

  • Type: string_map

  • Default value: {}

  • Liveness: False

ssl_storage_port¶

The SSL port for encrypted communication. Unused unless enabled in encryption_options.

  • Type: uint32_t

  • Default value: 7001

  • Liveness: False

enable_in_memory_data_store¶

Enable in memory mode (system tables are always persisted).

  • Type: bool

  • Default value: false

  • Liveness: False

enable_cache¶

Enable cache.

  • Type: bool

  • Default value: true

  • Liveness: False

enable_commitlog¶

Enable commitlog.

  • Type: bool

  • Default value: true

  • Liveness: False

volatile_system_keyspace_for_testing¶

Don’t persist system keyspace - testing only!

  • Type: bool

  • Default value: false

  • Liveness: False

api_port¶

Http Rest API port.

  • Type: uint16_t

  • Default value: 10000

  • Liveness: False

api_address¶

Http Rest API address.

  • Type: sstring

  • Default value: ""

  • Liveness: False

api_ui_dir¶

The directory location of the API GUI.

  • Type: sstring

  • Default value: "swagger-ui/dist/"

  • Liveness: False

api_doc_dir¶

The API definition file directory.

  • Type: sstring

  • Default value: "api/api-doc/"

  • Liveness: False

consistent_rangemovement¶

When set to true, range movements will be consistent. It means: 1) it will refuse to bootstrap a new node if other bootstrapping/leaving/moving nodes detected. 2) data will be streamed to a new node only from the node which is no longer responsible for the token range. Same as -Dcassandra.consistent.rangemovement in cassandra.

  • Type: bool

  • Default value: true

  • Liveness: False

join_ring¶

When set to true, a node will join the token ring. When set to false, a node will not join the token ring. This option cannot be changed after a node joins the cluster. If set to false, it overwrites the num_tokens and initial_token options. Setting to false is supported only if the cluster uses the raft-managed topology.

  • Type: bool

  • Default value: true

  • Liveness: False

load_ring_state¶

When set to true, load tokens and host_ids previously saved. Same as -Dcassandra.load_ring_state in cassandra.

  • Type: bool

  • Default value: true

  • Liveness: False

replace_node_first_boot¶

The Host ID of a dead node to replace. If the replacing node has already been bootstrapped successfully, this option will be ignored.

  • Type: sstring

  • Default value: ""

  • Liveness: False

replace_address¶

[[deprecated]] The listen_address or broadcast_address of the dead node to replace. Same as -Dcassandra.replace_address.

  • Type: sstring

  • Default value: ""

  • Liveness: False

replace_address_first_boot¶

[[deprecated]] Like replace_address option, but if the node has been bootstrapped successfully it will be ignored. Same as -Dcassandra.replace_address_first_boot.

  • Type: sstring

  • Default value: ""

  • Liveness: False

ignore_dead_nodes_for_replace¶

List dead nodes to ignore for replace operation using a comma-separated list of host IDs. E.g., scylla –ignore-dead-nodes-for-replace 8d5ed9f4-7764-4dbd-bad8-43fddce94b7c,125ed9f4-7777-1dbn-mac8-43fddce9123e

  • Type: sstring

  • Default value: ""

  • Liveness: False

enable_repair_based_node_ops¶

Set true to use enable repair based node operations instead of streaming based.

  • Type: bool

  • Default value: true

  • Liveness: True

allowed_repair_based_node_ops¶

A comma separated list of node operations which are allowed to enable repair based node operations. The operations can be bootstrap, replace, removenode, decommission and rebuild.

  • Type: sstring

  • Default value: "replace,removenode,rebuild,bootstrap,decommission"

  • Liveness: True

enable_compacting_data_for_streaming_and_repair¶

Enable the compacting reader, which compacts the data for streaming and repair (load’n’stream included) before sending it to, or synchronizing it with peers. Can reduce the amount of data to be processed by removing dead data, but adds CPU overhead.

  • Type: bool

  • Default value: true

  • Liveness: True

enable_tombstone_gc_for_streaming_and_repair¶

If the compacting reader is enabled for streaming and repair (see enable_compacting_data_for_streaming_and_repair), allow it to garbage-collect tombstones. This can reduce the amount of data repair has to process.

  • Type: bool

  • Default value: false

  • Liveness: True

repair_partition_count_estimation_ratio¶

Specify the fraction of partitions written by repair out of the total partitions. The value is currently only used for bloom filter estimation. Value is between 0 and 1.

  • Type: double

  • Default value: 0.1

  • Liveness: True

repair_hints_batchlog_flush_cache_time_in_ms¶

The repair hints and batchlog flush request cache time. Setting 0 disables the flush cache. The cache reduces the number of hints and batchlog flushes during repair when tombstone_gc is set to repair mode. When the cache is on, a slightly smaller repair time will be used with the benefits of dropped hints and batchlog flushes.

  • Type: uint32_t

  • Default value: 60 * 1000

  • Liveness: True

repair_multishard_reader_buffer_hint_size¶

The buffer size to use for the buffer-hint feature of the multishard reader when running repair in mixed-shard clusters. This can help the performance of mixed-shard repair (including RBNO). Set to 0 to disable the hint feature altogether.

  • Type: uint64_t

  • Default value: 1 * 1024 * 1024

  • Liveness: True

repair_multishard_reader_enable_read_ahead¶

The multishard reader has a read-ahead feature to improve latencies of range-scans. This feature can be detrimental when the multishard reader is used under repair, as is the case with repair in mixed-shard clusters. This configuration option is disabled by default and it serves as a fall-back, to re-enable read-ahead in case it turns out that some mixed-shard repair suffer from disabling it.

  • Type: uint64_t

  • Default value: false

  • Liveness: True

enable_small_table_optimization_for_rbno¶

Set true to enable small table optimization for repair based node operations

  • Type: bool

  • Default value: true

  • Liveness: True

ring_delay_ms¶

Time a node waits to hear from other nodes before joining the ring in milliseconds. Same as -Dcassandra.ring_delay_ms in cassandra.

  • Type: uint32_t

  • Default value: 30 * 1000

  • Liveness: False

shadow_round_ms¶

The maximum gossip shadow round time. Can be used to reduce the gossip feature check time during node boot up.

  • Type: uint32_t

  • Default value: 300 * 1000

  • Liveness: False

fd_max_interval_ms¶

The maximum failure_detector interval time in milliseconds. Interval larger than the maximum will be ignored. Larger cluster may need to increase the default.

  • Type: uint32_t

  • Default value: 2 * 1000

  • Liveness: False

fd_initial_value_ms¶

The initial failure_detector interval time in milliseconds.

  • Type: uint32_t

  • Default value: 2 * 1000

  • Liveness: False

shutdown_announce_in_ms¶

Time a node waits after sending gossip shutdown message in milliseconds. Same as -Dcassandra.shutdown_announce_in_ms in cassandra.

  • Type: uint32_t

  • Default value: 2 * 1000

  • Liveness: False

developer_mode¶

Relax environment checks. Setting to true can reduce performance and reliability significantly.

  • Type: bool

  • Default value: DEVELOPER_MODE_DEFAULT

  • Liveness: False

skip_wait_for_gossip_to_settle¶

An integer to configure the wait for gossip to settle. -1: wait normally, 0: do not wait at all, n: wait for at most n polls. Same as -Dcassandra.skip_wait_for_gossip_to_settle in cassandra.

  • Type: int32_t

  • Default value: -1

  • Liveness: False

force_gossip_generation¶

Force gossip to use the generation number provided by user.

  • Type: int32_t

  • Default value: -1

  • Liveness: True

lsa_reclamation_step¶

Minimum number of segments to reclaim in a single step.

  • Type: size_t

  • Default value: 1

  • Liveness: False

prometheus_port¶

Prometheus port, set to zero to disable.

  • Type: uint16_t

  • Default value: 9180

  • Liveness: False

prometheus_address¶

Prometheus listening address, defaulting to listen_address if not explicitly set.

  • Type: sstring

  • Default value: {}

  • Liveness: False

prometheus_prefix¶

Set the prefix of the exported Prometheus metrics. Changing this will break Scylla’s dashboard compatibility, do not change unless you know what you are doing.

  • Type: sstring

  • Default value: "scylla"

  • Liveness: False

prometheus_allow_protobuf¶

If set allows the experimental Prometheus protobuf with native histogram

  • Type: bool

  • Default value: false

  • Liveness: False

abort_on_lsa_bad_alloc¶

Abort when allocation in LSA region fails.

  • Type: bool

  • Default value: false

  • Liveness: False

murmur3_partitioner_ignore_msb_bits¶

Number of most significant token bits to ignore in murmur3 partitioner; increase for very large clusters.

  • Type: unsigned

  • Default value: default_murmur3_partitioner_ignore_msb_bits

  • Liveness: False

unspooled_dirty_soft_limit¶

Soft limit of unspooled dirty memory expressed as a portion of the hard limit.

  • Type: double

  • Default value: 0.6

  • Liveness: False

sstable_summary_ratio¶

Enforces that 1 byte of summary is written for every N (2000 by default) bytes written to data file. Value must be between 0 and 1.

  • Type: double

  • Default value: 0.0005

  • Liveness: False

components_memory_reclaim_threshold¶

Ratio of available memory for all in-memory components of SSTables in a shard beyond which the memory will be reclaimed from components until it falls back under the threshold. Currently, this limit is only enforced for bloom filters.

  • Type: double

  • Default value: .2

  • Liveness: True

large_memory_allocation_warning_threshold¶

Warn about memory allocations above this size; set to zero to disable.

  • Type: size_t

  • Default value: size_t(1) << 20

  • Liveness: False

enable_deprecated_partitioners¶

Enable the byteordered and random partitioners. These partitioners are deprecated and will be removed in a future version.

  • Type: bool

  • Default value: false

  • Liveness: False

enable_keyspace_column_family_metrics¶

Enable per keyspace and per column family metrics reporting.

  • Type: bool

  • Default value: false

  • Liveness: False

enable_node_aggregated_table_metrics¶

Enable aggregated per node, per keyspace and per table metrics reporting, applicable if enable_keyspace_column_family_metrics is false.

  • Type: bool

  • Default value: true

  • Liveness: False

enable_sstable_data_integrity_check¶

Enable interposer which checks for integrity of every sstable write. Performance is affected to some extent as a result. Useful to help debugging problems that may arise at another layers.

  • Type: bool

  • Default value: false

  • Liveness: False

enable_sstable_key_validation¶

Enable validation of partition and clustering keys monotonicity Performance is affected to some extent as a result. Useful to help debugging problems that may arise at another layers.

  • Type: bool

  • Default value: ENABLE_SSTABLE_KEY_VALIDATION

  • Liveness: False

cpu_scheduler¶

Enable cpu scheduling.

  • Type: bool

  • Default value: true

  • Liveness: False

view_building¶

Enable view building; should only be set to false when the node is experience issues due to view building.

  • Type: bool

  • Default value: true

  • Liveness: False

sstable_format¶

Default sstable file format

  • Type: sstring

  • Default value: "me"

  • Liveness: False

sstable_compression_dictionaries_enable_writing¶
Enables SSTable compression with shared dictionaries (for tables which opt in). If set to false, this node won’t write any new SSTables using dictionary compression.

Option meant not for regular usage, but for unforeseen problems that call for disabling dictionaries without modifying table schema.

  • Type: bool

  • Default value: true

  • Liveness: True

sstable_compression_dictionaries_memory_budget_fraction¶

Fall back to compression without dictionaries if RAM usage by dictionaries is greater or equal to this fraction of the shard’s memory.

  • Type: float

  • Default value: 0.01

  • Liveness: True

sstable_compression_dictionaries_retrain_period_in_seconds¶

Minimum age of the current compression dictionary before another dictionary for this table is trained.

  • Type: float

  • Default value: 86400

  • Liveness: True

sstable_compression_dictionaries_autotrainer_tick_period_in_seconds¶

The period with which automatic dictionary training is attempted.

  • Type: float

  • Default value: 900

  • Liveness: True

sstable_compression_dictionaries_min_training_dataset_bytes¶

The minimum size a table has to reach before dictionaries will be trained for it.

  • Type: uint64_t

  • Default value: 1*1024*1024*1024

  • Liveness: True

sstable_compression_dictionaries_min_training_improvement_factor¶

New dictionaries will be only published if the estimated compression ratio is smaller than current ratio multiplied by this factor.

  • Type: float

  • Default value: 0.95

  • Liveness: True

table_digest_insensitive_to_expiry¶

When enabled, per-table schema digest calculation ignores empty partitions.

  • Type: bool

  • Default value: true

  • Liveness: True

enable_dangerous_direct_import_of_cassandra_counters¶

Only turn this option on if you want to import tables from Cassandra containing counters, and you are SURE that no counters in that table were created in a version earlier than Cassandra 2.1. It is not enough to have ever since upgraded to newer versions of Cassandra. If you EVER used a version earlier than 2.1 in the cluster where these SSTables come from, DO NOT TURN ON THIS OPTION! You will corrupt your data. You have been warned.

  • Type: bool

  • Default value: false

  • Liveness: False

enable_shard_aware_drivers¶

Enable native transport drivers to use connection-per-shard for better performance.

  • Type: bool

  • Default value: true

  • Liveness: False

enable_ipv6_dns_lookup¶

Use IPv6 address resolution

  • Type: bool

  • Default value: false

  • Liveness: False

abort_on_internal_error¶

Abort the server instead of throwing exception when internal invariants are violated.

  • Type: bool

  • Default value: false

  • Liveness: True

max_partition_key_restrictions_per_query¶

Maximum number of distinct partition keys restrictions per query. This limit places a bound on the size of IN tuples, especially when multiple partition key columns have IN restrictions. Increasing this value can result in server instability.

  • Type: uint32_t

  • Default value: 100

  • Liveness: True

max_clustering_key_restrictions_per_query¶

Maximum number of distinct clustering key restrictions per query. This limit places a bound on the size of IN tuples, especially when multiple clustering key columns have IN restrictions. Increasing this value can result in server instability.

  • Type: uint32_t

  • Default value: 100

  • Liveness: True

max_memory_for_unlimited_query_soft_limit¶

Maximum amount of memory a query, whose memory consumption is not naturally limited, is allowed to consume, e.g. non-paged and reverse queries. This is the soft limit, there will be a warning logged for queries violating this limit.

  • Type: uint64_t

  • Default value: uint64_t(1) << 20

  • Liveness: True

max_memory_for_unlimited_query_hard_limit¶

Maximum amount of memory a query, whose memory consumption is not naturally limited, is allowed to consume, e.g. non-paged and reverse queries. This is the hard limit, queries violating this limit will be aborted.

  • Type: uint64_t

  • Default value: (uint64_t(100) << 20)

  • Liveness: True

reader_concurrency_semaphore_serialize_limit_multiplier¶

Start serializing reads after their collective memory consumption goes above $normal_limit * $multiplier.

  • Type: uint32_t

  • Default value: 2

  • Liveness: True

reader_concurrency_semaphore_kill_limit_multiplier¶

Start killing reads after their collective memory consumption goes above $normal_limit * $multiplier.

  • Type: uint32_t

  • Default value: 4

  • Liveness: True

reader_concurrency_semaphore_cpu_concurrency¶

Admit new reads while there are less than this number of requests that need CPU.

  • Type: uint32_t

  • Default value: 2

  • Liveness: True

view_update_reader_concurrency_semaphore_serialize_limit_multiplier¶

Start serializing view update reads after their collective memory consumption goes above $normal_limit * $multiplier.

  • Type: uint32_t

  • Default value: 2

  • Liveness: True

view_update_reader_concurrency_semaphore_kill_limit_multiplier¶

Start killing view update reads after their collective memory consumption goes above $normal_limit * $multiplier.

  • Type: uint32_t

  • Default value: 4

  • Liveness: True

view_update_reader_concurrency_semaphore_cpu_concurrency¶

Admit new view update reads while there are less than this number of requests that need CPU.

  • Type: uint32_t

  • Default value: 1

  • Liveness: True

maintenance_reader_concurrency_semaphore_count_limit¶

Allow up to this many maintenance (e.g. streaming and repair) reads per shard to progress at the same time.

  • Type: int

  • Default value: 10

  • Liveness: True

twcs_max_window_count¶

The maximum number of compaction windows allowed when making use of TimeWindowCompactionStrategy. A setting of 0 effectively disables the restriction.

  • Type: uint32_t

  • Default value: 50

  • Liveness: True

initial_sstable_loading_concurrency¶

Maximum amount of sstables to load in parallel during initialization. A higher number can lead to more memory consumption. You should not need to touch this.

  • Type: unsigned

  • Default value: 4u

  • Liveness: False

enable_3_1_0_compatibility_mode¶

Set to true if the cluster was initially installed from 3.1.0. If it was upgraded from an earlier version, or installed from a later version, leave this set to false. This adjusts the communication protocol to work around a bug in Scylla 3.1.0.

  • Type: bool

  • Default value: false

  • Liveness: False

enable_user_defined_functions¶

Enable user defined functions. You must also set experimental-features=udf.

  • Type: bool

  • Default value: false

  • Liveness: False

user_defined_function_time_limit_ms¶

The time limit for each UDF invocation.

  • Type: unsigned

  • Default value: 10

  • Liveness: False

user_defined_function_allocation_limit_bytes¶

How much memory each UDF invocation can allocate.

  • Type: unsigned

  • Default value: 1024*1024

  • Liveness: False

user_defined_function_contiguous_allocation_limit_bytes¶

How much memory each UDF invocation can allocate in one chunk.

  • Type: unsigned

  • Default value: 1024*1024

  • Liveness: False

schema_registry_grace_period¶

Time period in seconds after which unused schema versions will be evicted from the local schema registry cache. Default is 1 second.

  • Type: uint32_t

  • Default value: 1

  • Liveness: False

max_concurrent_requests_per_shard¶

Maximum number of concurrent requests a single shard can handle before it starts shedding extra load. By default, no requests will be shed.

  • Type: uint32_t

  • Default value: std::numeric_limits<uint32_t>::max()

  • Liveness: True

cdc_dont_rewrite_streams¶

Disable rewriting streams from cdc_streams_descriptions to cdc_streams_descriptions_v2. Should not be necessary, but the procedure is expensive and prone to failures; this config option is left as a backdoor in case some user requires manual intervention.

  • Type: bool

  • Default value: false

  • Liveness: False

strict_allow_filtering¶

Match Cassandra in requiring ALLOW FILTERING on slow queries. Can be true, false, or warn. When false, Scylla accepts some slow queries even without ALLOW FILTERING that Cassandra rejects. Warn is same as false, but with warning.

  • Type: tri_mode_restriction

  • Default value: strict_allow_filtering_default()

  • Liveness: True

strict_is_not_null_in_views¶
In materialized views, restrictions are allowed only on the view’s primary key columns.

In old versions Scylla mistakenly allowed IS NOT NULL restrictions on columns which were not part of the view’s primary key. These invalid restrictions were ignored. This option controls the behavior when someone tries to create a view with such invalid IS NOT NULL restrictions.

Can be true, false, or warn:
  • true: IS NOT NULL is allowed only on the view’s primary key columns, trying to use it on other columns will cause an error, as it should.

  • false: Scylla accepts IS NOT NULL restrictions on regular columns, but they’re silently ignored. It’s useful for backwards compatibility.

  • warn: The same as false, but there’s a warning about invalid view restrictions.

To preserve backwards compatibility on old clusters, Scylla’s default setting is warn. New clusters have this option set to true by scylla.yaml (which overrides the default warn), to make sure that trying to create an invalid view causes an error.

  • Type: tri_mode_restriction

  • Default value: db::tri_mode_restriction_t::mode::WARN

  • Liveness: True

enable_cql_config_updates¶

Make the system.config table UPDATEable.

  • Type: bool

  • Default value: true

  • Liveness: True

enable_parallelized_aggregation¶

Use on a new, parallel algorithm for performing aggregate queries.

  • Type: bool

  • Default value: true

  • Liveness: True

cql_duplicate_bind_variable_names_refer_to_same_variable¶

A bind variable that appears twice in a CQL query refers to a single variable (if false, no name matching is performed).

  • Type: bool

  • Default value: true

  • Liveness: True

alternator_port¶

Alternator API port.

  • Type: uint16_t

  • Default value: 0

  • Liveness: False

alternator_https_port¶

Alternator API HTTPS port.

  • Type: uint16_t

  • Default value: 0

  • Liveness: False

alternator_address¶

Alternator API listening address.

  • Type: sstring

  • Default value: "0.0.0.0"

  • Liveness: False

alternator_enforce_authorization¶

Enforce checking the authorization header for every request in Alternator.

  • Type: bool

  • Default value: false

  • Liveness: False

alternator_write_isolation¶

Default write isolation policy for Alternator.

  • Type: sstring

  • Default value: ""

  • Liveness: False

alternator_streams_time_window_s¶

CDC query confidence window for alternator streams.

  • Type: uint32_t

  • Default value: 10

  • Liveness: False

alternator_timeout_in_ms¶

The server-side timeout for completing Alternator API requests.

  • Type: uint32_t

  • Default value: 10000

  • Liveness: True

alternator_ttl_period_in_seconds¶

The default period for Alternator’s expiration scan. Alternator attempts to scan every table within that period.

  • Type: double

  • Default value: 60*60*24

  • Liveness: False

alternator_describe_endpoints¶

Overrides the behavior of Alternator’s DescribeEndpoints operation. An empty value (the default) means DescribeEndpoints will return the same endpoint used in the request. The string ‘disabled’ disables the DescribeEndpoints operation. Any other string is the fixed value that will be returned by DescribeEndpoints operations.

  • Type: sstring

  • Default value: ""

  • Liveness: True

alternator_max_items_in_batch_write¶

Maximum amount of items in single BatchItemWrite call.

  • Type: uint32_t

  • Default value: 100

  • Liveness: False

abort_on_ebadf¶

Abort the server on incorrect file descriptor access. Throws exception when disabled.

  • Type: bool

  • Default value: true

  • Liveness: False

redis_port¶

Port on which the REDIS transport listens for clients.

  • Type: uint16_t

  • Default value: 0

  • Liveness: False

redis_ssl_port¶

Port on which the REDIS TLS native transport listens for clients.

  • Type: uint16_t

  • Default value: 0

  • Liveness: False

redis_read_consistency_level¶

Consistency level for read operations for redis.

  • Type: sstring

  • Default value: "LOCAL_QUORUM"

  • Liveness: False

redis_write_consistency_level¶

Consistency level for write operations for redis.

  • Type: sstring

  • Default value: "LOCAL_QUORUM"

  • Liveness: False

redis_database_count¶

Database count for the redis. You can use the default settings (16).

  • Type: uint16_t

  • Default value: 16

  • Liveness: False

redis_keyspace_replication_strategy¶
Set the replication strategy for the redis keyspace. The setting is used by the first node in the boot phase when the keyspace is not exists to create keyspace for redis.

The replication strategy determines how many copies of the data are kept in a given data center. This setting impacts consistency, availability and request speed. Two strategies are available: SimpleStrategy and NetworkTopologyStrategy.

  • class: (Default: SimpleStrategy ). Set the replication strategy for redis keyspace.

  • ‘replication_factor’: N, (Default: ‘replication_factor’:1) IFF the class is SimpleStrategy, assign the same replication factor to the entire cluster.

  • ‘datacenter_name’: N [,…], (Default: ‘dc1:1’) IFF the class is NetworkTopologyStrategy, assign replication factors to each data center in a comma separated list.

Related information: About replication strategy.

  • Default value: {}

  • Liveness: False

sanitizer_report_backtrace¶

In debug mode, report log-structured allocator sanitizer violations with a backtrace. Slow.

  • Type: bool

  • Default value: false

  • Liveness: False

flush_schema_tables_after_modification¶

Flush tables in the system_schema keyspace after schema modification. This is required for crash recovery, but slows down tests and can be disabled for them

  • Type: bool

  • Default value: true

  • Liveness: True

restrict_twcs_without_default_ttl¶

Controls whether to prevent creating TimeWindowCompactionStrategy tables without a default TTL. Can be true, false, or warn.

  • Type: tri_mode_restriction

  • Default value: db::tri_mode_restriction_t::mode::WARN

  • Liveness: True

restrict_future_timestamp¶

Controls whether to detect and forbid unreasonable USING TIMESTAMP, more than 3 days into the future.

  • Type: bool

  • Default value: true

  • Liveness: True

unsafe_ignore_truncation_record¶

Ignore truncation record stored in system tables as if tables were never truncated.

  • Default value: false

  • Liveness: False

task_ttl_in_seconds¶

Time for which information about finished task started internally stays in memory.

  • Default value: 0

  • Liveness: True

user_task_ttl_in_seconds¶

Time for which information about finished task started by user stays in memory.

  • Default value: 3600

  • Liveness: True

nodeops_watchdog_timeout_seconds¶

Time in seconds after which node operations abort when not hearing from the coordinator.

  • Type: uint32_t

  • Default value: 120

  • Liveness: True

nodeops_heartbeat_interval_seconds¶

Period of heartbeat ticks in node operations.

  • Type: uint32_t

  • Default value: 10

  • Liveness: True

cache_index_pages¶

Keep SSTable index pages in the global cache after a SSTable read. Expected to improve performance for workloads with big partitions, but may degrade performance for workloads with small partitions. The amount of memory usable by index cache is limited with index_cache_fraction.

  • Type: bool

  • Default value: true

  • Liveness: True

index_cache_fraction¶

The maximum fraction of cache memory permitted for use by index cache. Clamped to the [0.0; 1.0] range. Must be small enough to not deprive the row cache of memory, but should be big enough to fit a large fraction of the index. The default value 0.2 means that at least 80% of cache memory is reserved for the row cache, while at most 20% is usable by the index cache.

  • Type: double

  • Default value: 0.2

  • Liveness: True

force_gossip_topology_changes¶

Force gossip-based topology operations in a fresh cluster. Only the first node in the cluster must use it. The rest will fall back to gossip-based operations anyway. This option should be used only for testing. Note: gossip topology changes are incompatible with tablets.

  • Type: bool

  • Default value: false

  • Liveness: False

recovery_leader¶

Host ID of the node restarted first while performing the Manual Raft-based Recovery Procedure. Warning: this option disables some guardrails for the needs of the Manual Raft-based Recovery Procedure. Make sure you unset it at the end of the procedure.

  • Type: sstring

  • Default value: ""

  • Liveness: True

wasm_cache_memory_fraction¶

Maximum total size of all WASM instances stored in the cache as fraction of total shard memory.

  • Type: double

  • Default value: 0.01

  • Liveness: False

wasm_cache_timeout_in_ms¶

Time after which an instance is evicted from the cache.

  • Type: uint32_t

  • Default value: 5000

  • Liveness: False

wasm_cache_instance_size_limit¶

Instances with size above this limit will not be stored in the cache.

  • Type: size_t

  • Default value: 1024*1024

  • Liveness: False

wasm_udf_yield_fuel¶

Wasmtime fuel a WASM UDF can consume before yielding.

  • Type: uint64_t

  • Default value: 100000

  • Liveness: False

wasm_udf_total_fuel¶

Wasmtime fuel a WASM UDF can consume before termination.

  • Type: uint64_t

  • Default value: 100000000

  • Liveness: False

wasm_udf_memory_limit¶

How much memory each WASM UDF can allocate at most.

  • Type: size_t

  • Default value: 2*1024*1024

  • Liveness: False

relabel_config_file¶

Optionally, read relabel config from file.

  • Type: sstring

  • Default value: ""

  • Liveness: False

live_updatable_config_params_changeable_via_cql¶

If set to true, configuration parameters defined with LiveUpdate can be updated in runtime via CQL (by updating system.config virtual table), otherwise they can’t.

  • Type: bool

  • Default value: true

  • Liveness: True

auth_superuser_name¶

Initial authentication super username. Ignored if authentication tables already contain a super user.

  • Type: std::string

  • Default value: ""

  • Liveness: False

auth_superuser_salted_password¶

Initial authentication super user salted password. Create using mkpassword or similar. The hashing algorithm used must be available on the node host. Ignored if authentication tables already contain a super user password.

  • Type: std::string

  • Default value: ""

  • Liveness: False

auth_certificate_role_queries¶

SUBJECT }, {query

  • Type: std::vector<std::unordered_map<sstring, sstring>>

  • Default value: { { { "source"

  • Liveness: False

minimum_replication_factor_fail_threshold¶
  • Type: int

  • Default value: -1

  • Liveness: True

minimum_replication_factor_warn_threshold¶
  • Type: int

  • Default value: 3

  • Liveness: True

maximum_replication_factor_warn_threshold¶
  • Type: int

  • Default value: -1

  • Liveness: True

maximum_replication_factor_fail_threshold¶
  • Type: int

  • Default value: -1

  • Liveness: True

tablets_initial_scale_factor¶

Minimum average number of tablet replicas per shard per table. Suppressed by tablet options in table’s schema: min_per_shard_tablet_count and min_tablet_count

  • Type: double

  • Default value: 10

  • Liveness: True

tablets_per_shard_goal¶

The goal for the maximum number of tablet replicas per shard. Tablet allocator tries to keep this goal.

  • Type: unsigned

  • Default value: 100

  • Liveness: True

target_tablet_size_in_bytes¶

Allows target tablet size to be configured. Defaults to 5G (in bytes). Maintaining tablets at reasonable sizes is important to be able to redistribute load. A higher value means tablet migration throughput can be reduced. A lower value may cause number of tablets to increase significantly, potentially resulting in performance drawbacks.

  • Type: uint64_t

  • Default value: service::default_target_tablet_size

  • Liveness: True

replication_strategy_warn_list¶

Controls which replication strategies to warn about when creating/altering a keyspace. Doesn’t affect the pre-existing keyspaces.

  • Type: std::vector<enum_option<replication_strategy_restriction_t>>

  • Default value: {locator::replication_strategy_type::simple}

  • Liveness: True

replication_strategy_fail_list¶

Controls which replication strategies are disallowed to be used when creating/altering a keyspace. Doesn’t affect the pre-existing keyspaces.

  • Type: std::vector<enum_option<replication_strategy_restriction_t>>

  • Default value: {}

  • Liveness: True

service_levels_interval_ms¶

Controls how often service levels module polls configuration table

  • Default value: 10000

  • Liveness: True

audit¶

Controls the audit feature:

tnone : No auditing enabled. tsyslog : Audit messages sent to Syslog. ttable : Audit messages written to column family named audit.audit_log.

  • Type: sstring

  • Default value: "none"

  • Liveness: False

audit_categories¶

Comma separated list of operation categories that should be audited.

  • Type: sstring

  • Default value: "DCL,DDL,AUTH"

  • Liveness: True

audit_tables¶

Comma separated list of table names (<keyspace>.<table>) that will be audited.

  • Type: sstring

  • Default value: ""

  • Liveness: True

audit_keyspaces¶

Comma separated list of keyspaces that will be audited. All tables in those keyspaces will be audited

  • Type: sstring

  • Default value: ""

  • Liveness: True

audit_unix_socket_path¶

The path to the unix socket used for writing to syslog. Only applicable when audit is set to syslog.

  • Type: sstring

  • Default value: "/dev/log"

  • Liveness: False

audit_syslog_write_buffer_size¶

The size (in bytes) of a write buffer used when writing to syslog socket.

  • Type: size_t

  • Default value: 1048576

  • Liveness: False

ldap_url_template¶

LDAP URL template used by LDAPRoleManager for crafting queries.

  • Type: sstring

  • Default value: ""

  • Liveness: False

ldap_attr_role¶

LDAP attribute containing Scylla role.

  • Type: sstring

  • Default value: ""

  • Liveness: False

ldap_bind_dn¶

Distinguished name used by LDAPRoleManager for binding to LDAP server.

  • Type: sstring

  • Default value: ""

  • Liveness: False

ldap_bind_passwd¶

Password used by LDAPRoleManager for binding to LDAP server.

  • Type: sstring

  • Default value: ""

  • Liveness: False

saslauthd_socket_path¶

UNIX domain socket on which saslauthd is listening.

  • Type: sstring

  • Default value: ""

  • Liveness: False

object_storage_endpoints¶

Object storage endpoints configuration.

  • Type: std::vector<object_storage_endpoint_param>

  • Default value: {}

  • Liveness: True

topology_barrier_stall_detector_threshold_seconds¶

Report sites blocking topology barrier if it takes longer than this.

  • Type: double

  • Default value: 2

  • Liveness: False

enable_tablets¶

Enable tablets for newly created keyspaces. (deprecated)

  • Type: bool

  • Default value: false

  • Liveness: False

tablets_mode_for_new_keyspaces¶
Control tablets for new keyspaces. Can be set to the following values:

tdisabled: New keyspaces use vnodes by default, unless enabled by the tablets={‘enabled’:true} option tenabled: New keyspaces use tablets by default, unless disabled by the tablets={‘disabled’:true} option tenforced: New keyspaces must use tablets. Tablets cannot be disabled using the CREATE KEYSPACE option

  • Type: enum_option<tablets_mode_t>

  • Default value: tablets_mode_t::mode::unset

  • Liveness: False

view_flow_control_delay_limit_in_ms¶

The maximal amount of time that materialized-view update flow control may delay responses to try to slow down the client and prevent buildup of unfinished view updates. To be effective, this maximal delay should be larger than the typical latencies. Setting view_flow_control_delay_limit_in_ms to 0 disables view-update flow control.

  • Type: uint32_t

  • Default value: 1000

  • Liveness: True

disk_space_monitor_normal_polling_interval_in_seconds¶

Disk-space polling interval while below polling threshold

  • Type: int

  • Default value: 10

  • Liveness: False

disk_space_monitor_high_polling_interval_in_seconds¶

Disk-space polling interval at or above polling threshold

  • Type: int

  • Default value: 1

  • Liveness: False

disk_space_monitor_polling_interval_threshold¶

Disk-space polling threshold. Polling interval is increased when disk utilization is greater than or equal to this threshold

  • Type: float

  • Default value: 0.9

  • Liveness: False

enable_create_table_with_compact_storage¶

Enable the deprecated feature of CREATE TABLE WITH COMPACT STORAGE. This feature will eventually be removed in a future version.

  • Type: bool

  • Default value: false

  • Liveness: True

rf_rack_valid_keyspaces¶

Enforce RF-rack-valid keyspaces. Additionally, if there are existing RF-rack-invalid keyspaces, attempting to start a node with this option ON will fail.

  • Type: bool

  • Default value: false

  • Liveness: True

default_log_level¶

Default log level for log messages

  • Type: seastar::log_level

  • Default value: seastar::log_level::info

  • Liveness: False

logger_log_level¶

Map of logger name to log level. Valid log levels are ‘error’, ‘warn’, ‘info’, ‘debug’ and ‘trace’

  • Type: std::unordered_map<sstring, seastar::log_level>

  • Default value: {}

  • Liveness: False

log_to_stdout¶

Send log output to stdout

  • Type: bool

  • Default value: true

  • Liveness: False

log_to_syslog¶

Send log output to syslog

  • Type: bool

  • Default value: false

  • Liveness: False

Was this page helpful?

PREVIOUS
GCP Images
NEXT
Glossary
  • Create an issue

On this page

  • Configuration Parameters
    • Ungrouped properties
    • Initialization properties
    • Default directories
    • Common initialization properties
    • Common compaction settings
    • Common automatic backup settings
    • Common fault detection setting
    • Commit log settings
    • Compaction settings
    • Cache and index settings
    • Disks settings
    • Advanced initialization properties
    • Advanced automatic backup setting
    • Tombstone settings
    • Network timeout settings
    • Inter-node settings
    • Native transport (CQL Binary Protocol)
    • RPC (remote procedure call) settings
    • Advanced fault detection settings
    • Security properties
ScyllaDB Enterprise
  • enterprise
    • 2024.2
    • 2024.1
    • 2023.1
    • 2022.2
  • Getting Started
    • Install ScyllaDB Enterprise
      • ScyllaDB Web Installer for Linux
      • Install ScyllaDB Without root Privileges
      • Install scylla-jmx Package
      • Air-gapped Server Installation
      • ScyllaDB Housekeeping and how to disable it
      • ScyllaDB Developer Mode
      • Launch ScyllaDB on AWS
      • Launch ScyllaDB on GCP
      • Launch ScyllaDB on Azure
    • 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
    • Tutorials
  • 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 Custom Superuser
      • Generate a cqlshrc File
      • Reset Authenticator Password
      • Enable Authorization
      • Grant Authorization CQL Reference
      • Certificate-based 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 Types
      • SSTableLoader
      • cassandra-stress
      • SSTabledump
      • SSTableMetadata
      • ScyllaDB Logs
      • Seastar Perftune
      • Virtual Tables
      • Reading mutation fragments
      • Maintenance socket
      • Maintenance mode
      • Task manager
    • Version Support Policy
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
    • ScyllaDB Manager
    • Upgrade Procedures
      • About Upgrade
      • Upgrade Guides
    • System Configuration
      • System Configuration Guide
      • scylla.yaml
      • ScyllaDB Snitches
    • Benchmarking ScyllaDB
    • ScyllaDB Diagnostic Tools
  • ScyllaDB for Developers
    • Develop with ScyllaDB
    • Tutorials and Example Projects
    • Learn to Use ScyllaDB
    • ScyllaDB Alternator
    • ScyllaDB Drivers
      • ScyllaDB CQL Drivers
      • ScyllaDB DynamoDB Drivers
  • CQL Reference
    • CQLSh: the CQL shell
    • 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
    • Wasm support for user-defined functions
    • JSON Support
    • Materialized Views
    • Non-Reserved CQL Keywords
    • Reserved CQL Keywords
    • DESCRIBE SCHEMA
    • Service Levels
    • ScyllaDB CQL Extensions
  • 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 Generations
      • Querying CDC Streams
      • Advanced column types
      • Preimages and postimages
      • Data Consistency in CDC
    • Workload Attributes
    • Workload Prioritization
  • 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
      • ScyllaDB Python Script broken
    • Upgrade
      • Inaccessible configuration files after ScyllaDB upgrade
    • 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
    • Increase Permission Cache to Avoid Non-paged Queries
    • How does ScyllaDB LWT Differ from Apache Cassandra ?
    • Map CPUs to ScyllaDB Shards
    • ScyllaDB Memory Usage
    • NTP Configuration for ScyllaDB
    • Updating the Mode in perftune.yaml After a ScyllaDB Upgrade
    • 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
    • ScyllaDB Enterprise vs. Open Source Matrix
    • API Reference (BETA)
    • Metrics (BETA)
  • ScyllaDB University
  • ScyllaDB FAQ
  • Alternator: DynamoDB API in Scylla
    • Getting Started With ScyllaDB Alternator
    • ScyllaDB Alternator for DynamoDB users
    • Alternator-specific APIs
Docs Tutorials University Contact Us About Us
© 2025, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 09 Apr 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.6