http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/docs/0.9.4/udf.html
----------------------------------------------------------------------
diff --git a/content/docs/0.9.4/udf.html b/content/docs/0.9.4/udf.html
new file mode 100644
index 0000000..83f7114
--- /dev/null
+++ b/content/docs/0.9.4/udf.html
@@ -0,0 +1,266 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
src/site/markdown/udf.md at 2018-10-02
+ | Rendered using Apache Maven Fluido Skin 1.7
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20181002" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>AsterixDB &#x2013; Support for User Defined Functions in 
AsterixDB</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script type="text/javascript" 
src="./js/apache-maven-fluido-1.7.min.js"></script>
+
+  </head>
+  <body class="topBarDisabled">
+    <div class="container-fluid">
+      <div id="banner">
+        <div class="pull-left"><a href="./" id="bannerLeft"><img 
src="images/asterixlogo.png"  alt="AsterixDB"/></a></div>
+        <div class="pull-right"></div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+        <li id="publishDate">Last Published: 2018-10-02</li>
+      <li id="projectVersion" class="pull-right">Version: 0.9.4</li>
+      <li class="pull-right"><a href="index.html" title="Documentation 
Home">Documentation Home</a></li>
+        </ul>
+      </div>
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+    <ul class="nav nav-list">
+      <li class="nav-header">Get Started - Installation</li>
+    <li><a href="ncservice.html" title="Option 1: using NCService"><span 
class="none"></span>Option 1: using NCService</a></li>
+    <li><a href="ansible.html" title="Option 2: using Ansible"><span 
class="none"></span>Option 2: using Ansible</a></li>
+    <li><a href="aws.html" title="Option 3: using Amazon Web Services"><span 
class="none"></span>Option 3: using Amazon Web Services</a></li>
+      <li class="nav-header">AsterixDB Primer</li>
+    <li><a href="sqlpp/primer-sqlpp.html" title="Option 1: using SQL++"><span 
class="none"></span>Option 1: using SQL++</a></li>
+    <li><a href="aql/primer.html" title="Option 2: using AQL"><span 
class="none"></span>Option 2: using AQL</a></li>
+      <li class="nav-header">Data Model</li>
+    <li><a href="datamodel.html" title="The Asterix Data Model"><span 
class="none"></span>The Asterix Data Model</a></li>
+      <li class="nav-header">Queries - SQL++</li>
+    <li><a href="sqlpp/manual.html" title="The SQL++ Query Language"><span 
class="none"></span>The SQL++ Query Language</a></li>
+    <li><a href="sqlpp/builtins.html" title="Builtin Functions"><span 
class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">Queries - AQL</li>
+    <li><a href="aql/manual.html" title="The Asterix Query Language 
(AQL)"><span class="none"></span>The Asterix Query Language (AQL)</a></li>
+    <li><a href="aql/builtins.html" title="Builtin Functions"><span 
class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">API/SDK</li>
+    <li><a href="api.html" title="HTTP API"><span class="none"></span>HTTP 
API</a></li>
+    <li><a href="csv.html" title="CSV Output"><span class="none"></span>CSV 
Output</a></li>
+      <li class="nav-header">Advanced Features</li>
+    <li><a href="aql/fulltext.html" title="Support of Full-text Queries"><span 
class="none"></span>Support of Full-text Queries</a></li>
+    <li><a href="aql/externaldata.html" title="Accessing External Data"><span 
class="none"></span>Accessing External Data</a></li>
+    <li><a href="feeds/tutorial.html" title="Support for Data Ingestion"><span 
class="none"></span>Support for Data Ingestion</a></li>
+    <li class="active"><a href="#"><span class="none"></span>User Defined 
Functions</a></li>
+    <li><a href="aql/filters.html" title="Filter-Based LSM Index 
Acceleration"><span class="none"></span>Filter-Based LSM Index 
Acceleration</a></li>
+    <li><a href="aql/similarity.html" title="Support of Similarity 
Queries"><span class="none"></span>Support of Similarity Queries</a></li>
+</ul>
+          <hr />
+          <div id="poweredBy">
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+<a href="./" title="AsterixDB" class="builtBy"><img class="builtBy"  
alt="AsterixDB" src="images/asterixlogo.png"    /></a>
+            </div>
+          </div>
+        </div>
+        <div id="bodyColumn"  class="span10" >
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership.  The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License.  You may obtain a copy of the License at
+ !
+ !   http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing,
+ ! software distributed under the License is distributed on an
+ ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ! KIND, either express or implied.  See the License for the
+ ! specific language governing permissions and limitations
+ ! under the License.
+ !-->
+<h1>Support for User Defined Functions in AsterixDB</h1>
+<div class="section">
+<h2><a name="Table_of_Contents"></a><a name="atoc" id="#toc">Table of 
Contents</a></h2>
+<ul>
+
+<li><a href="#PreprocessingCollectedData">Using UDF to preprocess 
feed-collected data</a></li>
+<li><a href="#WritingAnExternalUDF">Writing an External UDF</a></li>
+<li><a href="#CreatingAnAsterixDBLibrary">Creating an AsterixDB 
Library</a></li>
+<li><a href="#installingUDF">Installing an AsterixDB Library</a></li>
+</ul>
+<p>In this document, we describe the support for implementing, using, and 
installing user-defined functions (UDF) in AsterixDB. We will explain how we 
can use UDFs to preprocess, e.g., data collected using feeds (see the <a 
href="feeds/tutorial.html">feeds tutorial</a>).</p>
+<div class="section">
+<h3><a name="Installing_an_AsterixDB_Library"></a><a 
name="installingUDF">Installing an AsterixDB Library</a></h3>
+<p>We assume you have followed the <a href="../install.html">installation 
instructions</a> to set up a running AsterixDB instance. Let us refer your 
AsterixDB instance by the name &#x201c;my_asterix&#x201d;.</p>
+<ul>
+
+<li>
+
+<p>Step 1: Stop the AsterixDB instance if it is in the ACTIVE state.</p>
+
+<div>
+<div>
+<pre class="source">$ managix stop -n my_asterix
+</pre></div></div>
+</li>
+<li>
+
+<p>Step 2: Install the library using Managix install command. Just to 
illustrate, we use the help command to look up the syntax</p>
+
+<div>
+<div>
+<pre class="source">$ managix help  -cmd install
+Installs a library to an asterix instance.
+Options
+n  Name of Asterix Instance
+d  Name of the dataverse under which the library will be installed
+l  Name of the library
+p  Path to library zip bundle
+</pre></div></div>
+</li>
+</ul>
+<p>Above is a sample output and explains the usage and the required 
parameters. Each library has a name and is installed under a dataverse. Recall 
that we had created a dataverse by the name - &#x201c;feeds&#x201d; prior to  
creating our datatypes and dataset. We shall name our library - 
&#x201c;testlib&#x201d;.</p>
+<p>We assume you have a library zip bundle that needs to be installed. To 
install the library, use the Managix install command. An example is shown 
below.</p>
+
+<div>
+<div>
+<pre class="source">    $ managix install -n my_asterix -d feeds -l testlib -p 
extlibs/asterix-external-data-0.8.7-binary-assembly.zip
+</pre></div></div>
+
+<p>You should see the following message:</p>
+
+<div>
+<div>
+<pre class="source">    INFO: Installed library testlib
+</pre></div></div>
+
+<p>We shall next start our AsterixDB instance using the start command as shown 
below.</p>
+
+<div>
+<div>
+<pre class="source">    $ managix start -n my_asterix
+</pre></div></div>
+
+<p>You may now use the AsterixDB library in AQL statements and queries. To 
look at the installed artifacts, you may execute the following query at the 
AsterixDB web-console.</p>
+
+<div>
+<div>
+<pre class="source">    for $x in dataset Metadata.Function
+    return $x
+
+    for $x in dataset Metadata.Library
+    return $x
+</pre></div></div>
+
+<p>Our library is now installed and is ready to be used.</p></div></div>
+<div class="section">
+<h2><a name="Preprocessing_Collected_Data"></a><a 
name="PreprocessingCollectedData" id="PreprocessingCollectedData">Preprocessing 
Collected Data</a></h2>
+<p>In the following we assume that you already created the 
<tt>TwitterFeed</tt> and its corresponding data types and dataset following the 
instruction explained in the <a href="feeds/tutorial.html">feeds 
tutorial</a>.</p>
+<p>A feed definition may optionally include the specification of a 
user-defined function that is to be applied to each feed object prior to 
persistence. Examples of pre-processing might include adding attributes, 
filtering out objects, sampling, sentiment analysis, feature extraction, etc. 
We can express a UDF, which can be defined in AQL or in a programming language 
such as Java, to perform such pre-processing. An AQL UDF is a good fit when 
pre-processing a object requires the result of a query (join or aggregate) over 
data contained in AsterixDB datasets. More sophisticated processing such as 
sentiment analysis of text is better handled by providing a Java UDF. A Java 
UDF has an initialization phase that allows the UDF to access any resources it 
may need to initialize itself prior to being used in a data flow. It is assumed 
by the AsterixDB compiler to be stateless and thus usable as an embarrassingly 
parallel black box. In contrast, the AsterixDB compiler can reason about an AQL 
 UDF and involve the use of indexes during its invocation.</p>
