<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 2018-02-09
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<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="20180209" />
    <meta http-equiv="Content-Language" content="en" />
    <title>AsterixDB &#x2013; <a id="toc">Table of Contents</a></title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.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.3.0.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-02-09</li>
                      
                
                    
                 <li id="projectVersion" class="pull-right">Version: 0.9.3</li>
      
                                            <li class="divider pull-right">|</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="span3">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Get Started - Installation</li>
                                
      <li class="active">
    
            <a href="#"><i class="none"></i>Option 1: using NCService</a>
          </li>
                  
      <li>
    
                          <a href="ansible.html" title="Option 2: using Ansible">
          <i class="none"></i>
        Option 2: using Ansible</a>
            </li>
                  
      <li>
    
                          <a href="aws.html" title="Option 3: using Amazon Web Services">
          <i class="none"></i>
        Option 3: using Amazon Web Services</a>
            </li>
                  
      <li>
    
                          <a href="yarn.html" title="Option 4: using YARN">
          <i class="none"></i>
        Option 4: using YARN</a>
            </li>
                  
      <li>
    
                          <a href="install.html" title="Option 5: using Managix (deprecated)">
          <i class="none"></i>
        Option 5: using Managix (deprecated)</a>
            </li>
                              <li class="nav-header">AsterixDB Primer</li>
                                
      <li>
    
                          <a href="sqlpp/primer-sqlpp.html" title="Option 1: using SQL++">
          <i class="none"></i>
        Option 1: using SQL++</a>
            </li>
                  
      <li>
    
                          <a href="aql/primer.html" title="Option 2: using AQL">
          <i class="none"></i>
        Option 2: using AQL</a>
            </li>
                              <li class="nav-header">Data Model</li>
                                
      <li>
    
                          <a href="datamodel.html" title="The Asterix Data Model">
          <i class="none"></i>
        The Asterix Data Model</a>
            </li>
                              <li class="nav-header">Queries - SQL++</li>
                                
      <li>
    
                          <a href="sqlpp/manual.html" title="The SQL++ Query Language">
          <i class="none"></i>
        The SQL++ Query Language</a>
            </li>
                  
      <li>
    
                          <a href="sqlpp/builtins.html" title="Builtin Functions">
          <i class="none"></i>
        Builtin Functions</a>
            </li>
                              <li class="nav-header">Queries - AQL</li>
                                
      <li>
    
                          <a href="aql/manual.html" title="The Asterix Query Language (AQL)">
          <i class="none"></i>
        The Asterix Query Language (AQL)</a>
            </li>
                  
      <li>
    
                          <a href="aql/builtins.html" title="Builtin Functions">
          <i class="none"></i>
        Builtin Functions</a>
            </li>
                              <li class="nav-header">API/SDK</li>
                                
      <li>
    
                          <a href="api.html" title="HTTP API">
          <i class="none"></i>
        HTTP API</a>
            </li>
                  
      <li>
    
                          <a href="csv.html" title="CSV Output">
          <i class="none"></i>
        CSV Output</a>
            </li>
                              <li class="nav-header">Advanced Features</li>
                                
      <li>
    
                          <a href="aql/fulltext.html" title="Support of Full-text Queries">
          <i class="none"></i>
        Support of Full-text Queries</a>
            </li>
                  
      <li>
    
                          <a href="aql/externaldata.html" title="Accessing External Data">
          <i class="none"></i>
        Accessing External Data</a>
            </li>
                  
      <li>
    
                          <a href="feeds/tutorial.html" title="Support for Data Ingestion">
          <i class="none"></i>
        Support for Data Ingestion</a>
            </li>
                  
      <li>
    
                          <a href="udf.html" title="User Defined Functions">
          <i class="none"></i>
        User Defined Functions</a>
            </li>
                  
      <li>
    
                          <a href="aql/filters.html" title="Filter-Based LSM Index Acceleration">
          <i class="none"></i>
        Filter-Based LSM Index Acceleration</a>
            </li>
                  
      <li>
    
                          <a href="aql/similarity.html" title="Support of Similarity Queries">
          <i class="none"></i>
        Support of Similarity Queries</a>
            </li>
            </ul>
                
                    
                
          <hr class="divider" />

           <div id="poweredBy">
                            <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="span9" >
                                  
            <!-- ! 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.
 ! --><div class="section">
