<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="favicon.ico">

    <title>About Apache AsterixDB</title>

    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <!-- Bootstrap theme -->

    <!-- Custom styles for this template -->
    <link href="css/theme.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
  </head>

  <div class="container theme-showcase" role="main">
          <div class="masthead">
        <p class="lead">
           <a href="index.html">
             <img src="img/asterixdb_tm.png" style="height:75px; width:auto; vertical-align:bottom; margin-top:10px;"/>
           </a>
        </p>
      </div>

      <nav class="navbar navbar-default">
        <div class="container">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="index.html">Overview</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
              <li><a href="download.html">Download</a></li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Documentation<span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">
                  <li class="dropdown-header">Stable release</li>
                  <li><a href="docs/0.8.8-incubating/index.html">Documentation for 0.8.8-incubating<i class="fa fa-external-link fa-sm"></i></a></li>
                  <li class="divider"></li>
                  <li class="dropdown-header">Snapshot release</li>
                  <li><a href="https://ci.apache.org/projects/asterixdb/index.html">Documentation for 0.8.9-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                </ul>
              </li>
              <li><a href="about.html">About</a></li>
              <li><a href="community.html">Community</a></li>
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Contributing <span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">
                  <li class="dropdown-header">For New Contributors</li>
                  <li><a href="dev-setup.html">Development Setup</a></li>
                  <li class="divider"></li>
                  <li class="dropdown-header">For Committers</li>
                  <li><a href="pushing.html">Pushing changes</a></li>
                  <li><a href="site.html">Editing this site</a></li>
                </ul>
              </li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
              <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"
                   style="padding-right: 30px">
                  <img src="img/feather.png" style="height:20px"/>Apache Software Foundation<span class="caret"/>
                </a>
                <ul class="dropdown-menu dropdown-menu-right" role="menu">
                  <li><a href="http://www.apache.org/"><b>ASF Homepage</b></a></li>
                  <li><a href="http://www.apache.org/licenses/">License</a></li>
                  <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</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>
              </li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </nav>


    <div class="row">
<div class="col-md-8 col-centered">
<h2>About Apache AsterixDB</h2>
<p>Apache AsterixDB™ (incubating) is a highly scalable data management system that can store, index, and manage
semi-structured data, e.g., much like MongoDB, but it also supports a full-power query language with the expressiveness
of SQL (and more).
Unlike analytics engines like Apache Hive or Apache Spark, it stores and manages data, so AsterixDB can exploit its
knowledge of data partitioning and the availability of indexes to avoid always scanning data set(s) to process queries.
Somewhat surprisingly, there is no open source parallel database system (relational or otherwise) available to
developers today – AsterixDB aims to fill this need.</p>

<h3 id="core-features">Core features</h3>

<ul>
  <li>A NoSQL style data model (ADM) based on extending JSON with object
database concepts.</li>
  <li>An expressive and declarative query language (AQL) for querying
semi-structured data.</li>
  <li>A runtime query execution engine, Hyracks, for partitioned-parallel
execution of query plans.</li>
  <li>Partitioned LSM-based data storage and indexing for efficient
ingestion of newly arriving data.</li>
  <li>Support for querying and indexing external data (e.g., in HDFS) as
well as data stored within AsterixDB.</li>
  <li>A rich set of primitive data types, including support for spatial,
temporal, and textual data.</li>
  <li>Indexing options that include B+ trees, R trees, and inverted
keyword index support.</li>
  <li>Basic transactional (concurrency and recovery) capabilities akin to
those of a NoSQL store.</li>
</ul>

<h3 id="history">History</h3>
<p>Prior to being developed at the Apache Software Foundation AsterixDB was co-developed by a team of faculty, staff, and
students at UC Irvine and UC Riverside. The project was initiated as a large NSF-sponsored project in 2009, the goal of
which was to combine the best ideas from the parallel database world, the then new Apache Hadoop world, and the
semi-structured (e.g., XML/JSON) data world in order to create a next-generation BDMS. A first informal open source
release was made four years later, in June of 2013, under the Apache Software License 2.0. AsterixDB was accepted into
the Apache Incubator and began Incubation as of Febuary of 2015.</p>


</div>
</div>


    <hr/>

    <footer>
      <div class="row">
        <div class="col-md-9 col-centered">
          <div class="col-md-9 text-left">
            <p>Apache AsterixDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored
              by the Apache Incubator.
              Incubation is required of all newly accepted projects until a further review indicates that the
              infrastructure, communications, and decision making process have stabilized in a manner consistent with
              other successful ASF projects.
              While incubation status is not necessarily a reflection of the completeness or stability of the code, it
              does indicate that the project has yet to be fully endorsed by the ASF.</p>
          </div>
          <div class="col-md-3 text-right">
            <img src="img/egg-logo.png" style="height:auto; width:200px; vertical-align:bottom;"/>
          </div>
      </div>
      </div>
      <div class="row">
        <div class="col-md-9 col-centered text-center">
          <p/>
          <p>&copy; Copyright 2016 The Apache Software foundation. All Rights Reserved. </p>
          <p>Apache AsterixDB, the Apache AsterixDB logo, Apache, and the Apache feather logo are trademarks of the
            Apache Software Foundation</p>
        </div>
      </div>
    </footer>
  </div> <!-- /container -->

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>