+<p>We consider an example transformation of a raw tweet into its lightweight 
version called <tt>ProcessedTweet</tt>, which is defined next.</p>
+
+<div>
+<div>
+<pre class="source">    use dataverse feeds;
+
+    create type ProcessedTweet if not exists as open {
+        id: string,
+        user_name:string,
+        location:point,
+        created_at:string,
+        message_text:string,
+        country: string,
+        topics: {{string}}
+    };
+
+    create dataset ProcessedTweets(ProcessedTweet)
+    primary key id;
+</pre></div></div>
+
+<p>The processing required in transforming a collected tweet to its lighter 
version of type <tt>ProcessedTweet</tt> involves extracting the topics or 
hash-tags (if any) in a tweet and collecting them in the referred 
&#x201c;topics&#x201d; attribute for the tweet. Additionally, the latitude and 
longitude values (doubles) are combined into the spatial point type. Note that 
spatial data types are considered as first-class citizens that come with the 
support for creating indexes. Next we show a revised version of our example 
TwitterFeed that involves the use of a UDF. We assume that the UDF that 
contains the transformation logic into a &#x201c;ProcessedTweet&#x201d; is 
available as a Java UDF inside an AsterixDB library named 
&#x2018;testlib&#x2019;. We defer the writing of a Java UDF and its 
installation as part of an AsterixDB library to a later section of this 
document.</p>
+
+<div>
+<div>
+<pre class="source">    use dataverse feeds;
+
+    create feed ProcessedTwitterFeed if not exists
+    using &quot;push_twitter&quot;
+    ((&quot;type-name&quot;=&quot;Tweet&quot;),
+    (&quot;consumer.key&quot;=&quot;************&quot;),
+    (&quot;consumer.secret&quot;=&quot;**************&quot;),
+    (&quot;access.token&quot;=&quot;**********&quot;),
+    (&quot;access.token.secret&quot;=&quot;*************&quot;))
+
+    apply function testlib#addHashTagsInPlace;
+</pre></div></div>
+
+<p>Note that a feed adaptor and a UDF act as pluggable components. These 
contribute towards providing a generic &#x201c;plug-and-play&#x201d; model 
where custom implementations can be provided to cater to specific 
requirements.</p>
+<div class="section">
+<div class="section">
+<h4><a name="Building_a_Cascade_Network_of_Feeds"></a>Building a Cascade 
Network of Feeds</h4>
+<p>Multiple high-level applications may wish to consume the data ingested from 
a data feed. Each such application might perceive the feed in a different way 
and require the arriving data to be processed and/or persisted differently. 
Building a separate flow of data from the external source for each application 
is wasteful of resources as the pre-processing or transformations required by 
each application might overlap and could be done together in an incremental 
fashion to avoid redundancy. A single flow of data from the external source 
could provide data for multiple applications. To achieve this, we introduce the 
notion of primary and secondary feeds in AsterixDB.</p>
+<p>A feed in AsterixDB is considered to be a primary feed if it gets its data 
from an external data source. The objects contained in a feed (subsequent to 
any pre-processing) are directed to a designated AsterixDB dataset. 
Alternatively or additionally, these objects can be used to derive other feeds 
known as secondary feeds. A secondary feed is similar to its parent feed in 
every other aspect; it can have an associated UDF to allow for any subsequent 
processing, can be persisted into a dataset, and/or can be made to derive other 
secondary feeds to form a cascade network. A primary feed and a dependent 
secondary feed form a hierarchy. As an example, we next show an example AQL 
statement that redefines the previous feed &#x201c;ProcessedTwitterFeed&#x201d; 
in terms of their respective parent feed (TwitterFeed).</p>
+
+<div>
+<div>
+<pre class="source">    use dataverse feeds;
+
+    drop feed ProcessedTwitterFeed if exists;
+
+    create secondary feed ProcessedTwitterFeed from feed TwitterFeed
+    apply function testlib#addHashTags;
+
+    connect feed ProcessedTwitterFeed to dataset ProcessedTweets;
+</pre></div></div>
+
+<p>The <tt>addHashTags</tt> function is already provided in the example UDF.To 
see what objects are being inserted into the dataset, we can perform a simple 
dataset scan after allowing a few moments for the feed to start ingesting 
data:</p>
+
+<div>
+<div>
+<pre class="source">    use dataverse feeds;
+
+    for $i in dataset ProcessedTweets limit 10 return $i;
+</pre></div></div>
+
+<p>For an example of how to write a Java UDF from scratch, the source for the 
example UDF that has been used in this tutorial is available [here] (<a 
class="externalLink" 
href="https://github.com/apache/asterixdb/tree/master/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library";>https://github.com/apache/asterixdb/tree/master/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library</a>)</p></div></div></div>
+<div class="section">
+<h2><a name="Unstalling_an_AsterixDB_Library"></a><a 
name="installingUDF">Unstalling an AsterixDB Library</a></h2>
+<p>To uninstall a library, use the Managix uninstall command as follows:</p>
+
+<div>
+<div>
+<pre class="source">    $ managix stop -n my_asterix
+
+    $ managix uninstall -n my_asterix -d feeds -l testlib
+</pre></div></div></div>
+        </div>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+<div class="row-fluid">Apache AsterixDB, AsterixDB, Apache, the Apache
+        feather logo, and the Apache AsterixDB project logo are either
+        registered trademarks or trademarks of The Apache Software
+        Foundation in the United States and other countries.
+        All other marks mentioned may be trademarks or registered
+        trademarks of their respective owners.
+      </div>
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/download.html
----------------------------------------------------------------------
diff --git a/content/download.html b/content/download.html
index c1ec86f..2c67c35 100644
--- a/content/download.html
+++ b/content/download.html
@@ -53,10 +53,10 @@
                 <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.9.3/index.html">Documentation for 
0.9.3<i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a href="docs/0.9.4/index.html">Documentation for 
0.9.4<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.9.4-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a 
href="https://ci.apache.org/projects/asterixdb/index.html";>Documentation for 
0.9.5-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                 </ul>
               </li>
               <li><a href="about.html">About</a></li>
@@ -106,8 +106,6 @@
     <div class="row">
 <div class="col-md-8 col-centered">
 <h2>Download</h2>
-<p>Please note that version 0.9.2 requires Java 8; Java 9 will not work.</p>
-
 <div class="row">
 <div class="col-md-6">
     <h3 id="source">Source</h3>
@@ -145,52 +143,7 @@
 
 <div class="col-md-6">
 
-    <p><a class="btn btn-md btn-success" 
href="http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.3/asterix-server-0.9.3-binary-assembly.zip";
 role="button">Download AsterixDB 0.9.3 <i class="fa fa-download fa-lg"></i> 
</a></p>
-
-  </div>
-
-</div>
-
-<div class="row">
-
-<div class="col-md-6">
-    <h3 id="standalone-cluster-installer">Standalone Cluster Installer</h3>
-
-  </div>
-</div>
-
-<div class="row">
-
-<div class="col-md-6">
-    <p>This packaging is most suitable for installation on a cluster without 
Hadoop or YARN.</p>
-  </div>
-
-<div class="col-md-6">
-
-    <p><a class="btn btn-md btn-success" 
href="http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.3/asterix-installer-0.9.3-binary-assembly.zip";
 role="button">Download AsterixDB 0.9.3 <i class="fa fa-download fa-lg"></i> 
</a></p>
-
-  </div>
-
-</div>
-
-<div class="row">
-
-
-<div class="col-md-6">
-    <h3 id="yarn-cluster-installer">YARN Cluster Installer</h3>
-
-  </div>
-</div>
-
-<div class="row">
-
-<div class="col-md-6">
-    <p>This is AsterixDB packaged with the YARN installer. If you already have 
a cluster running Hadoop YARN, this is the easiest way to start out with 
AsterixDB.</p>
-  </div>
-
-<div class="col-md-6">
-
-    <p><a class="btn btn-md btn-success" 
href="http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.3/asterix-yarn-0.9.3-binary-assembly.zip";
 role="button">Download AsterixDB 0.9.3 <i class="fa fa-download fa-lg"></i> 
</a></p>
+    <p><a class="btn btn-md btn-success" 
href="http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.4/apache-asterixdb-0.9.4.zip";
 role="button">Download AsterixDB 0.9.4 <i class="fa fa-download fa-lg"></i> 
</a></p>
 
   </div>
 

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/extension.html
----------------------------------------------------------------------
diff --git a/content/extension.html b/content/extension.html
index 7005e69..701bcdd 100644
--- a/content/extension.html
+++ b/content/extension.html
@@ -53,10 +53,10 @@
                 <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.9.3/index.html">Documentation for 
0.9.3<i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a href="docs/0.9.4/index.html">Documentation for 
0.9.4<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.9.4-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a 
href="https://ci.apache.org/projects/asterixdb/index.html";>Documentation for 
0.9.5-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                 </ul>
               </li>
               <li><a href="about.html">About</a></li>

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
index 4e42c6e..60e7d2e 100644
--- a/content/index.html
+++ b/content/index.html
@@ -53,10 +53,10 @@
                 <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.9.3/index.html">Documentation for 
0.9.3<i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a href="docs/0.9.4/index.html">Documentation for 
0.9.4<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.9.4-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a 
href="https://ci.apache.org/projects/asterixdb/index.html";>Documentation for 
0.9.5-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                 </ul>
               </li>
               <li><a href="about.html">About</a></li>
@@ -111,19 +111,19 @@
   <div class="col-lg-4">
     <h3 id="key-features">Key Features</h3>
     <ul>
-      <li><a 
href="docs/0.9.3/aql/datamodel.html"><strong>Flexible</strong></a> data 
model</li>
+      <li><a 
href="docs/0.9.4/aql/datamodel.html"><strong>Flexible</strong></a> data 
model</li>
       <li><a 
href="http://asterix.ics.uci.edu/pub/vldb14-storage.pdf";><strong>Distributed</strong></a>
 storage and transaction</li>
-      <li><a href="docs/0.9.3/feeds/tutorial.html"><strong>Fast</strong></a> 
data ingestion</li>
+      <li><a href="docs/0.9.4/feeds/tutorial.html"><strong>Fast</strong></a> 
data ingestion</li>
       <li><a 
href="http://asterix.ics.uci.edu/pub/ICDE11_conf_full_690.pdf";><strong>Scalable</strong></a>,
 data-parallel query execution runtime</li>
-      <li><a 
href="docs/0.9.3/aql/manual.html"><strong>Declarative</strong></a> query 
language</li>
+      <li><a 
href="docs/0.9.4/aql/manual.html"><strong>Declarative</strong></a> query 
language</li>
     </ul>
 
     <p><strong>AsterixDB</strong> supports various storage and indexing 
options:</p>
 
     <ul>
-      <li><a href="docs/0.9.3/aql/primer.html"><strong>Managed 
datasets</strong></a>, internal LSM-based storage</li>
-      <li><a href="docs/0.9.3/aql/externaldata.html"><strong>External 
datasets</strong></a>, e.g., data on HDFS</li>
-      <li><a href="docs/0.9.3/aql/primer.html"><strong>Secondary 
indexes</strong></a>, for both storage options.</li>
+      <li><a href="docs/0.9.4/aql/primer.html"><strong>Managed 
datasets</strong></a>, internal LSM-based storage</li>
+      <li><a href="docs/0.9.4/aql/externaldata.html"><strong>External 
datasets</strong></a>, e.g., data on HDFS</li>
+      <li><a href="docs/0.9.4/aql/primer.html"><strong>Secondary 
indexes</strong></a>, for both storage options.</li>
     </ul>
 
   </div>
@@ -188,11 +188,11 @@
   </div>
   <div class="col-md-4">
     <h3 id="download">Download</h3>
-    <p><a class="btn btn-md btn-success" 
href="http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.3/asterix-installer-0.9.3-binary-assembly.zip";
 role="button">Download AsterixDB 0.9.3 <i class="fa fa-download fa-lg"></i></a>
+    <p><a class="btn btn-md btn-success" 
href="http://www.apache.org/dyn/closer.lua/asterixdb/asterixdb-0.9.4/apache-asterixdb-0.9.4.zip";
 role="button">Download AsterixDB 0.9.4 <i class="fa fa-download fa-lg"></i></a>
       <a class="btn btn-md btn-info" 
href="https://github.com/apache/asterixdb/"; role="button">GitHub <i class="fa 
fa-github fa-lg"></i></a></p>
-    <p><a href="docs/0.9.3/ncservice.html">Installation Guide</a></p>
+    <p><a href="docs/0.9.4/ncservice.html">Installation Guide</a></p>
 
-    <p><a href="docs/0.9.3/sqlpp/primer.html">AsterixDB 101</a></p>
+    <p><a href="docs/0.9.4/sqlpp/primer.html">AsterixDB 101</a></p>
   </div>
 </div>
 

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/pushing.html
----------------------------------------------------------------------
diff --git a/content/pushing.html b/content/pushing.html
index 2acfc68..e374586 100644
--- a/content/pushing.html
+++ b/content/pushing.html
@@ -53,10 +53,10 @@
                 <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.9.3/index.html">Documentation for 
0.9.3<i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a href="docs/0.9.4/index.html">Documentation for 
0.9.4<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.9.4-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a 
href="https://ci.apache.org/projects/asterixdb/index.html";>Documentation for 
0.9.5-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                 </ul>
               </li>
               <li><a href="about.html">About</a></li>

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/site.html
----------------------------------------------------------------------
diff --git a/content/site.html b/content/site.html
index a0ae10c..2930b41 100644
--- a/content/site.html
+++ b/content/site.html
@@ -53,10 +53,10 @@
                 <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.9.3/index.html">Documentation for 
0.9.3<i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a href="docs/0.9.4/index.html">Documentation for 
0.9.4<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.9.4-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a 
href="https://ci.apache.org/projects/asterixdb/index.html";>Documentation for 
0.9.5-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                 </ul>
               </li>
               <li><a href="about.html">About</a></li>

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/content/tools.html
----------------------------------------------------------------------
diff --git a/content/tools.html b/content/tools.html
index a3ad505..5215bdf 100644
--- a/content/tools.html
+++ b/content/tools.html
@@ -53,10 +53,10 @@
                 <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.9.3/index.html">Documentation for 
0.9.3<i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a href="docs/0.9.4/index.html">Documentation for 
0.9.4<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.9.4-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
+                  <li><a 
href="https://ci.apache.org/projects/asterixdb/index.html";>Documentation for 
0.9.5-SNAPSHOT  <i class="fa fa-external-link fa-sm"></i></a></li>
                 </ul>
               </li>
               <li><a href="about.html">About</a></li>

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/dev-setup.md
----------------------------------------------------------------------
diff --git a/dev-setup.md b/dev-setup.md
index a0476ad..0ca76f4 100644
--- a/dev-setup.md
+++ b/dev-setup.md
@@ -22,14 +22,6 @@ If you are a developer simply looking for a snapshot of the 
latest development v
 ### Server Package
 <p><a class="btn btn-md btn-warning" href="{{ site.UNSTABLE_NCSERVICE_URL }}" 
role="button">Download AsterixDB {{ site.UNSTABLE_VERSION }} <i class="fa 
fa-download fa-lg"></i> </a></p>
 
-### Managix Installer
-<p><a class="btn btn-md btn-warning" href="{{ site.UNSTABLE_DOWNLOAD_URL }}" 
role="button">Download AsterixDB {{ site.UNSTABLE_VERSION }} <i class="fa 
fa-download fa-lg"></i> </a></p>
-
-### YARN Installer
-<p><a class="btn btn-md btn-warning" href="{{ site.UNSTABLE_YARN_URL }}" 
role="button">Download AsterixDB {{ site.UNSTABLE_VERSION }} <i class="fa 
fa-download fa-lg"></i> </a></p>
-
-
-
 ---
 
 ## Setting up an Asterix Development environment

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/docs/0.9.4/api.html
----------------------------------------------------------------------
diff --git a/docs/0.9.4/api.html b/docs/0.9.4/api.html
new file mode 100644
index 0000000..f1d98be
--- /dev/null
+++ b/docs/0.9.4/api.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
src/site/markdown/api.md at 2018-10-02
+ | Rendered using Apache Maven Fluido Skin 1.7
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20181002" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>AsterixDB &#x2013; HTTP API to AsterixDB</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.7.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+    <script type="text/javascript" 
src="./js/apache-maven-fluido-1.7.min.js"></script>
+
+  </head>
+  <body class="topBarDisabled">
+    <div class="container-fluid">
+      <div id="banner">
+        <div class="pull-left"><a href="./" id="bannerLeft"><img 
src="images/asterixlogo.png"  alt="AsterixDB"/></a></div>
+        <div class="pull-right"></div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+        <li id="publishDate">Last Published: 2018-10-02</li>
+      <li id="projectVersion" class="pull-right">Version: 0.9.4</li>
+      <li class="pull-right"><a href="index.html" title="Documentation 
Home">Documentation Home</a></li>
+        </ul>
+      </div>
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+    <ul class="nav nav-list">
+      <li class="nav-header">Get Started - Installation</li>
+    <li><a href="ncservice.html" title="Option 1: using NCService"><span 
class="none"></span>Option 1: using NCService</a></li>
+    <li><a href="ansible.html" title="Option 2: using Ansible"><span 
class="none"></span>Option 2: using Ansible</a></li>
+    <li><a href="aws.html" title="Option 3: using Amazon Web Services"><span 
class="none"></span>Option 3: using Amazon Web Services</a></li>
+      <li class="nav-header">AsterixDB Primer</li>
+    <li><a href="sqlpp/primer-sqlpp.html" title="Option 1: using SQL++"><span 
class="none"></span>Option 1: using SQL++</a></li>
+    <li><a href="aql/primer.html" title="Option 2: using AQL"><span 
class="none"></span>Option 2: using AQL</a></li>
+      <li class="nav-header">Data Model</li>
+    <li><a href="datamodel.html" title="The Asterix Data Model"><span 
class="none"></span>The Asterix Data Model</a></li>
+      <li class="nav-header">Queries - SQL++</li>
+    <li><a href="sqlpp/manual.html" title="The SQL++ Query Language"><span 
class="none"></span>The SQL++ Query Language</a></li>
+    <li><a href="sqlpp/builtins.html" title="Builtin Functions"><span 
class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">Queries - AQL</li>
+    <li><a href="aql/manual.html" title="The Asterix Query Language 
(AQL)"><span class="none"></span>The Asterix Query Language (AQL)</a></li>
+    <li><a href="aql/builtins.html" title="Builtin Functions"><span 
class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">API/SDK</li>
+    <li class="active"><a href="#"><span class="none"></span>HTTP API</a></li>
+    <li><a href="csv.html" title="CSV Output"><span class="none"></span>CSV 
Output</a></li>
+      <li class="nav-header">Advanced Features</li>
+    <li><a href="aql/fulltext.html" title="Support of Full-text Queries"><span 
class="none"></span>Support of Full-text Queries</a></li>
+    <li><a href="aql/externaldata.html" title="Accessing External Data"><span 
class="none"></span>Accessing External Data</a></li>
+    <li><a href="feeds/tutorial.html" title="Support for Data Ingestion"><span 
class="none"></span>Support for Data Ingestion</a></li>
+    <li><a href="udf.html" title="User Defined Functions"><span 
class="none"></span>User Defined Functions</a></li>
+    <li><a href="aql/filters.html" title="Filter-Based LSM Index 
Acceleration"><span class="none"></span>Filter-Based LSM Index 
Acceleration</a></li>
+    <li><a href="aql/similarity.html" title="Support of Similarity 
Queries"><span class="none"></span>Support of Similarity Queries</a></li>
+</ul>
+          <hr />
+          <div id="poweredBy">
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+<a href="./" title="AsterixDB" class="builtBy"><img class="builtBy"  
alt="AsterixDB" src="images/asterixlogo.png"    /></a>
+            </div>
+          </div>
+        </div>
+        <div id="bodyColumn"  class="span10" >
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership.  The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License.  You may obtain a copy of the License at
+ !
+ !   http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing,
+ ! software distributed under the License is distributed on an
+ ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ! KIND, either express or implied.  See the License for the
+ ! specific language governing permissions and limitations
+ ! under the License.
+ !-->
+<h1>HTTP API to AsterixDB</h1>
+<div class="section">
+<h2><a name="Table_of_Contents"></a><a name="toc" id="toc">Table of 
Contents</a></h2>
+<ul>
+
+<li><a href="#queryservice">Query Service API</a></li>
+<li><a href="#querystatus">Query Status API</a></li>
+<li><a href="#queryresult">Query Result API</a></li>
+</ul></div>
+<div class="section">
+<h2><a name="POST_.2Fquery.2Fservice_.5BBack_to_TOC.5D"></a><a 
name="queryservice" id="queryservice">POST /query/service</a><font size="4"> <a 
href="#toc">[Back to TOC]</a></font></h2>
+<p><b>Description</b> Returns result for query as JSON. The response is a JSON 
object that contains some result metadata along with either an embedded result 
or an opaque handle that can be used to navigate to the result (see the 
decription of the <tt>mode</tt> parameter for more details).</p>
+<p><b>Parameters</b></p>
+<ul>
+
+<li><tt>statement</tt> - Specifies at least one valid SQL++ statement to run. 
The statements need to be urlencoded. Required.</li>
+<li><tt>pretty</tt> - If the parameter <tt>pretty</tt> is given with the value 
<tt>true</tt>, the result will be indented. (Optional)</li>
+<li><tt>client_context_id</tt> - A user-defined sequence of characters that 
the API receives and returns unchanged. This can be used e.g. to match 
individual requests, jobs, and responses. Another option could be to use it for 
groups of requests if an application decides to put e.g. an group identifier 
into that field to route groups of responses to a particular response 
processor.</li>
+<li><tt>mode</tt> - Result delivery mode. Possible values are 
<tt>immediate</tt>, <tt>deferred</tt>, <tt>async</tt> (default: 
<tt>immediate</tt>). If the delivery mode is <tt>immediate</tt> the query 
result is returned with the response. If the delivery mode is <tt>deferred</tt> 
the response contains a handle to the <a href="#queryresult">result</a>. If the 
delivery mode is <tt>async</tt> the response contains a handle to the 
query&#x2019;s <a href="#querystatus">status</a>.</li>
+</ul>
+<p><b>Command (immediate result delivery)</b></p>
+
+<div>
+<div>
+<pre class="source">$ curl -v --data-urlencode &quot;statement=select 1;&quot; 
\
+          --data pretty=true                     \
+          --data client_context_id=xyz           \
+          http://localhost:19002/query/service
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; POST /query/service HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt; Content-Length: 57
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;requestID&quot;: &quot;5f72e78c-482a-45bf-b174-6443c8273025&quot;,
+    &quot;clientContextID&quot;: &quot;xyz&quot;,
+    &quot;signature&quot;: &quot;*&quot;,
+    &quot;results&quot;: [ {
+        &quot;$1&quot; : 1
+    } ]
+    ,
+    &quot;status&quot;: &quot;success&quot;,
+    &quot;metrics&quot;: {
+        &quot;elapsedTime&quot;: &quot;20.263371ms&quot;,
+        &quot;executionTime&quot;: &quot;19.889389ms&quot;,
+        &quot;resultCount&quot;: 1,
+        &quot;resultSize&quot;: 15
+    }
+}
+</pre></div></div>
+
+<p><b>Command (<a name="deferred" id="deferred">deferred result 
delivery</a>)</b></p>
+
+<div>
+<div>
+<pre class="source">$ curl -v --data-urlencode &quot;statement=select 1;&quot; 
\
+          --data mode=deferred                   \
+          http://localhost:19002/query/service
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; POST /query/service HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt; Content-Length: 37
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;requestID&quot;: &quot;6df7afb4-5f83-49b6-8c4b-f11ec84c4d7e&quot;,
+    &quot;signature&quot;: &quot;*&quot;,
+    &quot;handle&quot;: 
&quot;http://localhost:19002/query/service/result/7-0&quot;,
+    &quot;status&quot;: &quot;success&quot;,
+    &quot;metrics&quot;: {
+        &quot;elapsedTime&quot;: &quot;12.270570ms&quot;,
+        &quot;executionTime&quot;: &quot;11.948343ms&quot;,
+        &quot;resultCount&quot;: 0,
+        &quot;resultSize&quot;: 0
+    }
+}
+</pre></div></div>
+
+<p><b>Command (<a name="async" id="async>">async result delivery</a>)</b></p>
+
+<div>
+<div>
+<pre class="source">$ curl -v --data-urlencode &quot;statement=select 1;&quot; 
\
+          --data mode=async                      \
+          http://localhost:19002/query/service
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; POST /query/service HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt; Content-Length: 34
+&gt; Content-Type: application/x-www-form-urlencoded
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;requestID&quot;: &quot;c5858420-d821-4c0c-81a4-2364386827c2&quot;,
+    &quot;signature&quot;: &quot;*&quot;,
+    &quot;status&quot;: &quot;running&quot;,
+    &quot;handle&quot;: 
&quot;http://localhost:19002/query/service/status/9-0&quot;,
+    &quot;metrics&quot;: {
+        &quot;elapsedTime&quot;: &quot;9.727006ms&quot;,
+        &quot;executionTime&quot;: &quot;9.402282ms&quot;,
+        &quot;resultCount&quot;: 0,
+        &quot;resultSize&quot;: 0
+    }
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h2><a name="GET_.2Fquery.2Fservice.2Fstatus_.5BBack_to_TOC.5D"></a><a 
name="querystatus" id="querystatus">GET /query/service/status</a><font 
size="4"> <a href="#toc">[Back to TOC]</a></font></h2>
+<p><b>Description</b> Returns status of an <tt>async</tt> query request. The 
response is a JSON object that has a similar structure to the responses for the 
<a href="#queryservice">/query/service</a> endpoint. Possible status values for 
the status are <tt>running</tt>, <tt>success</tt>, <tt>timeout</tt>, 
<tt>failed</tt>, and <tt>fatal</tt>. If the status value is <tt>success</tt>, 
the response also contains a handle to the <a href="#queryresult">result</a>. 
URLs for this endpoint are usually not constructed by the application, they are 
simply extracted from the <tt>handle</tt> field of the response to a request to 
the <a href="#queryservice">/query/service</a> endpoint.</p>
+<p><b>Command</b></p>
+<p>This example shows a request/reponse for the (opaque) status handle that 
was returned by the <a href="#async">async result delivery</a> example.</p>
+
+<div>
+<div>
+<pre class="source">$ curl -v http://localhost:19002/query/service/status/9-0
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; GET /query/service/status/9-0 HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json; charset=utf-8
+&lt;
+{
+    &quot;status&quot;: &quot;success&quot;,
+    &quot;handle&quot;: 
&quot;http://localhost:19002/query/service/result/9-0&quot;
+}
+</pre></div></div>
+</div>
+<div class="section">
+<h2><a name="GET_.2Fquery.2Fservice.2Fresult_.5BBack_to_TOC.5D"></a><a 
name="queryresult" id="queryresult">GET /query/service/result</a><font 
size="4"> <a href="#toc">[Back to TOC]</a></font></h2>
+<p><b>Description</b> Returns result set for an <tt>async</tt> or 
<tt>deferred</tt> query request. The response is a plain result without a 
wrapping JSON object. URLs for this endpoint are usually not constructed by the 
application, they are simply extracted from the <tt>handle</tt> field of the 
response to a request to the <a href="#queryservice">/query/service</a> or the 
<a href="#querystatus">/query/service/status</a> endpoint.</p>
+<p><b>Command</b></p>
+<p>This example shows a request/reponse for the (opaque) result handle that 
was returned by the <a href="#deferred">deferred result delivery</a> 
example.</p>
+
+<div>
+<div>
+<pre class="source">$ curl -v http://localhost:19002/query/service/result/7-0
+</pre></div></div>
+
+<p><b>Sample response</b></p>
+
+<div>
+<div>
+<pre class="source">&gt; GET /query/service/result/7-0 HTTP/1.1
+&gt; Host: localhost:19002
+&gt; User-Agent: curl/7.43.0
+&gt; Accept: */*
+&gt;
+&lt; HTTP/1.1 200 OK
+&lt; transfer-encoding: chunked
+&lt; connection: keep-alive
+&lt; content-type: application/json
+&lt;
+[ { &quot;$1&quot;: 1 }
+ ]
+</pre></div></div></div>
+        </div>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+<div class="row-fluid">Apache AsterixDB, AsterixDB, Apache, the Apache
+        feather logo, and the Apache AsterixDB project logo are either
+        registered trademarks or trademarks of The Apache Software
+        Foundation in the United States and other countries.
+        All other marks mentioned may be trademarks or registered
+        trademarks of their respective owners.
+      </div>
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/asterixdb-site/blob/d00eca89/docs/0.9.4/aql/externaldata.html
----------------------------------------------------------------------
diff --git a/docs/0.9.4/aql/externaldata.html b/docs/0.9.4/aql/externaldata.html
new file mode 100644
index 0000000..6c06dc9
--- /dev/null
+++ b/docs/0.9.4/aql/externaldata.html
@@ -0,0 +1,577 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.8.1 from 
src/site/markdown/aql/externaldata.md at 2018-10-02
+ | Rendered using Apache Maven Fluido Skin 1.7
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20181002" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>AsterixDB &#x2013; Accessing External Data in AsterixDB</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.7.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script type="text/javascript" 
src="../js/apache-maven-fluido-1.7.min.js"></script>
+
+  </head>
+  <body class="topBarDisabled">
+    <div class="container-fluid">
+      <div id="banner">
+        <div class="pull-left"><a href=".././" id="bannerLeft"><img 
src="../images/asterixlogo.png"  alt="AsterixDB"/></a></div>
+        <div class="pull-right"></div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+        <li id="publishDate">Last Published: 2018-10-02</li>
+      <li id="projectVersion" class="pull-right">Version: 0.9.4</li>
+      <li class="pull-right"><a href="../index.html" title="Documentation 
Home">Documentation Home</a></li>
+        </ul>
+      </div>
+      <div class="row-fluid">
+        <div id="leftColumn" class="span2">
+          <div class="well sidebar-nav">
+    <ul class="nav nav-list">
+      <li class="nav-header">Get Started - Installation</li>
+    <li><a href="../ncservice.html" title="Option 1: using NCService"><span 
class="none"></span>Option 1: using NCService</a></li>
+    <li><a href="../ansible.html" title="Option 2: using Ansible"><span 
class="none"></span>Option 2: using Ansible</a></li>
+    <li><a href="../aws.html" title="Option 3: using Amazon Web 
Services"><span class="none"></span>Option 3: using Amazon Web Services</a></li>
+      <li class="nav-header">AsterixDB Primer</li>
+    <li><a href="../sqlpp/primer-sqlpp.html" title="Option 1: using 
SQL++"><span class="none"></span>Option 1: using SQL++</a></li>
+    <li><a href="../aql/primer.html" title="Option 2: using AQL"><span 
class="none"></span>Option 2: using AQL</a></li>
+      <li class="nav-header">Data Model</li>
+    <li><a href="../datamodel.html" title="The Asterix Data Model"><span 
class="none"></span>The Asterix Data Model</a></li>
+      <li class="nav-header">Queries - SQL++</li>
+    <li><a href="../sqlpp/manual.html" title="The SQL++ Query Language"><span 
class="none"></span>The SQL++ Query Language</a></li>
+    <li><a href="../sqlpp/builtins.html" title="Builtin Functions"><span 
class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">Queries - AQL</li>
+    <li><a href="../aql/manual.html" title="The Asterix Query Language 
(AQL)"><span class="none"></span>The Asterix Query Language (AQL)</a></li>
+    <li><a href="../aql/builtins.html" title="Builtin Functions"><span 
class="none"></span>Builtin Functions</a></li>
+      <li class="nav-header">API/SDK</li>
+    <li><a href="../api.html" title="HTTP API"><span class="none"></span>HTTP 
API</a></li>
+    <li><a href="../csv.html" title="CSV Output"><span class="none"></span>CSV 
Output</a></li>
+      <li class="nav-header">Advanced Features</li>
+    <li><a href="../aql/fulltext.html" title="Support of Full-text 
Queries"><span class="none"></span>Support of Full-text Queries</a></li>
+    <li class="active"><a href="#"><span class="none"></span>Accessing 
External Data</a></li>
+    <li><a href="../feeds/tutorial.html" title="Support for Data 
Ingestion"><span class="none"></span>Support for Data Ingestion</a></li>
+    <li><a href="../udf.html" title="User Defined Functions"><span 
class="none"></span>User Defined Functions</a></li>
+    <li><a href="../aql/filters.html" title="Filter-Based LSM Index 
Acceleration"><span class="none"></span>Filter-Based LSM Index 
Acceleration</a></li>
+    <li><a href="../aql/similarity.html" title="Support of Similarity 
Queries"><span class="none"></span>Support of Similarity Queries</a></li>
+</ul>
+          <hr />
+          <div id="poweredBy">
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+            <div class="clear"></div>
+<a href=".././" title="AsterixDB" class="builtBy"><img class="builtBy"  
alt="AsterixDB" src="../images/asterixlogo.png"    /></a>
+            </div>
+          </div>
+        </div>
+        <div id="bodyColumn"  class="span10" >
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership.  The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License.  You may obtain a copy of the License at
+ !
+ !   http://www.apache.org/licenses/LICENSE-2.0
+ !
+ ! Unless required by applicable law or agreed to in writing,
+ ! software distributed under the License is distributed on an
+ ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ! KIND, either express or implied.  See the License for the
+ ! specific language governing permissions and limitations
+ ! under the License.
+ !-->
+<h1>Accessing External Data in AsterixDB</h1>
+<div class="section">
+<h2><a name="Table_of_Contents"></a><a name="toc" id="toc">Table of 
Contents</a></h2>
+<ul>
+
+<li><a href="#Introduction">Introduction</a></li>
+<li><a href="#IntroductionAdapterForAnExternalDataset">Adapter for an External 
Dataset</a></li>
+<li><a href="#BuiltinAdapters">Builtin Adapters</a></li>
+<li><a href="#IntroductionCreatingAnExternalDataset">Creating an External 
Dataset</a></li>
+<li><a href="#WritingQueriesAgainstAnExternalDataset">Writing Queries against 
an External Dataset</a></li>
+<li><a href="#BuildingIndexesOverExternalDatasets">Building Indexes over 
External Datasets</a></li>
+<li><a href="#ExternalDataSnapshot">External Data Snapshots</a></li>
+<li><a href="#FAQ">Frequently Asked Questions</a></li>
+</ul></div>
+<div class="section">
+<h2><a name="Introduction_.5BBack_to_TOC.5D"></a><a name="Introduction" 
id="Introduction">Introduction</a> <font size="4"><a href="#toc">[Back to 
TOC]</a></font></h2>
+<p>Data that needs to be processed by AsterixDB could be residing outside 
AsterixDB storage. Examples include data files on a distributed file system 
such as HDFS or on the local file system of a machine that is part of an 
AsterixDB cluster. For AsterixDB to process such data, an end-user may create a 
regular dataset in AsterixDB (a.k.a. an internal dataset) and load the dataset 
with the data. AsterixDB also supports &#x2018;&#x2018;external 
datasets&#x2019;&#x2019; so that it is not necessary to &#x201c;load&#x201d; 
all data prior to using it. This also avoids creating multiple copies of data 
and the need to keep the copies in sync.</p>
+<div class="section">
+<h3><a name="Adapter_for_an_External_Dataset_.5BBack_to_TOC.5D"></a><a 
name="IntroductionAdapterForAnExternalDataset" 
id="IntroductionAdapterForAnExternalDataset">Adapter for an External 
Dataset</a> <font size="4"><a href="#toc">[Back to TOC]</a></font></h3>
+<p>External data is accessed using wrappers (adapters in AsterixDB) that 
abstract away the mechanism of connecting with an external service, receiving 
its data and transforming the data into ADM objects that are understood by 
AsterixDB. AsterixDB comes with built-in adapters for common storage systems 
such as HDFS or the local file system.</p></div>
+<div class="section">
+<h3><a name="Builtin_Adapters_.5BBack_to_TOC.5D"></a><a name="BuiltinAdapters" 
id="BuiltinAdapters">Builtin Adapters</a> <font size="4"><a href="#toc">[Back 
to TOC]</a></font></h3>
+<p>AsterixDB offers a set of builtin adapters that can be used to query 
external data or for loading data into an internal dataset using a load 
statement or a data feed. Each adapter requires specifying the <tt>format</tt> 
of the data in order to be able to parse objects correctly. Using adapters with 
feeds, the parameter <tt>output-type</tt> must also be specified.</p>
+<p>Following is a listing of existing built-in adapters and their 
configuration parameters:</p>
+<ol style="list-style-type: decimal">
+
+<li><b><i>localfs</i></b>: used for reading data stored in a local filesystem 
in one or more of the node controllers
+<ul>
+
+<li><tt>path</tt>: A fully qualified path of the form 
<tt>host://absolute_path</tt>. Comma separated list if there are multiple 
directories or files</li>
+<li><tt>expression</tt>: A <a class="externalLink" 
href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html";>regular
 expression</a> to match and filter against file names</li>
+</ul>
+</li>
+<li><b><i>hdfs</i></b>: used for reading data stored in an HDFS instance
+<ul>
+
+<li><tt>path</tt>: A fully qualified path of the form 
<tt>host://absolute_path</tt>. Comma separated list if there are multiple 
directories or files</li>
+<li><tt>expression</tt>: A <a class="externalLink" 
href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html";>regular
 expression</a> to match and filter against file names</li>
+<li><tt>input-format</tt>: A fully qualified name or an alias for a class of 
HDFS input format</li>
+<li><tt>hdfs</tt>: The HDFS name node URL</li>
+</ul>
+</li>
+<li><b><i>socket</i></b>: used for listening to connections that sends data 
streams through one or more sockets
+<ul>
+
+<li><tt>sockets</tt>: comma separated list of sockets to listen to</li>
+<li><tt>address-type</tt>: either IP if the list uses IP addresses, or NC if 
the list uses NC names</li>
+</ul>
+</li>
+<li><b><i>socket_client</i></b>: used for connecting to one or more sockets 
and reading data streams
+<ul>
+
+<li><tt>sockets</tt>: comma separated list of sockets to connect to</li>
+</ul>
+</li>
+<li><b><i>twitter_push</i></b>: used for establishing a connection and 
subscribing to a twitter feed
+<ul>
+
+<li><tt>consumer.key</tt>: access parameter provided by twitter OAuth</li>
+<li><tt>consumer.secret</tt>: access parameter provided by twitter OAuth</li>
+<li><tt>access.token</tt>: access parameter provided by twitter OAuth</li>
+<li><tt>access.token.secret</tt>: access parameter provided by twitter 
OAuth</li>
+</ul>
+</li>
+<li><b><i>twitter_pull</i></b>: used for polling a twitter feed for tweets 
based on a configurable frequency
+<ul>
+
+<li><tt>consumer.key</tt>: access parameter provided by twitter OAuth</li>
+<li><tt>consumer.secret</tt>: access parameter provided by twitter OAuth</li>
+<li><tt>access.token</tt>: access parameter provided by twitter OAuth</li>
+<li><tt>access.token.secret</tt>: access parameter provided by twitter 
OAuth</li>
+<li><tt>query</tt>: twitter query string</li>
+<li><tt>interval</tt>: poll interval in seconds</li>
+</ul>
+</li>
+<li><b><i>rss</i></b>: used for reading RSS feed
+<ul>
+
+<li><tt>url</tt>: a comma separated list of RSS urls</li>
+</ul>
+</li>
+</ol></div>
+<div class="section">
+<h3><a name="Creating_an_External_Dataset_.5BBack_to_TOC.5D"></a><a 
name="IntroductionCreatingAnExternalDataset" 
id="IntroductionCreatingAnExternalDataset">Creating an External Dataset</a> 
<font size="4"><a href="#toc">[Back to TOC]</a></font></h3>
+<p>As an example we consider the Lineitem dataset from the <a 
class="externalLink" 
href="http://www.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSTPCHLinkedData/tpch.sql";>TPCH
 schema</a>. We assume that you have successfully created an AsterixDB instance 
following the instructions at <a href="../install.html">Installing AsterixDB 
Using Managix</a>. <i>For constructing an example, we assume a single machine 
setup..</i></p>
+<p>Similar to a regular dataset, an external dataset has an associated 
datatype. We shall first create the datatype associated with each object in 
Lineitem data. Paste the following in the query textbox on the webpage at <a 
class="externalLink" href="http://127.0.0.1:19001";>http://127.0.0.1:19001</a> 
and hit &#x2018;Execute&#x2019;.</p>
+
+<div>
+<div>
+<pre class="source">    create dataverse ExternalFileDemo;
+    use dataverse ExternalFileDemo;
+
+    create type LineitemType as closed {
+      l_orderkey:int32,
+      l_partkey: int32,
+      l_suppkey: int32,
+      l_linenumber: int32,
+      l_quantity: double,
+      l_extendedprice: double,
+      l_discount: double,
+      l_tax: double,
+      l_returnflag: string,
+      l_linestatus: string,
+      l_shipdate: string,
+      l_commitdate: string,
+      l_receiptdate: string,
+      l_shipinstruct: string,
+      l_shipmode: string,
+      l_comment: string}
+</pre></div></div>
+
+<p>Here, we describe two scenarios.</p>
+<div class="section">
+<h4><a 
name="a1.29_Data_file_resides_on_the_local_file_system_of_a_host"></a>1) Data 
file resides on the local file system of a host</h4>
+<p>Prerequisite: The host is a  part of the ASTERIX cluster.</p>
+<p>Earlier, we assumed a single machine ASTERIX setup. To satisfy the 
prerequisite, log-in to the machine running ASTERIX.</p>
+<ul>
+
+<li>Download the <a href="../data/lineitem.tbl">data file</a> to an 
appropriate location. We denote this location by SOURCE_PATH.</li>
+</ul>
+<p>ASTERIX provides a built-in adapter for data residing on the local file 
system. The adapter is referred by its alias- &#x2018;localfs&#x2019;. We 
create an external dataset named Lineitem and use the &#x2018;localfs&#x2019; 
adapter.</p>
+
+<div>
+<div>
+<pre class="source">    create external dataset Lineitem(LineitemType)
+    using localfs
+</pre></div></div>
+
+<p>Above, the definition is not complete as we need to provide a set of 
parameters that are specific to the source file.</p>
+
+<table border="0" class="table table-striped">
+
+<tr class="a">
+  
+<td> Parameter </td>
+  
+<td> Description </td>
+</tr>
+
+<tr class="b">
+  
+<td> path </td>
+  
+<td> A fully qualified path of the form <tt>host://&lt;absolute path&gt;</tt>.
+  Use a comma separated list if there are multiple files.
+  E.g. <tt>host1://&lt;absolute path&gt;</tt>, <tt>host2://&lt;absolute 
path&gt;</tt> and so forth. </td>
+</tr>
+
+<tr class="a">
+  
+<td> format </td>
+  
+<td> The format for the content. Use 'adm' for data in ADM (ASTERIX Data 
Model) or <a class="externalLink" href="http://www.json.org/";>JSON</a> format. 
Use 'delimited-text' if fields are separated by a delimiting character (eg., 
CSV). </td></tr>
+
+<tr class="b">
+  
+<td>delimiter</td>
+  
+<td>The delimiting character in the source file if format is 'delimited 
text'</td>
+</tr>
+</table>
+
+<p>As we are using a single single machine ASTERIX instance, we use 127.0.0.1 
as host in the path parameter. We <i>complete the create dataset statement</i> 
as follows.</p>
+
+<div>
+<div>
+<pre class="source">    use dataverse ExternalFileDemo;
+
+    create external dataset Lineitem(LineitemType)
+    using localfs
+    ((&quot;path&quot;=&quot;127.0.0.1://SOURCE_PATH&quot;),
+    (&quot;format&quot;=&quot;delimited-text&quot;),
+    (&quot;delimiter&quot;=&quot;|&quot;));
+</pre></div></div>
+
+<p>Please substitute SOURCE_PATH with the absolute path to the source file on 
the local file system.</p></div>
+<div class="section">
+<h4><a name="Common_source_of_error"></a>Common source of error</h4>
+<p>An incorrect value for the path parameter will give the following exception 
message when the dataset is used in a query.</p>
+
+<div>
+<div>
+<pre class="source">    
org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: 
org.apache.hyracks.api.exceptions.HyracksDataException: 
org.apache.hyracks.api.exceptions.HyracksDataException: Job failed.
+</pre></div></div>
+
+<p>Verify the correctness of the path parameter provided to the localfs 
adapter. Note that the path parameter must be an absolute path to the data 
file. For e.g. if you saved your file in your home directory (assume it to be 
/home/joe), then the path value should be</p>
+
+<div>
+<div>
+<pre class="source">    127.0.0.1:///home/joe/lineitem.tbl.
+</pre></div></div>
+
+<p>In your web-browser, navigate to 127.0.0.1:19001 and paste the above to the 
query text box. Finally hit &#x2018;Execute&#x2019;.</p>
+<p>Next we move over to the the section <a 
href="#Writing_Queries_against_an_External_Dataset">Writing Queries against an 
External Dataset</a> and try a sample query against the external 
dataset.</p></div>
+<div class="section">
+<h4><a name="a2.29_Data_file_resides_on_an_HDFS_instance"></a>2) Data file 
resides on an HDFS instance</h4>
+<p>rerequisite: It is required that the Namenode and HDFS Datanodes are 
reachable from the hosts that form the AsterixDB cluster. AsterixDB provides a 
built-in adapter for data residing on HDFS. The HDFS adapter can be referred 
(in AQL) by its alias - &#x2018;hdfs&#x2019;. We can create an external dataset 
named Lineitem and associate the HDFS adapter with it as follows;</p>
+
+<div>
+<div>
+<pre class="source">    create external dataset Lineitem(LineitemType)
+    using 
hdfs((&#x201c;hdfs&#x201d;:&#x201d;hdfs://localhost:54310&#x201d;),(&#x201c;path&#x201d;:&#x201d;/asterix/Lineitem.tbl&#x201d;),...,(&#x201c;input-
 format&#x201d;:&#x201d;rc-format&#x201d;));
+</pre></div></div>
+
+<p>The expected parameters are described below:</p>
+
+<table border="0" class="table table-striped">
+
+<tr class="a">
+  
+<td> Parameter </td>
+  
+<td> Description </td>
+</tr>
+
+<tr class="b">
+  
+<td> hdfs </td>
+  
+<td> The HDFS URL </td>
+</tr>
+
+<tr class="a">
+  
+<td> path </td>
+  
+<td> The absolute path to the source HDFS file or directory. Use a comma 
separated list if there are multiple files or directories. </td></tr>
+
+<tr class="b">
+  
+<td> input-format </td>
+  
+<td> The associated input format. Use 'text-input-format' for text files , 
'sequence-input-format' for hadoop sequence files, 'rc-input-format' for Hadoop 
Object Columnar files, or a fully qualified name of an implementation of 
org.apache.hadoop.mapred.InputFormat. </td>
+</tr>
+
+<tr class="a">
+  
+<td> format </td>
+  
+<td> The format of the input content. Use 'adm' for text data in ADM (ASTERIX 
Data Model) or <a class="externalLink" href="http://www.json.org/";>JSON</a> 
format, 'delimited-text' for text delimited data that has fields separated by a 
delimiting character, 'binary' for other data.</td>
+</tr>
+
+<tr class="b">
+  
+<td> delimiter </td>
+  
+<td> The delimiting character in the source file if format is 'delimited text' 
</td>
+</tr>
+
+<tr class="a">
+  
+<td> parser </td>
+  
+<td> The parser used to parse HDFS objects if the format is 'binary'. Use 
'hive- parser' for data deserialized by a Hive Serde (AsterixDB can understand 
deserialized Hive objects) or a fully qualified class name of user- implemented 
parser that implements the interface 
org.apache.asterix.external.input.InputParser. </td>
+</tr>
+
+<tr class="b">
+  
+<td> hive-serde </td>
+  
+<td> The Hive serde is used to deserialize HDFS objects if format is binary 
and the parser is hive-parser. Use a fully qualified name of a class 
implementation of org.apache.hadoop.hive.serde2.SerDe. </td>
+</tr>
+
+<tr class="a">
+  
+<td> local-socket-path </td>
+  
+<td> The UNIX domain socket path if local short-circuit reads are enabled in 
the HDFS instance</td>
+</tr>
+</table>
+
+<p><i>Difference between &#x2018;input-format&#x2019; and 
&#x2018;format&#x2019;</i></p>
+<p><i>input-format</i>: Files stored under HDFS have an associated storage 
format. For example, TextInputFormat represents plain text files. 
SequenceFileInputFormat indicates binary compressed files. RCFileInputFormat 
corresponds to objects stored in a object columnar fashion. The parameter 
&#x2018;input-format&#x2019; is used to distinguish between these and other 
HDFS input formats.</p>
+<p><i>format</i>: The parameter &#x2018;format&#x2019; refers to the type of 
the data contained in the file. For example, data contained in a file could be 
in json or ADM format, could be in delimited-text with fields separated by a 
delimiting character or could be in binary format.</p>
+<p>As an example. consider the <a href="../data/lineitem.tbl">data file</a>.  
The file is a text file with each line representing a object. The fields in 
each object are separated by the &#x2018;|&#x2019; character.</p>
+<p>We assume the HDFS URL to be <a class="externalLink" 
href="hdfs://localhost:54310">hdfs://localhost:54310</a>. We further assume 
that the example data file is copied to HDFS at a path denoted by 
&#x201c;/asterix/Lineitem.tbl&#x201d;.</p>
+<p>The complete set of parameters for our example file are as follows. 
((&#x201c;hdfs&#x201d;=&#x201c;<a class="externalLink" 
href="hdfs://localhost:54310”,(“path”=“/asterix/Lineitem.tbl”),(“input-format”=“text-">hdfs://localhost:54310&#x201d;,(&#x201c;path&#x201d;=&#x201c;/asterix/Lineitem.tbl&#x201d;),(&#x201c;input-format&#x201d;=&#x201c;text-</a>
 
input-format&#x201d;),(&#x201c;format&#x201d;=&#x201c;delimited-text&#x201d;),(&#x201c;delimiter&#x201d;=&#x201c;|&#x201d;))</p></div>
+<div class="section">
+<h4><a name="Using_the_Hive_Parser"></a>Using the Hive Parser</h4>
+<p>if a user wants to create an external dataset that uses hive-parser to 
parse HDFS objects, it is important that the datatype associated with the 
dataset matches the actual data in the Hive table for the correct 
initialization of the Hive SerDe. Here is the conversion from the supported 
Hive data types to AsterixDB data types:</p>
+
+<table border="0" class="table table-striped">
+
+<tr class="a">
+  
+<td> Hive </td>
+  
+<td> AsterixDB </td>
+</tr>
+
+<tr class="b">
+  
+<td>BOOLEAN</td>
+  
+<td>Boolean</td>
+</tr>
+
+<tr class="a">
+  
+<td>BYTE(TINY INT)</td>
+  
+<td>Int8</td>
+</tr>
+
+<tr class="b">
+  
+<td>DOUBLE</td>
+  
+<td>Double</td>
+</tr>
+
+<tr class="a">
+  
+<td>FLOAT</td>
+  
+<td>Float</td>
+</tr>
+
+<tr class="b">
+  
+<td>INT</td>
+  
+<td>Int32</td>
+</tr>
+
+<tr class="a">
+  
+<td>LONG(BIG INT)</td>
+  
+<td>Int64</td>
+</tr>
+
+<tr class="b">
+  
+<td>SHORT(SMALL INT)</td>
+  
+<td>Int16</td>
+</tr>
+
+<tr class="a">
+  
+<td>STRING</td>
+  
+<td>String</td>
+</tr>
+
+<tr class="b">
+  
+<td>TIMESTAMP</td>
+  
+<td>Datetime</td>
+</tr>
+
+<tr class="a">
+  
+<td>DATE</td>
+  
+<td>Date</td>
+</tr>
+
+<tr class="b">
+  
+<td>STRUCT</td>
+  
+<td>Nested Object</td>
+</tr>
+
+<tr class="a">
+  
+<td>LIST</td>
+  
+<td>OrderedList or UnorderedList</td>
+</tr>
+</table>
+</div>
+<div class="section">
+<h4><a 
name="Examples_of_dataset_definitions_for_external_datasets"></a>Examples of 
dataset definitions for external datasets</h4>
+<p><i>Example 1</i>: We can modify the create external dataset statement as 
follows:</p>
+
+<div>
+<div>
+<pre class="source">    create external dataset Lineitem('LineitemType)
+    using 
hdfs((&quot;hdfs&quot;=&quot;hdfs://localhost:54310&quot;),(&quot;path&quot;=&quot;/asterix/Lineitem.tbl&quot;),(&quot;input-format&quot;=&quot;text-
 
input-format&quot;),(&quot;format&quot;=&quot;delimited-text&quot;),(&quot;delimiter&quot;=&quot;|&quot;));
+</pre></div></div>
+
+<p><i>Example 2</i>: Here, we create an external dataset of lineitem objects 
stored in sequence files that has content in ADM format:</p>
+
+<div>
+<div>
+<pre class="source">    create external dataset Lineitem('LineitemType)
+    using 
hdfs((&quot;hdfs&quot;=&quot;hdfs://localhost:54310&quot;),(&quot;path&quot;=&quot;/asterix/SequenceLineitem.tbl&quot;),(&quot;input-
 
format&quot;=&quot;sequence-input-format&quot;),(&quot;format&quot;=&quot;adm&quot;));
+</pre></div></div>
+
+<p><i>Example 3</i>: Here, we create an external dataset of lineitem objects 
stored in object-columnar files that has content in binary format parsed using 
hive-parser with hive ColumnarSerde:</p>
+
+<div>
+<div>
+<pre class="source">    create external dataset Lineitem('LineitemType)
+    using 
hdfs((&quot;hdfs&quot;=&quot;hdfs://localhost:54310&quot;),(&quot;path&quot;=&quot;/asterix/RCLineitem.tbl&quot;),(&quot;input-format&quot;=&quot;rc-input-format&quot;),(&quot;format&quot;=&quot;binary&quot;),(&quot;parser&quot;=&quot;hive-parser&quot;),(&quot;hive-
 serde&quot;=&quot;org.apache.hadoop.hive.serde2.columnar.ColumnarSerde&quot;));
+</pre></div></div>
+</div></div></div>
+<div class="section">
+<h2><a 
name="Writing_Queries_against_an_External_Dataset_.5BBack_to_TOC.5D"></a><a 
name="WritingQueriesAgainstAnExternalDataset" 
id="WritingQueriesAgainstAnExternalDataset">Writing Queries against an External 
Dataset</a> <font size="4"><a href="#toc">[Back to TOC]</a></font></h2>
+<p>You may write AQL queries against an external dataset in exactly the same 
way that queries are written against internal datasets. The following is an 
example of an AQL query that applies a filter and returns an ordered result.</p>
+
+<div>
+<div>
+<pre class="source">    use dataverse ExternalFileDemo;
+
+    for $c in dataset('Lineitem')
+    where $c.l_orderkey &lt;= 3
+    order by $c.l_orderkey, $c.l_linenumber
+    return $c
+</pre></div></div>
+</div>
+<div class="section">
+<h2><a name="Building_Indexes_over_External_Datasets_.5BBack_to_TOC.5D"></a><a 
name="BuildingIndexesOverExternalDatasets" 
id="BuildingIndexesOverExternalDatasets">Building Indexes over External 
Datasets</a> <font size="4"><a href="#toc">[Back to TOC]</a></font></h2>
+<p>AsterixDB supports building B-Tree and R-Tree indexes over static data 
stored in the Hadoop Distributed File System. To create an index, first create 
an external dataset over the data as follows</p>
+
+<div>
+<div>
+<pre class="source">    create external dataset Lineitem(LineitemType)
+    using 
hdfs((&quot;hdfs&quot;=&quot;hdfs://localhost:54310&quot;),(&quot;path&quot;=&quot;/asterix/Lineitem.tbl&quot;),(&quot;input-format&quot;=&quot;text-input-
 
format&quot;),(&quot;format&quot;=&quot;delimited-text&quot;),(&quot;delimiter&quot;=&quot;|&quot;));
+</pre></div></div>
+
+<p>You can then create a B-Tree index on this dataset instance as if the 
dataset was internally stored as follows:</p>
+
+<div>
+<div>
+<pre class="source">    create index PartkeyIdx on Lineitem(l_partkey);
+</pre></div></div>
+
+<p>You could also create an R-Tree index as follows:</p>
+
+<div>
+<div>
+<pre class="source">    &#xfffc;create index IndexName on 
DatasetName(attribute-name) type rtree;
+</pre></div></div>
+
+<p>After building the indexes, the AsterixDB query compiler can use them to 
access the dataset and answer queries in a more cost effective manner. 
AsterixDB can read all HDFS input formats, but indexes over external datasets 
can currently be built only for HDFS datasets with 
&#x2018;text-input-format&#x2019;, &#x2018;sequence-input-format&#x2019; or 
&#x2018;rc-input-format&#x2019;.</p></div>
+<div class="section">
+<h2><a name="External_Data_Snapshots_.5BBack_to_TOC.5D"></a><a 
name="ExternalDataSnapshots" id="ExternalDataSnapshots">External Data 
Snapshots</a> <font size="4"><a href="#toc">[Back to TOC]</a></font></h2>
+<p>An external data snapshot represents the status of a dataset&#x2019;s files 
in HDFS at a point in time. Upon creating the first index over an external 
dataset, AsterixDB captures and stores a snapshot of the dataset in HDFS. Only 
objects present at the snapshot capture time are indexed, and any additional 
indexes created afterwards will only contain data that was present at the 
snapshot capture time thus preserving consistency across all indexes of a 
dataset. To update all indexes of an external dataset and advance the snapshot 
time to be the present time, a user can use the refresh external dataset 
command as follows:</p>
+
+<div>
+<div>
+<pre class="source">    refresh external dataset DatasetName;
+</pre></div></div>
+
+<p>After a refresh operation commits, all of the dataset&#x2019;s indexes will 
reflect the status of the data as of the new snapshot capture time.</p></div>
+<div class="section">
+<h2><a name="Frequently_Asked_Questions_.5BBack_to_TOC.5D"></a><a name="FAQ" 
id="FAQ">Frequently Asked Questions</a> <font size="4"><a href="#toc">[Back to 
TOC]</a></font></h2>
+<p>Q. I added data to my dataset in HDFS, Will the dataset indexes in 
AsterixDB be updated automatically?</p>
+<p>A. No, you must use the refresh external dataset statement to make the 
indexes aware of any changes in the dataset files in HDFS.</p>
+<p>Q. Why doesn&#x2019;t AsterixDB update external indexes automatically?</p>
+<p>A. Since external data is managed by other users/systems with mechanisms 
that are system dependent, AsterixDB has no way of knowing exactly when data is 
added or deleted in HDFS, so the responsibility of refreshing indexes are left 
to the user. A user can use internal datasets for which AsterixDB manages the 
data and its indexes.</p>
+<p>Q. I created an index over an external dataset and then added some data to 
my HDFS dataset. Will a query that uses the index return different results from 
a query that doesn&#x2019;t use the index?</p>
+<p>A. No, queries&#x2019; results are access path independent and the stored 
snapshot is used to determines which data are going to be included when 
processing queries.</p>
+<p>Q. I created an index over an external dataset and then deleted some of my 
dataset&#x2019;s files in HDFS, Will indexed data access still return the 
objects in deleted files?</p>
+<p>A. No. When AsterixDB accesses external data, with or without the use of 
indexes, it only access files present in the file system at runtime.</p>
+<p>Q. I submitted a refresh command on a an external dataset and a failure 
occurred, What has happened to my indexes?</p>
+<p>A. External Indexes Refreshes are treated as a single transaction. In case 
of a failure, a rollback occurs and indexes are restored to their previous 
state. An error message with the cause of failure is returned to the user.</p>
+<p>Q. I was trying to refresh an external dataset while some queries were 
accessing the data using index access method. Will the queries be affected by 
the refresh operation?</p>
+<p>A. Queries have access to external dataset indexes state at the time where 
the queries are submitted. A query that was submitted before a refresh commits 
will only access data under the snapshot taken before the refresh; queries that 
are submitted after the refresh commits will access data under the snapshot 
taken after the refresh.</p>
+<p>Q. What happens when I try to create an additional index while a refresh 
operation is in progress or vice versa?</p>
+<p>A. The create index operation will wait until the refresh commits or aborts 
and then the index will be built according to the external data snapshot at the 
end of the refresh operation. Creating indexes and refreshing datasets are 
mutually exclusive operations and will not be run in parallel. Multiple indexes 
can be created in parallel, but not multiple refresh operations.</p></div>
+        </div>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+<div class="row-fluid">Apache AsterixDB, AsterixDB, Apache, the Apache
+        feather logo, and the Apache AsterixDB project logo are either
+        registered trademarks or trademarks of The Apache Software
+        Foundation in the United States and other countries.
+        All other marks mentioned may be trademarks or registered
+        trademarks of their respective owners.
+      </div>
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>

Reply via email to