<h2><a name="Table_of_Contents"></a><a name="toc" id="toc">Table of Contents</a></h2>

<ul>
  
<li><a href="#quickstart">Quick Start</a></li>
  
<li><a href="#Small_cluster">Starting a small single-machine cluster using the NCService</a></li>
  
<li><a href="#Multi_machine">Deploying AsterixDB via NCService in a multi-machine setup</a></li>
  
<li><a href="#Parameters">Available Configuration Parameters</a></li>
</ul>
<h1><a name="quickstart" id="quickstart">Quick Start</a></h1>
<p>The fastest way to get set up with a single-machine sample instance of AsterixDB is to use the included sample helper scripts. To do so, in the extracted <tt>asterix-server</tt> directory, navigate to <tt>opt/local/bin/</tt></p>

<div class="source">
<div class="source">
<pre>user@localhost:~/
$cd asterix-server/
user@localhost:~/asterix-server
$cd opt/local/bin
</pre></div></div>
<p>This folder should contain 4 scripts, two pairs of <tt>.sh</tt> and <tt>.bat</tt> files respectively. <tt>start-sample-cluster.sh</tt> will simply start a basic sample cluster using the configuration files located in <tt>opt/local/conf/</tt>.</p>

<div class="source">
<div class="source">
<pre>user@localhost:~/a/o/l/bin
$./start-sample-cluster.sh
CLUSTERDIR=/home/user/asterix-server/opt/local
INSTALLDIR=/home/user/asterix-server
LOGSDIR=/home/user/asterix-server/samples/opt/logs

INFO: Starting sample cluster...
INFO: Waiting up to 30 seconds for cluster 127.0.0.1:19002 to be available.
INFO: Cluster started and is ACTIVE.
user@localhost:~/a/o/l/bin
$
</pre></div></div>
<p>Now, there should be a running AsterixDB cluster on the machine. To go to the Web Interface, visit <a class="externalLink" href="http://localhost:19001">http://localhost:19001</a></p>

<div class="source">

<div class="source">
<pre>
<img src="images/asterixdb_interface.png" alt="The AsterixDB Web Interface" />
<i>Fig. 1</i>: The AsterixDB Web Interface
</pre></div>
</div>
<h1><a name="Small_cluster" id="Small_cluster">Starting a small single-machine cluster using NCService</a></h1>
<p>The above cluster was started using a script, but below is a description in detail of how precisely this was achieved. The config files here are analagous to the ones within <tt>samples/local/conf</tt>.</p>
<p>When running a cluster using the <tt>NCService</tt> there are 3 different kinds of processes involved:</p>

<ul>
  
<li><tt>NCDriver</tt>, also known as the Node Controller or NC for short. This is the  process that does the actual work of queries and data management within the  AsterixDB cluster</li>
  
<li><tt>NCService</tt> configures and starts the <tt>NCDriver</tt> process. It is a simple  daemon whose only purpose is to wait for the <tt>CCDriver</tt> process to call  upon it to initiate cluster bootup.</li>
  
<li><tt>CCDriver</tt>, which is the Cluster Controller process, also known as the CC.  This process manages the distribution of tasks to all NCs, as well as providing  the parameters of each NC to the NCService upon cluster startup. It also hosts  the Web interface and query compiler and optimizer.</li>
</ul>
<p>The cluster startup follows a particular sequence, which is as follows:</p>

<ol style="list-style-type: decimal">
  
<li>Each host on which an NC is desired and is mentioned in the configuration,  the <tt>NCService</tt> daemon is started first. It will listen and wait for the CC  to contact it.</li>
  
<li>The one host on which the CC is to be placed is started with an appropriate  configuration file.</li>
  
