| <!DOCTYPE html> |
| <html> |
| |
| |
| |
| |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <meta name="description" content="The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages. |
| "> |
| <meta name="keywords" content="cassandra, apache, apache cassandra, distributed storage, key value store, scalability, bigtable, dynamo" /> |
| <meta name="robots" content="index,follow" /> |
| <meta name="language" content="en" /> |
| |
| <title>Documentation</title> |
| |
| <link rel="canonical" href="http://cassandra.apache.org/doc/latest/configuration/cassandra_config_file.html"> |
| |
| <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> |
| <link rel="stylesheet" href="./../../../css/style.css"> |
| |
| <link rel="stylesheet" href="./../../../css/sphinx.css"> |
| |
| |
| <link rel="top" title="Apache Cassandra Documentation v3.10" href="../index.html"/> <link rel="up" title="Configuring Cassandra" href="index.html"/> <link rel="next" title="Operating Cassandra" href="../operating/index.html"/> <link rel="prev" title="Configuring Cassandra" href="index.html"/> |
| </head> |
| |
| <body> |
| <!-- breadcrumbs --> |
| <div class="topnav"> |
| <div class="container breadcrumb-container"> |
| <ul class="breadcrumb"> |
| <li> |
| <div class="dropdown"> |
| <img class="asf-logo" src="./../../../img/asf_feather.png" /> |
| <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> |
| <li><a href="http://www.apache.org">Apache Homepage</a></li> |
| <li><a href="http://www.apache.org/licenses/">License</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| <li><a href="http://www.apache.org/security/">Security</a></li> |
| </ul> |
| </div> |
| </li> |
| |
| |
| <li><a href="./../../../">Apache Cassandra</a></li> |
| |
| |
| |
| |
| <li><a href="./../../../doc">Documentation</a></li> |
| |
| |
| |
| |
| <li><a href="./">Configuring Cassandra</a></li> |
| |
| |
| |
| <li>Cassandra Configuration File</li> |
| |
| </ul> |
| </div> |
| |
| <!-- navbar --> |
| <nav class="navbar navbar-default navbar-static-top" role="navigation"> |
| <div class="container"> |
| <div class="navbar-header"> |
| <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#cassandra-menu" aria-expanded="false"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| <a class="navbar-brand" href="./../../../"><img src="./../../../img/cassandra_logo.png" alt="Apache Cassandra logo" /></a> |
| </div><!-- /.navbar-header --> |
| |
| <div id="cassandra-menu" class="collapse navbar-collapse"> |
| <ul class="nav navbar-nav navbar-right"> |
| <li><a href="./../../../">Home</a></li> |
| <li><a href="./../../../download/">Download</a></li> |
| <li><a href="./../../../doc/">Documentation</a></li> |
| <li><a href="./../../../community/">Community</a></li> |
| </ul> |
| </div><!-- /#cassandra-menu --> |
| |
| |
| </div> |
| </nav><!-- /.navbar --> |
| </div><!-- /.topnav --> |
| |
| <div class="container-fluid"> |
| <div class="row"> |
| <div class="col-md-2"> |
| <div class="doc-navigation"> |
| <div class="doc-menu" role="navigation"> |
| <div class="navbar-header"> |
| <button type="button" class="pull-left navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| </div> |
| <div class="navbar-collapse collapse sidebar-navbar-collapse"> |
| <form id="doc-search-form" class="navbar-form" action="../search.html" method="get" role="search"> |
| <div class="form-group"> |
| <input type="text" size="30" class="form-control input-sm" name="q" placeholder="Search docs"> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </div> |
| </form> |
| |
| |
| |
| <ul class="current"> |
| <li class="toctree-l1"><a class="reference internal" href="../getting_started/index.html">Getting Started</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../architecture/index.html">Architecture</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../data_modeling/index.html">Data Modeling</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../cql/index.html">The Cassandra Query Language (CQL)</a></li> |
| <li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuring Cassandra</a><ul class="current"> |
| <li class="toctree-l2 current"><a class="current reference internal" href="#">Cassandra Configuration File</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="#cluster-name"><code class="docutils literal"><span class="pre">cluster_name</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#num-tokens"><code class="docutils literal"><span class="pre">num_tokens</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#allocate-tokens-for-keyspace"><code class="docutils literal"><span class="pre">allocate_tokens_for_keyspace</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#initial-token"><code class="docutils literal"><span class="pre">initial_token</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#hinted-handoff-enabled"><code class="docutils literal"><span class="pre">hinted_handoff_enabled</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#hinted-handoff-disabled-datacenters"><code class="docutils literal"><span class="pre">hinted_handoff_disabled_datacenters</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#max-hint-window-in-ms"><code class="docutils literal"><span class="pre">max_hint_window_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#hinted-handoff-throttle-in-kb"><code class="docutils literal"><span class="pre">hinted_handoff_throttle_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#max-hints-delivery-threads"><code class="docutils literal"><span class="pre">max_hints_delivery_threads</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#hints-directory"><code class="docutils literal"><span class="pre">hints_directory</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#hints-flush-period-in-ms"><code class="docutils literal"><span class="pre">hints_flush_period_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#max-hints-file-size-in-mb"><code class="docutils literal"><span class="pre">max_hints_file_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#hints-compression"><code class="docutils literal"><span class="pre">hints_compression</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#batchlog-replay-throttle-in-kb"><code class="docutils literal"><span class="pre">batchlog_replay_throttle_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#authenticator"><code class="docutils literal"><span class="pre">authenticator</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#authorizer"><code class="docutils literal"><span class="pre">authorizer</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#role-manager"><code class="docutils literal"><span class="pre">role_manager</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#roles-validity-in-ms"><code class="docutils literal"><span class="pre">roles_validity_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#roles-update-interval-in-ms"><code class="docutils literal"><span class="pre">roles_update_interval_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#permissions-validity-in-ms"><code class="docutils literal"><span class="pre">permissions_validity_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#permissions-update-interval-in-ms"><code class="docutils literal"><span class="pre">permissions_update_interval_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#credentials-validity-in-ms"><code class="docutils literal"><span class="pre">credentials_validity_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#credentials-update-interval-in-ms"><code class="docutils literal"><span class="pre">credentials_update_interval_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#partitioner"><code class="docutils literal"><span class="pre">partitioner</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#data-file-directories"><code class="docutils literal"><span class="pre">data_file_directories</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-directory"><code class="docutils literal"><span class="pre">commitlog_directory</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cdc-enabled"><code class="docutils literal"><span class="pre">cdc_enabled</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cdc-raw-directory"><code class="docutils literal"><span class="pre">cdc_raw_directory</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#disk-failure-policy"><code class="docutils literal"><span class="pre">disk_failure_policy</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commit-failure-policy"><code class="docutils literal"><span class="pre">commit_failure_policy</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#prepared-statements-cache-size-mb"><code class="docutils literal"><span class="pre">prepared_statements_cache_size_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#thrift-prepared-statements-cache-size-mb"><code class="docutils literal"><span class="pre">thrift_prepared_statements_cache_size_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#key-cache-size-in-mb"><code class="docutils literal"><span class="pre">key_cache_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#key-cache-save-period"><code class="docutils literal"><span class="pre">key_cache_save_period</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#key-cache-keys-to-save"><code class="docutils literal"><span class="pre">key_cache_keys_to_save</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#row-cache-class-name"><code class="docutils literal"><span class="pre">row_cache_class_name</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#row-cache-size-in-mb"><code class="docutils literal"><span class="pre">row_cache_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#row-cache-save-period"><code class="docutils literal"><span class="pre">row_cache_save_period</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#row-cache-keys-to-save"><code class="docutils literal"><span class="pre">row_cache_keys_to_save</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#counter-cache-size-in-mb"><code class="docutils literal"><span class="pre">counter_cache_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#counter-cache-save-period"><code class="docutils literal"><span class="pre">counter_cache_save_period</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#counter-cache-keys-to-save"><code class="docutils literal"><span class="pre">counter_cache_keys_to_save</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#saved-caches-directory"><code class="docutils literal"><span class="pre">saved_caches_directory</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-sync"><code class="docutils literal"><span class="pre">commitlog_sync</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-sync-batch-window-in-ms"><code class="docutils literal"><span class="pre">commitlog_sync_batch_window_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#id1"><code class="docutils literal"><span class="pre">commitlog_sync</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-sync-period-in-ms"><code class="docutils literal"><span class="pre">commitlog_sync_period_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-segment-size-in-mb"><code class="docutils literal"><span class="pre">commitlog_segment_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-compression"><code class="docutils literal"><span class="pre">commitlog_compression</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#seed-provider"><code class="docutils literal"><span class="pre">seed_provider</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#concurrent-reads"><code class="docutils literal"><span class="pre">concurrent_reads</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#concurrent-writes"><code class="docutils literal"><span class="pre">concurrent_writes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#concurrent-counter-writes"><code class="docutils literal"><span class="pre">concurrent_counter_writes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#concurrent-materialized-view-writes"><code class="docutils literal"><span class="pre">concurrent_materialized_view_writes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#file-cache-size-in-mb"><code class="docutils literal"><span class="pre">file_cache_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#buffer-pool-use-heap-if-exhausted"><code class="docutils literal"><span class="pre">buffer_pool_use_heap_if_exhausted</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#disk-optimization-strategy"><code class="docutils literal"><span class="pre">disk_optimization_strategy</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#memtable-heap-space-in-mb"><code class="docutils literal"><span class="pre">memtable_heap_space_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#memtable-offheap-space-in-mb"><code class="docutils literal"><span class="pre">memtable_offheap_space_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#memtable-cleanup-threshold"><code class="docutils literal"><span class="pre">memtable_cleanup_threshold</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#memtable-allocation-type"><code class="docutils literal"><span class="pre">memtable_allocation_type</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#commitlog-total-space-in-mb"><code class="docutils literal"><span class="pre">commitlog_total_space_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#memtable-flush-writers"><code class="docutils literal"><span class="pre">memtable_flush_writers</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cdc-total-space-in-mb"><code class="docutils literal"><span class="pre">cdc_total_space_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cdc-free-space-check-interval-ms"><code class="docutils literal"><span class="pre">cdc_free_space_check_interval_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#index-summary-capacity-in-mb"><code class="docutils literal"><span class="pre">index_summary_capacity_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#index-summary-resize-interval-in-minutes"><code class="docutils literal"><span class="pre">index_summary_resize_interval_in_minutes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#trickle-fsync"><code class="docutils literal"><span class="pre">trickle_fsync</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#trickle-fsync-interval-in-kb"><code class="docutils literal"><span class="pre">trickle_fsync_interval_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#storage-port"><code class="docutils literal"><span class="pre">storage_port</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#ssl-storage-port"><code class="docutils literal"><span class="pre">ssl_storage_port</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#listen-address"><code class="docutils literal"><span class="pre">listen_address</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#listen-interface"><code class="docutils literal"><span class="pre">listen_interface</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#listen-interface-prefer-ipv6"><code class="docutils literal"><span class="pre">listen_interface_prefer_ipv6</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#broadcast-address"><code class="docutils literal"><span class="pre">broadcast_address</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#listen-on-broadcast-address"><code class="docutils literal"><span class="pre">listen_on_broadcast_address</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#internode-authenticator"><code class="docutils literal"><span class="pre">internode_authenticator</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#start-native-transport"><code class="docutils literal"><span class="pre">start_native_transport</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#native-transport-port"><code class="docutils literal"><span class="pre">native_transport_port</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#native-transport-port-ssl"><code class="docutils literal"><span class="pre">native_transport_port_ssl</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#native-transport-max-threads"><code class="docutils literal"><span class="pre">native_transport_max_threads</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#native-transport-max-frame-size-in-mb"><code class="docutils literal"><span class="pre">native_transport_max_frame_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#native-transport-max-concurrent-connections"><code class="docutils literal"><span class="pre">native_transport_max_concurrent_connections</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#native-transport-max-concurrent-connections-per-ip"><code class="docutils literal"><span class="pre">native_transport_max_concurrent_connections_per_ip</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#start-rpc"><code class="docutils literal"><span class="pre">start_rpc</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-address"><code class="docutils literal"><span class="pre">rpc_address</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-interface"><code class="docutils literal"><span class="pre">rpc_interface</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-interface-prefer-ipv6"><code class="docutils literal"><span class="pre">rpc_interface_prefer_ipv6</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-port"><code class="docutils literal"><span class="pre">rpc_port</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#broadcast-rpc-address"><code class="docutils literal"><span class="pre">broadcast_rpc_address</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-keepalive"><code class="docutils literal"><span class="pre">rpc_keepalive</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-server-type"><code class="docutils literal"><span class="pre">rpc_server_type</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-min-threads"><code class="docutils literal"><span class="pre">rpc_min_threads</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-max-threads"><code class="docutils literal"><span class="pre">rpc_max_threads</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-send-buff-size-in-bytes"><code class="docutils literal"><span class="pre">rpc_send_buff_size_in_bytes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#rpc-recv-buff-size-in-bytes"><code class="docutils literal"><span class="pre">rpc_recv_buff_size_in_bytes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#internode-send-buff-size-in-bytes"><code class="docutils literal"><span class="pre">internode_send_buff_size_in_bytes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#internode-recv-buff-size-in-bytes"><code class="docutils literal"><span class="pre">internode_recv_buff_size_in_bytes</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#thrift-framed-transport-size-in-mb"><code class="docutils literal"><span class="pre">thrift_framed_transport_size_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#incremental-backups"><code class="docutils literal"><span class="pre">incremental_backups</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#snapshot-before-compaction"><code class="docutils literal"><span class="pre">snapshot_before_compaction</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#auto-snapshot"><code class="docutils literal"><span class="pre">auto_snapshot</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#column-index-size-in-kb"><code class="docutils literal"><span class="pre">column_index_size_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#column-index-cache-size-in-kb"><code class="docutils literal"><span class="pre">column_index_cache_size_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#concurrent-compactors"><code class="docutils literal"><span class="pre">concurrent_compactors</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#compaction-throughput-mb-per-sec"><code class="docutils literal"><span class="pre">compaction_throughput_mb_per_sec</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#sstable-preemptive-open-interval-in-mb"><code class="docutils literal"><span class="pre">sstable_preemptive_open_interval_in_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#stream-throughput-outbound-megabits-per-sec"><code class="docutils literal"><span class="pre">stream_throughput_outbound_megabits_per_sec</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#inter-dc-stream-throughput-outbound-megabits-per-sec"><code class="docutils literal"><span class="pre">inter_dc_stream_throughput_outbound_megabits_per_sec</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#read-request-timeout-in-ms"><code class="docutils literal"><span class="pre">read_request_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#range-request-timeout-in-ms"><code class="docutils literal"><span class="pre">range_request_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#write-request-timeout-in-ms"><code class="docutils literal"><span class="pre">write_request_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#counter-write-request-timeout-in-ms"><code class="docutils literal"><span class="pre">counter_write_request_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cas-contention-timeout-in-ms"><code class="docutils literal"><span class="pre">cas_contention_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#truncate-request-timeout-in-ms"><code class="docutils literal"><span class="pre">truncate_request_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#request-timeout-in-ms"><code class="docutils literal"><span class="pre">request_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#slow-query-log-timeout-in-ms"><code class="docutils literal"><span class="pre">slow_query_log_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cross-node-timeout"><code class="docutils literal"><span class="pre">cross_node_timeout</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#streaming-socket-timeout-in-ms"><code class="docutils literal"><span class="pre">streaming_socket_timeout_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#phi-convict-threshold"><code class="docutils literal"><span class="pre">phi_convict_threshold</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#endpoint-snitch"><code class="docutils literal"><span class="pre">endpoint_snitch</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#dynamic-snitch-update-interval-in-ms"><code class="docutils literal"><span class="pre">dynamic_snitch_update_interval_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#dynamic-snitch-reset-interval-in-ms"><code class="docutils literal"><span class="pre">dynamic_snitch_reset_interval_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#dynamic-snitch-badness-threshold"><code class="docutils literal"><span class="pre">dynamic_snitch_badness_threshold</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#request-scheduler"><code class="docutils literal"><span class="pre">request_scheduler</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#request-scheduler-options"><code class="docutils literal"><span class="pre">request_scheduler_options</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#request-scheduler-id"><code class="docutils literal"><span class="pre">request_scheduler_id</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#server-encryption-options"><code class="docutils literal"><span class="pre">server_encryption_options</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#client-encryption-options"><code class="docutils literal"><span class="pre">client_encryption_options</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#internode-compression"><code class="docutils literal"><span class="pre">internode_compression</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#inter-dc-tcp-nodelay"><code class="docutils literal"><span class="pre">inter_dc_tcp_nodelay</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#tracetype-query-ttl"><code class="docutils literal"><span class="pre">tracetype_query_ttl</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#tracetype-repair-ttl"><code class="docutils literal"><span class="pre">tracetype_repair_ttl</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#gc-log-threshold-in-ms"><code class="docutils literal"><span class="pre">gc_log_threshold_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#enable-user-defined-functions"><code class="docutils literal"><span class="pre">enable_user_defined_functions</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#enable-scripted-user-defined-functions"><code class="docutils literal"><span class="pre">enable_scripted_user_defined_functions</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#windows-timer-interval"><code class="docutils literal"><span class="pre">windows_timer_interval</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#transparent-data-encryption-options"><code class="docutils literal"><span class="pre">transparent_data_encryption_options</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#tombstone-warn-threshold"><code class="docutils literal"><span class="pre">tombstone_warn_threshold</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#tombstone-failure-threshold"><code class="docutils literal"><span class="pre">tombstone_failure_threshold</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#batch-size-warn-threshold-in-kb"><code class="docutils literal"><span class="pre">batch_size_warn_threshold_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#batch-size-fail-threshold-in-kb"><code class="docutils literal"><span class="pre">batch_size_fail_threshold_in_kb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#unlogged-batch-across-partitions-warn-threshold"><code class="docutils literal"><span class="pre">unlogged_batch_across_partitions_warn_threshold</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#compaction-large-partition-warning-threshold-mb"><code class="docutils literal"><span class="pre">compaction_large_partition_warning_threshold_mb</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#gc-warn-threshold-in-ms"><code class="docutils literal"><span class="pre">gc_warn_threshold_in_ms</span></code></a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#max-value-size-in-mb"><code class="docutils literal"><span class="pre">max_value_size_in_mb</span></code></a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="../operating/index.html">Operating Cassandra</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Cassandra Tools</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../development/index.html">Cassandra Development</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../faq/index.html">Frequently Asked Questions</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../bugs.html">Reporting Bugs and Contributing</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../contactus.html">Contact us</a></li> |
| </ul> |
| |
| |
| |
| </div><!--/.nav-collapse --> |
| </div> |
| </div> |
| </div> |
| <div class="col-md-8"> |
| <div class="content doc-content"> |
| <div class="container"> |
| |
| <div class="section" id="cassandra-configuration-file"> |
| <span id="cassandra-yaml"></span><h1>Cassandra Configuration File<a class="headerlink" href="#cassandra-configuration-file" title="Permalink to this headline">¶</a></h1> |
| <div class="section" id="cluster-name"> |
| <h2><code class="docutils literal"><span class="pre">cluster_name</span></code><a class="headerlink" href="#cluster-name" title="Permalink to this headline">¶</a></h2> |
| <p>The name of the cluster. This is mainly used to prevent machines in |
| one logical cluster from joining another.</p> |
| <p><em>Default Value:</em> ‘Test Cluster’</p> |
| </div> |
| <div class="section" id="num-tokens"> |
| <h2><code class="docutils literal"><span class="pre">num_tokens</span></code><a class="headerlink" href="#num-tokens" title="Permalink to this headline">¶</a></h2> |
| <p>This defines the number of tokens randomly assigned to this node on the ring |
| The more tokens, relative to other nodes, the larger the proportion of data |
| that this node will store. You probably want all nodes to have the same number |
| of tokens assuming they have equal hardware capability.</p> |
| <p>If you leave this unspecified, Cassandra will use the default of 1 token for legacy compatibility, |
| and will use the initial_token as described below.</p> |
| <p>Specifying initial_token will override this setting on the node’s initial start, |
| on subsequent starts, this setting will apply even if initial token is set.</p> |
| <p>If you already have a cluster with 1 token per node, and wish to migrate to |
| multiple tokens per node, see <a class="reference external" href="http://wiki.apache.org/cassandra/Operations">http://wiki.apache.org/cassandra/Operations</a></p> |
| <p><em>Default Value:</em> 256</p> |
| </div> |
| <div class="section" id="allocate-tokens-for-keyspace"> |
| <h2><code class="docutils literal"><span class="pre">allocate_tokens_for_keyspace</span></code><a class="headerlink" href="#allocate-tokens-for-keyspace" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Triggers automatic allocation of num_tokens tokens for this node. The allocation |
| algorithm attempts to choose tokens in a way that optimizes replicated load over |
| the nodes in the datacenter for the replication strategy used by the specified |
| keyspace.</p> |
| <p>The load assigned to each node will be close to proportional to its number of |
| vnodes.</p> |
| <p>Only supported with the Murmur3Partitioner.</p> |
| <p><em>Default Value:</em> KEYSPACE</p> |
| </div> |
| <div class="section" id="initial-token"> |
| <h2><code class="docutils literal"><span class="pre">initial_token</span></code><a class="headerlink" href="#initial-token" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>initial_token allows you to specify tokens manually. While you can use it with |
| vnodes (num_tokens > 1, above) – in which case you should provide a |
| comma-separated list – it’s primarily used when adding nodes to legacy clusters |
| that do not have vnodes enabled.</p> |
| </div> |
| <div class="section" id="hinted-handoff-enabled"> |
| <h2><code class="docutils literal"><span class="pre">hinted_handoff_enabled</span></code><a class="headerlink" href="#hinted-handoff-enabled" title="Permalink to this headline">¶</a></h2> |
| <p>See <a class="reference external" href="http://wiki.apache.org/cassandra/HintedHandoff">http://wiki.apache.org/cassandra/HintedHandoff</a> |
| May either be “true” or “false” to enable globally</p> |
| <p><em>Default Value:</em> true</p> |
| </div> |
| <div class="section" id="hinted-handoff-disabled-datacenters"> |
| <h2><code class="docutils literal"><span class="pre">hinted_handoff_disabled_datacenters</span></code><a class="headerlink" href="#hinted-handoff-disabled-datacenters" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>When hinted_handoff_enabled is true, a black list of data centers that will not |
| perform hinted handoff</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># - DC1</span> |
| <span class="c1"># - DC2</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="max-hint-window-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">max_hint_window_in_ms</span></code><a class="headerlink" href="#max-hint-window-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>this defines the maximum amount of time a dead host will have hints |
| generated. After it has been dead this long, new hints for it will not be |
| created until it has been seen alive and gone down again.</p> |
| <p><em>Default Value:</em> 10800000 # 3 hours</p> |
| </div> |
| <div class="section" id="hinted-handoff-throttle-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">hinted_handoff_throttle_in_kb</span></code><a class="headerlink" href="#hinted-handoff-throttle-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum throttle in KBs per second, per delivery thread. This will be |
| reduced proportionally to the number of nodes in the cluster. (If there |
| are two nodes in the cluster, each delivery thread will use the maximum |
| rate; if there are three, each will throttle to half of the maximum, |
| since we expect two nodes to be delivering hints simultaneously.)</p> |
| <p><em>Default Value:</em> 1024</p> |
| </div> |
| <div class="section" id="max-hints-delivery-threads"> |
| <h2><code class="docutils literal"><span class="pre">max_hints_delivery_threads</span></code><a class="headerlink" href="#max-hints-delivery-threads" title="Permalink to this headline">¶</a></h2> |
| <p>Number of threads with which to deliver hints; |
| Consider increasing this number when you have multi-dc deployments, since |
| cross-dc handoff tends to be slower</p> |
| <p><em>Default Value:</em> 2</p> |
| </div> |
| <div class="section" id="hints-directory"> |
| <h2><code class="docutils literal"><span class="pre">hints_directory</span></code><a class="headerlink" href="#hints-directory" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Directory where Cassandra should store hints. |
| If not set, the default directory is $CASSANDRA_HOME/data/hints.</p> |
| <p><em>Default Value:</em> /var/lib/cassandra/hints</p> |
| </div> |
| <div class="section" id="hints-flush-period-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">hints_flush_period_in_ms</span></code><a class="headerlink" href="#hints-flush-period-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How often hints should be flushed from the internal buffers to disk. |
| Will <em>not</em> trigger fsync.</p> |
| <p><em>Default Value:</em> 10000</p> |
| </div> |
| <div class="section" id="max-hints-file-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">max_hints_file_size_in_mb</span></code><a class="headerlink" href="#max-hints-file-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum size for a single hints file, in megabytes.</p> |
| <p><em>Default Value:</em> 128</p> |
| </div> |
| <div class="section" id="hints-compression"> |
| <h2><code class="docutils literal"><span class="pre">hints_compression</span></code><a class="headerlink" href="#hints-compression" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Compression to apply to the hint files. If omitted, hints files |
| will be written uncompressed. LZ4, Snappy, and Deflate compressors |
| are supported.</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># - class_name: LZ4Compressor</span> |
| <span class="c1"># parameters:</span> |
| <span class="c1"># -</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="batchlog-replay-throttle-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">batchlog_replay_throttle_in_kb</span></code><a class="headerlink" href="#batchlog-replay-throttle-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum throttle in KBs per second, total. This will be |
| reduced proportionally to the number of nodes in the cluster.</p> |
| <p><em>Default Value:</em> 1024</p> |
| </div> |
| <div class="section" id="authenticator"> |
| <h2><code class="docutils literal"><span class="pre">authenticator</span></code><a class="headerlink" href="#authenticator" title="Permalink to this headline">¶</a></h2> |
| <p>Authentication backend, implementing IAuthenticator; used to identify users |
| Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthenticator, |
| PasswordAuthenticator}.</p> |
| <ul class="simple"> |
| <li>AllowAllAuthenticator performs no checks - set it to disable authentication.</li> |
| <li>PasswordAuthenticator relies on username/password pairs to authenticate |
| users. It keeps usernames and hashed passwords in system_auth.credentials table. |
| Please increase system_auth keyspace replication factor if you use this authenticator. |
| If using PasswordAuthenticator, CassandraRoleManager must also be used (see below)</li> |
| </ul> |
| <p><em>Default Value:</em> AllowAllAuthenticator</p> |
| </div> |
| <div class="section" id="authorizer"> |
| <h2><code class="docutils literal"><span class="pre">authorizer</span></code><a class="headerlink" href="#authorizer" title="Permalink to this headline">¶</a></h2> |
| <p>Authorization backend, implementing IAuthorizer; used to limit access/provide permissions |
| Out of the box, Cassandra provides org.apache.cassandra.auth.{AllowAllAuthorizer, |
| CassandraAuthorizer}.</p> |
| <ul class="simple"> |
| <li>AllowAllAuthorizer allows any action to any user - set it to disable authorization.</li> |
| <li>CassandraAuthorizer stores permissions in system_auth.permissions table. Please |
| increase system_auth keyspace replication factor if you use this authorizer.</li> |
| </ul> |
| <p><em>Default Value:</em> AllowAllAuthorizer</p> |
| </div> |
| <div class="section" id="role-manager"> |
| <h2><code class="docutils literal"><span class="pre">role_manager</span></code><a class="headerlink" href="#role-manager" title="Permalink to this headline">¶</a></h2> |
| <p>Part of the Authentication & Authorization backend, implementing IRoleManager; used |
| to maintain grants and memberships between roles. |
| Out of the box, Cassandra provides org.apache.cassandra.auth.CassandraRoleManager, |
| which stores role information in the system_auth keyspace. Most functions of the |
| IRoleManager require an authenticated login, so unless the configured IAuthenticator |
| actually implements authentication, most of this functionality will be unavailable.</p> |
| <ul class="simple"> |
| <li>CassandraRoleManager stores role data in the system_auth keyspace. Please |
| increase system_auth keyspace replication factor if you use this role manager.</li> |
| </ul> |
| <p><em>Default Value:</em> CassandraRoleManager</p> |
| </div> |
| <div class="section" id="roles-validity-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">roles_validity_in_ms</span></code><a class="headerlink" href="#roles-validity-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>Validity period for roles cache (fetching granted roles can be an expensive |
| operation depending on the role manager, CassandraRoleManager is one example) |
| Granted roles are cached for authenticated sessions in AuthenticatedUser and |
| after the period specified here, become eligible for (async) reload. |
| Defaults to 2000, set to 0 to disable caching entirely. |
| Will be disabled automatically for AllowAllAuthenticator.</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="roles-update-interval-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">roles_update_interval_in_ms</span></code><a class="headerlink" href="#roles-update-interval-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Refresh interval for roles cache (if enabled). |
| After this interval, cache entries become eligible for refresh. Upon next |
| access, an async reload is scheduled and the old value returned until it |
| completes. If roles_validity_in_ms is non-zero, then this must be |
| also. |
| Defaults to the same value as roles_validity_in_ms.</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="permissions-validity-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">permissions_validity_in_ms</span></code><a class="headerlink" href="#permissions-validity-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>Validity period for permissions cache (fetching permissions can be an |
| expensive operation depending on the authorizer, CassandraAuthorizer is |
| one example). Defaults to 2000, set to 0 to disable. |
| Will be disabled automatically for AllowAllAuthorizer.</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="permissions-update-interval-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">permissions_update_interval_in_ms</span></code><a class="headerlink" href="#permissions-update-interval-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Refresh interval for permissions cache (if enabled). |
| After this interval, cache entries become eligible for refresh. Upon next |
| access, an async reload is scheduled and the old value returned until it |
| completes. If permissions_validity_in_ms is non-zero, then this must be |
| also. |
| Defaults to the same value as permissions_validity_in_ms.</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="credentials-validity-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">credentials_validity_in_ms</span></code><a class="headerlink" href="#credentials-validity-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>Validity period for credentials cache. This cache is tightly coupled to |
| the provided PasswordAuthenticator implementation of IAuthenticator. If |
| another IAuthenticator implementation is configured, this cache will not |
| be automatically used and so the following settings will have no effect. |
| Please note, credentials are cached in their encrypted form, so while |
| activating this cache may reduce the number of queries made to the |
| underlying table, it may not bring a significant reduction in the |
| latency of individual authentication attempts. |
| Defaults to 2000, set to 0 to disable credentials caching.</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="credentials-update-interval-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">credentials_update_interval_in_ms</span></code><a class="headerlink" href="#credentials-update-interval-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Refresh interval for credentials cache (if enabled). |
| After this interval, cache entries become eligible for refresh. Upon next |
| access, an async reload is scheduled and the old value returned until it |
| completes. If credentials_validity_in_ms is non-zero, then this must be |
| also. |
| Defaults to the same value as credentials_validity_in_ms.</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="partitioner"> |
| <h2><code class="docutils literal"><span class="pre">partitioner</span></code><a class="headerlink" href="#partitioner" title="Permalink to this headline">¶</a></h2> |
| <p>The partitioner is responsible for distributing groups of rows (by |
| partition key) across nodes in the cluster. You should leave this |
| alone for new clusters. The partitioner can NOT be changed without |
| reloading all data, so when upgrading you should set this to the |
| same partitioner you were already using.</p> |
| <p>Besides Murmur3Partitioner, partitioners included for backwards |
| compatibility include RandomPartitioner, ByteOrderedPartitioner, and |
| OrderPreservingPartitioner.</p> |
| <p><em>Default Value:</em> org.apache.cassandra.dht.Murmur3Partitioner</p> |
| </div> |
| <div class="section" id="data-file-directories"> |
| <h2><code class="docutils literal"><span class="pre">data_file_directories</span></code><a class="headerlink" href="#data-file-directories" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Directories where Cassandra should store data on disk. Cassandra |
| will spread data evenly across them, subject to the granularity of |
| the configured compaction strategy. |
| If not set, the default directory is $CASSANDRA_HOME/data/data.</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># - /var/lib/cassandra/data</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="commitlog-directory"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_directory</span></code><a class="headerlink" href="#commitlog-directory" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em> |
| commit log. when running on magnetic HDD, this should be a |
| separate spindle than the data directories. |
| If not set, the default directory is $CASSANDRA_HOME/data/commitlog.</p> |
| <p><em>Default Value:</em> /var/lib/cassandra/commitlog</p> |
| </div> |
| <div class="section" id="cdc-enabled"> |
| <h2><code class="docutils literal"><span class="pre">cdc_enabled</span></code><a class="headerlink" href="#cdc-enabled" title="Permalink to this headline">¶</a></h2> |
| <p>Enable / disable CDC functionality on a per-node basis. This modifies the logic used |
| for write path allocation rejection (standard: never reject. cdc: reject Mutation |
| containing a CDC-enabled table if at space limit in cdc_raw_directory).</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="cdc-raw-directory"> |
| <h2><code class="docutils literal"><span class="pre">cdc_raw_directory</span></code><a class="headerlink" href="#cdc-raw-directory" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>CommitLogSegments are moved to this directory on flush if cdc_enabled: true and the |
| segment contains mutations for a CDC-enabled table. This should be placed on a |
| separate spindle than the data directories. If not set, the default directory is |
| $CASSANDRA_HOME/data/cdc_raw.</p> |
| <p><em>Default Value:</em> /var/lib/cassandra/cdc_raw</p> |
| </div> |
| <div class="section" id="disk-failure-policy"> |
| <h2><code class="docutils literal"><span class="pre">disk_failure_policy</span></code><a class="headerlink" href="#disk-failure-policy" title="Permalink to this headline">¶</a></h2> |
| <p>Policy for data disk failures:</p> |
| <dl class="docutils"> |
| <dt>die</dt> |
| <dd>shut down gossip and client transports and kill the JVM for any fs errors or |
| single-sstable errors, so the node can be replaced.</dd> |
| <dt>stop_paranoid</dt> |
| <dd>shut down gossip and client transports even for single-sstable errors, |
| kill the JVM for errors during startup.</dd> |
| <dt>stop</dt> |
| <dd>shut down gossip and client transports, leaving the node effectively dead, but |
| can still be inspected via JMX, kill the JVM for errors during startup.</dd> |
| <dt>best_effort</dt> |
| <dd>stop using the failed disk and respond to requests based on |
| remaining available sstables. This means you WILL see obsolete |
| data at CL.ONE!</dd> |
| <dt>ignore</dt> |
| <dd>ignore fatal errors and let requests fail, as in pre-1.2 Cassandra</dd> |
| </dl> |
| <p><em>Default Value:</em> stop</p> |
| </div> |
| <div class="section" id="commit-failure-policy"> |
| <h2><code class="docutils literal"><span class="pre">commit_failure_policy</span></code><a class="headerlink" href="#commit-failure-policy" title="Permalink to this headline">¶</a></h2> |
| <p>Policy for commit disk failures:</p> |
| <dl class="docutils"> |
| <dt>die</dt> |
| <dd>shut down gossip and Thrift and kill the JVM, so the node can be replaced.</dd> |
| <dt>stop</dt> |
| <dd>shut down gossip and Thrift, leaving the node effectively dead, but |
| can still be inspected via JMX.</dd> |
| <dt>stop_commit</dt> |
| <dd>shutdown the commit log, letting writes collect but |
| continuing to service reads, as in pre-2.0.5 Cassandra</dd> |
| <dt>ignore</dt> |
| <dd>ignore fatal errors and let the batches fail</dd> |
| </dl> |
| <p><em>Default Value:</em> stop</p> |
| </div> |
| <div class="section" id="prepared-statements-cache-size-mb"> |
| <h2><code class="docutils literal"><span class="pre">prepared_statements_cache_size_mb</span></code><a class="headerlink" href="#prepared-statements-cache-size-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum size of the native protocol prepared statement cache</p> |
| <p>Valid values are either “auto” (omitting the value) or a value greater 0.</p> |
| <p>Note that specifying a too large value will result in long running GCs and possbily |
| out-of-memory errors. Keep the value at a small fraction of the heap.</p> |
| <p>If you constantly see “prepared statements discarded in the last minute because |
| cache limit reached” messages, the first step is to investigate the root cause |
| of these messages and check whether prepared statements are used correctly - |
| i.e. use bind markers for variable parts.</p> |
| <p>Do only change the default value, if you really have more prepared statements than |
| fit in the cache. In most cases it is not neccessary to change this value. |
| Constantly re-preparing statements is a performance penalty.</p> |
| <p>Default value (“auto”) is 1/256th of the heap or 10MB, whichever is greater</p> |
| </div> |
| <div class="section" id="thrift-prepared-statements-cache-size-mb"> |
| <h2><code class="docutils literal"><span class="pre">thrift_prepared_statements_cache_size_mb</span></code><a class="headerlink" href="#thrift-prepared-statements-cache-size-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum size of the Thrift prepared statement cache</p> |
| <p>If you do not use Thrift at all, it is safe to leave this value at “auto”.</p> |
| <p>See description of ‘prepared_statements_cache_size_mb’ above for more information.</p> |
| <p>Default value (“auto”) is 1/256th of the heap or 10MB, whichever is greater</p> |
| </div> |
| <div class="section" id="key-cache-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">key_cache_size_in_mb</span></code><a class="headerlink" href="#key-cache-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum size of the key cache in memory.</p> |
| <p>Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the |
| minimum, sometimes more. The key cache is fairly tiny for the amount of |
| time it saves, so it’s worthwhile to use it at large numbers. |
| The row cache saves even more time, but must contain the entire row, |
| so it is extremely space-intensive. It’s best to only use the |
| row cache if you have hot rows or static rows.</p> |
| <p>NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.</p> |
| <p>Default value is empty to make it “auto” (min(5% of Heap (in MB), 100MB)). Set to 0 to disable key cache.</p> |
| </div> |
| <div class="section" id="key-cache-save-period"> |
| <h2><code class="docutils literal"><span class="pre">key_cache_save_period</span></code><a class="headerlink" href="#key-cache-save-period" title="Permalink to this headline">¶</a></h2> |
| <p>Duration in seconds after which Cassandra should |
| save the key cache. Caches are saved to saved_caches_directory as |
| specified in this configuration file.</p> |
| <p>Saved caches greatly improve cold-start speeds, and is relatively cheap in |
| terms of I/O for the key cache. Row cache saving is much more expensive and |
| has limited use.</p> |
| <p>Default is 14400 or 4 hours.</p> |
| <p><em>Default Value:</em> 14400</p> |
| </div> |
| <div class="section" id="key-cache-keys-to-save"> |
| <h2><code class="docutils literal"><span class="pre">key_cache_keys_to_save</span></code><a class="headerlink" href="#key-cache-keys-to-save" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Number of keys from the key cache to save |
| Disabled by default, meaning all keys are going to be saved</p> |
| <p><em>Default Value:</em> 100</p> |
| </div> |
| <div class="section" id="row-cache-class-name"> |
| <h2><code class="docutils literal"><span class="pre">row_cache_class_name</span></code><a class="headerlink" href="#row-cache-class-name" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Row cache implementation class name. Available implementations:</p> |
| <dl class="docutils"> |
| <dt>org.apache.cassandra.cache.OHCProvider</dt> |
| <dd>Fully off-heap row cache implementation (default).</dd> |
| <dt>org.apache.cassandra.cache.SerializingCacheProvider</dt> |
| <dd>This is the row cache implementation availabile |
| in previous releases of Cassandra.</dd> |
| </dl> |
| <p><em>Default Value:</em> org.apache.cassandra.cache.OHCProvider</p> |
| </div> |
| <div class="section" id="row-cache-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">row_cache_size_in_mb</span></code><a class="headerlink" href="#row-cache-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum size of the row cache in memory. |
| Please note that OHC cache implementation requires some additional off-heap memory to manage |
| the map structures and some in-flight memory during operations before/after cache entries can be |
| accounted against the cache capacity. This overhead is usually small compared to the whole capacity. |
| Do not specify more memory that the system can afford in the worst usual situation and leave some |
| headroom for OS block level cache. Do never allow your system to swap.</p> |
| <p>Default value is 0, to disable row caching.</p> |
| <p><em>Default Value:</em> 0</p> |
| </div> |
| <div class="section" id="row-cache-save-period"> |
| <h2><code class="docutils literal"><span class="pre">row_cache_save_period</span></code><a class="headerlink" href="#row-cache-save-period" title="Permalink to this headline">¶</a></h2> |
| <p>Duration in seconds after which Cassandra should save the row cache. |
| Caches are saved to saved_caches_directory as specified in this configuration file.</p> |
| <p>Saved caches greatly improve cold-start speeds, and is relatively cheap in |
| terms of I/O for the key cache. Row cache saving is much more expensive and |
| has limited use.</p> |
| <p>Default is 0 to disable saving the row cache.</p> |
| <p><em>Default Value:</em> 0</p> |
| </div> |
| <div class="section" id="row-cache-keys-to-save"> |
| <h2><code class="docutils literal"><span class="pre">row_cache_keys_to_save</span></code><a class="headerlink" href="#row-cache-keys-to-save" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Number of keys from the row cache to save. |
| Specify 0 (which is the default), meaning all keys are going to be saved</p> |
| <p><em>Default Value:</em> 100</p> |
| </div> |
| <div class="section" id="counter-cache-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">counter_cache_size_in_mb</span></code><a class="headerlink" href="#counter-cache-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Maximum size of the counter cache in memory.</p> |
| <p>Counter cache helps to reduce counter locks’ contention for hot counter cells. |
| In case of RF = 1 a counter cache hit will cause Cassandra to skip the read before |
| write entirely. With RF > 1 a counter cache hit will still help to reduce the duration |
| of the lock hold, helping with hot counter cell updates, but will not allow skipping |
| the read entirely. Only the local (clock, count) tuple of a counter cell is kept |
| in memory, not the whole counter, so it’s relatively cheap.</p> |
| <p>NOTE: if you reduce the size, you may not get you hottest keys loaded on startup.</p> |
| <p>Default value is empty to make it “auto” (min(2.5% of Heap (in MB), 50MB)). Set to 0 to disable counter cache. |
| NOTE: if you perform counter deletes and rely on low gcgs, you should disable the counter cache.</p> |
| </div> |
| <div class="section" id="counter-cache-save-period"> |
| <h2><code class="docutils literal"><span class="pre">counter_cache_save_period</span></code><a class="headerlink" href="#counter-cache-save-period" title="Permalink to this headline">¶</a></h2> |
| <p>Duration in seconds after which Cassandra should |
| save the counter cache (keys only). Caches are saved to saved_caches_directory as |
| specified in this configuration file.</p> |
| <p>Default is 7200 or 2 hours.</p> |
| <p><em>Default Value:</em> 7200</p> |
| </div> |
| <div class="section" id="counter-cache-keys-to-save"> |
| <h2><code class="docutils literal"><span class="pre">counter_cache_keys_to_save</span></code><a class="headerlink" href="#counter-cache-keys-to-save" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Number of keys from the counter cache to save |
| Disabled by default, meaning all keys are going to be saved</p> |
| <p><em>Default Value:</em> 100</p> |
| </div> |
| <div class="section" id="saved-caches-directory"> |
| <h2><code class="docutils literal"><span class="pre">saved_caches_directory</span></code><a class="headerlink" href="#saved-caches-directory" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>saved caches |
| If not set, the default directory is $CASSANDRA_HOME/data/saved_caches.</p> |
| <p><em>Default Value:</em> /var/lib/cassandra/saved_caches</p> |
| </div> |
| <div class="section" id="commitlog-sync"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_sync</span></code><a class="headerlink" href="#commitlog-sync" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>commitlog_sync may be either “periodic” or “batch.”</p> |
| <p>When in batch mode, Cassandra won’t ack writes until the commit log |
| has been fsynced to disk. It will wait |
| commitlog_sync_batch_window_in_ms milliseconds between fsyncs. |
| This window should be kept short because the writer threads will |
| be unable to do extra work while waiting. (You may need to increase |
| concurrent_writes for the same reason.)</p> |
| <p><em>Default Value:</em> batch</p> |
| </div> |
| <div class="section" id="commitlog-sync-batch-window-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_sync_batch_window_in_ms</span></code><a class="headerlink" href="#commitlog-sync-batch-window-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p><em>Default Value:</em> 2</p> |
| </div> |
| <div class="section" id="id1"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_sync</span></code><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2> |
| <p>the other option is “periodic” where writes may be acked immediately |
| and the CommitLog is simply synced every commitlog_sync_period_in_ms |
| milliseconds.</p> |
| <p><em>Default Value:</em> periodic</p> |
| </div> |
| <div class="section" id="commitlog-sync-period-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_sync_period_in_ms</span></code><a class="headerlink" href="#commitlog-sync-period-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>Default Value:</em> 10000</p> |
| </div> |
| <div class="section" id="commitlog-segment-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_segment_size_in_mb</span></code><a class="headerlink" href="#commitlog-segment-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>The size of the individual commitlog file segments. A commitlog |
| segment may be archived, deleted, or recycled once all the data |
| in it (potentially from each columnfamily in the system) has been |
| flushed to sstables.</p> |
| <p>The default size is 32, which is almost always fine, but if you are |
| archiving commitlog segments (see commitlog_archiving.properties), |
| then you probably want a finer granularity of archiving; 8 or 16 MB |
| is reasonable. |
| Max mutation size is also configurable via max_mutation_size_in_kb setting in |
| cassandra.yaml. The default is half the size commitlog_segment_size_in_mb * 1024.</p> |
| <p>NOTE: If max_mutation_size_in_kb is set explicitly then commitlog_segment_size_in_mb must |
| be set to at least twice the size of max_mutation_size_in_kb / 1024</p> |
| <p><em>Default Value:</em> 32</p> |
| </div> |
| <div class="section" id="commitlog-compression"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_compression</span></code><a class="headerlink" href="#commitlog-compression" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Compression to apply to the commit log. If omitted, the commit log |
| will be written uncompressed. LZ4, Snappy, and Deflate compressors |
| are supported.</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># - class_name: LZ4Compressor</span> |
| <span class="c1"># parameters:</span> |
| <span class="c1"># -</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="seed-provider"> |
| <h2><code class="docutils literal"><span class="pre">seed_provider</span></code><a class="headerlink" href="#seed-provider" title="Permalink to this headline">¶</a></h2> |
| <p>any class that implements the SeedProvider interface and has a |
| constructor that takes a Map<String, String> of parameters will do.</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># Addresses of hosts that are deemed contact points.</span> |
| <span class="c1"># Cassandra nodes use this list of hosts to find each other and learn</span> |
| <span class="c1"># the topology of the ring. You must change this if you are running</span> |
| <span class="c1"># multiple nodes!</span> |
| <span class="o">-</span> <span class="n">class_name</span><span class="p">:</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">cassandra</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">SimpleSeedProvider</span> |
| <span class="n">parameters</span><span class="p">:</span> |
| <span class="c1"># seeds is actually a comma-delimited list of addresses.</span> |
| <span class="c1"># Ex: "<ip1>,<ip2>,<ip3>"</span> |
| <span class="o">-</span> <span class="n">seeds</span><span class="p">:</span> <span class="s2">"127.0.0.1"</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="concurrent-reads"> |
| <h2><code class="docutils literal"><span class="pre">concurrent_reads</span></code><a class="headerlink" href="#concurrent-reads" title="Permalink to this headline">¶</a></h2> |
| <p>For workloads with more data than can fit in memory, Cassandra’s |
| bottleneck will be reads that need to fetch data from |
| disk. “concurrent_reads” should be set to (16 * number_of_drives) in |
| order to allow the operations to enqueue low enough in the stack |
| that the OS and drives can reorder them. Same applies to |
| “concurrent_counter_writes”, since counter writes read the current |
| values before incrementing and writing them back.</p> |
| <p>On the other hand, since writes are almost never IO bound, the ideal |
| number of “concurrent_writes” is dependent on the number of cores in |
| your system; (8 * number_of_cores) is a good rule of thumb.</p> |
| <p><em>Default Value:</em> 32</p> |
| </div> |
| <div class="section" id="concurrent-writes"> |
| <h2><code class="docutils literal"><span class="pre">concurrent_writes</span></code><a class="headerlink" href="#concurrent-writes" title="Permalink to this headline">¶</a></h2> |
| <p><em>Default Value:</em> 32</p> |
| </div> |
| <div class="section" id="concurrent-counter-writes"> |
| <h2><code class="docutils literal"><span class="pre">concurrent_counter_writes</span></code><a class="headerlink" href="#concurrent-counter-writes" title="Permalink to this headline">¶</a></h2> |
| <p><em>Default Value:</em> 32</p> |
| </div> |
| <div class="section" id="concurrent-materialized-view-writes"> |
| <h2><code class="docutils literal"><span class="pre">concurrent_materialized_view_writes</span></code><a class="headerlink" href="#concurrent-materialized-view-writes" title="Permalink to this headline">¶</a></h2> |
| <p>For materialized view writes, as there is a read involved, so this should |
| be limited by the less of concurrent reads or concurrent writes.</p> |
| <p><em>Default Value:</em> 32</p> |
| </div> |
| <div class="section" id="file-cache-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">file_cache_size_in_mb</span></code><a class="headerlink" href="#file-cache-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Maximum memory to use for sstable chunk cache and buffer pooling. |
| 32MB of this are reserved for pooling buffers, the rest is used as an |
| cache that holds uncompressed sstable chunks. |
| Defaults to the smaller of 1/4 of heap or 512MB. This pool is allocated off-heap, |
| so is in addition to the memory allocated for heap. The cache also has on-heap |
| overhead which is roughly 128 bytes per chunk (i.e. 0.2% of the reserved size |
| if the default 64k chunk size is used). |
| Memory is only allocated when needed.</p> |
| <p><em>Default Value:</em> 512</p> |
| </div> |
| <div class="section" id="buffer-pool-use-heap-if-exhausted"> |
| <h2><code class="docutils literal"><span class="pre">buffer_pool_use_heap_if_exhausted</span></code><a class="headerlink" href="#buffer-pool-use-heap-if-exhausted" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Flag indicating whether to allocate on or off heap when the sstable buffer |
| pool is exhausted, that is when it has exceeded the maximum memory |
| file_cache_size_in_mb, beyond which it will not cache buffers but allocate on request.</p> |
| <p><em>Default Value:</em> true</p> |
| </div> |
| <div class="section" id="disk-optimization-strategy"> |
| <h2><code class="docutils literal"><span class="pre">disk_optimization_strategy</span></code><a class="headerlink" href="#disk-optimization-strategy" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>The strategy for optimizing disk read |
| Possible values are: |
| ssd (for solid state disks, the default) |
| spinning (for spinning disks)</p> |
| <p><em>Default Value:</em> ssd</p> |
| </div> |
| <div class="section" id="memtable-heap-space-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">memtable_heap_space_in_mb</span></code><a class="headerlink" href="#memtable-heap-space-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Total permitted memory to use for memtables. Cassandra will stop |
| accepting writes when the limit is exceeded until a flush completes, |
| and will trigger a flush based on memtable_cleanup_threshold |
| If omitted, Cassandra will set both to 1/4 the size of the heap.</p> |
| <p><em>Default Value:</em> 2048</p> |
| </div> |
| <div class="section" id="memtable-offheap-space-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">memtable_offheap_space_in_mb</span></code><a class="headerlink" href="#memtable-offheap-space-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p><em>Default Value:</em> 2048</p> |
| </div> |
| <div class="section" id="memtable-cleanup-threshold"> |
| <h2><code class="docutils literal"><span class="pre">memtable_cleanup_threshold</span></code><a class="headerlink" href="#memtable-cleanup-threshold" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>memtable_cleanup_threshold is deprecated. The default calculation |
| is the only reasonable choice. See the comments on memtable_flush_writers |
| for more information.</p> |
| <p>Ratio of occupied non-flushing memtable size to total permitted size |
| that will trigger a flush of the largest memtable. Larger mct will |
| mean larger flushes and hence less compaction, but also less concurrent |
| flush activity which can make it difficult to keep your disks fed |
| under heavy write load.</p> |
| <p>memtable_cleanup_threshold defaults to 1 / (memtable_flush_writers + 1)</p> |
| <p><em>Default Value:</em> 0.11</p> |
| </div> |
| <div class="section" id="memtable-allocation-type"> |
| <h2><code class="docutils literal"><span class="pre">memtable_allocation_type</span></code><a class="headerlink" href="#memtable-allocation-type" title="Permalink to this headline">¶</a></h2> |
| <p>Specify the way Cassandra allocates and manages memtable memory. |
| Options are:</p> |
| <dl class="docutils"> |
| <dt>heap_buffers</dt> |
| <dd>on heap nio buffers</dd> |
| <dt>offheap_buffers</dt> |
| <dd>off heap (direct) nio buffers</dd> |
| <dt>offheap_objects</dt> |
| <dd>off heap objects</dd> |
| </dl> |
| <p><em>Default Value:</em> heap_buffers</p> |
| </div> |
| <div class="section" id="commitlog-total-space-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">commitlog_total_space_in_mb</span></code><a class="headerlink" href="#commitlog-total-space-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Total space to use for commit logs on disk.</p> |
| <p>If space gets above this value, Cassandra will flush every dirty CF |
| in the oldest segment and remove it. So a small total commitlog space |
| will tend to cause more flush activity on less-active columnfamilies.</p> |
| <p>The default value is the smaller of 8192, and 1/4 of the total space |
| of the commitlog volume.</p> |
| <p><em>Default Value:</em> 8192</p> |
| </div> |
| <div class="section" id="memtable-flush-writers"> |
| <h2><code class="docutils literal"><span class="pre">memtable_flush_writers</span></code><a class="headerlink" href="#memtable-flush-writers" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>This sets the number of memtable flush writer threads per disk |
| as well as the total number of memtables that can be flushed concurrently. |
| These are generally a combination of compute and IO bound.</p> |
| <p>Memtable flushing is more CPU efficient than memtable ingest and a single thread |
| can keep up with the ingest rate of a whole server on a single fast disk |
| until it temporarily becomes IO bound under contention typically with compaction. |
| At that point you need multiple flush threads. At some point in the future |
| it may become CPU bound all the time.</p> |
| <p>You can tell if flushing is falling behind using the MemtablePool.BlockedOnAllocation |
| metric which should be 0, but will be non-zero if threads are blocked waiting on flushing |
| to free memory.</p> |
| <p>memtable_flush_writers defaults to two for a single data directory. |
| This means that two memtables can be flushed concurrently to the single data directory. |
| If you have multiple data directories the default is one memtable flushing at a time |
| but the flush will use a thread per data directory so you will get two or more writers.</p> |
| <p>Two is generally enough to flush on a fast disk [array] mounted as a single data directory. |
| Adding more flush writers will result in smaller more frequent flushes that introduce more |
| compaction overhead.</p> |
| <p>There is a direct tradeoff between number of memtables that can be flushed concurrently |
| and flush size and frequency. More is not better you just need enough flush writers |
| to never stall waiting for flushing to free memory.</p> |
| <p><em>Default Value:</em> 2</p> |
| </div> |
| <div class="section" id="cdc-total-space-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">cdc_total_space_in_mb</span></code><a class="headerlink" href="#cdc-total-space-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Total space to use for change-data-capture logs on disk.</p> |
| <p>If space gets above this value, Cassandra will throw WriteTimeoutException |
| on Mutations including tables with CDC enabled. A CDCCompactor is responsible |
| for parsing the raw CDC logs and deleting them when parsing is completed.</p> |
| <p>The default value is the min of 4096 mb and 1/8th of the total space |
| of the drive where cdc_raw_directory resides.</p> |
| <p><em>Default Value:</em> 4096</p> |
| </div> |
| <div class="section" id="cdc-free-space-check-interval-ms"> |
| <h2><code class="docutils literal"><span class="pre">cdc_free_space_check_interval_ms</span></code><a class="headerlink" href="#cdc-free-space-check-interval-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>When we hit our cdc_raw limit and the CDCCompactor is either running behind |
| or experiencing backpressure, we check at the following interval to see if any |
| new space for cdc-tracked tables has been made available. Default to 250ms</p> |
| <p><em>Default Value:</em> 250</p> |
| </div> |
| <div class="section" id="index-summary-capacity-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">index_summary_capacity_in_mb</span></code><a class="headerlink" href="#index-summary-capacity-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>A fixed memory pool size in MB for for SSTable index summaries. If left |
| empty, this will default to 5% of the heap size. If the memory usage of |
| all index summaries exceeds this limit, SSTables with low read rates will |
| shrink their index summaries in order to meet this limit. However, this |
| is a best-effort process. In extreme conditions Cassandra may need to use |
| more than this amount of memory.</p> |
| </div> |
| <div class="section" id="index-summary-resize-interval-in-minutes"> |
| <h2><code class="docutils literal"><span class="pre">index_summary_resize_interval_in_minutes</span></code><a class="headerlink" href="#index-summary-resize-interval-in-minutes" title="Permalink to this headline">¶</a></h2> |
| <p>How frequently index summaries should be resampled. This is done |
| periodically to redistribute memory from the fixed-size pool to sstables |
| proportional their recent read rates. Setting to -1 will disable this |
| process, leaving existing index summaries at their current sampling level.</p> |
| <p><em>Default Value:</em> 60</p> |
| </div> |
| <div class="section" id="trickle-fsync"> |
| <h2><code class="docutils literal"><span class="pre">trickle_fsync</span></code><a class="headerlink" href="#trickle-fsync" title="Permalink to this headline">¶</a></h2> |
| <p>Whether to, when doing sequential writing, fsync() at intervals in |
| order to force the operating system to flush the dirty |
| buffers. Enable this to avoid sudden dirty buffer flushing from |
| impacting read latencies. Almost always a good idea on SSDs; not |
| necessarily on platters.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="trickle-fsync-interval-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">trickle_fsync_interval_in_kb</span></code><a class="headerlink" href="#trickle-fsync-interval-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p><em>Default Value:</em> 10240</p> |
| </div> |
| <div class="section" id="storage-port"> |
| <h2><code class="docutils literal"><span class="pre">storage_port</span></code><a class="headerlink" href="#storage-port" title="Permalink to this headline">¶</a></h2> |
| <p>TCP port, for commands and data |
| For security reasons, you should not expose this port to the internet. Firewall it if needed.</p> |
| <p><em>Default Value:</em> 7000</p> |
| </div> |
| <div class="section" id="ssl-storage-port"> |
| <h2><code class="docutils literal"><span class="pre">ssl_storage_port</span></code><a class="headerlink" href="#ssl-storage-port" title="Permalink to this headline">¶</a></h2> |
| <p>SSL port, for encrypted communication. Unused unless enabled in |
| encryption_options |
| For security reasons, you should not expose this port to the internet. Firewall it if needed.</p> |
| <p><em>Default Value:</em> 7001</p> |
| </div> |
| <div class="section" id="listen-address"> |
| <h2><code class="docutils literal"><span class="pre">listen_address</span></code><a class="headerlink" href="#listen-address" title="Permalink to this headline">¶</a></h2> |
| <p>Address or interface to bind to and tell other Cassandra nodes to connect to. |
| You _must_ change this if you want multiple nodes to be able to communicate!</p> |
| <p>Set listen_address OR listen_interface, not both.</p> |
| <p>Leaving it blank leaves it up to InetAddress.getLocalHost(). This |
| will always do the Right Thing _if_ the node is properly configured |
| (hostname, name resolution, etc), and the Right Thing is to use the |
| address associated with the hostname (it might not be).</p> |
| <p>Setting listen_address to 0.0.0.0 is always wrong.</p> |
| <p><em>Default Value:</em> localhost</p> |
| </div> |
| <div class="section" id="listen-interface"> |
| <h2><code class="docutils literal"><span class="pre">listen_interface</span></code><a class="headerlink" href="#listen-interface" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Set listen_address OR listen_interface, not both. Interfaces must correspond |
| to a single address, IP aliasing is not supported.</p> |
| <p><em>Default Value:</em> eth0</p> |
| </div> |
| <div class="section" id="listen-interface-prefer-ipv6"> |
| <h2><code class="docutils literal"><span class="pre">listen_interface_prefer_ipv6</span></code><a class="headerlink" href="#listen-interface-prefer-ipv6" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>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.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="broadcast-address"> |
| <h2><code class="docutils literal"><span class="pre">broadcast_address</span></code><a class="headerlink" href="#broadcast-address" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Address to broadcast to other Cassandra nodes |
| Leaving this blank will set it to the same value as listen_address</p> |
| <p><em>Default Value:</em> 1.2.3.4</p> |
| </div> |
| <div class="section" id="listen-on-broadcast-address"> |
| <h2><code class="docutils literal"><span class="pre">listen_on_broadcast_address</span></code><a class="headerlink" href="#listen-on-broadcast-address" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>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.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="internode-authenticator"> |
| <h2><code class="docutils literal"><span class="pre">internode_authenticator</span></code><a class="headerlink" href="#internode-authenticator" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Internode authentication backend, implementing IInternodeAuthenticator; |
| used to allow/disallow connections from peer nodes.</p> |
| <p><em>Default Value:</em> org.apache.cassandra.auth.AllowAllInternodeAuthenticator</p> |
| </div> |
| <div class="section" id="start-native-transport"> |
| <h2><code class="docutils literal"><span class="pre">start_native_transport</span></code><a class="headerlink" href="#start-native-transport" title="Permalink to this headline">¶</a></h2> |
| <p>Whether to start the native transport server. |
| Please note that the address on which the native transport is bound is the |
| same as the rpc_address. The port however is different and specified below.</p> |
| <p><em>Default Value:</em> true</p> |
| </div> |
| <div class="section" id="native-transport-port"> |
| <h2><code class="docutils literal"><span class="pre">native_transport_port</span></code><a class="headerlink" href="#native-transport-port" title="Permalink to this headline">¶</a></h2> |
| <p>port for the CQL native transport to listen for clients on |
| For security reasons, you should not expose this port to the internet. Firewall it if needed.</p> |
| <p><em>Default Value:</em> 9042</p> |
| </div> |
| <div class="section" id="native-transport-port-ssl"> |
| <h2><code class="docutils literal"><span class="pre">native_transport_port_ssl</span></code><a class="headerlink" href="#native-transport-port-ssl" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em> |
| Enabling native transport encryption in client_encryption_options allows you to either use |
| encryption for the standard port or to use a dedicated, additional port along with the unencrypted |
| standard native_transport_port. |
| 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.</p> |
| <p><em>Default Value:</em> 9142</p> |
| </div> |
| <div class="section" id="native-transport-max-threads"> |
| <h2><code class="docutils literal"><span class="pre">native_transport_max_threads</span></code><a class="headerlink" href="#native-transport-max-threads" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em> |
| The maximum threads for handling requests when the native transport is used. |
| This is similar to rpc_max_threads though the default differs slightly (and |
| there is no native_transport_min_threads, idle threads will always be stopped |
| after 30 seconds).</p> |
| <p><em>Default Value:</em> 128</p> |
| </div> |
| <div class="section" id="native-transport-max-frame-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">native_transport_max_frame_size_in_mb</span></code><a class="headerlink" href="#native-transport-max-frame-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>The maximum size of allowed frame. Frame (requests) larger than this will |
| be rejected as invalid. The default is 256MB. If you’re changing this parameter, |
| you may want to adjust max_value_size_in_mb accordingly.</p> |
| <p><em>Default Value:</em> 256</p> |
| </div> |
| <div class="section" id="native-transport-max-concurrent-connections"> |
| <h2><code class="docutils literal"><span class="pre">native_transport_max_concurrent_connections</span></code><a class="headerlink" href="#native-transport-max-concurrent-connections" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>The maximum number of concurrent client connections. |
| The default is -1, which means unlimited.</p> |
| <p><em>Default Value:</em> -1</p> |
| </div> |
| <div class="section" id="native-transport-max-concurrent-connections-per-ip"> |
| <h2><code class="docutils literal"><span class="pre">native_transport_max_concurrent_connections_per_ip</span></code><a class="headerlink" href="#native-transport-max-concurrent-connections-per-ip" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>The maximum number of concurrent client connections per source ip. |
| The default is -1, which means unlimited.</p> |
| <p><em>Default Value:</em> -1</p> |
| </div> |
| <div class="section" id="start-rpc"> |
| <h2><code class="docutils literal"><span class="pre">start_rpc</span></code><a class="headerlink" href="#start-rpc" title="Permalink to this headline">¶</a></h2> |
| <p>Whether to start the thrift rpc server.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="rpc-address"> |
| <h2><code class="docutils literal"><span class="pre">rpc_address</span></code><a class="headerlink" href="#rpc-address" title="Permalink to this headline">¶</a></h2> |
| <p>The address or interface to bind the Thrift RPC service and native transport |
| server to.</p> |
| <p>Set rpc_address OR rpc_interface, not both.</p> |
| <p>Leaving rpc_address blank has the same effect as on listen_address |
| (i.e. it will be based on the configured hostname of the node).</p> |
| <p>Note that unlike listen_address, you can specify 0.0.0.0, but you must also |
| set broadcast_rpc_address to a value other than 0.0.0.0.</p> |
| <p>For security reasons, you should not expose this port to the internet. Firewall it if needed.</p> |
| <p><em>Default Value:</em> localhost</p> |
| </div> |
| <div class="section" id="rpc-interface"> |
| <h2><code class="docutils literal"><span class="pre">rpc_interface</span></code><a class="headerlink" href="#rpc-interface" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Set rpc_address OR rpc_interface, not both. Interfaces must correspond |
| to a single address, IP aliasing is not supported.</p> |
| <p><em>Default Value:</em> eth1</p> |
| </div> |
| <div class="section" id="rpc-interface-prefer-ipv6"> |
| <h2><code class="docutils literal"><span class="pre">rpc_interface_prefer_ipv6</span></code><a class="headerlink" href="#rpc-interface-prefer-ipv6" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>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.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="rpc-port"> |
| <h2><code class="docutils literal"><span class="pre">rpc_port</span></code><a class="headerlink" href="#rpc-port" title="Permalink to this headline">¶</a></h2> |
| <p>port for Thrift to listen for clients on</p> |
| <p><em>Default Value:</em> 9160</p> |
| </div> |
| <div class="section" id="broadcast-rpc-address"> |
| <h2><code class="docutils literal"><span class="pre">broadcast_rpc_address</span></code><a class="headerlink" href="#broadcast-rpc-address" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>RPC address to broadcast to drivers and other Cassandra nodes. This cannot |
| be set to 0.0.0.0. If left blank, this will be set to the value of |
| rpc_address. If rpc_address is set to 0.0.0.0, broadcast_rpc_address must |
| be set.</p> |
| <p><em>Default Value:</em> 1.2.3.4</p> |
| </div> |
| <div class="section" id="rpc-keepalive"> |
| <h2><code class="docutils literal"><span class="pre">rpc_keepalive</span></code><a class="headerlink" href="#rpc-keepalive" title="Permalink to this headline">¶</a></h2> |
| <p>enable or disable keepalive on rpc/native connections</p> |
| <p><em>Default Value:</em> true</p> |
| </div> |
| <div class="section" id="rpc-server-type"> |
| <h2><code class="docutils literal"><span class="pre">rpc_server_type</span></code><a class="headerlink" href="#rpc-server-type" title="Permalink to this headline">¶</a></h2> |
| <p>Cassandra provides two out-of-the-box options for the RPC Server:</p> |
| <dl class="docutils"> |
| <dt>sync</dt> |
| <dd>One thread per thrift connection. For a very large number of clients, memory |
| will be your limiting factor. On a 64 bit JVM, 180KB is the minimum stack size |
| per thread, and that will correspond to your use of virtual memory (but physical memory |
| may be limited depending on use of stack space).</dd> |
| <dt>hsha</dt> |
| <dd>Stands for “half synchronous, half asynchronous.” All thrift clients are handled |
| asynchronously using a small number of threads that does not vary with the amount |
| of thrift clients (and thus scales well to many clients). The rpc requests are still |
| synchronous (one thread per active request). If hsha is selected then it is essential |
| that rpc_max_threads is changed from the default value of unlimited.</dd> |
| </dl> |
| <p>The default is sync because on Windows hsha is about 30% slower. On Linux, |
| sync/hsha performance is about the same, with hsha of course using less memory.</p> |
| <p>Alternatively, can provide your own RPC server by providing the fully-qualified class name |
| of an o.a.c.t.TServerFactory that can create an instance of it.</p> |
| <p><em>Default Value:</em> sync</p> |
| </div> |
| <div class="section" id="rpc-min-threads"> |
| <h2><code class="docutils literal"><span class="pre">rpc_min_threads</span></code><a class="headerlink" href="#rpc-min-threads" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Uncomment rpc_min|max_thread to set request pool size limits.</p> |
| <p>Regardless of your choice of RPC server (see above), the number of maximum requests in the |
| RPC thread pool dictates how many concurrent requests are possible (but if you are using the sync |
| RPC server, it also dictates the number of clients that can be connected at all).</p> |
| <p>The default is unlimited and thus provides no protection against clients overwhelming the server. You are |
| encouraged to set a maximum that makes sense for you in production, but do keep in mind that |
| rpc_max_threads represents the maximum number of client requests this server may execute concurrently.</p> |
| <p><em>Default Value:</em> 16</p> |
| </div> |
| <div class="section" id="rpc-max-threads"> |
| <h2><code class="docutils literal"><span class="pre">rpc_max_threads</span></code><a class="headerlink" href="#rpc-max-threads" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p><em>Default Value:</em> 2048</p> |
| </div> |
| <div class="section" id="rpc-send-buff-size-in-bytes"> |
| <h2><code class="docutils literal"><span class="pre">rpc_send_buff_size_in_bytes</span></code><a class="headerlink" href="#rpc-send-buff-size-in-bytes" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>uncomment to set socket buffer sizes on rpc connections</p> |
| </div> |
| <div class="section" id="rpc-recv-buff-size-in-bytes"> |
| <h2><code class="docutils literal"><span class="pre">rpc_recv_buff_size_in_bytes</span></code><a class="headerlink" href="#rpc-recv-buff-size-in-bytes" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| </div> |
| <div class="section" id="internode-send-buff-size-in-bytes"> |
| <h2><code class="docutils literal"><span class="pre">internode_send_buff_size_in_bytes</span></code><a class="headerlink" href="#internode-send-buff-size-in-bytes" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Uncomment to set socket buffer size for internode communication |
| Note that when setting this, the buffer size is limited by net.core.wmem_max |
| and when not setting it it is defined by net.ipv4.tcp_wmem |
| See also: |
| /proc/sys/net/core/wmem_max |
| /proc/sys/net/core/rmem_max |
| /proc/sys/net/ipv4/tcp_wmem |
| /proc/sys/net/ipv4/tcp_wmem |
| and ‘man tcp’</p> |
| </div> |
| <div class="section" id="internode-recv-buff-size-in-bytes"> |
| <h2><code class="docutils literal"><span class="pre">internode_recv_buff_size_in_bytes</span></code><a class="headerlink" href="#internode-recv-buff-size-in-bytes" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Uncomment to set socket buffer size for internode communication |
| Note that when setting this, the buffer size is limited by net.core.wmem_max |
| and when not setting it it is defined by net.ipv4.tcp_wmem</p> |
| </div> |
| <div class="section" id="thrift-framed-transport-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">thrift_framed_transport_size_in_mb</span></code><a class="headerlink" href="#thrift-framed-transport-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Frame size for thrift (maximum message length).</p> |
| <p><em>Default Value:</em> 15</p> |
| </div> |
| <div class="section" id="incremental-backups"> |
| <h2><code class="docutils literal"><span class="pre">incremental_backups</span></code><a class="headerlink" href="#incremental-backups" title="Permalink to this headline">¶</a></h2> |
| <p>Set to true to have Cassandra create 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.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="snapshot-before-compaction"> |
| <h2><code class="docutils literal"><span class="pre">snapshot_before_compaction</span></code><a class="headerlink" href="#snapshot-before-compaction" title="Permalink to this headline">¶</a></h2> |
| <p>Whether or not to take a snapshot before each compaction. Be |
| careful using this option, since Cassandra won’t clean up the |
| snapshots for you. Mostly useful if you’re paranoid when there |
| is a data format change.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="auto-snapshot"> |
| <h2><code class="docutils literal"><span class="pre">auto_snapshot</span></code><a class="headerlink" href="#auto-snapshot" title="Permalink to this headline">¶</a></h2> |
| <p>Whether or not a snapshot is taken of the data before keyspace truncation |
| or dropping of column families. The STRONGLY advised default of true |
| should be used to provide data safety. If you set this flag to false, you will |
| lose data on truncation or drop.</p> |
| <p><em>Default Value:</em> true</p> |
| </div> |
| <div class="section" id="column-index-size-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">column_index_size_in_kb</span></code><a class="headerlink" href="#column-index-size-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p>Granularity of the collation index of rows within a partition. |
| Increase if your rows are large, or if you have a very large |
| number of rows per partition. The competing goals are these:</p> |
| <ul class="simple"> |
| <li>a smaller granularity means more index entries are generated |
| and looking up rows withing the partition by collation column |
| is faster</li> |
| <li>but, Cassandra will keep the collation index in memory for hot |
| rows (as part of the key cache), so a larger granularity means |
| you can cache more hot rows</li> |
| </ul> |
| <p><em>Default Value:</em> 64</p> |
| </div> |
| <div class="section" id="column-index-cache-size-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">column_index_cache_size_in_kb</span></code><a class="headerlink" href="#column-index-cache-size-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p>Per sstable indexed key cache entries (the collation index in memory |
| mentioned above) exceeding this size will not be held on heap. |
| This means that only partition information is held on heap and the |
| index entries are read from disk.</p> |
| <p>Note that this size refers to the size of the |
| serialized index information and not the size of the partition.</p> |
| <p><em>Default Value:</em> 2</p> |
| </div> |
| <div class="section" id="concurrent-compactors"> |
| <h2><code class="docutils literal"><span class="pre">concurrent_compactors</span></code><a class="headerlink" href="#concurrent-compactors" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Number of simultaneous compactions to allow, NOT including |
| validation “compactions” for anti-entropy repair. Simultaneous |
| compactions can help preserve read performance in a mixed read/write |
| workload, by mitigating the tendency of small sstables to accumulate |
| during a single long running compactions. The default is usually |
| fine and if you experience problems with compaction running too |
| slowly or too fast, you should look at |
| compaction_throughput_mb_per_sec first.</p> |
| <p>concurrent_compactors defaults to the smaller of (number of disks, |
| number of cores), with a minimum of 2 and a maximum of 8.</p> |
| <p>If your data directories are backed by SSD, you should increase this |
| to the number of cores.</p> |
| <p><em>Default Value:</em> 1</p> |
| </div> |
| <div class="section" id="compaction-throughput-mb-per-sec"> |
| <h2><code class="docutils literal"><span class="pre">compaction_throughput_mb_per_sec</span></code><a class="headerlink" href="#compaction-throughput-mb-per-sec" title="Permalink to this headline">¶</a></h2> |
| <p>Throttles compaction to the given 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, but in general, setting this to |
| 16 to 32 times the rate you are inserting data is more than sufficient. |
| Setting this to 0 disables throttling. Note that this account for all types |
| of compaction, including validation compaction.</p> |
| <p><em>Default Value:</em> 16</p> |
| </div> |
| <div class="section" id="sstable-preemptive-open-interval-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">sstable_preemptive_open_interval_in_mb</span></code><a class="headerlink" href="#sstable-preemptive-open-interval-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p>When compacting, the replacement sstable(s) can be opened before they |
| are completely written, and used in place of the prior sstables for |
| any range that has been written. This helps to smoothly transfer reads |
| between the sstables, reducing page cache churn and keeping hot rows hot</p> |
| <p><em>Default Value:</em> 50</p> |
| </div> |
| <div class="section" id="stream-throughput-outbound-megabits-per-sec"> |
| <h2><code class="docutils literal"><span class="pre">stream_throughput_outbound_megabits_per_sec</span></code><a class="headerlink" href="#stream-throughput-outbound-megabits-per-sec" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Throttles all outbound streaming file transfers on this node to the |
| given total throughput in Mbps. This is necessary because Cassandra does |
| mostly sequential IO when streaming data during bootstrap or repair, which |
| can lead to saturating the network connection and degrading rpc performance. |
| When unset, the default is 200 Mbps or 25 MB/s.</p> |
| <p><em>Default Value:</em> 200</p> |
| </div> |
| <div class="section" id="inter-dc-stream-throughput-outbound-megabits-per-sec"> |
| <h2><code class="docutils literal"><span class="pre">inter_dc_stream_throughput_outbound_megabits_per_sec</span></code><a class="headerlink" href="#inter-dc-stream-throughput-outbound-megabits-per-sec" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Throttles all streaming file transfer between the datacenters, |
| this setting allows users to throttle inter dc stream throughput in addition |
| to throttling all network stream traffic as configured with |
| stream_throughput_outbound_megabits_per_sec |
| When unset, the default is 200 Mbps or 25 MB/s</p> |
| <p><em>Default Value:</em> 200</p> |
| </div> |
| <div class="section" id="read-request-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">read_request_timeout_in_ms</span></code><a class="headerlink" href="#read-request-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long the coordinator should wait for read operations to complete</p> |
| <p><em>Default Value:</em> 5000</p> |
| </div> |
| <div class="section" id="range-request-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">range_request_timeout_in_ms</span></code><a class="headerlink" href="#range-request-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long the coordinator should wait for seq or index scans to complete</p> |
| <p><em>Default Value:</em> 10000</p> |
| </div> |
| <div class="section" id="write-request-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">write_request_timeout_in_ms</span></code><a class="headerlink" href="#write-request-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long the coordinator should wait for writes to complete</p> |
| <p><em>Default Value:</em> 2000</p> |
| </div> |
| <div class="section" id="counter-write-request-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">counter_write_request_timeout_in_ms</span></code><a class="headerlink" href="#counter-write-request-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long the coordinator should wait for counter writes to complete</p> |
| <p><em>Default Value:</em> 5000</p> |
| </div> |
| <div class="section" id="cas-contention-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">cas_contention_timeout_in_ms</span></code><a class="headerlink" href="#cas-contention-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long a coordinator should continue to retry a CAS operation |
| that contends with other proposals for the same row</p> |
| <p><em>Default Value:</em> 1000</p> |
| </div> |
| <div class="section" id="truncate-request-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">truncate_request_timeout_in_ms</span></code><a class="headerlink" href="#truncate-request-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long the coordinator should wait for truncates to complete |
| (This can be much longer, because unless auto_snapshot is disabled |
| we need to flush first so we can snapshot before removing the data.)</p> |
| <p><em>Default Value:</em> 60000</p> |
| </div> |
| <div class="section" id="request-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">request_timeout_in_ms</span></code><a class="headerlink" href="#request-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>The default timeout for other, miscellaneous operations</p> |
| <p><em>Default Value:</em> 10000</p> |
| </div> |
| <div class="section" id="slow-query-log-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">slow_query_log_timeout_in_ms</span></code><a class="headerlink" href="#slow-query-log-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>How long before a node logs slow queries. Select queries that take longer than |
| this timeout to execute, will generate an aggregated log message, so that slow queries |
| can be identified. Set this value to zero to disable slow query logging.</p> |
| <p><em>Default Value:</em> 500</p> |
| </div> |
| <div class="section" id="cross-node-timeout"> |
| <h2><code class="docutils literal"><span class="pre">cross_node_timeout</span></code><a class="headerlink" href="#cross-node-timeout" title="Permalink to this headline">¶</a></h2> |
| <p>Enable operation timeout information exchange between nodes to accurately |
| measure request timeouts. If disabled, replicas will assume that requests |
| were forwarded to them instantly by the coordinator, which means that |
| under overload conditions we will waste that much extra time processing |
| already-timed-out requests.</p> |
| <p>Warning: before enabling this property make sure to ntp is installed |
| and the times are synchronized between the nodes.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="streaming-socket-timeout-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">streaming_socket_timeout_in_ms</span></code><a class="headerlink" href="#streaming-socket-timeout-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Set socket timeout for streaming operation. |
| The stream session is failed if no data/ack is received by any of the participants |
| within that period, which means this should also be sufficient to stream a large |
| sstable or rebuild table indexes. |
| Default value is 86400000ms, which means stale streams timeout after 24 hours. |
| A value of zero means stream sockets should never time out.</p> |
| <p><em>Default Value:</em> 86400000</p> |
| </div> |
| <div class="section" id="phi-convict-threshold"> |
| <h2><code class="docutils literal"><span class="pre">phi_convict_threshold</span></code><a class="headerlink" href="#phi-convict-threshold" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>phi value that must be reached for a host to be marked down. |
| most users should never need to adjust this.</p> |
| <p><em>Default Value:</em> 8</p> |
| </div> |
| <div class="section" id="endpoint-snitch"> |
| <h2><code class="docutils literal"><span class="pre">endpoint_snitch</span></code><a class="headerlink" href="#endpoint-snitch" title="Permalink to this headline">¶</a></h2> |
| <p>endpoint_snitch – Set this to a class that implements |
| IEndpointSnitch. The snitch has two functions:</p> |
| <ul class="simple"> |
| <li>it teaches Cassandra enough about your network topology to route |
| requests efficiently</li> |
| <li>it allows Cassandra to spread replicas around your cluster to avoid |
| correlated failures. It does this by grouping machines into |
| “datacenters” and “racks.” Cassandra will do its best not to have |
| more than one replica on the same “rack” (which may not actually |
| be a physical location)</li> |
| </ul> |
| <p>CASSANDRA WILL NOT ALLOW YOU TO SWITCH TO AN INCOMPATIBLE SNITCH |
| ONCE DATA IS INSERTED INTO THE CLUSTER. This would cause data loss. |
| This means that if you start with the default SimpleSnitch, which |
| locates every node on “rack1” in “datacenter1”, your only options |
| if you need to add another datacenter are GossipingPropertyFileSnitch |
| (and the older PFS). From there, if you want to migrate to an |
| incompatible snitch like Ec2Snitch you can do it by adding new nodes |
| under Ec2Snitch (which will locate them in a new “datacenter”) and |
| decommissioning the old ones.</p> |
| <p>Out of the box, Cassandra provides:</p> |
| <dl class="docutils"> |
| <dt>SimpleSnitch:</dt> |
| <dd>Treats Strategy order as proximity. This can improve cache |
| locality when disabling read repair. Only appropriate for |
| single-datacenter deployments.</dd> |
| <dt>GossipingPropertyFileSnitch</dt> |
| <dd>This should be your go-to snitch for production use. The rack |
| and datacenter for the local node are defined in |
| cassandra-rackdc.properties and propagated to other nodes via |
| gossip. If cassandra-topology.properties exists, it is used as a |
| fallback, allowing migration from the PropertyFileSnitch.</dd> |
| <dt>PropertyFileSnitch:</dt> |
| <dd>Proximity is determined by rack and data center, which are |
| explicitly configured in cassandra-topology.properties.</dd> |
| <dt>Ec2Snitch:</dt> |
| <dd>Appropriate for EC2 deployments in a single Region. Loads Region |
| and Availability Zone information from the EC2 API. The Region is |
| treated as the datacenter, and the Availability Zone as the rack. |
| Only private IPs are used, so this will not work across multiple |
| Regions.</dd> |
| <dt>Ec2MultiRegionSnitch:</dt> |
| <dd>Uses public IPs as broadcast_address to allow cross-region |
| connectivity. (Thus, you should set seed addresses to the public |
| IP as well.) You will need to open the storage_port or |
| ssl_storage_port on the public IP firewall. (For intra-Region |
| traffic, Cassandra will switch to the private IP after |
| establishing a connection.)</dd> |
| <dt>RackInferringSnitch:</dt> |
| <dd>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. Unless this happens to match your |
| deployment conventions, this is best used as an example of |
| writing a custom Snitch class and is provided in that spirit.</dd> |
| </dl> |
| <p>You can use a custom Snitch by setting this to the full class name |
| of the snitch, which will be assumed to be on your classpath.</p> |
| <p><em>Default Value:</em> SimpleSnitch</p> |
| </div> |
| <div class="section" id="dynamic-snitch-update-interval-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">dynamic_snitch_update_interval_in_ms</span></code><a class="headerlink" href="#dynamic-snitch-update-interval-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>controls how often to perform the more expensive part of host score |
| calculation</p> |
| <p><em>Default Value:</em> 100</p> |
| </div> |
| <div class="section" id="dynamic-snitch-reset-interval-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">dynamic_snitch_reset_interval_in_ms</span></code><a class="headerlink" href="#dynamic-snitch-reset-interval-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>controls how often to reset all host scores, allowing a bad host to |
| possibly recover</p> |
| <p><em>Default Value:</em> 600000</p> |
| </div> |
| <div class="section" id="dynamic-snitch-badness-threshold"> |
| <h2><code class="docutils literal"><span class="pre">dynamic_snitch_badness_threshold</span></code><a class="headerlink" href="#dynamic-snitch-badness-threshold" title="Permalink to this headline">¶</a></h2> |
| <p>if set greater than zero and read_repair_chance is < 1.0, this will allow |
| ‘pinning’ of replicas to hosts in order to increase cache capacity. |
| The badness threshold will control how much worse the pinned host has to be |
| before the dynamic snitch will prefer other replicas over it. This is |
| expressed as a double which represents a percentage. Thus, a value of |
| 0.2 means Cassandra would continue to prefer the static snitch values |
| until the pinned host was 20% worse than the fastest.</p> |
| <p><em>Default Value:</em> 0.1</p> |
| </div> |
| <div class="section" id="request-scheduler"> |
| <h2><code class="docutils literal"><span class="pre">request_scheduler</span></code><a class="headerlink" href="#request-scheduler" title="Permalink to this headline">¶</a></h2> |
| <p>request_scheduler – Set this to a class that implements |
| RequestScheduler, which will schedule incoming client requests |
| according to the specific policy. This is useful for multi-tenancy |
| with a single Cassandra cluster. |
| NOTE: This is specifically for requests from the client and does |
| not affect inter node communication. |
| org.apache.cassandra.scheduler.NoScheduler - No scheduling takes place |
| org.apache.cassandra.scheduler.RoundRobinScheduler - Round robin of |
| client requests to a node with a separate queue for each |
| request_scheduler_id. The scheduler is further customized by |
| request_scheduler_options as described below.</p> |
| <p><em>Default Value:</em> org.apache.cassandra.scheduler.NoScheduler</p> |
| </div> |
| <div class="section" id="request-scheduler-options"> |
| <h2><code class="docutils literal"><span class="pre">request_scheduler_options</span></code><a class="headerlink" href="#request-scheduler-options" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Scheduler Options vary based on the type of scheduler</p> |
| <dl class="docutils"> |
| <dt>NoScheduler</dt> |
| <dd>Has no options</dd> |
| <dt>RoundRobin</dt> |
| <dd><dl class="first last docutils"> |
| <dt>throttle_limit</dt> |
| <dd>The throttle_limit is the number of in-flight |
| requests per client. Requests beyond |
| that limit are queued up until |
| running requests can complete. |
| The value of 80 here is twice the number of |
| concurrent_reads + concurrent_writes.</dd> |
| <dt>default_weight</dt> |
| <dd>default_weight is optional and allows for |
| overriding the default which is 1.</dd> |
| <dt>weights</dt> |
| <dd>Weights are optional and will default to 1 or the |
| overridden default_weight. The weight translates into how |
| many requests are handled during each turn of the |
| RoundRobin, based on the scheduler id.</dd> |
| </dl> |
| </dd> |
| </dl> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="c1"># throttle_limit: 80</span> |
| <span class="c1"># default_weight: 5</span> |
| <span class="c1"># weights:</span> |
| <span class="c1"># Keyspace1: 1</span> |
| <span class="c1"># Keyspace2: 5</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="request-scheduler-id"> |
| <h2><code class="docutils literal"><span class="pre">request_scheduler_id</span></code><a class="headerlink" href="#request-scheduler-id" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em> |
| request_scheduler_id – An identifier based on which to perform |
| the request scheduling. Currently the only valid option is keyspace.</p> |
| <p><em>Default Value:</em> keyspace</p> |
| </div> |
| <div class="section" id="server-encryption-options"> |
| <h2><code class="docutils literal"><span class="pre">server_encryption_options</span></code><a class="headerlink" href="#server-encryption-options" title="Permalink to this headline">¶</a></h2> |
| <p>Enable or disable inter-node encryption |
| JVM defaults for supported SSL socket protocols and cipher suites can |
| be replaced using custom encryption options. This is not recommended |
| unless you have policies in place that dictate certain settings, or |
| need to disable vulnerable ciphers or protocols in case the JVM cannot |
| be updated. |
| FIPS compliant settings can be configured at JVM level and should not |
| involve changing encryption settings here: |
| <a class="reference external" href="https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/FIPS.html">https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/FIPS.html</a> |
| <em>NOTE</em> No custom encryption options are enabled at the moment |
| The available internode options are : all, none, dc, rack</p> |
| <p>If set to dc cassandra will encrypt the traffic between the DCs |
| If set to rack cassandra will encrypt the traffic between the racks</p> |
| <p>The passwords used in these options must match the passwords used when generating |
| the keystore and truststore. For instructions on generating these files, see: |
| <a class="reference external" href="http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore">http://download.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#CreateKeystore</a></p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">internode_encryption</span><span class="p">:</span> <span class="n">none</span> |
| <span class="n">keystore</span><span class="p">:</span> <span class="n">conf</span><span class="o">/.</span><span class="n">keystore</span> |
| <span class="n">keystore_password</span><span class="p">:</span> <span class="n">cassandra</span> |
| <span class="n">truststore</span><span class="p">:</span> <span class="n">conf</span><span class="o">/.</span><span class="n">truststore</span> |
| <span class="n">truststore_password</span><span class="p">:</span> <span class="n">cassandra</span> |
| <span class="c1"># More advanced defaults below:</span> |
| <span class="c1"># protocol: TLS</span> |
| <span class="c1"># algorithm: SunX509</span> |
| <span class="c1"># store_type: JKS</span> |
| <span class="c1"># cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]</span> |
| <span class="c1"># require_client_auth: false</span> |
| <span class="c1"># require_endpoint_verification: false</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="client-encryption-options"> |
| <h2><code class="docutils literal"><span class="pre">client_encryption_options</span></code><a class="headerlink" href="#client-encryption-options" title="Permalink to this headline">¶</a></h2> |
| <p>enable or disable client/server encryption.</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">enabled</span><span class="p">:</span> <span class="n">false</span> |
| <span class="c1"># If enabled and optional is set to true encrypted and unencrypted connections are handled.</span> |
| <span class="n">optional</span><span class="p">:</span> <span class="n">false</span> |
| <span class="n">keystore</span><span class="p">:</span> <span class="n">conf</span><span class="o">/.</span><span class="n">keystore</span> |
| <span class="n">keystore_password</span><span class="p">:</span> <span class="n">cassandra</span> |
| <span class="c1"># require_client_auth: false</span> |
| <span class="c1"># Set trustore and truststore_password if require_client_auth is true</span> |
| <span class="c1"># truststore: conf/.truststore</span> |
| <span class="c1"># truststore_password: cassandra</span> |
| <span class="c1"># More advanced defaults below:</span> |
| <span class="c1"># protocol: TLS</span> |
| <span class="c1"># algorithm: SunX509</span> |
| <span class="c1"># store_type: JKS</span> |
| <span class="c1"># cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="internode-compression"> |
| <h2><code class="docutils literal"><span class="pre">internode_compression</span></code><a class="headerlink" href="#internode-compression" title="Permalink to this headline">¶</a></h2> |
| <p>internode_compression controls whether traffic between nodes is |
| compressed. |
| Can be:</p> |
| <dl class="docutils"> |
| <dt>all</dt> |
| <dd>all traffic is compressed</dd> |
| <dt>dc</dt> |
| <dd>traffic between different datacenters is compressed</dd> |
| <dt>none</dt> |
| <dd>nothing is compressed.</dd> |
| </dl> |
| <p><em>Default Value:</em> dc</p> |
| </div> |
| <div class="section" id="inter-dc-tcp-nodelay"> |
| <h2><code class="docutils literal"><span class="pre">inter_dc_tcp_nodelay</span></code><a class="headerlink" href="#inter-dc-tcp-nodelay" title="Permalink to this headline">¶</a></h2> |
| <p>Enable or disable tcp_nodelay for inter-dc communication. |
| Disabling it will result in larger (but fewer) network packets being sent, |
| reducing overhead from the TCP protocol itself, at the cost of increasing |
| latency if you block for cross-datacenter responses.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="tracetype-query-ttl"> |
| <h2><code class="docutils literal"><span class="pre">tracetype_query_ttl</span></code><a class="headerlink" href="#tracetype-query-ttl" title="Permalink to this headline">¶</a></h2> |
| <p>TTL for different trace types used during logging of the repair process.</p> |
| <p><em>Default Value:</em> 86400</p> |
| </div> |
| <div class="section" id="tracetype-repair-ttl"> |
| <h2><code class="docutils literal"><span class="pre">tracetype_repair_ttl</span></code><a class="headerlink" href="#tracetype-repair-ttl" title="Permalink to this headline">¶</a></h2> |
| <p><em>Default Value:</em> 604800</p> |
| </div> |
| <div class="section" id="gc-log-threshold-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">gc_log_threshold_in_ms</span></code><a class="headerlink" href="#gc-log-threshold-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>By default, Cassandra logs GC Pauses greater than 200 ms at INFO level |
| This threshold can be adjusted to minimize logging if necessary</p> |
| <p><em>Default Value:</em> 200</p> |
| </div> |
| <div class="section" id="enable-user-defined-functions"> |
| <h2><code class="docutils literal"><span class="pre">enable_user_defined_functions</span></code><a class="headerlink" href="#enable-user-defined-functions" title="Permalink to this headline">¶</a></h2> |
| <p>If unset, all GC Pauses greater than gc_log_threshold_in_ms will log at |
| INFO level |
| UDFs (user defined functions) are disabled by default. |
| As of Cassandra 3.0 there is a sandbox in place that should prevent execution of evil code.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="enable-scripted-user-defined-functions"> |
| <h2><code class="docutils literal"><span class="pre">enable_scripted_user_defined_functions</span></code><a class="headerlink" href="#enable-scripted-user-defined-functions" title="Permalink to this headline">¶</a></h2> |
| <p>Enables scripted UDFs (JavaScript UDFs). |
| Java UDFs are always enabled, if enable_user_defined_functions is true. |
| Enable this option to be able to use UDFs with “language javascript” or any custom JSR-223 provider. |
| This option has no effect, if enable_user_defined_functions is false.</p> |
| <p><em>Default Value:</em> false</p> |
| </div> |
| <div class="section" id="windows-timer-interval"> |
| <h2><code class="docutils literal"><span class="pre">windows_timer_interval</span></code><a class="headerlink" href="#windows-timer-interval" title="Permalink to this headline">¶</a></h2> |
| <p>The default Windows kernel timer and scheduling resolution is 15.6ms for power conservation. |
| Lowering this value on Windows can provide much tighter latency and better throughput, however |
| some virtualized environments may see a negative performance impact from changing this setting |
| below their system default. The sysinternals ‘clockres’ tool can confirm your system’s default |
| setting.</p> |
| <p><em>Default Value:</em> 1</p> |
| </div> |
| <div class="section" id="transparent-data-encryption-options"> |
| <h2><code class="docutils literal"><span class="pre">transparent_data_encryption_options</span></code><a class="headerlink" href="#transparent-data-encryption-options" title="Permalink to this headline">¶</a></h2> |
| <p>Enables encrypting data at-rest (on disk). Different key providers can be plugged in, but the default reads from |
| a JCE-style keystore. A single keystore can hold multiple keys, but the one referenced by |
| the “key_alias” is the only key that will be used for encrypt opertaions; previously used keys |
| can still (and should!) be in the keystore and will be used on decrypt operations |
| (to handle the case of key rotation).</p> |
| <p>It is strongly recommended to download and install Java Cryptography Extension (JCE) |
| Unlimited Strength Jurisdiction Policy Files for your version of the JDK. |
| (current link: <a class="reference external" href="http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html">http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html</a>)</p> |
| <p>Currently, only the following file types are supported for transparent data encryption, although |
| more are coming in future cassandra releases: commitlog, hints</p> |
| <p><em>Default Value (complex option)</em>:</p> |
| <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">enabled</span><span class="p">:</span> <span class="n">false</span> |
| <span class="n">chunk_length_kb</span><span class="p">:</span> <span class="mi">64</span> |
| <span class="n">cipher</span><span class="p">:</span> <span class="n">AES</span><span class="o">/</span><span class="n">CBC</span><span class="o">/</span><span class="n">PKCS5Padding</span> |
| <span class="n">key_alias</span><span class="p">:</span> <span class="n">testing</span><span class="p">:</span><span class="mi">1</span> |
| <span class="c1"># CBC IV length for AES needs to be 16 bytes (which is also the default size)</span> |
| <span class="c1"># iv_length: 16</span> |
| <span class="n">key_provider</span><span class="p">:</span> |
| <span class="o">-</span> <span class="n">class_name</span><span class="p">:</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">cassandra</span><span class="o">.</span><span class="n">security</span><span class="o">.</span><span class="n">JKSKeyProvider</span> |
| <span class="n">parameters</span><span class="p">:</span> |
| <span class="o">-</span> <span class="n">keystore</span><span class="p">:</span> <span class="n">conf</span><span class="o">/.</span><span class="n">keystore</span> |
| <span class="n">keystore_password</span><span class="p">:</span> <span class="n">cassandra</span> |
| <span class="n">store_type</span><span class="p">:</span> <span class="n">JCEKS</span> |
| <span class="n">key_password</span><span class="p">:</span> <span class="n">cassandra</span> |
| </pre></div> |
| </div> |
| </div> |
| <div class="section" id="tombstone-warn-threshold"> |
| <h2><code class="docutils literal"><span class="pre">tombstone_warn_threshold</span></code><a class="headerlink" href="#tombstone-warn-threshold" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="safety-thresholds"> |
| <h3>SAFETY THRESHOLDS #<a class="headerlink" href="#safety-thresholds" title="Permalink to this headline">¶</a></h3> |
| <p>When executing a scan, within or across a partition, we need to keep the |
| tombstones seen in memory so we can return them to the coordinator, which |
| will use them to make sure other replicas also know about the deleted rows. |
| With workloads that generate a lot of tombstones, this can cause performance |
| problems and even exaust the server heap. |
| (<a class="reference external" href="http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets">http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets</a>) |
| Adjust the thresholds here if you understand the dangers and want to |
| scan more tombstones anyway. These thresholds may also be adjusted at runtime |
| using the StorageService mbean.</p> |
| <p><em>Default Value:</em> 1000</p> |
| </div> |
| </div> |
| <div class="section" id="tombstone-failure-threshold"> |
| <h2><code class="docutils literal"><span class="pre">tombstone_failure_threshold</span></code><a class="headerlink" href="#tombstone-failure-threshold" title="Permalink to this headline">¶</a></h2> |
| <p><em>Default Value:</em> 100000</p> |
| </div> |
| <div class="section" id="batch-size-warn-threshold-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">batch_size_warn_threshold_in_kb</span></code><a class="headerlink" href="#batch-size-warn-threshold-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p>Log WARN on any batch size exceeding this value. 5kb per batch by default. |
| Caution should be taken on increasing the size of this threshold as it can lead to node instability.</p> |
| <p><em>Default Value:</em> 5</p> |
| </div> |
| <div class="section" id="batch-size-fail-threshold-in-kb"> |
| <h2><code class="docutils literal"><span class="pre">batch_size_fail_threshold_in_kb</span></code><a class="headerlink" href="#batch-size-fail-threshold-in-kb" title="Permalink to this headline">¶</a></h2> |
| <p>Fail any batch exceeding this value. 50kb (10x warn threshold) by default.</p> |
| <p><em>Default Value:</em> 50</p> |
| </div> |
| <div class="section" id="unlogged-batch-across-partitions-warn-threshold"> |
| <h2><code class="docutils literal"><span class="pre">unlogged_batch_across_partitions_warn_threshold</span></code><a class="headerlink" href="#unlogged-batch-across-partitions-warn-threshold" title="Permalink to this headline">¶</a></h2> |
| <p>Log WARN on any batches not of type LOGGED than span across more partitions than this limit</p> |
| <p><em>Default Value:</em> 10</p> |
| </div> |
| <div class="section" id="compaction-large-partition-warning-threshold-mb"> |
| <h2><code class="docutils literal"><span class="pre">compaction_large_partition_warning_threshold_mb</span></code><a class="headerlink" href="#compaction-large-partition-warning-threshold-mb" title="Permalink to this headline">¶</a></h2> |
| <p>Log a warning when compacting partitions larger than this value</p> |
| <p><em>Default Value:</em> 100</p> |
| </div> |
| <div class="section" id="gc-warn-threshold-in-ms"> |
| <h2><code class="docutils literal"><span class="pre">gc_warn_threshold_in_ms</span></code><a class="headerlink" href="#gc-warn-threshold-in-ms" title="Permalink to this headline">¶</a></h2> |
| <p>GC Pauses greater than gc_warn_threshold_in_ms will be logged at WARN level |
| Adjust the threshold based on your application throughput requirement |
| By default, Cassandra logs GC Pauses greater than 200 ms at INFO level</p> |
| <p><em>Default Value:</em> 1000</p> |
| </div> |
| <div class="section" id="max-value-size-in-mb"> |
| <h2><code class="docutils literal"><span class="pre">max_value_size_in_mb</span></code><a class="headerlink" href="#max-value-size-in-mb" title="Permalink to this headline">¶</a></h2> |
| <p><em>This option is commented out by default.</em></p> |
| <p>Maximum size of any value in SSTables. Safety measure to detect SSTable corruption |
| early. Any value size larger than this threshold will result into marking an SSTable |
| as corrupted.</p> |
| <p><em>Default Value:</em> 256</p> |
| </div> |
| </div> |
| |
| |
| |
| |
| <div class="doc-prev-next-links" role="navigation" aria-label="footer navigation"> |
| |
| <a href="../operating/index.html" class="btn btn-default pull-right " role="button" title="Operating Cassandra" accesskey="n">Next <span class="glyphicon glyphicon-circle-arrow-right" aria-hidden="true"></span></a> |
| |
| |
| <a href="index.html" class="btn btn-default" role="button" title="Configuring Cassandra" accesskey="p"><span class="glyphicon glyphicon-circle-arrow-left" aria-hidden="true"></span> Previous</a> |
| |
| </div> |
| |
| </div> |
| </div> |
| </div> |
| <div class="col-md-2"> |
| </div> |
| </div> |
| </div> |
| |
| <footer> |
| <div class="container"> |
| <div class="col-md-4 social-blk"> |
| <span class="social"> |
| <a href="https://twitter.com/cassandra" |
| class="twitter-follow-button" |
| data-show-count="false" data-size="large">Follow @cassandra</a> |
| <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> |
| <a href="https://twitter.com/intent/tweet?button_hashtag=cassandra" |
| class="twitter-hashtag-button" |
| data-size="large" |
| data-related="ApacheCassandra">Tweet #cassandra</a> |
| <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> |
| </span> |
| </div> |
| |
| <div class="col-md-8 trademark"> |
| <p>© 2016 <a href="http://apache.org">The Apache Software Foundation</a>. |
| Apache, the Apache feather logo, and Apache Cassandra are trademarks of The Apache Software Foundation. |
| <p> |
| </div> |
| </div><!-- /.container --> |
| </footer> |
| |
| <!-- Javascript. Placed here so pages load faster --> |
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> |
| <script src="./../../../js/underscore-min.js"></script> |
| <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> |
| |
| |
| <script src="./../../../js/doctools.js"></script> |
| <script src="./../../../js/searchtools.js"></script> |
| |
| <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: "", VERSION: "", COLLAPSE_INDEX: false, FILE_SUFFIX: ".html", HAS_SOURCE: false, SOURCELINK_SUFFIX: "" }; </script> |
| |
| <script type="text/javascript"> |
| $(function() { |
| // Stick the #nav to the top of the window |
| var nav = $('.doc-navigation'); |
| var navHomeY = nav.offset().top; |
| var isFixed = false; |
| var $w = $(window); |
| $w.scroll(function() { |
| var scrollTop = $w.scrollTop(); |
| var shouldBeFixed = $w.width() > 991 && scrollTop >= navHomeY - 10; |
| if (shouldBeFixed && !isFixed) { |
| nav.css({ |
| position: 'fixed', |
| top: 0, |
| left: nav.offset().left, |
| width: nav.width(), |
| }); |
| nav.addClass('fixed-navigation'); |
| isFixed = true; |
| } |
| else if (!shouldBeFixed && isFixed) |
| { |
| nav.css({ |
| position: 'static' |
| }); |
| nav.removeClass('fixed-navigation'); |
| isFixed = false; |
| } |
| }); |
| }); |
| </script> |
| |
| |
| <script type="text/javascript"> |
| var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
| document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
| |
| try { |
| var pageTracker = _gat._getTracker("UA-11583863-1"); |
| pageTracker._trackPageview(); |
| } catch(err) {} |
| </script> |
| |
| |
| </body> |
| </html> |