DataStax Enterprise start-up parameters
Where is the jvm.options
file?
The location of the jvm.options
file depends on the type of installation:
Installation Type | Location |
---|---|
Package installations + Installer-Services installations |
|
Tarball installations + Installer-No Services installations a` |
|
You can run DataStax Enterprise (DSE) with start-up parameters by adding them to the jvm.options
file or at the command line when starting up a installation.
You can also add options such as maximum and minimum heap size to the |
Usage
Add a start-up parameter to the jvm.options
file as follows:
-Dparameter_name
When starting up Tarball or Installer-No Services installations, you can set parameters from the command line:
installation_location/bin/dse cassandra [-Dparameter_name -Dparameter_name ...]
See the Startup examples section.
Start-up parameters
Use the -D
option before the start-up parameter name on the command line or in the jvm.options
file.
-Dcassandra.auto_bootstrap=false
-
false
on initial set-up of the cluster. The next time you start the cluster, you do not need to change thecassandra.yaml
file on each node to revert totrue
. default setting in thecassandra.yaml
file.Default:
true.
Where is the
cassandra.yaml
file?The location of the
cassandra.yaml
file depends on the type of installation:Installation Type Location Package installations + Installer-Services installations
/etc/dse/cassandra/cassandra.yaml
Tarball installations + Installer-No Services installations
installation_location/resources/cassandra/conf/cassandra.yaml
-Dcassandra.available_processors=number_of_processors
-
In a multi-instance deployment, each instance independently assumes that all CPU processors are available to it. Use this setting to specify a smaller set of processors.
-Dcassandra.config=directory
-
Sets the directory location of the cassandra.yaml file. The default location depends on the type of installation.
-Dcassandra.consistent.rangemovement=true
-
Set to
true
, makes bootstrapping behavior effective. -Dcassandra.split_sstables_by_token_range=false
-
Set to
false
to disable JBOD SSTable partitioning by token range to multipledata_file_directories
.Set as directed by DataStax Support. This setting is recommended only for a non-JBOD cluster with a single data file directory defined in
cassandra.yaml
on DSE 5.1.x.
-Ddse.consistent_replace
-
Specify the level of consistency required during a node replacement (
ONE
,QUORUM
, orLOCAL_QUORUM
). The default value,ONE
, may result in possibly stale data but uses less system resources. If set toQUORUM
orLOCAL_QUORUM
, the replacement node coordinates repair among a (local) quorum of replicas concurrently with replacement streaming. Repair transfers the differences to the replacement node, ensuring it is consistent with other replicas when the replacement process is finished, assuming data is inserted using eitherQUORUM
orLOCAL_QUORUM
consistency levels.The value for consistent replace should match the value for application read consistency.
Default:
ONE
-Ddse.consistent_replace.parallelism
-
Specify how many ranges will be repaired simultaneously during a consistent replace. The higher the parallelism, the more resources are consumed cluster-wide, which may affect overall cluster performance. Used only in conjunction with
Ddse.consistent_replace
.Default:
2
-Ddse.consistent_replace.retries
-
Specify how many times a failed repair will be retried during a replace. If all retries fail, the replace fails. Used only in conjunction with
Ddse.consistent_replace
.Default:
3
-Ddse.consistent_replace.whitelist
-
Specify keyspaces and tables on which to perform a consistent replace. The keyspaces and tables can be specified as: "ks1, ks2.cf1". The default is blank, in which case all keyspaces and tables are replaced. Used only in conjunction with
Ddse.consistent_replace
.Default:
blank
(not set) -Dcassandra.disable_auth_caches_remote_configuration=true
-
Disables authentication caches, for example the caches used for credentials, permissions, and roles. This will mean those config options can only be set (persistently) in
cassandra.yaml
and will require a restart for new values to take effect. -Dcassandra.expiration_date_overflow_policy=POLICY
-
Set the policy for TTL (time to live) timestamps that exceed the maximum value supported by the storage engine,
2038-01-19T03:14:06+00:00
. The database storage engine can only encode TTL timestamps throughJanuary 19 2038 03:14:07 UTC
due to the Year 2038 problem.-
REJECT
: Reject requests that contain an expiration timestamp later than2038-01-19T03:14:06+00:00
. -
CAP
: Allow requests and insert expiration timestamps later than2038-01-19T03:14:06+00:00
as2038-01-19T03:14:06+00:00
.
Default:
REJECT
. -
-Dcassandra.force_default_indexing_page_size=true
-
Disable dynamic calculation of the page size used when indexing an entire partition (during initial index build/rebuild). If set to true, the page size will be fixed to the default of 10000 rows per page.
-Dcassandra.ignore_dc=true | false
-
When set to
true
, ignores the datacenter name change on startup. Applies only when usingDseSimpleSnitch
. (Default:false
) -Dcassandra.initial_token=token
-
Use when DSE is not using virtual nodes (vnodes). Sets the initial partitioner token for a node the first time the node is started. (Default: disabled)
Vnodes automatically select tokens.
-Dcassandra.join_ring=true | false
-
When set to
false
, prevents the node from joining a ring on startup. (Default: true) You can add the node to the ring afterwards usingnodetool join
and a JMX call. -Dcassandra.load_ring_state=true | false
-
When set to
false
, clears all gossip state for the node on restart. (Default:true
) -Dcassandra.metricsReporterConfigFile=file
-
Enables pluggable metrics reporter.
-Dcassandra.native_transport_port=port
-
Sets the port on which the CQL native transport listens for clients. (Default:
9042
)
-Dcassandra.native_transport_startup_delay_seconds=seconds
-
Delays the startup of native transport server for the number of seconds. (Default:
0
) -Dcassandra.partitioner=partitioner
-
Sets the partitioner. (Default: org.apache.cassandra.dht.Murmur3Partitioner)
-Dcassandra.partition_sstables_by_token_range=true | false
-
Whether to disable JBOD SSTable partitioning by token range to multiple
data_file_directories
. (Default: true). Set tofalse
only as directed by DataStax Support. -Dcassandra.printHeapHistogramOnOutOfMemoryError
-
Set to
false
to disable a heap histogram dump on anOutOfMemoryError
.Default:
false
.
-Dcassandra.range_tombstone_bound_check_chance
-
Check for bad range tombstones on a percentage of queries. Valid values are
0.0
to1.0
. Default:0.01
-Dcassandra.replace_address=listen_address_of_dead_node | broadcast_address_of_dead_node
-
To replace a node, restart a new node in its place specifying the
listen_address
orbroadcast_address
that the new node is assuming. The new node must be in the same state as before bootstrapping, without any data in its data directory.The
broadcast_address
defaults to thelisten_address
except when the ring is using theEc2MultiRegionSnitch
. -Dcassandra.replayList=table
-
Allows restoring specific tables from an archived commit log.
-Dcassandra.ring_delay_ms=ms
-
Defines the amount of time a node waits to hear from other nodes before formally joining the ring. (Default: 30000ms)
-Dcassandra.rpc_port=port
-
Sets the port for the Thrift RPC service, which is used for client connections. (Default: 9160).
-Dcassandra.ssl_storage_port=port
-
Sets the SSL port for encrypted communication. (Default: 7001)
-Dcassandra.start_native_transport=true | false
-
Enables or disables the native transport server. See
start_native_transport
incassandra.yaml
. (Default: true) -Dcassandra.start_rpc=true | false
-
Enables or disables the Thrift RPC server. (Default: true)
-Dcassandra.storage_port=port
-
Sets the port for inter-node communication. (Default: 7000)
-Ddse.timeAllowed.enabled.default
-
The Solr
timeAllowed
option is enforced by default to prevent long-running shard queries (such as complex facets and Boolean queries) from using system resources after they have timed out from the DSE Search coordinator.DSE Search checks the timeout per segment instead of during document or terms iteration. The system property
solr.timeAllowed.docsPerSample
has been removed.By default for all queries, the
timeAllowed
value is the same as theinternode_messaging_options.client_request_timeout_seconds
setting in dse.yaml. For more details, see Limiting queries by time.Using the Solr
timeAllowed
parameter may cause a latency cost. If you find the cost for queries is too high in your environment, consider setting the-Ddse.timeAllowed.enabled.default
property tofalse
at DSE startup time. Or settimeAllowed.enable
to false in the query.Default:
true
.Where is the
dse.yaml
file?The location of the
dse.yaml
file depends on the type of installation:+
Installation Type Location Package installations + Installer-Services installations
/etc/dse/dse.yaml
Tarball installations + Installer-No Services installations
installation_location/resources/dse/conf/dse.yaml
-Dcassandra.triggers_dir=directory
- Deprecated-
Sets the default location for the triggers JARs.
Where is the
triggers
directory?The location of the
triggers
directory depends on the type of installation:+
Installation Type Location Package installations + Installer-Services installations
/etc/dse/cassandra/triggers
Tarball installations + Installer-No Services installations
installation_location/resources/cassandra/conf/triggers
-Dcassandra.write_survey=true
-
Enables a tool for testing new compaction and compression strategies.
write_survey
allows you to experiment with different strategies and benchmark write performance differences without affecting the production workload. See Testing compaction and compression.
LDAP tuning switches
-Ddse.search.client.timeout.secs=seconds
-
Native driver search core management calls using the dsetool search-specific commands use the default request timeout of 600 seconds (10 minutes).
-Ddse.ldap.connection.timeout.ms
-
The number of milliseconds before the connection times out.
-Ddse.ldap.retry_interval.ms
-
Allows you to set the time in milliseconds between subsequent retries when authenticating via an LDAP server. Default: 10.
-Ddse.ldap.pool.min.idle
-
Finer control over the connection pool for DataStax Enterprise LDAP authentication connector. The min idle settings determines the minimum number of connections allowed in the pool before the evictor thread will create new connections. This setting has no effect if the evictor thread isn’t configured to run.
-Ddse.ldap.pool.exhausted.action
-
Determines what the pool does when it is full. It can be one of:
-
fail
- the pool will throw an exception -
block
- the pool will block for max wait ms (default) -
grow
- the pool will just keep growing (not recommended)
-
-Ddse.ldap.pool.max.wait
-
When the
dse.ldap.pool.exhausted.action
isblock
, sets the number of milliseconds to block the pool before throwing an exception. -Ddse.ldap.pool.test.borrow
-
Tests a connection when it is borrowed from the pool.
-Ddse.ldap.pool.test.return
-
Tests a connection returned to the pool.
-Ddse.ldap.pool.test.idle
-
Tests any connections in the eviction loop that are not being evicted. Only works if the time between eviction runs is greater than 0ms.
-Ddse.ldap.pool.time.between.evictions
-
Determines the time in ms (milliseconds) between eviction runs. When run with the
dse.ldap.pool.test.idle
this becomes a basic keep alive for connections. -Ddse.ldap.pool.num.tests.per.eviction
-
Number of connections in the pool that are tested each connection run. If this is set the same as max active (the pool size) then all connections will be tested each eviction run.
-Ddse.ldap.pool.min.evictable.idle.time.ms
-
Determines the minimum time in ms (milliseconds) that a connection can sit in the pool before it becomes available for eviction.
-Ddse.ldap.pool.soft.min.evictable.idle.time.ms
-
Determines the minimum time in ms (milliseconds) that a connection can sit the pool before it becomes available for eviction with the proviso that the number of connections doesn’t fall below
dse.ldap.pool.min.evictable.idle.time.ms
.
Startup examples
Starting a node without joining the ring:
-
Command line:
dse cassandra -Dcassandra.join_ring=false
-
jvm.options
:-Dcassandra.join_ring=false
Replacing a dead node:
-
Command line:
dse cassandra -Dcassandra.replace_address=10.91.176.160
-
jvm.options
:-Dcassandra.replace_address=10.91.176.160
Changing LDAP authentication retry interval from its default of 10 ms:
-
Command line:
dse -Ddse.ldap.retry_interval.ms=20
-
jvm.options
:-Ddse.ldap.retry_interval.ms=20
Tune LDAP failover
Use the following properties to tune the failover behavior when multiple LDAP servers are specified in dse.yaml
.
-Ddse.ldap.failover.retry_count
-
Number of failover retries.
Default: the number of configured LDAP servers.
-Ddse.ldap.failover.quarantine.opening.threshold
-
Number of failovers allowed during the opening interval before the LDAP server is added to the quarantine list.
Default:
3
-Ddse.ldap.failover.quarantine.opening.threshold
-
Opening threshold time in milliseconds.
Default:
10000
-Ddse.ldap.failover.quarantine.close.threshold
-
Threshold for the number of failures at which an LDAP server will be unquarantined.
When an LDAP server is quarantined, there are still circumstances when it can be used. A server is chosen as follows:
-
A server is selected which is unquarantined and whose connection pool has idle connections.
-
If a server is not available, a server is selected which has just been unquarantined.
-
If no servers meet those criteria, all servers are cycled through in round robin fashion.
The parameter must be at least
1
, otherwise once a server is quarantined, it will remain quarantined until the LDAP subsystem is reset or the node is restarted.Default:
1
-
-Ddse.ldap.failover.quarantine.close.interval.ms
-
Closing threshold time in milliseconds.
Default:
10000
Lower
-Ddse.ldap.connection.timeout.ms
to improve LDAP performance by quarantining servers more quickly.