<li>The CC contacts all <tt>NCService</tt> daemons and the <tt>NCService</tt> subsequently starts  and <tt>NCDriver</tt> process with the configration supplied by the <tt>CC</tt></li>
  
<li>Each <tt>NCDriver</tt> then contacts the CC to register itself as started</li>
</ol>
<p>This process is briefly illustrated in the diagram below:</p>

<div class="source">

<div class="source">
<pre>
<img src="images/ncservice.png" alt="The AsterixDB Web Interface" />
<i>Fig. 2</i>: NCService startup sequence
</pre></div>
</div>
<p>To start a small cluster consisting of 2 NodeControllers (<tt>red</tt> and <tt>blue</tt>) and 1 ClusterController (<tt>cc</tt>) on a single machine only 2 configuration files are required. The first one is</p>
<p><tt>blue.conf</tt>:</p>

<div class="source">
<div class="source">
<pre>[ncservice]
port=9091
</pre></div></div>
<p>It is a configuration file for the second <tt>NCService</tt>. This contains only the port that the <tt>NCService</tt> of the second NodeControllers listens to as it is non-standard. The first <tt>NCService</tt> does not need a configuration file, as it only uses default parameters. In a distributed environment with 1 NodeController per machine, no <tt>NCService</tt> needs a configuration file.</p>
<p>The second configuration file is</p>
<p><tt>cc.conf</tt>:</p>

<div class="source">
<div class="source">
<pre>[nc/red]
txn.log.dir=/tmp/asterix/red/txnlog
core.dump.dir=/tmp/asterix/red/coredump
iodevices=/tmp/asterix/red

[nc/blue]
port=9091
txn.log.dir=/tmp/asterix/blue/txnlog
core.dump.dir=/tmp/asterix/blue/coredump
iodevices=/tmp/asterix/blue

[nc]
app.class=org.apache.asterix.hyracks.bootstrap.NCApplicationEntryPoint
storage.subdir=storage
address=127.0.0.1
command=asterixnc

[cc]
address = 127.0.0.1
console.listen.port = 12345
</pre></div></div>
<p>This is the configuration file for the cluster and it contains information that each <tt>NCService</tt> will use when starting the corresponding <tt>NCDriver</tt> as well as information for the <tt>CCDriver</tt>.</p>
<p>To start the cluster simply use the following steps</p>

<ol style="list-style-type: decimal">
  
<li>
<p>Change directory into the asterix-server binary folder</p>
  
<div class="source">
<div class="source">
<pre>user@localhost:~/
$cd asterix-server/
user@localhost:~/asterix-server
$cd samples/local/bin
</pre></div></div></li>
  
<li>
<p>Start the 2 <tt>NCServices</tt> for <tt>red</tt> and <tt>blue</tt>.</p>
  
<div class="source">
<div class="source">
<pre>user@localhost:~/asterix-server
$bin/asterixncservice -config-file blue.conf &gt; blue-service.log 2&gt;&amp;1 &amp;
user@localhost:~/asterix-server
$bin/asterixncservice &gt;red-service.log 2&gt;&amp;1 &amp;
</pre></div></div></li>
  
<li>
<p>Start the <tt>CCDriver</tt>.</p>
  
<div class="source">
<div class="source">
<pre>user@localhost:~/asterix-server
$bin/asterixcc -config-file cc.conf &gt; cc.log 2&gt;&amp;1 &amp;
</pre></div></div></li>
</ol>
<p>The <tt>CCDriver</tt> will connect to the <tt>NCServices</tt> and thus initiate the configuration and the start of the <tt>NCDrivers</tt>. After running these scripts, <tt>jps</tt> should show a result similar to this:</p>

<div class="source">
<div class="source">
<pre>user@localhost:~/asterix-server
$jps
13184 NCService
13200 NCDriver
13185 NCService
13186 CCDriver
13533 Jps
13198 NCDriver
</pre></div></div>
<p>The logs for the <tt>NCDrivers</tt> will be in <tt>$BASEDIR/logs</tt>.</p>
<p>To stop the cluster again simply run</p>

