blob: 786ef8d2b3ecfbb750e45b1a61e2c340004ddabd [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>Frequently Asked Questions | 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="3.11">
<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">3.11</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-latest">
<a href="../../../4.1/index.html">4.1</a>
</li>
<li class="version">
<a href="../../../4.0/index.html">4.0</a>
</li>
<li class="version is-current">
<a href="../../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/production.html">Production recommendations</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="../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>
</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" data-depth="2">
<span class="nav-line">
<button class="nav-toggle"></button>
<a class="nav-link" href="../configuration/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="../configuration/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="../configuration/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="../configuration/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="../configuration/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="../configuration/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="../configuration/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="../configuration/cass_jvm_options_file.html">jvm-* files</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/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/audit_logging.html">Audit logging</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>
</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 is-current-page is-active" data-depth="2">
<span class="nav-line">
<a class="nav-link" href="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-banner">
<p>A newer version of this documentation is available.</p>
<a class="btn" href="../../../4.1/cassandra/faq/index.html">View Latest</a>
</div>
<div class="article-header">
<nav class="crumbs" aria-label="breadcrumbs">
<ul>
<li class="crumb">Cassandra</li>
<li class="crumb"><a href="index.html">FAQ</a></li>
</ul>
</nav>
<div class="tools" role="navigation">
<ul>
<li class="tool edit"><a href="file:///home/jenkins/working/cassandra/doc/modules/cassandra/pages/faq/index.adoc" title="Edit Page" target="_blank" rel="noopener">Edit</a></li>
</ul>
</div>
</div>
<article class="doc">
<h1 class="page">Frequently Asked Questions</h1>
<div class="sect1">
<h2 id="why-cant-list-all"><a class="anchor" href="#why-cant-list-all"></a><a class="link" href="#why-cant-list-all">Why can&#8217;t I set <code>listen_address</code> to listen on 0.0.0.0 (all my addresses)?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Cassandra is a gossip-based distributed system and <code>listen_address</code> is
the address a node tells other nodes to reach it at. Telling other nodes
"contact me on any of my addresses" is a bad idea; if different nodes in
the cluster pick different addresses for you, Bad Things happen.</p>
</div>
<div class="paragraph">
<p>If you don&#8217;t want to manually specify an IP to <code>listen_address</code> for each
node in your cluster (understandable!), leave it blank and Cassandra
will use <code>InetAddress.getLocalHost()</code> to pick an address. Then it&#8217;s up
to you or your ops team to make things resolve correctly (<code>/etc/hosts/</code>,
dns, etc).</p>
</div>
<div class="paragraph">
<p>One exception to this process is JMX, which by default binds to 0.0.0.0
(Java bug 6425769).</p>
</div>
<div class="paragraph">
<p>See <code>256</code> and <code>43</code> for more gory details.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-ports"><a class="anchor" href="#what-ports"></a><a class="link" href="#what-ports">What ports does Cassandra use?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>By default, Cassandra uses 7000 for cluster communication (7001 if SSL
is enabled), 9042 for native protocol clients, and 7199 for JMX. The
internode communication and native protocol ports are configurable in
the <code>cassandra-yaml</code>. The JMX port is configurable in <code>cassandra-env.sh</code>
(through JVM options). All ports are TCP.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-happens-on-joins"><a class="anchor" href="#what-happens-on-joins"></a><a class="link" href="#what-happens-on-joins">What happens to existing data in my cluster when I add new nodes?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>When a new nodes joins a cluster, it will automatically contact the
other nodes in the cluster and copy the right data to itself. See
<code>topology-changes</code>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="asynch-deletes"><a class="anchor" href="#asynch-deletes"></a><a class="link" href="#asynch-deletes">I delete data from Cassandra, but disk usage stays the same. What gives?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Data you write to Cassandra gets persisted to SSTables. Since SSTables
are immutable, the data can&#8217;t actually be removed when you perform a
delete, instead, a marker (also called a "tombstone") is written to
indicate the value&#8217;s new status. Never fear though, on the first
compaction that occurs between the data and the tombstone, the data will
be expunged completely and the corresponding disk space recovered. See
<code>compaction</code> for more detail.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="one-entry-ring"><a class="anchor" href="#one-entry-ring"></a><a class="link" href="#one-entry-ring">Why does nodetool ring only show one entry, even though my nodes logged that they see each other joining the ring?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>This happens when you have the same token assigned to each node. Don&#8217;t
do that.</p>
</div>
<div class="paragraph">
<p>Most often this bites people who deploy by installing Cassandra on a VM
(especially when using the Debian package, which auto-starts Cassandra
after installation, thus generating and saving a token), then cloning
that VM to other nodes.</p>
</div>
<div class="paragraph">
<p>The easiest fix is to wipe the data and commitlog directories, thus
making sure that each node will generate a random token on the next
restart.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="change-replication-factor"><a class="anchor" href="#change-replication-factor"></a><a class="link" href="#change-replication-factor">Can I change the replication factor (a a keyspace) on a live cluster?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Yes, but it will require running a full repair (or cleanup) to change
the replica count of existing data:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>Alter &lt;alter-keyspace-statement&gt;</code> the replication factor for desired
keyspace (using cqlsh for instance).</p>
</li>
<li>
<p>If you&#8217;re reducing the replication factor, run <code>nodetool cleanup</code> on
the cluster to remove surplus replicated data. Cleanup runs on a
per-node basis.</p>
</li>
<li>
<p>If you&#8217;re increasing the replication factor, run
<code>nodetool repair -full</code> to ensure data is replicated according to the
new configuration. Repair runs on a per-replica set basis. This is an
intensive process that may result in adverse cluster performance. It&#8217;s
highly recommended to do rolling repairs, as an attempt to repair the
entire cluster at once will most likely swamp it. Note that you will
need to run a full repair (<code>-full</code>) to make sure that already repaired
sstables are not skipped.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="can-large-blob"><a class="anchor" href="#can-large-blob"></a><a class="link" href="#can-large-blob">Can I Store (large) BLOBs in Cassandra?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Cassandra isn&#8217;t optimized for large file or BLOB storage and a single
<code>blob</code> value is always read and send to the client entirely. As such,
storing small blobs (less than single digit MB) should not be a problem,
but it is advised to manually split large blobs into smaller chunks.</p>
</div>
<div class="paragraph">
<p>Please note in particular that by default, any value greater than 16MB
will be rejected by Cassandra due the <code>max_mutation_size_in_kb</code>
configuration of the <code>cassandra-yaml</code> file (which default to half of
<code>commitlog_segment_size_in_mb</code>, which itself default to 32MB).</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="nodetool-connection-refused"><a class="anchor" href="#nodetool-connection-refused"></a><a class="link" href="#nodetool-connection-refused">Nodetool says "Connection refused to host: 127.0.1.1" for any remote host. What gives?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Nodetool relies on JMX, which in turn relies on RMI, which in turn sets
up its own listeners and connectors as needed on each end of the
exchange. Normally all of this happens behind the scenes transparently,
but incorrect name resolution for either the host connecting, or the one
being connected to, can result in crossed wires and confusing
exceptions.</p>
</div>
<div class="paragraph">
<p>If you are not using DNS, then make sure that your <code>/etc/hosts</code> files
are accurate on both ends. If that fails, try setting the
<code>-Djava.rmi.server.hostname=&lt;public name&gt;</code> JVM option near the bottom of
<code>cassandra-env.sh</code> to an interface that you can reach from the remote
machine.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="to-batch-or-not-to-batch"><a class="anchor" href="#to-batch-or-not-to-batch"></a><a class="link" href="#to-batch-or-not-to-batch">Will batching my operations speed up my bulk load?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>No. Using batches to load data will generally just add "spikes" of
latency. Use asynchronous INSERTs instead, or use true <code>bulk-loading</code>.</p>
</div>
<div class="paragraph">
<p>An exception is batching updates to a single partition, which can be a
Good Thing (as long as the size of a single batch stay reasonable). But
never ever blindly batch everything!</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="selinux"><a class="anchor" href="#selinux"></a><a class="link" href="#selinux">On RHEL nodes are unable to join the ring</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Check if <a href="https://en.wikipedia.org/wiki/Security-Enhanced_Linux">SELinux</a>
is on; if it is, turn it off.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="how-to-unsubscribe"><a class="anchor" href="#how-to-unsubscribe"></a><a class="link" href="#how-to-unsubscribe">How do I unsubscribe from the email list?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Send an email to <code>user-unsubscribe@cassandra.apache.org</code>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cassandra-eats-all-my-memory"><a class="anchor" href="#cassandra-eats-all-my-memory"></a><a class="link" href="#cassandra-eats-all-my-memory">Why does top report that Cassandra is using a lot more memory than the Java heap max?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Cassandra uses <a href="https://en.wikipedia.org/wiki/Memory-mapped_file">Memory
Mapped Files</a> (mmap) internally. That is, we use the operating system&#8217;s
virtual memory system to map a number of on-disk files into the
Cassandra process' address space. This will "use" virtual memory; i.e.
address space, and will be reported by tools like top accordingly, but
on 64 bit systems virtual address space is effectively unlimited so you
should not worry about that.</p>
</div>
<div class="paragraph">
<p>What matters from the perspective of "memory use" in the sense as it is
normally meant, is the amount of data allocated on brk() or mmap&#8217;d
/dev/zero, which represent real memory used. The key issue is that for a
mmap&#8217;d file, there is never a need to retain the data resident in
physical memory. Thus, whatever you do keep resident in physical memory
is essentially just there as a cache, in the same way as normal I/O will
cause the kernel page cache to retain data that you read/write.</p>
</div>
<div class="paragraph">
<p>The difference between normal I/O and mmap() is that in the mmap() case
the memory is actually mapped to the process, thus affecting the virtual
size as reported by top. The main argument for using mmap() instead of
standard I/O is the fact that reading entails just touching memory - in
the case of the memory being resident, you just read it - you don&#8217;t even
take a page fault (so no overhead in entering the kernel and doing a
semi-context switch). This is covered in more detail
<a href="http://www.varnish-cache.org/trac/wiki/ArchitectNotes">here</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-are-seeds"><a class="anchor" href="#what-are-seeds"></a><a class="link" href="#what-are-seeds">What are seeds?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Seeds are used during startup to discover the cluster.</p>
</div>
<div class="paragraph">
<p>If you configure your nodes to refer some node as seed, nodes in your
ring tend to send Gossip message to seeds more often (also see the
<code>section on gossip &lt;gossip&gt;</code>) than to non-seeds. In other words, seeds
are worked as hubs of Gossip network. With seeds, each node can detect
status changes of other nodes quickly.</p>
</div>
<div class="paragraph">
<p>Seeds are also referred by new nodes on bootstrap to learn other nodes
in ring. When you add a new node to ring, you need to specify at least
one live seed to contact. Once a node join the ring, it learns about the
other nodes, so it doesn&#8217;t need seed on subsequent boot.</p>
</div>
<div class="paragraph">
<p>You can make a seed a node at any time. There is nothing special about
seed nodes. If you list the node in seed list it is a seed</p>
</div>
<div class="paragraph">
<p>Seeds do not auto bootstrap (i.e. if a node has itself in its seed list
it will not automatically transfer data to itself) If you want a node to
do that, bootstrap it first and then add it to seeds later. If you have
no data (new install) you do not have to worry about bootstrap at all.</p>
</div>
<div class="paragraph">
<p>Recommended usage of seeds:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>pick two (or more) nodes per data center as seed nodes.</p>
</li>
<li>
<p>sync the seed list to all your nodes</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="are-seeds-SPOF"><a class="anchor" href="#are-seeds-SPOF"></a><a class="link" href="#are-seeds-SPOF">Does single seed mean single point of failure?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>The ring can operate or boot without a seed; however, you will not be
able to add new nodes to the cluster. It is recommended to configure
multiple seeds in production system.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cant-call-jmx-method"><a class="anchor" href="#cant-call-jmx-method"></a><a class="link" href="#cant-call-jmx-method">Why can&#8217;t I call jmx method X on jconsole?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Some of JMX operations use array argument and as jconsole doesn&#8217;t
support array argument, those operations can&#8217;t be called with jconsole
(the buttons are inactive for them). You need to write a JMX client to
call such operations or need array-capable JMX monitoring tool.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="why-message-dropped"><a class="anchor" href="#why-message-dropped"></a><a class="link" href="#why-message-dropped">Why do I see "&#8230;&#8203; messages dropped &#8230;&#8203;" in the logs?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>This is a symptom of load shedding&#8201;&#8212;&#8201;Cassandra defending itself against
more requests than it can handle.</p>
</div>
<div class="paragraph">
<p>Internode messages which are received by a node, but do not get not to
be processed within their proper timeout (see <code>read_request_timeout</code>,
<code>write_request_timeout</code>, &#8230;&#8203; in the <code>cassandra-yaml</code>), are dropped
rather than processed (since the as the coordinator node will no longer
be waiting for a response).</p>
</div>
<div class="paragraph">
<p>For writes, this means that the mutation was not applied to all replicas
it was sent to. The inconsistency will be repaired by read repair, hints
or a manual repair. The write operation may also have timeouted as a
result.</p>
</div>
<div class="paragraph">
<p>For reads, this means a read request may not have completed.</p>
</div>
<div class="paragraph">
<p>Load shedding is part of the Cassandra architecture, if this is a
persistent issue it is generally a sign of an overloaded node or
cluster.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="oom-map-failed"><a class="anchor" href="#oom-map-failed"></a><a class="link" href="#oom-map-failed">Cassandra dies with <code>java.lang.OutOfMemoryError: Map failed</code></a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>If Cassandra is dying <strong>specifically</strong> with the "Map failed" message, it
means the OS is denying java the ability to lock more memory. In linux,
this typically means memlock is limited. Check
<code>/proc/&lt;pid of cassandra&gt;/limits</code> to verify this and raise it (eg, via
ulimit in bash). You may also need to increase <code>vm.max_map_count.</code> Note
that the debian package handles this for you automatically.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-on-same-timestamp-update"><a class="anchor" href="#what-on-same-timestamp-update"></a><a class="link" href="#what-on-same-timestamp-update">What happens if two updates are made with the same timestamp?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Updates must be commutative, since they may arrive in different orders
on different replicas. As long as Cassandra has a deterministic way to
pick the winner (in a timestamp tie), the one selected is as valid as
any other, and the specifics should be treated as an implementation
detail. That said, in the case of a timestamp tie, Cassandra follows two
rules: first, deletes take precedence over inserts/updates. Second, if
there are two updates, the one with the lexically larger value is
selected.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="why-bootstrapping-stream-error"><a class="anchor" href="#why-bootstrapping-stream-error"></a><a class="link" href="#why-bootstrapping-stream-error">Why bootstrapping a new node fails with a "Stream failed" error?</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Two main possibilities:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>the GC may be creating long pauses disrupting the streaming process</p>
</li>
<li>
<p>compactions happening in the background hold streaming long enough
that the TCP connection fails</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>In the first case, regular GC tuning advices apply. In the second case,
you need to set TCP keepalive to a lower value (default is very high on
Linux). Try to just run the following:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>$ sudo /sbin/sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5</pre>
</div>
</div>
<div class="paragraph">
<p>To make those settings permanent, add them to your <code>/etc/sysctl.conf</code>
file.</p>
</div>
<div class="paragraph">
<p>Note: <a href="https://cloud.google.com/compute/">GCE</a>'s firewall will always
interrupt TCP connections that are inactive for more than 10 min.
Running the above command is highly recommended in that environment.</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/3.11/cassandra/faq/index.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>