Was this page helpful?
Caution
You're viewing documentation for a previous version of ScyllaDB Enterprise. Switch to the latest stable version.
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.
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
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
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
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
The minimal properties needed for configuring a cluster.
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
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
- 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
If you have changed any of the default directories during installation, make sure you have root access and set these properties.
The directory in which Scylla will put all its subdirectories. The location of individual subdirs can be overriden by the respective *_directory options.
Default value:
"/var/lib/scylla"
Liveness:
False
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
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
The directory location where table data (SSTables) is stored
Type:
string_list
Default value:
{ }
Liveness:
False
The directory where hints files are stored if hinted handoff is enabled.
Type:
sstring
Default value:
""
Liveness:
False
The directory where materialized-view updates are stored while a view replica is unreachable.
Type:
sstring
Default value:
""
Liveness:
False
Be sure to set the properties in the Quick start section as well.
Set to a class that implements the IEndpointSnitch. Scylla uses snitches for locating nodes and routing requests.
tSimpleSnitch: 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.
tGossipingPropertyFileSnitch: 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.
tEc2Snitch: 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.
tEc2MultiRegionSnitch: 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.
tGoogleCloudSnitch: 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.
tRackInferringSnitch: 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
The listen address for client connections (Thrift RPC service and native transport).Valid values are:
tunset: 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. t0.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. tIP address thostname Related information: Network
Type:
sstring
Default value:
"localhost"
Liveness:
False
- 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
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) tThe class within Scylla that handles the seed logic. It can be customized, but this is typically not required. t- 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
Be sure to set the properties in the Quick start section as well.
- 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
Log a warning when writing partitions larger than this value
Type:
uint32_t
Default value:
1000
Liveness:
True
Log a warning when writing rows larger than this value
Type:
uint32_t
Default value:
10
Liveness:
True
Log a warning when writing cells larger than this value
Type:
uint32_t
Default value:
1
Liveness:
True
Log a warning when writing a number of rows larger than this value
Type:
uint32_t
Default value:
100000
Liveness:
True
Log a warning when writing a collection containing more elements than this value
Type:
uint32_t
Default value:
10000
Liveness:
True
- 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
- 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
Maximum time between two successful echo message before gossip mark a node down in milliseconds.
Type:
uint32_t
Default value:
20 * 1000
Liveness:
True
- 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
The method that Scylla uses to acknowledge writes in milliseconds:
tperiodic : 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. tbatch : 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
- 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
- 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
Controls how long the system waits for other writes before performing a sync in periodicmode.
Type:
uint32_t
Default value:
10000
Liveness:
False
Controls how long the system waits for other writes before performing a sync in batchmode.
Type:
uint32_t
Default value:
10000
Liveness:
False
- 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
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
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
Whether or not to use a hard size limit for commitlog disk usage. Default is false. Enabling this can cause latency spikes, whereas the default can lead to occasional disk usage peaks.
Type:
bool
Default value:
false
Liveness:
False
Related information: Configuring compaction
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
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
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
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
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
Properties for advanced users or properties that are less commonly used.
- 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
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
Fail any multiple-partition batch exceeding this value. 1 MiB (8x warn threshold) by default.
Type:
uint32_t
Default value:
1024
Liveness:
False
- 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
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
- 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
- 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
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 , {org.apache.cassandra.dht.Murmur3Partitioner}) , storage_port(this, storage_port
Type:
sstring
Default value:
"org.apache.cassandra.dht.Murmur3Partitioner"
Liveness:
False
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
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.
The maximum number of tombstones a query can scan before warning.
Type:
uint32_t
Default value:
1000
Liveness:
False
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
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
The time in milliseconds that the coordinator waits for sequential or index scans to complete.
Type:
uint32_t
Default value:
10000
Liveness:
True
The time that the coordinator waits for read operations to complete
Type:
uint32_t
Default value:
5000
Liveness:
True
The time that the coordinator waits for counter writes to complete.
Type:
uint32_t
Default value:
5000
Liveness:
True
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
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
- 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
- The default timeout for other, miscellaneous operations.
Related information: About hinted handoff writes
Type:
uint32_t
Default value:
10000
Liveness:
True
Controls whether traffic between nodes is compressed. The valid values are:
tall: All traffic is compressed. tdc : Traffic between data centers is compressed. tnone : No compression.
Type:
sstring
Default value:
"none"
Liveness:
False
ZSTD compression of RPC will consume at most this fraction of each internode_compression_zstd_quota_refresh_period_ms time slice.
Type:
float
Default value:
0.000
Liveness:
True
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
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
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
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:
0
Liveness:
True
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
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
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
Enables the new implementation of RPC compression. If disabled, Scylla will fall back to the old implementation.
Type:
bool
Default value:
false
Liveness:
True
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
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
Port on which the CQL native transport listens for clients.
Type:
uint16_t
Default value:
9042
Liveness:
False
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
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
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
Settings for configuring and tuning client connections.
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
Thrift port for client connections.
Type:
uint16_t
Default value:
9160
Liveness:
False
Starts the Thrift RPC server
Type:
bool
Default value:
false
Liveness:
False
Enable or disable keepalive on client connections (RPC or native).
Type:
bool
Default value:
true
Liveness:
False
This boolean controls whether the replicas for read query will be choosen based on cache hit ratio
Type:
bool
Default value:
true
Liveness:
False
Settings to handle poorly performing or failing nodes.
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
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
- 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
Legacy API for older clients. CQL is a simpler and better API for Scylla.
The maximum length of a Thrift message in megabytes, including all fields and internal Thrift overhead (1 byte of overhead for each frame). Message length is usually used in conjunction with batches. A frame length greater than or equal to 24 accommodates a batch with four inserts, each of which is 24 bytes. The required message length is greater than or equal to 24+24+24+24+4 (number of frames).
Type:
uint32_t
Default value:
16
Liveness:
False
Server and client security settings.
The authentication backend, used to identify users. The available authenticators are:
torg.apache.cassandra.auth.AllowAllAuthenticator : Disables authentication; no checks are performed. torg.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. tcom.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’. tcom.scylladb.auth.TransitionalAuthenticator : Wraps around the PasswordAuthenticator, logging them in if username/password pair provided is correct and treating them as anonymous users otherwise. tcom.scylladb.auth.SaslauthdAuthenticator : Use saslauthd for authentication. Related information: Internal authentication , {AllowAllAuthenticator
Type:
sstring
Default value:
"org.apache.cassandra.auth.AllowAllAuthenticator"
Liveness:
False
The authorization backend. It implements IAuthenticator, which limits access and provides permissions. The available authorizers are:
tAllowAllAuthorizer : Disables authorization; allows any action to any user. tCassandraAuthorizer : 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. tcom.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 , {AllowAllAuthorizer
Type:
sstring
Default value:
"org.apache.cassandra.auth.AllowAllAuthorizer"
Liveness:
False
- The role-management backend, used to maintain grantts and memberships between roles.
The available role-managers are: torg.apache.cassandra.auth.CassandraRoleManager : Stores role data in the system_auth keyspace; tcom.scylladb.auth.LDAPRoleManager : Fetches role data from an LDAP server;
Type:
sstring
Default value:
"org.apache.cassandra.auth.CassandraRoleManager"
Liveness:
False
- 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
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
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
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: tall : Encrypt all inter-node communications. tnone : No encryption. tdc : Encrypt the traffic between the data centers (server only). track : 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:
tpriority_string : (Default: not set, use default) GnuTLS priority string controlling TLS algorithms used/allowed. trequire_client_auth : (Default: false ) Enables or disables certificate authentication. Related information: Node-to-node encryption
Type:
string_map
Default value:
{}
Liveness:
False
Enable or disable client-to-node encryption. You must also generate keys and provide the appropriate key and certificate. The available options are:
tenabled : (Default: false) To enable, set to true. tcertificate: (Default: conf/scylla.crt) The location of a PEM-encoded x509 certificate used to identify and encrypt the client/server communication. tkeyfile: (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:
tpriority_string : (Default: not set, use default) GnuTLS priority string controlling TLS algorithms used/allowed. trequire_client_auth : (Default: false) Enables or disables certificate authentication. Related information: Client-to-node encryption
Type:
string_map
Default value:
{}
Liveness:
False
When Alternator via HTTPS is enabled with alternator_https_port, where to take the key and certificate. The available options are:
tcertificate: (Default: conf/scylla.crt) The location of a PEM-encoded x509 certificate used to identify and encrypt the client/server communication. tkeyfile: (Default: conf/scylla.key) PEM Key file associated with certificate.
The advanced settings are:
tpriority_string : GnuTLS priority string controlling TLS algorithms used/allowed.
Type:
string_map
Default value:
{}
Liveness:
False
The SSL port for encrypted communication. Unused unless enabled in encryption_options.
Type:
uint32_t
Default value:
7001
Liveness:
False
Enable in memory mode (system tables are always persisted)
Type:
bool
Default value:
false
Liveness:
False
Enable cache
Type:
bool
Default value:
true
Liveness:
False
Enable commitlog
Type:
bool
Default value:
true
Liveness:
False
Don’t persist system keyspace - testing only!
Type:
bool
Default value:
false
Liveness:
False
Http Rest API port
Type:
uint16_t
Default value:
10000
Liveness:
False
Http Rest API address
Type:
sstring
Default value:
""
Liveness:
False
The directory location of the API GUI
Type:
sstring
Default value:
"swagger-ui/dist/"
Liveness:
False
The API definition file directory
Type:
sstring
Default value:
"api/api-doc/"
Liveness:
False
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
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
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
[[deprecated]] The listen_address or broadcast_address of the dead node to replace. Same as -Dcassandra.replace_address.
Type:
sstring
Default value:
""
Liveness:
False
[[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
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
Set true to force a decommissioned node to join the cluster (cannot be set if consistent-cluster-management is enabled
Type:
bool
Default value:
false
Liveness:
False
Set true to use enable repair based node operations instead of streaming based
Type:
bool
Default value:
true
Liveness:
True
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 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
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
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
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
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
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
The initial failure_detector interval time in milliseconds.
Type:
uint32_t
Default value:
2 * 1000
Liveness:
False
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
Relax environment checks. Setting to true can reduce performance and reliability significantly.
Type:
bool
Default value:
DEVELOPER_MODE_DEFAULT
Liveness:
False
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 to use the generation number provided by user
Type:
int32_t
Default value:
-1
Liveness:
True
Minimum number of segments to reclaim in a single step
Type:
size_t
Default value:
1
Liveness:
False
Prometheus port, set to zero to disable
Type:
uint16_t
Default value:
9180
Liveness:
False
Prometheus listening address, defaulting to listen_address if not explicitly set
Type:
sstring
Default value:
{}
Liveness:
False
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
Abort when allocation in LSA region fails
Type:
bool
Default value:
false
Liveness:
False
Number of most siginificant token bits to ignore in murmur3 partitioner; increase for very large clusters
Type:
unsigned
Default value:
default_murmur3_partitioner_ignore_msb_bits
Liveness:
False
Soft limit of unspooled dirty memory expressed as a portion of the hard limit
Type:
double
Default value:
0.6
Liveness:
False
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
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
Warn about memory allocations above this size; set to zero to disable
Type:
size_t
Default value:
size_t(1) << 20
Liveness:
False
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 per keyspace and per column family metrics reporting
Type:
bool
Default value:
false
Liveness:
False
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 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 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
Enable cpu scheduling
Type:
bool
Default value:
true
Liveness:
False
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
Default sstable file format
Type:
sstring
Default value:
"me"
Liveness:
False
If set to true, each newly created sstable will have a UUID based generation identifier, and such files are not readable by previous Scylla versions.
Type:
bool
Default value:
true
Liveness:
True
When enabled, per-table schema digest calculation ignores empty partitions.
Type:
bool
Default value:
true
Liveness:
True
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 native transport drivers to use connection-per-shard for better performance
Type:
bool
Default value:
true
Liveness:
False
Use IPv6 address resolution
Type:
bool
Default value:
false
Liveness:
False
Abort the server instead of throwing exception when internal invariants are violated
Type:
bool
Default value:
false
Liveness:
True
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
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
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
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
Start serializing reads after their collective memory consumption goes above $normal_limit * $multiplier.
Type:
uint32_t
Default value:
2
Liveness:
True
Start killing reads after their collective memory consumption goes above $normal_limit * $multiplier.
Type:
uint32_t
Default value:
4
Liveness:
True
Admit new reads while there are less than this number of requests that need CPU.
Type:
uint32_t
Default value:
1
Liveness:
True
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
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
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
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. You must also set experimental-features=udf
Type:
bool
Default value:
false
Liveness:
False
The time limit for each UDF invocation
Type:
unsigned
Default value:
10
Liveness:
False
How much memory each UDF invocation can allocate
Type:
unsigned
Default value:
1024*1024
Liveness:
False
How much memory each UDF invocation can allocate in one chunk
Type:
unsigned
Default value:
1024*1024
Liveness:
False
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
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
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
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
- 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
Bypass in-memory data cache (the row cache) when performing reversed queries.
Type:
bool
Default value:
false
Liveness:
True
Use a new optimized algorithm for performing reversed reads.
Type:
bool
Default value:
true
Liveness:
True
Make the system.config table UPDATEable
Type:
bool
Default value:
true
Liveness:
True
Use on a new, parallel algorithm for performing aggregate queries.
Type:
bool
Default value:
true
Liveness:
True
Alternator API port
Type:
uint16_t
Default value:
0
Liveness:
False
Alternator API HTTPS port
Type:
uint16_t
Default value:
0
Liveness:
False
Alternator API listening address
Type:
sstring
Default value:
"0.0.0.0"
Liveness:
False
Enforce checking the authorization header for every request in Alternator
Type:
bool
Default value:
false
Liveness:
False
Default write isolation policy for Alternator
Type:
sstring
Default value:
""
Liveness:
False
CDC query confidence window for alternator streams
Type:
uint32_t
Default value:
10
Liveness:
False
The server-side timeout for completing Alternator API requests.
Type:
uint32_t
Default value:
10000
Liveness:
True
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
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
Abort the server on incorrect file descriptor access. Throws exception when disabled.
Type:
bool
Default value:
true
Liveness:
False
Port on which the REDIS transport listens for clients.
Type:
uint16_t
Default value:
0
Liveness:
False
Port on which the REDIS TLS native transport listens for clients.
Type:
uint16_t
Default value:
0
Liveness:
False
Consistency level for read operations for redis.
Type:
sstring
Default value:
"LOCAL_QUORUM"
Liveness:
False
Consistency level for write operations for redis.
Type:
sstring
Default value:
"LOCAL_QUORUM"
Liveness:
False
Database count for the redis. You can use the default settings (16).
Type:
uint16_t
Default value:
16
Liveness:
False
- 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.
tclass: (Default: SimpleStrategy ). Set the replication strategy for redis keyspace. t’replication_factor’:N, (Default: ‘replication_factor’:1) IFF the class is SimpleStrategy, assign the same replication factor to the entire cluster. t’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
In debug mode, report log-structured allocator sanitizer violations with a backtrace. Slow.
Type:
bool
Default value:
false
Liveness:
False
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
Controls whether to disable SimpleStrategy replication. Can be true, false, or warn.
Type:
tri_mode_restriction
Default value:
db::tri_mode_restriction_t::mode::FALSE
Liveness:
True
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
Controls whether to detect and forbid unreasonable USING TIMESTAMP, more than 3 days into the future.
Type:
bool
Default value:
true
Liveness:
True
Ignore truncation record stored in system tables as if tables were never truncated.
Default value:
false
Liveness:
False
Use separate schema commit log unconditionally rater than after restart following discovery of cluster-wide support for it.
Type:
bool
Default value:
false
Liveness:
False
Time for which information about finished task stays in memory.
Default value:
0
Liveness:
True
Time in seconds after which node operations abort when not hearing from the coordinator
Type:
uint32_t
Default value:
120
Liveness:
True
Period of heartbeat ticks in node operations
Type:
uint32_t
Default value:
10
Liveness:
True
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
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
Use RAFT for cluster management and DDL
Type:
bool
Default value:
true
Liveness:
False
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
Time after which an instance is evicted from the cache
Type:
uint32_t
Default value:
5000
Liveness:
False
Instances with size above this limit will not be stored in the cache
Type:
size_t
Default value:
1024*1024
Liveness:
False
Wasmtime fuel a WASM UDF can consume before yielding
Type:
uint64_t
Default value:
100000
Liveness:
False
Wasmtime fuel a WASM UDF can consume before termination
Type:
uint64_t
Default value:
100000000
Liveness:
False
How much memory each WASM UDF can allocate at most
Type:
size_t
Default value:
2*1024*1024
Liveness:
False
Optionally, read relabel config from file
Type:
sstring
Default value:
""
Liveness:
False
Optionally, read object-storage endpoints config from file
Type:
sstring
Default value:
""
Liveness:
False
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
Initial authentication super username. Ignored if authentication tables already contain a super user
Type:
std::string
Default value:
""
Liveness:
False
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
SUBJECT }, {query
Type:
std::vector<std::unordered_map<sstring, sstring>>
Default value:
{ { { "source"
Liveness:
False
Type:
int
Default value:
-1
Liveness:
True
Type:
int
Default value:
3
Liveness:
True
Type:
int
Default value:
-1
Liveness:
True
Type:
int
Default value:
-1
Liveness:
True
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
Comma separated list of operation categories that should be audited.
Type:
sstring
Default value:
"DCL,DDL,AUTH"
Liveness:
False
Comma separated list of table names (<keyspace>.<table>) that will be audited.
Type:
sstring
Default value:
""
Liveness:
False
Comma separated list of keyspaces that will be audited. All tables in those keyspaces will be audited
Type:
sstring
Default value:
""
Liveness:
False
The size (in bytes) of a write buffer used when writting to syslog socket.
Type:
size_t
Default value:
1048576
Liveness:
False
LDAP URL template used by LDAPRoleManager for crafting queries.
Type:
sstring
Default value:
""
Liveness:
False
LDAP attribute containing Scylla role.
Type:
sstring
Default value:
""
Liveness:
False
Distinguished name used by LDAPRoleManager for binding to LDAP server.
Type:
sstring
Default value:
""
Liveness:
False
Password used by LDAPRoleManager for binding to LDAP server.
Type:
sstring
Default value:
""
Liveness:
False
UNIX domain socket on which saslauthd is listening.
Type:
sstring
Default value:
""
Liveness:
False
Was this page helpful?
On this page