<div class="source">
<div class="source">
<pre>$ kill `jps | egrep '(CDriver|NCService)' | awk '{print $1}'`
</pre></div></div>
<p>to kill all processes.</p>
<h1><a name="Multi_machine" id="Multi_machine">Deploying AsterixDB via NCService in a multi-machine setup</a></h1>
<p>Deploying on multiple machines only differs in the configuration file and where each process is actually resident. Take for example a deployment on 3 machines, <tt>cacofonix-1</tt>,<tt>cacofonix-2</tt>,and <tt>cacofonix-3</tt>. <tt>cacofonix-1</tt> will be the CC, and <tt>cacofonix-2</tt> and <tt>cacofonix-3</tt> will be the two NCs, respectively. The configuration would be as follows:</p>
<p><tt>cc.conf</tt>:</p>

<div class="source">
<div class="source">
<pre>[nc/red]
txn.log.dir=/lv_scratch/asterix/red/txnlog
core.dump.dir=/lv_scratch/asterix/red/coredump
iodevices=/lv_scratch/asterix/red
address=cacofonix-2

[nc/blue]
txn.log.dir=/lv_scratch/asterix/blue/txnlog
core.dump.dir=/lv_scratch/asterix/blue/coredump
iodevices=/lv_scratch/asterix/blue
address=cacofonix-3

[nc]
app.class=org.apache.asterix.hyracks.bootstrap.NCApplicationEntryPoint
storagedir=storage
command=asterixnc

[cc]
address = cacofonix-1
</pre></div></div>
<p>To deploy, first the <tt>asterix-server</tt> binary must be present on each machine. Any method to transfer the archive to each machine will work, but here <tt>scp</tt> will be used for simplicity&#x2019;s sake.</p>

<div class="source">
<div class="source">
<pre>user@localhost:~
$for f in {1,2,3}; scp asterix-server.zip cacofonix-$f:~/; end
</pre></div></div>
<p>Then unzip the binary on each machine. First, start the <tt>NCService</tt> processes on each of the slave machines. Any way of getting a shell on the machine is fine, be it physical or via <tt>ssh</tt>.</p>

<div class="source">
<div class="source">
<pre>user@cacofonix-2 12:41:42 ~/asterix-server/
$ bin/asterixncservice &gt; red-service.log 2&gt;&amp;1 &amp;


user@cacofonix-3 12:41:42 ~/asterix-server/
$ bin/asterixncservice &gt; blue-service.log 2&gt;&amp;1 &amp;
</pre></div></div>
<p>Now that each <tt>NCService</tt> is waiting, the CC can be started.</p>

<div class="source">
<div class="source">
<pre>user@cacofonix-1 12:41:42 ~/asterix-server/
$ bin/asterixcc -config-file cc.conf &gt; cc.log 2&gt;&amp;1 &amp;
</pre></div></div>
<p>The cluster should now be started and the Web UI available on the CC host at the default port.</p>
<h1><a name="Parameters" id="Parameters">Available Configuration Parameters</a></h1>
<p>The following parameters are for the master process, under the &#x201c;[cc]&#x201d; section.</p>

<table border="0" class="table table-striped">
  <thead>
    
<tr class="a">
      
<th>Section </th>
      
<th>Parameter </th>
      
<th>Meaning </th>
      
<th>Default </th>
    </tr>
  </thead>
  <tbody>
    
<tr class="b">
      
<td>cc </td>
      
<td>active.port </td>
      
<td>The listen port of the active server </td>
      
<td>19003 </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>address </td>
      
<td>Default bind address for all services on this cluster controller </td>
      
<td>127.0.0.1 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>api.port </td>
      
<td>The listen port of the API server </td>
      
<td>19002 </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>app.class </td>
      
<td>Application CC main class </td>
      
<td>org.apache.asterix.hyracks.bootstrap.CCApplication </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>client.listen.address </td>
      
<td>Sets the IP Address to listen for connections from clients </td>
      
<td>same as address </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>client.listen.port </td>
      
<td>Sets the port to listen for connections from clients </td>
      
<td>1098 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>cluster.listen.address </td>
      
