<!DOCTYPE html>
<html>
  



<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages.
">
  <meta name="keywords" content="cassandra, apache, apache cassandra, distributed storage, key value store, scalability, bigtable, dynamo" />
  <meta name="robots" content="index,follow" />
  <meta name="language" content="en" />  

  <title>Documentation</title>

  <link rel="canonical" href="http://cassandra.apache.org/doc/4.0-alpha2/">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
  <link rel="stylesheet" href="./../../css/style.css">
  

  
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
  
  <link type="application/atom+xml" rel="alternate" href="http://cassandra.apache.org/feed.xml" title="Apache Cassandra Website" />
</head>

  <body>
    <!-- breadcrumbs -->
<div class="topnav">
  <div class="container breadcrumb-container">
    <ul class="breadcrumb">
      <li>
        <div class="dropdown">
          <img class="asf-logo" src="./../../img/asf_feather.png" />
          <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
            <li><a href="http://www.apache.org">Apache Homepage</a></li>
            <li><a href="http://www.apache.org/licenses/">License</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
            <li><a href="http://www.apache.org/security/">Security</a></li>
          </ul>
        </div>
      </li>

      
      <li><a href="./../../">Apache Cassandra</a></li>
      

      
        
        <li>Documentation</li>
        
      

      

      
    </ul>
  </div>

  <!-- navbar -->
  <nav class="navbar navbar-default navbar-static-top" role="navigation">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#cassandra-menu" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="./../../"><img src="./../../img/cassandra_logo.png" alt="Apache Cassandra logo" /></a>
      </div><!-- /.navbar-header -->

      <div id="cassandra-menu" class="collapse navbar-collapse">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="./../../">Home</a></li>
          <li><a href="./../../download/">Download</a></li>
          <li><a href="./../../doc/latest/">Documentation</a></li>
          <li><a href="./../../community/">Community</a></li>
          <li>
            <a href="./../../blog/">Blog</a>
        </li>
        </ul>
      </div><!-- /#cassandra-menu -->

      
    </div>
  </nav><!-- /.navbar -->
</div><!-- /.topnav -->

    <div class="content">
  <div class="container">
    <h2>Apache Cassandra Documentation v4.0-alpha2</h2>
  
<div id="wipwarning">This documentation is currently a work-in-progress and contains a number of TODO sections.
    <a href="bugs.html">Contributions</a> are welcome.</div>

<h3>Main documentation</h3>

<div>
<form id="doc-search-form" action="search.html" method="get" role="search">
  <div class="form-group">
    Search the documentation:
    <input type="text" size="30" class="form-control input-sm" name="q" placeholder="Search docs">
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </div>
</form><br />
</div>

<table class="contentstable doc-landing-table" align="center">
  <tr>
    <td class="left-column">
      <p class="biglink"><a class="biglink" href="getting_started/index.html">Getting started</a><br/>
      <span class="linkdescr">Newbie friendly starting point</span></p>
    </td>
    <td class="right-column">
      <p class="biglink"><a class="biglink" href="operating/index.html">Operating Cassandra</a><br/>
      <span class="linkdescr">The operator's corner</span></p>
    </td>
  </tr>
  <tr>
    <td class="left-column">
      <p class="biglink"><a class="biglink" href="architecture/index.html">Cassandra Architecture</a><br/>
      <span class="linkdescr">Cassandra's big picture</span></p>
    </td>
    <td class="right-column">
      <p class="biglink"><a class="biglink" href="tools/index.html">Cassandra's Tools</a><br/>
      <span class="linkdescr">cqlsh, nodetool, ...</span></p>
    </td>
  </tr>
  <tr>
    <td class="left-column">
      <p class="biglink"><a class="biglink" href="data_modeling/index.html">Data Modeling</a><br/>
      <span class="linkdescr">Or how to make square pegs fit round holes</span></p>
    </td>
    <td class="right-column">
      <p class="biglink"><a class="biglink" href="troubleshooting/index.html">Troubleshooting</a><br/>
      <span class="linkdescr">What to look for when you have a problem</span></p>
    </td>
  </tr>
  <tr>
    <td class="left-column">
      <p class="biglink"><a class="biglink" href="cql/index.html">Cassandra Query Language</a><br/>
      <span class="linkdescr">CQL reference documentation</span></p>
    </td>
    <td class="right-column">
      <p class="biglink"><a class="biglink" href="development/index.html">Cassandra Development</a><br/>
      <span class="linkdescr">Learn how to improve Cassandra and contribute patches</span></p>
    </td>
  </tr>
  <tr>
    <td class="left-column">
      <p class="biglink"><a class="biglink" href="faq/index.html">FAQs</a><br/>
      <span class="linkdescr">Frequently Asked Questions (with answers!)</span></p>
    </td>
    <td class="right-column">
      <p class="biglink"><a class="biglink" href="configuration/index.html">Configuration</a><br/>
      <span class="linkdescr">Cassandra's handles and knobs</span></p>
    </td>
  </tr>
</table>

<h3>Meta informations</h3>

<ul>
  <li><a class="biglink" href="bugs.html">Reporting bugs</a></li>
  <li><a class="biglink" href="contactus.html">Contact us</a></li>
</ul>




<h3>Documentation for older releases</h3>

<p>The Cassandra Query Language (CQL) documentation for older releases are:

<ul>
  <li><a href="/doc/old/CQL-3.0.html">CQL for the 3.0 series</a></li>
  <li><a href="/doc/old/CQL-2.2.html">CQL for the 2.2 series</a></li>
  <li><a href="/doc/old/CQL-2.1.html">CQL for the 2.1 series</a></li>
</ul>
</p>

  </div>
</div>

    <hr />

<footer>
  <div class="container">
    <div class="col-md-4 social-blk">
      <span class="social">
        <a href="https://twitter.com/cassandra"
           class="twitter-follow-button"
           data-show-count="false" data-size="large">Follow @cassandra</a>
        <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
        <a href="https://twitter.com/intent/tweet?button_hashtag=cassandra"
           class="twitter-hashtag-button"
           data-size="large"
           data-related="ApacheCassandra">Tweet #cassandra</a>
        <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>

      </span>
      <a class="subscribe-rss icon-link" href="/feed.xml" title="Subscribe to Blog via RSS">
          <span><i class="fa fa-rss"></i></span>
      </a>
    </div>

    <div class="col-md-8 trademark">
      <p>&copy; 2016 <a href="http://apache.org">The Apache Software Foundation</a>.
      Apache, the Apache feather logo, and Apache Cassandra are trademarks of The Apache Software Foundation.
      <p>
    </div>
  </div><!-- /.container -->
</footer>

<!-- Javascript. Placed here so pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="./../../js/underscore-min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>



<script type="text/javascript">
  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

  try {
    var pageTracker = _gat._getTracker("UA-11583863-1");
    pageTracker._trackPageview();
  } catch(err) {}
</script>


  </body>
</html>
