blob: 4f9de16573326c6fdb61d3335f047ad6c18cd0c4 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Liberating cassandra.yaml Parameters' Names from Their Units | Apache Cassandra Documentation</title>
<link rel="stylesheet" href="../../../../assets/css/site.css">
<link rel="schema.dcterms" href="https://purl.org/dc/terms/">
<meta name="dcterms.subject" content="Cassandra">
<meta name="dcterms.identifier" content="4.1">
<meta name="generator" content="Antora 2.3.4">
<link rel="icon" href="../../../../assets/img/favicon.ico" type="image/x-icon">
<script>
const script = document.createElement("script");
const domain = window.location.hostname;
script.type = "text/javascript";
script.src = "https://plausible.cassandra.apache.org/js/plausible.js";
script.setAttribute("data-domain",domain);
script.setAttribute("defer",'true');
script.setAttribute("async",'true');
document.getElementsByTagName("head")[0].appendChild(script);
</script> </head>
<body class="docs-wrapper article">
<div class="container mx-auto relative">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta property="og:type" content="website" />
<meta property="og:url" content="/" />
<meta property="og:site_name" content="Apache Cassandra" />
<header id="top-nav">
<div class="inner relative">
<div class="header-social-icons text-right">
<a href="https://twitter.com/cassandra?lang=en" target="_blank" styles="margin-left: 20px;"><img src="../../../../assets/img/twitter-icon-circle-white.svg" alt="twitter icon" width="24"></a>
<a href="https://www.linkedin.com/company/apache-cassandra/" target="_blank" styles="margin-left: 20px;"><img src="../../../../assets/img/LI-In-Bug.png" alt="linked-in icon" width="24"></a>
<a href="https://www.youtube.com/c/PlanetCassandra" target="_blank" styles="margin-left: 20px;"><img src="../../../../assets/img/youtube-icon.png" alt="youtube icon" width="24"></a>
</div>
<div class="cf">
<div class="logo left"><a href="/"><img src="../../../../assets/img/logo-white-r.png" alt="Cassandra Logo"></a></div>
<div class="mobile-nav-icon right">
<img class="toggle-icon" src="../../../../assets/img/hamburger-nav.svg">
</div>
<ul class="main-nav nav-links right flex flex-vert-center flex-space-between">
<li>
<a class="nav-link hide-mobile">Get Started</a>
<ul class="sub-menu bg-white">
<li class="pa-micro">
<a href="/_/cassandra-basics.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-basics.png" alt="cassandra basics icon">
</div>
<div class="sub-nav-text teal py-small">
Cassandra Basics
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/quickstart.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-rocket.png" alt="cassandra basics icon">
</div>
<div class="sub-nav-text teal py-small">
Quickstart
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/ecosystem.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-ecosystem.png" alt="cassandra basics icon">
</div>
<div class="sub-nav-text teal py-small">
Ecosystem
</div>
</a>
</li>
</ul>
</li>
<li><a class="nav-link" href="/doc/latest/">Documentation</a></li>
<li>
<a class="nav-link" href="/_/community.html">Community</a>
<ul class="sub-menu bg-white">
<li class="pa-micro">
<a href="/_/community.html#code-of-conduct">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-welcome.png" alt="welcome icon">
</div>
<div class="sub-nav-text teal py-small">
Welcome
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#discussions">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-discussions.png" alt="discussions icon">
</div>
<div class="sub-nav-text teal py-small">
Discussions
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#project-governance">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-governance.png" alt="Governance icon">
</div>
<div class="sub-nav-text teal py-small">
Governance
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#how-to-contribute">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-contribute.png" alt="Contribute icon">
</div>
<div class="sub-nav-text teal py-small">
Contribute
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#meet-the-community">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-community.png" alt="Meet the Community icon">
</div>
<div class="sub-nav-text teal py-small">
Meet the Community
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/cassandra-catalyst-program.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-catalyst.png" alt="Catalyst icon">
</div>
<div class="sub-nav-text teal py-small">
Catalyst Program
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/events.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-events.png" alt="Events icon">
</div>
<div class="sub-nav-text teal py-small">
Events
</div>
</a>
</li>
</ul>
</li>
<li>
<a class="nav-link hide-mobile">Learn</a>
<ul class="sub-menu bg-white">
<li class="pa-micro">
<a href="/_/Apache-Cassandra-5.0-Moving-Toward-an-AI-Driven-Future.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-basics.png" alt="Basics icon">
</div>
<div class="sub-nav-text teal py-small">
Cassandra 5.0
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/case-studies.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-case-study.png" alt="Case Studies icon">
</div>
<div class="sub-nav-text teal py-small">
Case Studies
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/resources.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-resources.png" alt="Resources icon">
</div>
<div class="sub-nav-text teal py-small">
Resources
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/blog.html">
<div class="sub-nav-icon">
<img src="../../../../assets/img/sub-menu-blog.png" alt="Blog icon">
</div>
<div class="sub-nav-text teal py-small">
Blog
</div>
</a>
</li>
</ul>
</li>
<li><a class="nav-link btn btn--filled" href="/_/download.html">Download Now</a></li>
</ul>
</div>
</div>
</header>
<div class="hero hero--home grad">
<div class="eye"></div>
<div id="docs-content" class="text-center flex flex-center flex-column relative z2 ma-xlarge">
<h2>Cassandra Documentation</h2>
</div>
</div>
<div class="body px-medium py-medium container">
<div class="docs-nav-bar flex flex-space-between mb-medium">
<div id="mobile-docs-nav-burger" class="hidden">
<svg viewBox="0 0 24 24" width="36" height="36" stroke="#1c81a0" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
</div>
<div class="docs-nav-item relative">
<input id="search-input" type="text" placeholder="Search docs">
</div>
<div class="versions-wrapper">
<h4>Version:</h4>
<div class="nav-panel-explore" data-panel="explore">
<div id="version-toggle" class="context">
<span class="version">4.1</span>
</div>
<ul id="versions-list" class="components">
<li class="component">
<ul class="versions">
<li class="version is-latest">
<a href="../../../../_/index.html">master</a>
</li>
</ul>
</li>
<li class="component is-current">
<ul class="versions">
<li class="version">
<a href="../../../trunk/index.html">trunk</a>
</li>
<li class="version">
<a href="../../../5.0/index.html">5.0</a>
</li>
<li class="version is-current is-latest">
<a href="../../index.html">4.1</a>
</li>
<li class="version">
<a href="../../../4.0/index.html">4.0</a>
</li>
<li class="version">
<a href="../../../3.11/index.html">3.11</a>
</li>
</ul>
</li>
</ul>
</div>
</div> </div>
<div class="cf relative">
<nav class="nav docs-nav full-800">
<div class="nav-menu">
<ul class="nav-list">
<li class="nav-item is-active" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../../index.html">Main</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="../../../../_/glossary.html">Glossary</a>
</span>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="../../../../_/bugs.html">How to report bugs</a>
</span>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="../../../../_/contactus.html">Contact us</a>
</span>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item is-active" data-depth="0">
<ul class="nav-list">
<li class="nav-item is-current-path is-active" data-depth="1">
<span class="nav-line">
<button class="nav-toggle"></button>
<span class="nav-text">Cassandra</span>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../getting_started/index.html">Getting Started</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../getting_started/installing.html">Installing Cassandra</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../getting_started/configuring.html">Configuring Cassandra</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../getting_started/querying.html">Inserting and querying</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../getting_started/drivers.html">Client drivers</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../getting_started/java11.html">Support for Java 11</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../getting_started/production.html">Production recommendations</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="../new/index.html">What&#8217;s new</a>
</span>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../architecture/index.html">Architecture</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../architecture/overview.html">Overview</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../architecture/dynamo.html">Dynamo</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../architecture/storage_engine.html">Storage engine</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../architecture/guarantees.html">Guarantees</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../architecture/messaging.html">Improved internode messaging</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../architecture/streaming.html">Improved streaming</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../data_modeling/index.html">Data modeling</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/intro.html">Introduction</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_conceptual.html">Conceptual data modeling</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_rdbms.html">RDBMS design</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_queries.html">Defining application queries</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_logical.html">Logical data modeling</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_physical.html">Physical data modeling</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_refining.html">Evaluating and refining data models</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_schema.html">Defining database schema</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../data_modeling/data_modeling_tools.html">Cassandra data modeling tools</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../cql/index.html">Cassandra Query Language (CQL)</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/definitions.html">Definitions</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/types.html">Data types</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/ddl.html">Data definition (DDL)</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/dml.html">Data manipulation (DML)</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/operators.html">Operators</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/indexes.html">Secondary indexes</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/mvs.html">Materialized views</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/functions.html">Functions</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/json.html">JSON</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/security.html">Security</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/triggers.html">Triggers</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/appendices.html">Appendices</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/changes.html">Changes</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/SASI.html">SASI</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../cql/cql_singlefile.html">Single file of CQL information</a>
</span>
</li>
</ul>
</li>
<li class="nav-item is-current-path is-active" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="index.html">Configuration</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_yaml_file.html">cassandra.yaml</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_rackdc_file.html">cassandra-rackdc.properties</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_env_sh_file.html">cassandra-env.sh</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_topo_file.html">cassandra-topologies.properties</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_cl_archive_file.html">commitlog-archiving.properties</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_logback_xml_file.html">logback.xml</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="cass_jvm_options_file.html">jvm-* files</a>
</span>
</li>
<li class="nav-item is-current-page is-active" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="configuration.html">Liberating cassandra.yaml Parameters' Names from Their Units</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../operating/index.html">Operating</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="#operating/snitch.adoc">Snitches</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/topo_changes.html">Topology changes</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/repair.html">Repair</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/read_repair.html">Read repair</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/hints.html">Hints</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/bloom_filters.html">Bloom filters</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/compression.html">Compression</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/cdc.html">Change Data Capture (CDC)</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/backups.html">Backups</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/bulk_loading.html">Bulk loading</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/metrics.html">Metrics</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/security.html">Security</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/hardware.html">Hardware</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/compaction/index.html">Compaction</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/virtualtables.html">Virtual tables</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/auditlogging.html">Audit logging</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/audit_logging.html">Audit logging 2</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/fqllogging.html">Full query logging</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../operating/transientreplication.html">Transient replication</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../tools/index.html">Tools</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../tools/cqlsh.html">cqlsh: the CQL shell</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../tools/nodetool/nodetool.html">nodetool</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../tools/sstable/index.html">SSTable tools</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../tools/cassandra_stress.html">cassandra-stress</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../troubleshooting/index.html">Troubleshooting</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../troubleshooting/finding_nodes.html">Finding misbehaving nodes</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../troubleshooting/reading_logs.html">Reading Cassandra logs</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../troubleshooting/use_nodetool.html">Using nodetool</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../troubleshooting/use_tools.html">Using external tools to deep-dive</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../../../../_/development/index.html">Development</a>
</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/gettingstarted.html">Getting started</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/ide.html">Building and IDE integration</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/testing.html">Testing</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/patches.html">Contributing code changes</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/code_style.html">Code style</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/how_to_review.html">Review checklist</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/how_to_commit.html">How to commit</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/documentation.html">Working on documentation</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/ci.html">Jenkins CI environment</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/dependencies.html">Dependency management</a>
</span>
</li>
<li class="nav-item" data-depth="3">
<span class="nav-line">
<a class="nav-link" href="../../../../_/development/release_process.html">Release process</a>
</span>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="../faq/index.html">FAQ</a>
</span>
</li>
<li class="nav-item" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="../plugins/index.html">Plug-ins</a>
</span>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</nav>
<aside class="toc sidebar">
<div class="toc-menu"></div>
</aside>
<main class="article default-main full-800" data-ceiling="topbar">
<div class="article-header">
<nav class="crumbs" aria-label="breadcrumbs">
<ul>
<li class="crumb">Cassandra</li>
<li class="crumb"><a href="index.html">Configuration</a></li>
<li class="crumb"><a href="configuration.html">Liberating cassandra.yaml Parameters' Names from Their Units</a></li>
</ul>
</nav>
<div class="tools" role="navigation">
<ul>
<li class="tool edit"><a href="https://github.com/apache/cassandra/edit/cassandra-4.1/doc/modules/cassandra/pages/configuration/configuration.adoc" title="Edit Page" target="_blank" rel="noopener">Edit</a></li>
</ul>
</div>
</div>
<article class="doc">
<h1 class="page">Liberating cassandra.yaml Parameters' Names from Their Units</h1>
<div class="sect1">
<h2 id="objective"><a class="anchor" href="#objective"></a>Objective</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Three big things happened as part of <a href="https://issues.apache.org/jira/browse/CASSANDRA-15234">CASSANDRA-15234</a>:</p>
</div>
<div class="paragraph">
<p>1) Renaming of parameters in <code>cassandra.yaml</code> to follow the form <code>noun_verb</code>.</p>
</div>
<div class="paragraph">
<p>2) Liberating <code>cassandra.yaml</code> parameters from their units (DataStorage, DataRate and Duration) and introducing temporary smallest accepted unit per parameter (only for DataStorage and Duration ones)</p>
</div>
<div class="paragraph">
<p>3) Backward compatibility framework to support the old names and lack of units support until at least the next major release.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="renamed-parameters"><a class="anchor" href="#renamed-parameters"></a>Renamed Parameters</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The community has decided to allow operators to specify units for Cassandra parameters of types duration, data storage, and data rate.
All parameters which had a particular unit (most of the time added as a suffix to their name) can be now set by using the format [value][unit]. The unit suffix has been removed from their names.
Supported units:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Parameter Type</th>
<th class="tableblock halign-left valign-top">Units Supported</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Duration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">d, h, m, s, ms, us, µs, ns</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data Storage</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B, KiB, MiB, GiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Data Rate</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B/s, MiB/s, KiB/s</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p><strong>Example</strong>:</p>
</div>
<div class="paragraph">
<p>Old name and value format:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>permissions_update_interval_ms: 0</pre>
</div>
</div>
<div class="paragraph">
<p>New name and possible value formats:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>permissions_update_interval: 0ms
permissions_update_interval: 0s
permissions_update_interval: 0d
permissions_update_interval: 0us
permissions_update_interval: 0µs</pre>
</div>
</div>
<div class="paragraph">
<p>The work in <a href="https://issues.apache.org/jira/browse/CASSANDRA-15234">CASSANDRA-15234</a> was already quite big, so we decided
to introduce the notion of the smallest allowed unit per parameter for duration and data storage parameters. What does this mean?
Cassandra&#8217;s internals still use the old units for parameters. If, for example, seconds are used internally, but you want
to add a value in nanoseconds in <code>cassandra.yaml</code>, you will get a configuration exception that contains the following information:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>Accepted units: seconds, minutes, hours, days.</pre>
</div>
</div>
<div class="paragraph">
<p>Why was this needed?
Because we can run into precision issues. The full solution to the problem is to convert internally all parameters’ values
to be manipulated with the smallest supported by Cassandra unit. A series of tickets to assess and maybe migrate to the smallest unit
our parameters (incrementally, post <a href="https://issues.apache.org/jira/browse/CASSANDRA-15234">CASSANDRA-15234</a>) will be opened in the future.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Old Name</th>
<th class="tableblock halign-left valign-top">New Name</th>
<th class="tableblock halign-left valign-top">The Smallest Supported Unit</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">permissions_validity_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">permissions_validity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">permissions_update_interval_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">permissions_update_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">roles_validity_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">roles_validity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">roles_update_interval_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">roles_update_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">credentials_validity_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">credentials_validity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">credentials_update_interval_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">credentials_update_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_hint_window_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_hint_window</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_transport_idle_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_transport_idle_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">request_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">request_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">read_request_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">read_request_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">range_request_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">range_request_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">write_request_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">write_request_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">counter_write_request_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">counter_write_request_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cas_contention_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cas_contention_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">truncate_request_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">truncate_request_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">streaming_keep_alive_period_in_secs</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">streaming_keep_alive_period</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">s</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cross_node_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">slow_query_log_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">slow_query_log_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">memtable_heap_space_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">memtable_heap_space</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">memtable_offheap_space_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">memtable_offheap_space</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">repair_session_space_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">repair_session_space</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_max_message_size_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_max_message_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_send_buff_size_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_socket_send_buffer_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_socket_send_buffer_size_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_socket_send_buffer_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_socket_receive_buffer_size_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_socket_receive_buffer_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_recv_buff_size_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_socket_receive_buffer_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_send_queue_capacity_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_send_queue_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_send_queue_reserve_endpoint_capacity_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_send_queue_reserve_endpoint_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_send_queue_reserve_global_capacity_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_send_queue_reserve_global_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_receive_queue_capacity_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_receive_queue_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_receive_queue_reserve_endpoint_capacity_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_receive_queue_reserve_endpoint_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_receive_queue_reserve_global_capacity_in_bytes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_application_receive_queue_reserve_global_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_tcp_connect_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_tcp_connect_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_tcp_user_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_tcp_user_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_streaming_tcp_user_timeout_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">internode_streaming_tcp_user_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_transport_max_frame_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">native_transport_max_frame_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_value_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_value_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">column_index_size_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">column_index_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">column_index_cache_size_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">column_index_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">batch_size_warn_threshold_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">batch_size_warn_threshold</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">batch_size_fail_threshold_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">batch_size_fail_threshold</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">compaction_throughput_mb_per_sec</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">compaction_throughput</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB/s</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">compaction_large_partition_warning_threshold_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">compaction_large_partition_warning_threshold</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">min_free_space_per_drive_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">min_free_space_per_drive</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">stream_throughput_outbound_megabits_per_sec</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">stream_throughput_outbound</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB/s</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">inter_dc_stream_throughput_outbound_megabits_per_sec</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">inter_dc_stream_throughput_outbound</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB/s</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_total_space_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_total_space</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_sync_group_window_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_sync_group_window</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_sync_period_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_sync_period</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_segment_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">commitlog_segment_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">periodic_commitlog_sync_lag_block_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">periodic_commitlog_sync_lag_block</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_mutation_size_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_mutation_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cdc_total_space_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cdc_total_space</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cdc_free_space_check_interval_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cdc_free_space_check_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">dynamic_snitch_update_interval_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dynamic_snitch_update_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">dynamic_snitch_reset_interval_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dynamic_snitch_reset_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">hinted_handoff_throttle_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">hinted_handoff_throttle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">batchlog_replay_throttle_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">batchlog_replay_throttle</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">hints_flush_period_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">hints_flush_period</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_hints_file_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">max_hints_file_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">trickle_fsync_interval_in_kb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">trickle_fsync_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">KiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">sstable_preemptive_open_interval_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">sstable_preemptive_open_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">key_cache_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">key_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">row_cache_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">row_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">counter_cache_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">counter_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">networking_cache_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">networking_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">file_cache_size_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">file_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">index_summary_capacity_in_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">index_summary_capacity</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">index_summary_resize_interval_in_minutes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">index_summary_resize_interval</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">m</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gc_log_threshold_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">gc_log_threshold</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">gc_warn_threshold_in_ms</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">gc_warn_threshold</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tracetype_query_ttl</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">trace_type_query_ttl</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">s</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">tracetype_repair_ttl</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">trace_type_repair_ttl</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">s</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">prepared_statements_cache_size_mb</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">prepared_statements_cache_size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MiB</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_user_defined_functions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">user_defined_functions_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_scripted_user_defined_functions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">scripted_user_defined_functions_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_materialized_views</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">materialized_views_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_transient_replication</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">transient_replication_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_sasi_indexes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">sasi_indexes_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_drop_compact_storage</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">drop_compact_storage_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_user_defined_functions_threads</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">user_defined_functions_threads_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">enable_legacy_ssl_storage_port</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">legacy_ssl_storage_port_enabled</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">user_defined_function_fail_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">user_defined_functions_fail_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">user_defined_function_warn_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">user_defined_functions_warn_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ms</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cache_load_timeout_seconds</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">cache_load_timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">s</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Another TO DO is to add JMX methods supporting the new format. However, we may abandon this if virtual tables support
configuration changes in the near future.</p>
</div>
<div class="paragraph">
<p><strong>Notes for Cassandra Developers</strong>:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Most of our parameters are already moved to the new framework as part of <a href="https://issues.apache.org/jira/browse/CASSANDRA-15234">CASSANDRA-15234</a>.
<code>@Replaces</code> is the annotation to be used when you make changes to any configuration parameters in <code>Config</code> class and <code>cassandra.yaml</code>, and you want to add backward
compatibility with previous Cassandra versions. <code>Converters</code> class enumerates the different methods used for backward compatibility.
<code>IDENTITY</code> is the one used for name change only. For more information about the other Converters, please, check the JavaDoc in the class.
For backward compatibility virtual table <code>Settings</code> contains both the old and the new
parameters with the old and the new value format. Only exception at the moment are the following three parameters: <code>key_cache_save_period</code>,
<code>row_cache_save_period</code> and <code>counter_cache_save_period</code> which appear only once with the new value format.
The old names and value format still can be used at least until the next major release. Deprecation warning is emitted on startup.
If the parameter is of type duration, data rate or data storage, its value should be accompanied by a unit when new name is used.</p>
</li>
<li>
<p>Please follow the new format <code>noun_verb</code> when adding new configuration parameters.</p>
</li>
<li>
<p>Please consider adding any new parameters with the lowest supported by Cassandra unit when possible. Our new types also
support long and integer upper bound, depending on your needs. All options for configuration parameters' types are nested
classes in our three main abstract classes - <code>DurationSpec</code>, <code>DataStorageSpec</code>, <code>DataRateSpec</code>.</p>
</li>
<li>
<p>If for some reason you consider the smallest unit for a new parameter shouldn’t be the one that is supported as such in
Cassandra, you can use the rest of the nested classes in <code>DurationSpec</code>, <code>DataStorageSpec</code>. The smallest allowed unit is
the one we use internally for the property, so we don&#8217;t have to do conversions to bigger units which will lead to precision
problems. This is a problem only with <code>DurationSpec</code> and <code>DataStorageSpec</code>. <code>DataRateSpec</code> is handled internally in double.</p>
</li>
<li>
<p>New parameters should be added as non-negative numbers. For parameters where you would have set -1 to disable in the past, you might
want to consider a separate flag parameter or null value. In case you use the null value, please, ensure that any default value
introduced in the DatabaseDescriptor to handle it is also duplicated in any related setters.</p>
</li>
<li>
<p>Parameters of type data storage, duration and data rate cannot be set to Long.MAX_VALUE (former parameters of long type)
and Integer.MAX_VALUE (former parameters of int type). That numbers are used during conversion between units to prevent
an overflow from happening.</p>
</li>
<li>
<p>Any time you add @Replaces with a name change, we need to add an entry in this <a href="https://github.com/riptano/ccm/blob/808b6ca13526785b0fddfe1ead2383c060c4b8b6/ccmlib/common.py#L62">Python dictionary in CCM</a> to support the same backward compatibility as SnakeYAML.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Please follow the instructions in requirements.txt in the DTest repo how to retag CCM after committing any changes.
You might want to test also with tagging in your repo to ensure that there will be no surprise after retagging the official CCM.
Please be sure to run a full CI after any changes as CCM affects a few of our testing suites.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Some configuration parameters are not announced in cassandra.yaml, but they are presented in the Config class for advanced users.
Those also should be using the new framework and naming conventions.</p>
</li>
<li>
<p>As we have backward compatibility, we didn’t have to rework all python DTests to set config in the new format, and we exercise
the backward compatibility while testing. Please consider adding any new tests using the new names and value format though.</p>
</li>
<li>
<p>In-JVM upgrade tests do not support per-version configuration at the moment, so we have to keep the old names and value format.
Currently, if we try to use the new config for a newer version, that will be silently ignored and default config will be used.</p>
</li>
<li>
<p>SnakeYAML supports overloading of parameters. This means that if you add a configuration parameter more than once in your <code>cassandra.yaml</code> -
the latest occasion will be the one to load in Config during Cassandra startup. In order to make upgrades as less disruptive as possible,
we continue supporting that behavior also with adding old and new names of a parameter into <code>cassandra.yaml</code>.</p>
</li>
<li>
<p>Please ensure that any JMX setters/getters update the Config class properties and not some local copies. Settings Virtual Table
reports the configuration loaded at any time from the Config class.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><strong>Example</strong>:</p>
</div>
<div class="paragraph">
<p>If you add the following to <code>cassandra.yaml</code>:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>hinted_handoff_enabled: true
enabled_hinted_handolff: false</pre>
</div>
</div>
<div class="paragraph">
<p>you will get loaded in <code>Config</code>:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>hinted_handoff_enabled: false</pre>
</div>
</div>
<div class="paragraph">
<p><a href="https://issues.apache.org/jira/browse/CASSANDRA-17379">CASSANDRA-17379</a> was opened to improve the user experience and deprecate the overloading.
By default, we refuse starting Cassandra with a config containing both old and new config keys for the same parameter. Start
Cassandra with <code>-Dcassandra.allow_new_old_config_keys=true</code> to override. For historical reasons duplicate config keys
in <code>cassandra.yaml</code> are allowed by default, start Cassandra with <code>-Dcassandra.allow_duplicate_config_keys=false</code> to disallow this.
Please note that <code>key_cache_save_period</code>, <code>row_cache_save_period</code>, <code>counter_cache_save_period</code> will be affected only by <code>-Dcassandra.allow_duplicate_config_keys</code>.</p>
</div>
</div>
</div>
</article>
</main>
</div>
</div>
<footer class="grad grad--two flex-center pb-xlarge">
<div class="inner text-center z2 relative">
<h2 class="white py-small">Get started with Cassandra, fast.</h2>
<a id="footer-cta" href="/_/quickstart.html" class="btn btn--filled ma-medium">Quickstart Guide</a>
</div>
<div class="inner flex flex-distribute-items mt-xlarge z2 relative">
<div class="col-2">
<div id="footer-logo" class="logo logo--footer mb-medium"><img src="../../../../assets/img/logo-white-r.png" alt="Cassandra Logo"></div>
<p>Apache Cassandra<img src="../../../../assets/img/registered.svg" alt="®" style="width:18px;"> powers mission-critical deployments with improved performance and unparalleled levels of scale in the cloud.</p>
<div class="footer-social-icons">
<a href="https://twitter.com/cassandra?lang=en" target="_blank"><img src="../../../../assets/img/twitter-icon-circle-white.svg" alt="twitter icon" width="24"></a>
<a href="https://www.linkedin.com/company/apache-cassandra/" target="_blank"><img src="../../../../assets/img/LI-In-Bug.png" alt="linked-in icon" width="24"></a>
<a href="https://www.youtube.com/c/PlanetCassandra" target="_blank"><img src="../../../../assets/img/youtube-icon.png" alt="youtube icon" width="24"></a>
</div>
</div>
<div class="col-2 flex flex-center">
<ul class="columns-2">
<li class="mb-small"><a href="/">Home</a></li>
<li class="mb-small"><a href="/_/cassandra-basics.html">Cassandra Basics</a></li>
<li class="mb-small"><a href="/_/quickstart.html">Quickstart</a></li>
<li class="mb-small"><a href="/_/ecosystem.html">Ecosystem</a></li>
<li class="mb-small"><a href="/doc/latest/">Documentation</a></li>
<li class="mb-small"><a href="/_/community.html">Community</a></li>
<li class="mb-small"><a href="/_/case-studies.html">Case Studies</a></li>
<li class="mb-small"><a href="/_/resources.html">Resources</a></li>
<li class="mb-small"><a href="/_/blog.html">Blog</a></li>
</ul>
</div>
</div>
</footer>
<div class="lower-footer bg-white pa-medium">
<div class="flex flex-row flex-vert-center">
<div class="pr-medium"><img src="../../../../assets/img//feather-small.png" alt="ASF" width="20"></div>
<div class="pr-medium"><a href="http://www.apache.org/" target="_blank">Foundation</a></div>
<div class="pr-medium"><a href="https://www.apache.org/events/current-event.html" target="_blank">Events</a></div>
<div class="pr-medium"><a href="https://www.apache.org/licenses/" target="_blank">License</a></div>
<div class="pr-medium"><a href="https://www.apache.org/foundation/thanks" target="_blank">Thanks</a></div>
<div class="pr-medium"><a href="https://www.apache.org/security" target="_blank">Security</a></div>
<div class="pr-medium"><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy</a></div>
<div class="pr-medium"><a href="https://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></div>
</div>
<p class="my-medium">© 2009-<script>document.write(new Date().getFullYear())</script> <a href="https://apache.org" target="_blank">The Apache Software Foundation</a> under the terms of the Apache License 2.0. Apache, the Apache feather logo, Apache Cassandra, Cassandra, and the Cassandra logo, are either registered trademarks or trademarks of The Apache Software Foundation.</p>
</div>
<div id="fade" class="hidden"></div>
<div id="modal" class="hidden">
<div id="close-modal" class="cursor-pointer"><svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></div>
<div id="mod-content" class="vid-mod-content resp-container"></div>
</div>
<script src="../../../../assets/js/site.js"></script>
<script async src="../../../../assets/js/vendor/highlight.js"></script>
<script src="../../../../assets/js/vendor/lunr.js"></script>
<script src="../../../../assets/js/vendor/search.js" id="search-script" data-base-path="../../../.." data-page-path="/Cassandra/4.1/cassandra/configuration/configuration.html"></script>
<script async src="../../../../assets/../search-index.js"></script>
<script>
jQuery(function(){
var windowW = $(window).width();
$(document)
.on('click','.mobile-nav-icon',function(){
$('.main-nav').fadeIn();
})
.on('click','.main-nav',function(){
if(windowW <= 1000){
$(this).fadeOut();
}
})
.on('click','#version-toggle',function(){
$(this).toggleClass('active');
$(this).next().fadeToggle();
})
.on('click','#mobile-docs-nav-burger', function(){
$(this).toggleClass('active');
$('.docs-nav').toggleClass('active');
});
var url = window.location.pathname;
var isQuickstart = url.includes('quickstart.html');
if(isQuickstart){
var footerCTA = document.getElementById('footer-cta');
footerCTA.innerHTML = 'Get latest updates';
footerCTA.setAttribute('href', '/_/blog.html');
}
});
</script>
</div>
</body>
</html>