<td>Sets the IP Address to listen for connections from NCs </td>
      
<td>same as address </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>cluster.listen.port </td>
      
<td>Sets the port to listen for connections from node controllers </td>
      
<td>1099 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>cluster.public.address </td>
      
<td>Address that NCs should use to contact this CC </td>
      
<td>same as cluster.listen.address </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>cluster.public.port </td>
      
<td>Port that NCs should use to contact this CC </td>
      
<td>same as cluster.listen.port </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>cluster.topology </td>
      
<td>Sets the XML file that defines the cluster topology </td>
      
<td>&lt;undefined&gt; </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>console.listen.address </td>
      
<td>Sets the listen address for the Cluster Controller </td>
      
<td>same as address </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>console.listen.port </td>
      
<td>Sets the http port for the Cluster Controller) </td>
      
<td>16001 </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>heartbeat.max.misses </td>
      
<td>Sets the maximum number of missed heartbeats before a node is marked as dead </td>
      
<td>5 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>heartbeat.period </td>
      
<td>Sets the time duration between two heartbeats from each node controller in milliseconds </td>
      
<td>10000 </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>job.history.size </td>
      
<td>Limits the number of historical jobs remembered by the system to the specified value </td>
      
<td>10 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>job.manager.class </td>
      
<td>Specify the implementation class name for the job manager </td>
      
<td>org.apache.hyracks.control.cc.job.JobManager </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>job.queue.capacity </td>
      
<td>The maximum number of jobs to queue before rejecting new jobs </td>
      
<td>4096 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>job.queue.class </td>
      
<td>Specify the implementation class name for the job queue </td>
      
<td>org.apache.hyracks.control.cc.scheduler.FIFOJobQueue </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>profile.dump.period </td>
      
<td>Sets the time duration between two profile dumps from each node controller in milliseconds; 0 to disable </td>
      
<td>0 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>result.sweep.threshold </td>
      
<td>The duration within which an instance of the result cleanup should be invoked in milliseconds </td>
      
<td>60000 </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>result.ttl </td>
      
<td>Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds </td>
      
<td>86400000 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>root.dir </td>
      
<td>Sets the root folder used for file operations </td>
      
<td>${java.io.tmpdir}/asterixdb/ClusterControllerService </td>
    </tr>
    
<tr class="a">
      
<td>cc </td>
      
<td>web.port </td>
      
<td>The listen port of the legacy query interface </td>
      
<td>19001 </td>
    </tr>
    
<tr class="b">
      
<td>cc </td>
      
<td>web.queryinterface.port </td>
      
<td>The listen port of the query web interface </td>
      
<td>19006 </td>
    </tr>
  </tbody>
</table>
<p>The following parameters for slave processes, under &#x201c;[nc]&#x201d; sections.</p>

<table border="0" class="table table-striped">
  <thead>
    
<tr class="a">
      
<th>Section </th>
      
<th>Parameter </th>
      
<th>Meaning </th>
      
<th>Default </th>
    </tr>
  </thead>
  <tbody>
    
<tr class="b">
      
<td>nc </td>
      
<td>address </td>
      
<td>Default IP Address to bind listeners on this NC. All services will bind on this address unless a service-specific listen address is supplied. </td>
      
<td>127.0.0.1 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>app.class </td>
      
<td>Application NC Main Class </td>
      
<td>org.apache.asterix.hyracks.bootstrap.NCApplication </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>cluster.address </td>
      
<td>Cluster Controller address (required unless specified in config file) </td>
      
<td>&lt;undefined&gt; </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>cluster.connect.retries </td>
      
<td>Number of attempts to contact CC before giving up </td>
      
<td>5 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>cluster.listen.address </td>
      
<td>IP Address to bind cluster listener on this NC </td>
      
<td>same as address </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>cluster.listen.port </td>
      
<td>IP port to bind cluster listener </td>
      
<td>0 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>cluster.port </td>
      
<td>Cluster Controller port </td>
      
<td>1099 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>cluster.public.address </td>
      
<td>Public IP Address to announce cluster listener </td>
      
