<!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>Apache Cassandra</title>

  <link rel="canonical" href="http://cassandra.apache.org/">

  <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">
  

  
</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>Apache Cassandra</li>
      

      

      

      
    </ul>
  </div>

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

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

      
      <div class="jumbotron">
        <h1>
          Manage massive amounts of data, fast, without losing sleep
        </h1>
        <p>
        <a class="btn btn-default download" role="button" href="./download/">Download Cassandra</a>
        </p>
        <p>
        
          <a class="changelog"
             href="http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=blob_plain;f=CHANGES.txt;hb=refs/tags/cassandra-3.7">Cassandra 3.7 Changelog
          </a>
        </p>
      </div><!-- /.jumbotron -->
      
    </div>
  </nav><!-- /.navbar -->
</div><!-- /.topnav -->

    <div class="feature-list-group">
  <div class="container">
    <div class="row header">
      <h3>What is Cassandra?</h3>
      <p class="lead">
      The Apache Cassandra database is the right choice when you need scalability and high availability without
      compromising performance. <a href="http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html">Linear scalability</a>
      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.
      </p>
    </div><!-- /.header -->

    <div class="row feature-list">
      <div class="col-md-3 col-sm-3 feature-item">
        <h4>Proven</h4>
        <p>
        Cassandra is in use at
        <a href="http://www.slideshare.net/daveconnors/cassandra-puppet-scaling-data-at-15-per-month">Constant Contact</a>,
        <a href="http://planetcassandra.org/blog/post/cassandra-at-cern-large-hadron-collider/">CERN</a>,
        <a href="http://www.slideshare.net/planetcassandra/nyc-tech-day-using-cassandra-for-dvr-scheduling-at-comcast">Comcast</a>,
        <a href="http://www.slideshare.net/jaykumarpatel/cassandra-at-ebay-13920376">eBay</a>,
        <a href="http://planetcassandra.org/blog/post/analytics-at-github-with-apache-cassandra/">GitHub</a>,
        <a href="http://planetcassandra.org/blog/post/godaddy-worlds-largest-domain-name-registrar-and-web-host-provider-utilizes-cassandra-for-replication-and-scalability/">GoDaddy</a>,
        <a href="http://planetcassandra.org/blog/post/cassandra-used-to-build-scalable-and-highly-available-systems-at-hulu-streaming-content-to-over-5-million-subscribers/">Hulu</a>,
        <a href="http://planetcassandra.org/blog/post/instagram-making-the-switch-to-cassandra-from-redis-75-instasavings/">Instagram</a>, 
        <a href="http://www.slideshare.net/planetcassandra/3-mohit-anchlia">Intuit</a>,
        <a href="http://www.slideshare.net/adrianco/migrating-netflix-from-oracle-to-global-cassandra">Netflix</a>,
        <a href="http://planetcassandra.org/blog/post/reddit-upvotes-apache-cassandras-horizontal-scaling-managing-17000000-votes-daily/">Reddit</a>, 
        <a href="http://planetcassandra.org/blog/post/make-it-rain-apache-cassandra-at-the-weather-channel-for-severe-weather-alerts/">The Weather Channel</a>,
        and <a href="http://planetcassandra.org/companies/">over 1500 more companies</a> that have large, active data
        sets.</p>
      </div>

      <div class="col-md-2 col-sm-2 feature-item">
        <h4>Fault tolerant</h4>
        <p>
        Data is automatically replicated to multiple nodes for fault-tolerance. Replication across multiple data centers
        is supported. Failed nodes can be replaced with no downtime.
        </p>
      </div>

      <div class="col-md-2 col-sm-2 feature-item">
        <h4>Performant</h4>
        <p>
        Cassandra <a href="http://vldb.org/pvldb/vol5/p1724_tilmannrabl_vldb2012.pdf">consistently</a>
        <a href="http://www.datastax.com/resources/whitepapers/benchmarking-top-nosql-databases">outperforms</a> popular
        NoSQL alternatives in benchmarks and <a href="http://blog.markedup.com/2013/02/cassandra-hive-and-hadoop-how-we-picked-our-analytics-stack/">real applications</a>,
        primarily because of <a href="http://www.datastax.com/dev/blog/2012-in-review-performance">fundamental architectural choices</a>.
        </p>
      </div>

      <div class="col-md-2 col-sm-2 feature-item">
        <h4>Decentralized</h4>
        <p>
        There are no single points of failure. There are no network bottlenecks. Every node in the cluster is
        identical.
        </p>
      </div>

      <div class="col-md-3 col-sm-3 feature-item">
        <h4>Scalable</h4>
        <p>
        Some of the largest production deployments include Apple's, with over 75,000 nodes storing over 10 PB of data,
        Netflix (2,500 nodes, 420 TB, over 1 trillion requests per day), Chinese search engine Easou (270 nodes, 300 TB,
        over 800 million reqests per day), and eBay (over 100 nodes, 250 TB).
        </p>
      </div>
    </div><!-- /.feature-list -->

    <div class="row feature-list">
      <div class="col-md-3 col-sm-3 feature-item">
        <h4>Durable</h4>
        <p>
        Cassandra is <a href="http://wiki.apache.org/cassandra/Durability">suitable for applications that can't afford to lose data</a>,
        even when an entire data center goes down.
        </p>
      </div>

      <div class="col-md-3 col-sm-3 feature-item">
        <h4>You're in control</h4>
        <p>
        Choose between synchronous or asynchronous replication for each update. Highly available asynchronous operations are
        optimized with features like <a href="http://wiki.apache.org/cassandra/HintedHandoff">Hinted Handoff</a> and
        <a href="http://wiki.apache.org/cassandra/ReadRepair">Read Repair</a>.</p>
        </p>
      </div>

      <div class="col-md-3 col-sm-3 feature-item">
        <h4>Elastic</h4>
        <p>
          Read and write throughput both increase linearly as new machines are added, with no downtime or interruption
          to applications.
        </p>
      </div>

      <div class="col-md-3 col-sm-3 feature-item">
        <h4>Professionally Supported</h4>
        <p>
          Cassandra support contracts and services are available from <a href="http://wiki.apache.org/cassandra/ThirdPartySupport">third parties</a>.
        </p>
      </div>
    </div><!-- /.feature-list -->

  </div><!-- /.container -->
</div><!-- /.feature-list-group -->

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

    <div class="col-md-8 trademark">
      <p>&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>
