Option name |
Mandatory |
Default Value |
Possible Values |
Description |
partitioner |
No |
org.apache.cassandra.dht.Murmur3Partitioner |
org.apache.cassandra.dht.ByteOrderedPartitioner,
org.apache.cassandra.dht.RandomPartitioner,
org.apache.cassandra.dht.Murmur3Partitioner |
A partitioner determines how data is distributed across the nodes in the cluster (including replicas). Basically, a partitioner is a function for deriving a token representing a row from its partion key, typically by hashing. Each row of data is then distributed across the cluster by the value of the token.
http://docs.datastax.com/en/cassandra/2.1/cassandra/architecture/architecturePartitionerAbout_c.html |
commitFailurePolicy |
No |
stop |
stop,
stop_commit,
ignore,
die |
Policy for commit disk failures:
- die - Shut down gossip and Thrift and kill the JVM, so the node can be replaced.
- stop - Shut down gossip and Thrift, leaving the node effectively dead, but can be inspected using JMX.
- stop_commit - Shut down the commit log, letting writes collect but continuing to service reads
- ignore - Ignore fatal errors and let the batches fail
|
diskFailurePolicy |
No |
stop |
best_effort,
stop,
ignore,
stop_paranoid,
die |
Sets how Cassandraresponds to disk failure. Recommend settings are stop or best_effort.
- die - Shut down gossip and Thrift and kill the JVM for any file system errors or single SSTable errors, so the node can be replaced.
- stop_paranoid - Shut down gossip and Thrift even for single SSTableerrors.
- stop - Shut down gossipand Thrift, leaving the node effectively dead, but available for inspection using JMX.
- best_effort - Stop usingthe failed disk and respond to requests based on the remaining available SSTables. This means you will see obsolete data at consistency level of ONE.
- ignore - Ignores fatal errors and lets the requests fail; all file system errors are logged but otherwise ignored.
|
autoBootstrap |
No |
true |
true,
false |
This setting has been removed from default configuration. It makes new (non-seed) nodes automatically migrate the right data to themselves. When initializing a fresh cluster without data, set this option to false |
batchSizeWarnThreshold |
No |
5 |
Valid integer |
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 |
concurrentReads |
No |
32 |
Valid ineteger |
For workloads with more data than can fit in memory, the bottleneck is ads fetching data from disk. Setting to 16×number_of_drives allows operations to queue low enough in the stack so that the OS and drives can reorder them. The default setting applies to both logical volume managed (LVM) and RAID drives |
concurrentWrites |
No |
32 |
Valid ineteger |
Writes in Cassandra are rarely I/O bound, so the ideal number of concurrent writes depends on the number of CPU cores in your system. The recommended value is 8×number_of_cpu_cores |
concurrentCounterWrites |
No |
32 |
Valid ineteger |
Counter writes read the current values before incrementing and writing them back. The recommended value is 16×number_of_drives |
streamThroughputOutbound |
No |
200 |
Valid integer |
Throttles all outbound streaming file transfers on a node to the specified throughput (Megabits/seconds). Cassandra does mostly sequential I/O when streaming data during bootstrap or repair, which can lead to saturating the network connection and degrading client (RPC) performance. |
interDCStreamThroughputOutbound |
No |
|
Valid integer |
Throttles all streaming file transfer between the data centers (Megabits/seconds).. This setting allows throttles streaming throughput betweens data centers in addition to throttling all network stream traffic as configured with streamThroughputOutbound |
trickleFsync |
No |
false |
true,
false |
When doing sequential writing, enabling this option tells fsync to force the operating system to flush the dirty buffers at a set interval trickleFsyncInterval . Enable this parameter to avoid sudden dirty buffer flushing from impacting read latencies. Recommended to use on SSDs, but not on HDDs. |
trickleFsyncInterval |
No |
10240 |
Valid integer |
Sets the size of the fsync in kilobytes |
autoSnapshot (NODE ONLY) |
No |
true |
true,
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 |
incrementalBackups |
No |
false |
true,
false |
Backs up data updated since the last snapshot was taken. When enabled, Cassandra 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 |
snapshotBeforeCompation |
No |
false |
true,
false |
Enable or disable taking a snapshot before each compaction. This option is useful to back up data when there is a data format change. Be careful using this option because Cassandra does not clean up older snapshots automatically |
commitLogSync |
No |
periodic |
periodic,
batch |
The method that Cassandra uses to acknowledge writes
http://docs.datastax.com/en/cassandra/2.1/cassandra/dml/dml_durability_c.html |
commitLogSyncPeriod |
No |
10000 |
Valid integer |
The period that Cassandra uses to acknowledge writes in milliseconds |
commitLogSegmentSize |
No |
32 |
Valid integer |
Sets the size (in Mb) 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. |
commitLogTotalSpace |
No |
8192 |
Valid integer |
Total space used for commitlogs. If the used space goes above this value,Cassandra 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 start-up, 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 |
concurrentCompators |
No |
|
Valid integer |
Sets the number ofconcurrent compaction processes allowed to runsimultaneously on a node, not including validation compactions for anti-entropy repair. Simultaneouscompactions help preserve read performance in amixed read-write workload by mitigating the tendencyof small SSTables to accumulate during a single long-running compaction. If your data directoriesare backed by SSD, increase this value to the numberof cores. If compaction running too slowly or too fast, adjust compactionThroughput first.
If not set the value will be calculated: Smaller of number of disks or number of cores,with a minimum of 2 and a maximum of 8 per CPU core |
sstablePreemptiveOpenInterval |
No |
50 |
Valid integer |
When compacting, the replacement opens SSTables before they arecompletely written and uses in place of the prior SSTables for any range previously written (in Mb). This setting helps to smoothly transfer reads between the SSTables by reducing page cache churn and keeps hot rows hot. |
compactionThroughput |
No |
16 |
Valid integer |
Throttles compaction to the specified total throughput across the entire system (in Mb/seconds). 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 MB/second). Setting the value to 0 disables compaction throttling. |
compactionLargePartitionWarningThreshold |
No |
100 |
Valid integer |
Logs a warning when compaction partitions larger than the set value in Mb |
numTokens |
No |
256 |
Valid integer |
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. |
memtableAllocationType |
No |
heap_buffers |
unslabbed_heap_buffers,
heap_buffers,
offheap_buffers,
offheap_objects |
Specify the way Cassandra allocates and manages memtable memory. See Off-heap memtablesin Cassandra 2.1. |
memtableCleanupThreshold |
No |
|
Valid float |
Ratio of occupied non-flushing memtable size to total permitted size for triggering a flush of the largest memtable. Larger values mean larger flushes and less compaction, but also less concurrent flush activity, which can make it difficult to keep your disks saturated under heavy write load.
If not set the value will be calculated as 1/(1 + memtableFlushWriters) |
memtableFlushWriters |
No |
|
Valid integer |
Sets the number of memtable flush writer threads. These threads are blocked by disk I/O, and each one holds a memtable in memory while blocked. If your data directories are backed by SSD, increase this setting to the number of cores.
If not set the value will be calculated as (Smaller of number of disks or number of cores with a minimum of 2 and a maximum of 8) |
memtableHeapSize |
No |
|
Valid integer |
Total permitted memory (in Mb) to use for memtables. Triggers a flush based on
memtableCleanupThreshold. Cassandra stops accepting writes when the limit is exceeded until a flush completes
If not set the value will be calculated as (1/4 heap) |
memtableOffheapSpace |
No |
|
Valid integer |
If not set the value will be calculated as (1/4 heap) |
fileCacheSize |
No |
|
Valid integer |
Total memory to use for SSTable-reading buffers.
If not set the value will be calculated as (Smaller of 1/4 heap or 512) |
authenticator |
No |
org.apache.cassandra.auth.AllowAllAuthenticator |
org.apache.cassandra.auth.AllowAllAuthenticator,
org.apache.cassandra.auth.PasswordAuthenticator |
The authentication backend
http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secure_about_native_authenticate_c.html |
authorizer |
No |
org.apache.cassandra.auth.AllowAllAuthorizer |
org.apache.cassandra.auth.AllowAllAuthorizer,
org.apache.cassandra.auth.CassandraAuthorizer |
The authorization backend
http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secure_about_native_authorize_c.html |
permissionsValidity |
No |
2000 |
Valid integer |
How long (in milliseconds) permissions in cache remain valid. Depending on the authorizer, such as org.apache.cassandra.auth.CassandraAuthorizer, fetching permissions can be resource intensive. This setting disabled when set to 0 or when org.apache.cassandra.auth.AllowAllAuthorizer is set. |
permissionsUpdateInterval |
No |
|
Valid integer |
Refresh interval (in milliseconds) for permissions cache (if enabled). After this interval, cache entries become eligible for refresh. On next access, an async reload is scheduled and the old value is returned until it completes. If permissionsValidity, then this property must benon-zero
If not set the value will be the same like permissionsValidity |
writeTimeout |
No |
2000 |
Valid long |
The time that the coordinator waits for write operations to complete |
readTimeout |
No |
5000 |
Valid long |
The time that the coordinator waits for read operations to complete |
rangeTimeout |
No |
10000 |
Valid long |
The time that the coordinator waits for sequential or index scans to complete |
counterWriteTimeout |
No |
5000 |
Valid long |
The timethat the coordinator waits for counter writes to complete |
casContentionTimeout |
No |
1000 |
Valid long |
The time that the coordinator continues to retry a CAS (compare and set) operation that contends with other proposals for the same row. |
truncateTimeout |
No |
60000 |
Valid long |
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 autoSnapshot is disabled (not recommended), you can reduce this time. |
requestTimeout |
No |
10000 |
Valid long |
The default time for other miscellaneous operations |
encryption.server.internode |
No |
none |
none,
all,
dc,
rack |
Enable or disable inter-node encryption. You must also generate keys and provide the appropriate key and trust store locations and passwords. No custom encryption options are currently enabled
http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureSSLNodeToNode_t.html |
encryption.server.keystore |
No |
conf/.keystore |
Valid path |
The location of a Java keystore (JKS) suitable for use with Java Secure Socket Extension (JSSE), which is the Java version of the Secure Sockets Layer (SSL), and Transport Layer Security (TLS) protocols. The keystore contains the private key used to encrypt outgoing messages |
encryption.server.keystorePassword |
No |
cassandra |
|
Password for the keystore |
encryption.server.truststore |
No |
conf/.truststore |
Valid path |
Location of the truststore containing the trusted certificate for authenticating remote servers |
encryption.server.truststorePassword |
No |
cassandra |
|
Password for the truststore |
encryption.client.enabled |
No |
false |
true,
false |
Enable or disable client-to-node encryption. You must also generate keys and provide the appropriate key and trust store locations and passwords. No custom encryption options are currently enabled
http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureSSLClientToNode_t.html |
encryption.client.keystore |
No |
conf/.keystore |
Valid path |
The location of a Java keystore (JKS) suitable for use with Java Secure Socket Extension (JSSE), which is the Java version of the Secure Sockets Layer (SSL), and Transport Layer Security (TLS) protocols. The keystore contains the private key used to encrypt outgoing messages |
encryption.client.keystorePassword |
No |
cassandra |
|
Password for the keystore. This must match the password used when generating the keystore and truststore. |
encryption.client.truststore |
No |
conf/.truststore |
Valid path |
Set if encryption.client.clientAuth is true |
encryption.client.truststorePassword |
No |
<truststore_password> |
|
Set if encryption.client.clientAuth is true |
encryption.client.clientAuth |
No |
false |
true,
false |
Enables or disables certificate authentication |