<td>same as public.address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>cluster.public.port </td>
      
<td>Public IP port to announce cluster listener </td>
      
<td>same as cluster.listen.port </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>command </td>
      
<td>Command NCService should invoke to start the NCDriver </td>
      
<td>hyracksnc </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>core.dump.dir </td>
      
<td>The directory where node core dumps should be written </td>
      
<td>${java.io.tmpdir}/asterixdb/coredump </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>data.listen.address </td>
      
<td>IP Address to bind data listener </td>
      
<td>same as address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>data.listen.port </td>
      
<td>IP port to bind data listener </td>
      
<td>0 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>data.public.address </td>
      
<td>Public IP Address to announce data listener </td>
      
<td>same as public.address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>data.public.port </td>
      
<td>Public IP port to announce data listener </td>
      
<td>same as data.listen.port </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>iodevices </td>
      
<td>Comma separated list of IO Device mount points </td>
      
<td>${java.io.tmpdir}/asterixdb/iodevice </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>jvm.args </td>
      
<td>JVM args to pass to the NCDriver </td>
      
<td>&lt;undefined&gt; </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>messaging.listen.address </td>
      
<td>IP Address to bind messaging listener </td>
      
<td>same as address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>messaging.listen.port </td>
      
<td>IP port to bind messaging listener </td>
      
<td>0 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>messaging.public.address </td>
      
<td>Public IP Address to announce messaging listener </td>
      
<td>same as public.address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>messaging.public.port </td>
      
<td>Public IP port to announce messaging listener </td>
      
<td>same as messaging.listen.port </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>ncservice.address </td>
      
<td>Address the CC should use to contact the NCService associated with this NC </td>
      
<td>same as public.address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>ncservice.pid </td>
      
<td>PID of the NCService which launched this NCDriver </td>
      
<td>-1 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>ncservice.port </td>
      
<td>Port the CC should use to contact the NCService associated with this NC </td>
      
<td>9090 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>net.buffer.count </td>
      
<td>Number of network buffers per input/output channel </td>
      
<td>1 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>net.thread.count </td>
      
<td>Number of threads to use for Network I/O </td>
      
<td>1 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>public.address </td>
      
<td>Default public address that other processes should use to contact this NC. All services will advertise this address unless a service-specific public address is supplied. </td>
      
<td>same as address </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>result.listen.address </td>
      
<td>IP Address to bind dataset result distribution listener </td>
      
<td>same as address </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>result.listen.port </td>
      
<td>IP port to bind dataset result distribution listener </td>
      
<td>0 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>result.manager.memory </td>
      
<td>Memory usable for result caching at this Node Controller in bytes </td>
      
<td>-1 (-1 B) </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>result.public.address </td>
      
<td>Public IP Address to announce dataset result distribution listener </td>
      
<td>same as public.address </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>result.public.port </td>
      
<td>Public IP port to announce dataset result distribution listener </td>
      
<td>same as result.listen.port </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>result.sweep.threshold </td>
      
<td>The duration within which an instance of the result cleanup should be invoked in milliseconds </td>
      
<td>60000 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>result.ttl </td>
      
<td>Limits the amount of time results for asynchronous jobs should be retained by the system in milliseconds </td>
      
<td>86400000 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>storage.buffercache.maxopenfiles </td>
      
<td>The maximum number of open files in the buffer cache </td>
      
<td>2147483647 </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>storage.buffercache.pagesize </td>
      
<td>The page size in bytes for pages in the buffer cache </td>
      
<td>131072 (128 kB) </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>storage.buffercache.size </td>
      
<td>The size of memory allocated to the disk buffer cache. The value should be a multiple of the buffer cache page size. </td>
      
<td>715915264 (682.75 MB) </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>storage.lsm.bloomfilter.falsepositiverate </td>
      
<td>The maximum acceptable false positive rate for bloom filters associated with LSM indexes </td>
      
<td>0.01 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>storage.memorycomponent.globalbudget </td>
      
<td>The size of memory allocated to the memory components. The value should be a multiple of the memory component page size </td>
      
