2020# The more tokens, relative to other nodes, the larger the proportion of data
2121# that this node will store. You probably want all nodes to have the same number
2222# of tokens assuming they have equal hardware capability.
23- #
24- # If you already have a cluster with 1 token per node, and wish to migrate to
25- # multiple tokens per node, see http://cassandra.apache.org/doc/latest/operating
2623num_tokens : 256
2724
2825# Directory where Scylla should store all its files, which are commitlog,
@@ -39,6 +36,12 @@ num_tokens: 256
3936# separate spindle than the data directories.
4037# commitlog_directory: /var/lib/scylla/commitlog
4138
39+ # schema commit log. A special commitlog instance
40+ # used for schema and system tables.
41+ # When running on magnetic HDD, this should be a
42+ # separate spindle than the data directories.
43+ # schema_commitlog_directory: /var/lib/scylla/commitlog/schema
44+
4245# commitlog_sync may be either "periodic" or "batch."
4346#
4447# When in batch mode, Scylla won't ack writes until the commit log
@@ -68,23 +71,35 @@ commitlog_sync_period_in_ms: 10000
6871# is reasonable.
6972commitlog_segment_size_in_mb : 32
7073
74+ # The size of the individual schema commitlog file segments.
75+ #
76+ # The default size is 128, which is 4 times larger than the default
77+ # size of the data commitlog. It's because the segment size puts
78+ # a limit on the mutation size that can be written at once, and some
79+ # schema mutation writes are much larger than average.
80+ schema_commitlog_segment_size_in_mb : 128
81+
7182# seed_provider class_name is saved for future use.
72- # seeds address(es) are mandatory!
83+ # A seed address is mandatory.
7384seed_provider :
74- # Addresses of hosts that are deemed contact points.
75- # Scylla nodes use this list of hosts to find each other and learn
76- # the topology of the ring. You must change this if you are running
77- # multiple nodes!
85+ # The addresses of hosts that will serve as contact points for the joining node .
86+ # It allows the node to discover the cluster ring topology on startup (when
87+ # joining the cluster).
88+ # Once the node has joined the cluster, the seed list has no function.
7889 - class_name : org.apache.cassandra.locator.SimpleSeedProvider
7990 parameters :
80- # seeds is actually a comma-delimited list of addresses.
81- # Ex: "<ip1>,<ip2>,<ip3>"
91+ # In a new cluster, provide the address of the first node.
92+ # In an existing cluster, specify the address of at least one existing node.
93+ # If you specify addresses of more than one node, use a comma to separate them.
94+ # For example: "<IP1>,<IP2>,<IP3>"
8295 - seeds : " 127.0.0.1"
8396
84- # Address or interface to bind to and tell other Scylla nodes to connect to.
97+ # Address to bind to and tell other Scylla nodes to connect to.
8598# You _must_ change this if you want multiple nodes to be able to communicate!
8699#
87- # Setting listen_address to 0.0.0.0 is always wrong.
100+ # If you leave broadcast_address (below) empty, then setting listen_address
101+ # to 0.0.0.0 is wrong as other nodes will not know how to reach this node.
102+ # If you set broadcast_address, then you can set listen_address to 0.0.0.0.
88103listen_address : localhost
89104
90105# Address to broadcast to other Scylla nodes
@@ -99,8 +114,8 @@ listen_address: localhost
99114# listen_on_broadcast_address: false
100115
101116# port for the CQL native transport to listen for clients on
102- # For security reasons, you should not expose this port to the internet. Firewall it if needed.
103- # To disable the CQL native transport, set this option to 0 .
117+ # For security reasons, you should not expose this port to the internet. Firewall it if needed.
118+ # To disable the CQL native transport, remove this option and configure native_transport_port_ssl .
104119native_transport_port : 9042
105120
106121# Like native_transport_port, but clients are forwarded to specific shards, based on the
@@ -114,11 +129,11 @@ native_shard_aware_transport_port: 19042
114129# for native_transport_port. Setting native_transport_port_ssl to a different value
115130# from native_transport_port will use encryption for native_transport_port_ssl while
116131# keeping native_transport_port unencrypted.
117- native_transport_port_ssl : 9142
132+ # native_transport_port_ssl: 9142
118133
119134# Like native_transport_port_ssl, but clients are forwarded to specific shards, based on the
120135# client-side port numbers.
121- native_shard_aware_transport_port_ssl : 19142
136+ # native_shard_aware_transport_port_ssl: 19142
122137
123138# How long the coordinator should wait for read operations to complete
124139read_request_timeout_in_ms : 5000
@@ -184,8 +199,7 @@ cas_contention_timeout_in_ms: 1000
184199# of the snitch, which will be assumed to be on your classpath.
185200endpoint_snitch : SimpleSnitch
186201
187- # The address or interface to bind the Thrift RPC service and native transport
188- # server to.
202+ # The address or interface to bind the native transport server to.
189203#
190204# Set rpc_address OR rpc_interface, not both. Interfaces must correspond
191205# to a single address, IP aliasing is not supported.
@@ -206,21 +220,18 @@ rpc_address: localhost
206220# rpc_interface: eth1
207221# rpc_interface_prefer_ipv6: false
208222
209- # port for Thrift to listen for clients on
210- rpc_port : 9160
211-
212223# port for REST API server
213224api_port : 10000
214225
215226# IP for the REST API server
216227api_address : 127.0.0.1
217228
218- # Log WARN on any batch size exceeding this value. 5kb per batch by default.
229+ # Log WARN on any batch size exceeding this value. 128 kiB per batch by default.
219230# Caution should be taken on increasing the size of this threshold as it can lead to node instability.
220- batch_size_warn_threshold_in_kb : 5
231+ batch_size_warn_threshold_in_kb : 128
221232
222- # Fail any multiple-partition batch exceeding this value. 50kb (10x warn threshold) by default.
223- batch_size_fail_threshold_in_kb : 50
233+ # Fail any multiple-partition batch exceeding this value. 1 MiB (8x warn threshold) by default.
234+ batch_size_fail_threshold_in_kb : 1024
224235
225236# Authentication backend, identifying users
226237# Out of the box, Scylla provides org.apache.cassandra.auth.{AllowAllAuthenticator,
@@ -230,6 +241,9 @@ batch_size_fail_threshold_in_kb: 50
230241# - PasswordAuthenticator relies on username/password pairs to authenticate
231242# users. It keeps usernames and hashed passwords in system_auth.credentials table.
232243# Please increase system_auth keyspace replication factor if you use this authenticator.
244+ # - com.scylladb.auth.TransitionalAuthenticator requires username/password pair
245+ # to authenticate in the same manner as PasswordAuthenticator, but improper credentials
246+ # result in being logged in as an anonymous user. Use for upgrading clusters' auth.
233247# authenticator: AllowAllAuthenticator
234248
235249# Authorization backend, implementing IAuthorizer; used to limit access/provide permissions
@@ -239,11 +253,14 @@ batch_size_fail_threshold_in_kb: 50
239253# - AllowAllAuthorizer allows any action to any user - set it to disable authorization.
240254# - CassandraAuthorizer stores permissions in system_auth.permissions table. Please
241255# increase system_auth keyspace replication factor if you use this authorizer.
256+ # - com.scylladb.auth.TransitionalAuthorizer wraps around the CassandraAuthorizer, using it for
257+ # authorizing permission management. Otherwise, it allows all. Use for upgrading
258+ # clusters' auth.
242259# authorizer: AllowAllAuthorizer
243260
244261# initial_token allows you to specify tokens manually. While you can use # it with
245- # vnodes (num_tokens > 1, above) -- in which case you should provide a
246- # comma-separated list -- it's primarily used when adding nodes # to legacy clusters
262+ # vnodes (num_tokens > 1, above) -- in which case you should provide a
263+ # comma-separated list -- it's primarily used when adding nodes # to legacy clusters
247264# that do not have vnodes enabled.
248265# initial_token:
249266
@@ -255,13 +272,14 @@ batch_size_fail_threshold_in_kb: 50
255272
256273# Uncomment to enable experimental features
257274# experimental_features:
258- # - cdc
259- # - lwt
260275# - udf
276+ # - alternator-streams
277+ # - broadcast-tables
278+ # - keyspace-storage-options
261279
262280# The directory where hints files are stored if hinted handoff is enabled.
263281# hints_directory: /var/lib/scylla/hints
264-
282+
265283# The directory where hints files are stored for materialized-view updates
266284# view_hints_directory: /var/lib/scylla/view_hints
267285
@@ -333,9 +351,6 @@ commitlog_total_space_in_mb: -1
333351# be rejected as invalid. The default is 256MB.
334352# native_transport_max_frame_size_in_mb: 256
335353
336- # Whether to start the thrift rpc server.
337- # start_rpc: true
338-
339354# enable or disable keepalive on rpc/native connections
340355# rpc_keepalive: true
341356
@@ -352,7 +367,7 @@ commitlog_total_space_in_mb: -1
352367# snapshot_before_compaction: false
353368
354369# Whether or not a snapshot is taken of the data before keyspace truncation
355- # or dropping of column families. The STRONGLY advised default of true
370+ # or dropping of column families. The STRONGLY advised default of true
356371# should be used to provide data safety. If you set this flag to false, you will
357372# lose data on truncation or drop.
358373# auto_snapshot: true
@@ -380,6 +395,15 @@ commitlog_total_space_in_mb: -1
380395# you can cache more hot rows
381396# column_index_size_in_kb: 64
382397
398+ # Auto-scaling of the promoted index prevents running out of memory
399+ # when the promoted index grows too large (due to partitions with many rows
400+ # vs. too small column_index_size_in_kb). When the serialized representation
401+ # of the promoted index grows by this threshold, the desired block size
402+ # for this partition (initialized to column_index_size_in_kb)
403+ # is doubled, to decrease the sampling resolution by half.
404+ #
405+ # To disable promoted index auto-scaling, set the threshold to 0.
406+ # column_index_auto_scale_threshold_in_kb: 10240
383407
384408# Log a warning when writing partitions larger than this value
385409# compaction_large_partition_warning_threshold_mb: 1000
@@ -393,6 +417,9 @@ commitlog_total_space_in_mb: -1
393417# Log a warning when row number is larger than this value
394418# compaction_rows_count_warning_threshold: 100000
395419
420+ # Log a warning when writing a collection containing more elements than this value
421+ # compaction_collection_elements_count_warning_threshold: 10000
422+
396423# How long the coordinator should wait for seq or index scans to complete
397424# range_request_timeout_in_ms: 10000
398425# How long the coordinator should wait for writes to complete
@@ -407,39 +434,41 @@ commitlog_total_space_in_mb: -1
407434# The default timeout for other, miscellaneous operations
408435# request_timeout_in_ms: 10000
409436
410- # Enable or disable inter-node encryption.
411- # You must also generate keys and provide the appropriate key and trust store locations and passwords.
437+ # Enable or disable inter-node encryption.
438+ # You must also generate keys and provide the appropriate key and trust store locations and passwords.
412439#
413440# The available internode options are : all, none, dc, rack
414441# If set to dc scylla will encrypt the traffic between the DCs
415442# If set to rack scylla will encrypt the traffic between the racks
416443#
417- # SSL/TLS algorithm and ciphers used can be controlled by
444+ # SSL/TLS algorithm and ciphers used can be controlled by
418445# the priority_string parameter. Info on priority string
419446# syntax and values is available at:
420447# https://gnutls.org/manual/html_node/Priority-Strings.html
421448#
422- # The require_client_auth parameter allows you to
423- # restrict access to service based on certificate
424- # validation. Client must provide a certificate
449+ # The require_client_auth parameter allows you to
450+ # restrict access to service based on certificate
451+ # validation. Client must provide a certificate
425452# accepted by the used trust store to connect.
426- #
453+ #
427454# server_encryption_options:
428455# internode_encryption: none
429456# certificate: conf/scylla.crt
430457# keyfile: conf/scylla.key
431- # truststore: <none, use system trust>
458+ # truststore: <not set, use system trust>
459+ # certficate_revocation_list: <not set>
432460# require_client_auth: False
433- # priority_string: <none , use default>
461+ # priority_string: <not set , use default>
434462
435463# enable or disable client/server encryption.
436- client_encryption_options :
437- enabled : true
438- certificate : /etc/scylla/db.crt
439- keyfile : /etc/scylla/db.key
440- # truststore: /etc/scylla/cadb.pem
464+ # client_encryption_options:
465+ # enabled: false
466+ # certificate: conf/scylla.crt
467+ # keyfile: conf/scylla.key
468+ # truststore: <not set, use system trust>
469+ # certficate_revocation_list: <not set>
441470# require_client_auth: False
442- # priority_string: <none , use default>
471+ # priority_string: <not set , use default>
443472
444473# internode_compression controls whether traffic between nodes is
445474# compressed.
@@ -482,9 +511,13 @@ client_encryption_options:
482511# prometheus_port: 9180
483512#
484513# prometheus address
485- # By default, Scylla binds all interfaces to the prometheus API
486- # It is possible to restrict the listening address to a specific one
487- # prometheus_address: 0.0.0.0
514+ # Leaving this blank will set it to the same value as listen_address.
515+ # This means that by default, Scylla listens to the prometheus API on the same
516+ # listening address (and therefore network interface) used to listen for
517+ # internal communication. If the monitoring node is not in this internal
518+ # network, you can override prometheus_address explicitly - e.g., setting
519+ # it to 0.0.0.0 to listen on all interfaces.
520+ # prometheus_address: 1.2.3.4
488521
489522# Distribution of data among cores (shards) within a node
490523#
@@ -505,5 +538,89 @@ client_encryption_options:
505538#
506539# Keep at 12 for new clusters.
507540murmur3_partitioner_ignore_msb_bits : 12
541+
542+ # Use on a new, parallel algorithm for performing aggregate queries.
543+ # Set to `false` to fall-back to the old algorithm.
544+ # enable_parallelized_aggregation: true
545+
546+ # Time for which task manager task is kept in memory after it completes.
547+ # task_ttl_in_seconds: 0
548+
549+ # In materialized views, restrictions are allowed only on the view's primary key columns.
550+ # In old versions Scylla mistakenly allowed IS NOT NULL restrictions on columns which were not part
551+ # of the view's primary key. These invalid restrictions were ignored.
552+ # This option controls the behavior when someone tries to create a view with such invalid IS NOT NULL restrictions.
553+ #
554+ # Can be true, false, or warn.
555+ # * `true`: IS NOT NULL is allowed only on the view's primary key columns,
556+ # trying to use it on other columns will cause an error, as it should.
557+ # * `false`: Scylla accepts IS NOT NULL restrictions on regular columns, but they're silently ignored.
558+ # It's useful for backwards compatibility.
559+ # * `warn`: The same as false, but there's a warning about invalid view restrictions.
560+ #
561+ # To preserve backwards compatibility on old clusters, Scylla's default setting is `warn`.
562+ # New clusters have this option set to `true` by scylla.yaml (which overrides the default `warn`)
563+ # to make sure that trying to create an invalid view causes an error.
564+ strict_is_not_null_in_views : true
565+
566+ # The Unix Domain Socket the node uses for maintenance socket.
567+ # The possible options are:
568+ # * ignore: the node will not open the maintenance socket,
569+ # * workdir: the node will open the maintenance socket on the path <scylla's workdir>/cql.m,
570+ # where <scylla's workdir> is a path defined by the workdir configuration option,
571+ # * <socket path>: the node will open the maintenance socket on the path <socket path>.
572+ maintenance_socket : ignore
573+
574+ # If set to true, configuration parameters defined with LiveUpdate option can be updated in runtime with CQL
575+ # by updating system.config virtual table. If we don't want any configuration parameter to be changed in runtime
576+ # via CQL, this option should be set to false. This parameter doesn't impose any limits on other mechanisms updating
577+ # configuration parameters in runtime, e.g. sending SIGHUP or using API. This option should be set to false
578+ # e.g. for cloud users, for whom scylla's configuration should be changed only by support engineers.
579+ # live_updatable_config_params_changeable_via_cql: true
580+
581+ # ****************
582+ # * GUARDRAILS *
583+ # ****************
584+
585+ # Guardrails to warn or fail when Replication Factor is smaller/greater than the threshold.
586+ # Please note that the value of 0 is always allowed,
587+ # which means that having no replication at all, i.e. RF = 0, is always valid.
588+ # A guardrail value smaller than 0, e.g. -1, means that the guardrail is disabled.
589+ # Commenting out a guardrail also means it is disabled.
590+ # minimum_replication_factor_fail_threshold: -1
591+ # minimum_replication_factor_warn_threshold: 3
592+ # maximum_replication_factor_warn_threshold: -1
593+ # maximum_replication_factor_fail_threshold: -1
594+
595+ # Guardrails to warn about or disallow creating a keyspace with specific replication strategy.
596+ # Each of these 2 settings is a list storing replication strategies considered harmful.
597+ # The replication strategies to choose from are:
598+ # 1) SimpleStrategy,
599+ # 2) NetworkTopologyStrategy,
600+ # 3) LocalStrategy,
601+ # 4) EverywhereStrategy
602+ #
603+ # replication_strategy_warn_list:
604+ # - SimpleStrategy
605+ # replication_strategy_fail_list:
606+
607+ # Enables the tablets feature.
608+ # When enabled, newly created keyspaces will have tablets enabled by default.
609+ # That can be explicitly disabled in the CREATE KEYSPACE query
610+ # by using the `tablets = {'enabled': false}` replication option.
611+ #
612+ # When the tablets feature is disabled, there is no way to enable tablets
613+ # per keyspace.
614+ #
615+ # Note that creating keyspaces with tablets enabled is irreversible.
616+ # Disabling the tablets feature may impact existing keyspaces that were created with tablets.
617+ # For example, the tablets map would remain "frozen" and will not respond to topology changes
618+ # like adding, removing, or replacing nodes, or to replication factor changes.
619+ enable_tablets : true
508620api_ui_dir : /opt/scylladb/swagger-ui/dist/
509621api_doc_dir : /opt/scylladb/api/api-doc/
622+
623+ client_encryption_options :
624+ enabled : true
625+ certificate : /etc/scylla/db.crt
626+ keyfile : /etc/scylla/db.key
0 commit comments