<td>715915264 (682.75 MB) </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>storage.memorycomponent.numcomponents </td>
      
<td>The number of memory components to be used per lsm index </td>
      
<td>2 </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>storage.memorycomponent.numpages </td>
      
<td>The number of pages to allocate for a memory component. This budget is shared by all the memory components of the primary index and all its secondary indexes across all I/O devices on a node. Note: in-memory components usually has fill factor of 75% since the pages are 75% full and the remaining 25% is un-utilized </td>
      
<td>1/16th of the storage.memorycomponent.globalbudget value </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>storage.memorycomponent.pagesize </td>
      
<td>The page size in bytes for pages allocated to memory components </td>
      
<td>131072 (128 kB) </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>storage.metadata.memorycomponent.numpages </td>
      
<td>The number of pages to allocate for a metadata memory component </td>
      
<td>1/64th of the storage.memorycomponent.globalbudget value or 256, whichever is larger </td>
    </tr>
    
<tr class="a">
      
<td>nc </td>
      
<td>storage.subdir </td>
      
<td>The subdirectory name under each iodevice used for storage </td>
      
<td>storage </td>
    </tr>
    
<tr class="b">
      
<td>nc </td>
      
<td>txn.log.dir </td>
      
<td>The directory where transaction logs should be stored </td>
      
<td>${java.io.tmpdir}/asterixdb/txn-log </td>
    </tr>
  </tbody>
</table>
<p>The following parameters are configured under the &#x201c;[common]&#x201d; section.</p>

<table border="0" class="table table-striped">
  <thead>
    
<tr class="a">
      
<th>Section </th>
      
<th>Parameter </th>
      
<th>Meaning </th>
      
<th>Default </th>
    </tr>
  </thead>
  <tbody>
    
<tr class="b">
      
<td>common </td>
      
<td>active.memory.global.budget </td>
      
<td>The memory budget (in bytes) for the active runtime </td>
      
<td>67108864 (64 MB) </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>compiler.framesize </td>
      
<td>The page size (in bytes) for computation </td>
      
<td>32768 (32 kB) </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>compiler.groupmemory </td>
      
<td>The memory budget (in bytes) for a group by operator instance in a partition </td>
      
<td>33554432 (32 MB) </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>compiler.joinmemory </td>
      
<td>The memory budget (in bytes) for a join operator instance in a partition </td>
      
<td>33554432 (32 MB) </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>compiler.parallelism </td>
      
<td>The degree of parallelism for query execution. Zero means to use the storage parallelism as the query execution parallelism, while other integer values dictate the number of query execution parallel partitions. The system will fall back to use the number of all available CPU cores in the cluster as the degree of parallelism if the number set by a user is too large or too small </td>
      
<td>0 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>compiler.sortmemory </td>
      
<td>The memory budget (in bytes) for a sort operator instance in a partition </td>
      
<td>33554432 (32 MB) </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>instance.name </td>
      
<td>The name of this cluster instance </td>
      
<td>DEFAULT_INSTANCE </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>log.level </td>
      
<td>The logging level for master and slave processes </td>
      
<td>WARNING </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>max.wait.active.cluster </td>
      
<td>The max pending time (in seconds) for cluster startup. After the threshold, if the cluster still is not up and running, it is considered unavailable </td>
      
<td>60 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>messaging.frame.count </td>
      
<td>Number of reusable frames for NC to NC messaging </td>
      
<td>512 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>messaging.frame.size </td>
      
<td>The frame size to be used for NC to NC messaging </td>
      
<td>4096 (4 kB) </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>metadata.callback.port </td>
      
<td>IP port to bind metadata callback listener (0 = random port) </td>
      
<td>0 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>metadata.listen.port </td>
      
<td>IP port to bind metadata listener (0 = random port) </td>
      
<td>0 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>metadata.node </td>
      
<td>the node which should serve as the metadata node </td>
      
<td>&lt;undefined&gt; </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>metadata.registration.timeout.secs </td>
      
<td>how long in seconds to wait for the metadata node to register with the CC </td>
      
<td>60 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>replication.log.batchsize </td>
      
<td>The size in bytes to replicate in each batch </td>
      
<td>4096 (4 kB) </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>replication.log.buffer.numpages </td>
      
<td>The number of log buffer pages </td>
      
<td>8 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>replication.log.buffer.pagesize </td>
      
<td>The size in bytes of each log buffer page </td>
      
<td>131072 (128 kB) </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>replication.max.remote.recovery.attempts </td>
      
<td>The maximum number of times to attempt to recover from a replica on failure before giving up </td>
      
<td>5 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>replication.timeout </td>
      
<td>The time in seconds to timeout when trying to contact a replica, before assuming it is dead </td>
      
<td>15 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.commitprofiler.enabled </td>
      
<td>Enable output of commit profiler logs </td>
      
<td>false </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>txn.commitprofiler.reportinterval </td>
      
<td>Interval (in seconds) to report commit profiler logs </td>
      
<td>5 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.job.recovery.memorysize </td>
      
<td>The memory budget (in bytes) used for recovery </td>
      
<td>67108864 (64 MB) </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>txn.lock.escalationthreshold </td>
      
<td>The maximum number of entity locks to obtain before upgrading to a dataset lock </td>
      
<td>1000 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.lock.shrinktimer </td>
      
<td>The time (in milliseconds) where under utilization of resources will trigger a shrink phase </td>
      
<td>5000 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>txn.lock.timeout.sweepthreshold </td>
      
<td>Interval (in milliseconds) for checking lock timeout </td>
      
<td>10000 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.lock.timeout.waitthreshold </td>
      
<td>Time out (in milliseconds) of waiting for a lock </td>
      
<td>60000 </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>txn.log.buffer.numpages </td>
      
<td>The number of pages in the transaction log tail </td>
      
<td>8 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.log.buffer.pagesize </td>
      
<td>The page size (in bytes) for transaction log buffer </td>
      
<td>131072 (128 kB) </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>txn.log.checkpoint.history </td>
      
<td>The number of checkpoints to keep in the transaction log </td>
      
<td>0 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.log.checkpoint.lsnthreshold </td>
      
<td>The checkpoint threshold (in terms of LSNs (log sequence numbers) that have been written to the transaction log, i.e., the length of the transaction log) for transaction logs </td>
      
<td>67108864 (64 MB) </td>
    </tr>
    
<tr class="a">
      
<td>common </td>
      
<td>txn.log.checkpoint.pollfrequency </td>
      
<td>The frequency (in seconds) the checkpoint thread should check to see if a checkpoint should be written </td>
      
<td>120 </td>
    </tr>
    
<tr class="b">
      
<td>common </td>
      
<td>txn.log.partitionsize </td>
      
<td>The maximum size (in bytes) of each transaction log file </td>
      
<td>268435456 (256 MB) </td>
    </tr>
  </tbody>
</table>
<p>For the optional NCService process configuration file, the following parameters, under &#x201c;[ncservice]&#x201d; section.</p>

<table border="0" class="table table-striped">
  <thead>
    
<tr class="a">
      
<th>Parameter </th>
      
<th>Meaning </th>
      
<th>Default </th>
    </tr>
  </thead>
  <tbody>
    
<tr class="b">
      
<td>address </td>
      
<td>The address the NCService listens on for commands from the CC </td>
      
<td>(all addresses) </td>
    </tr>
    
<tr class="a">
      
<td>port </td>
      
<td>The port for the NCService listens on for commands from the CC </td>
      
<td>9090 </td>
    </tr>
    
<tr class="b">
      
<td>logdir </td>
      
<td>Directory where NCService logs should be written (&#x2018;-&#x2019; indicates that output should go to stdout) </td>
      
<td>${app.home}/logs (${user.home} if &#x2018;app.home&#x2019; not present in NCService Java system properties. </td>
    </tr>
  </tbody>
</table></div>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
              <div class="row span12">Copyright &copy;                    2018
                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

                                                                  <?xml version="1.0" encoding="UTF-8"?>
<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>
    </footer>
  </body>
</html>
