http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-a-multitenant-cluster-introduction/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-a-multitenant-cluster-introduction/index.html 
b/docs/configuring-a-multitenant-cluster-introduction/index.html
index 2d29c49..78c0149 100644
--- a/docs/configuring-a-multitenant-cluster-introduction/index.html
+++ b/docs/configuring-a-multitenant-cluster-introduction/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-a-multitenant-cluster/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-a-multitenant-cluster/index.html 
b/docs/configuring-a-multitenant-cluster/index.html
index 54d4449..34c12b3 100644
--- a/docs/configuring-a-multitenant-cluster/index.html
+++ b/docs/configuring-a-multitenant-cluster/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-cgroups-to-control-cpu-usage/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-cgroups-to-control-cpu-usage/index.html 
b/docs/configuring-cgroups-to-control-cpu-usage/index.html
new file mode 100644
index 0000000..395f6aa
--- /dev/null
+++ b/docs/configuring-cgroups-to-control-cpu-usage/index.html
@@ -0,0 +1,1331 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="UTF-8">
+<meta name=viewport content="width=device-width, initial-scale=1">
+
+
+<title>Configuring cgroups to Control CPU Usage - Apache Drill</title>
+
+<link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" 
rel="stylesheet" type="text/css"/>
+<link href='//fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' 
type='text/css'/>
+<link href="/css/site.css" rel="stylesheet" type="text/css"/>
+
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+<link rel="icon" href="/favicon.ico" type="image/x-icon"/>
+
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" 
language="javascript" type="text/javascript"></script>
+<script 
src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js" 
language="javascript" type="text/javascript"></script>
+<script language="javascript" type="text/javascript" 
src="/js/modernizr.custom.js"></script>
+<script language="javascript" type="text/javascript" 
src="/js/script.js"></script>
+<script language="javascript" type="text/javascript" 
src="/js/drill.js"></script>
+
+</head>
+
+
+<body onResize="resized();">
+  <div class="page-wrap">
+    <div class="bui"></div>
+
+<div id="menu" class="mw">
+<ul>
+  <li class='toc-categories'>
+  <a class="expand-toc-icon" href="javascript:void(0);"><i class="fa 
fa-bars"></i></a>
+  </li>
+  <li class="logo"><a href="/"></a></li>
+  <li class='expand-menu'>
+  <a href="javascript:void(0);"><span class='menu-text'>Menu</span><span 
class='expand-icon'><i class="fa fa-bars"></i></span></a>
+  </li>
+  <li class='clear-float'></li>
+  <li class="documentation-menu">
+    <a href="/docs/">Documentation</a>
+    <ul>
+      
+        <li><a href="/docs/getting-started/">Getting Started</a></li>
+      
+        <li><a href="/docs/architecture/">Architecture</a></li>
+      
+        <li><a href="/docs/tutorials/">Tutorials</a></li>
+      
+        <li><a href="/docs/drill-on-yarn/">Drill-on-YARN</a></li>
+      
+        <li><a href="/docs/install-drill/">Install Drill</a></li>
+      
+        <li><a href="/docs/configure-drill/">Configure Drill</a></li>
+      
+        <li><a href="/docs/connect-a-data-source/">Connect a Data 
Source</a></li>
+      
+        <li><a href="/docs/odbc-jdbc-interfaces/">ODBC/JDBC Interfaces</a></li>
+      
+        <li><a href="/docs/query-data/">Query Data</a></li>
+      
+        <li><a href="/docs/performance-tuning/">Performance Tuning</a></li>
+      
+        <li><a href="/docs/log-and-debug/">Log and Debug</a></li>
+      
+        <li><a href="/docs/sql-reference/">SQL Reference</a></li>
+      
+        <li><a href="/docs/data-sources-and-file-formats/">Data Sources and 
File Formats</a></li>
+      
+        <li><a href="/docs/develop-custom-functions/">Develop Custom 
Functions</a></li>
+      
+        <li><a href="/docs/troubleshooting/">Troubleshooting</a></li>
+      
+        <li><a href="/docs/developer-information/">Developer 
Information</a></li>
+      
+        <li><a href="/docs/release-notes/">Release Notes</a></li>
+      
+        <li><a href="/docs/sample-datasets/">Sample Datasets</a></li>
+      
+        <li><a href="/docs/project-bylaws/">Project Bylaws</a></li>
+      
+    </ul>
+  </li>
+  <li class='nav'>
+    <a href="/community-resources/">Community</a>
+    <ul>
+      <li><a href="/team/">Team</a></li>
+      <li><a href="/mailinglists/">Mailing Lists</a></li>
+      <li><a href="/community-resources/">Community Resources</a></li>
+    </ul>
+  </li>
+  <li class='nav'><a href="/faq/">FAQ</a></li>
+  <li class='nav'><a href="/blog/">Blog</a></li>
+  <li id="twitter-menu-item"><a href="https://twitter.com/apachedrill"; 
title="apachedrill on twitter" target="_blank"><img 
src="/images/twitter_32_26_white.png" alt="twitter logo" align="center"></a> 
</li>
+  <li class='search-bar'>
+    <form id="drill-search-form">
+      <input type="text" placeholder="Search Apache Drill" 
id="drill-search-term" />
+      <button type="submit">
+        <i class="fa fa-search"></i>
+      </button>
+    </form>
+  </li>
+  <li class="d">
+    <a href="/download/">
+      <i class="fa fa-cloud-download"></i> Download
+    </a>
+  </li>
+</ul>
+</div>
+
+    <link href="/css/content.css" rel="stylesheet" type="text/css">
+
+
+      
+
+
+
+
+<aside class="sidebar">
+  <div class="docsidebar">
+    <div class="docsidebarwrapper">
+      <ul style="display: block;">
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Getting 
Started</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/drill-introduction/">Drill Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/why-drill/">Why Drill</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: 
void(0);">Architecture</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/architecture-introduction/">Architecture Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/drill-query-execution/">Drill Query Execution</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/core-modules/">Core Modules</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/performance/">Performance</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: 
void(0);">Tutorials</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/tutorials-introduction/">Tutorials Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/drill-in-10-minutes/">Drill in 10 Minutes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/analyzing-the-yelp-academic-dataset/">Analyzing the Yelp Academic 
Dataset</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Learn 
Drill with the MapR Sandbox</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/about-the-mapr-sandbox/">About the MapR Sandbox</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-the-apache-drill-sandbox/">Installing the Apache Drill 
Sandbox</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/getting-to-know-the-drill-sandbox/">Getting to Know the Drill 
Sandbox</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/lesson-1-learn-about-the-data-set/">Lesson 1: Learn about the Data 
Set</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/lesson-2-run-queries-with-ansi-sql/">Lesson 2: Run Queries with 
ANSI SQL</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/lesson-3-run-queries-on-complex-data-types/">Lesson 3: Run Queries 
on Complex Data Types</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/summary/">Summary</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/analyzing-highly-dynamic-datasets/">Analyzing Highly Dynamic 
Datasets</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/analyzing-social-media/">Analyzing Social Media</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window 
Functions</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: 
void(0);">Drill-on-YARN</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/drill-on-yarn-introduction/">Drill-on-YARN Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/creating-a-basic-drill-cluster/">Creating a Basic Drill 
Cluster</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/launch-drill-under-yarn/">Launch Drill Under YARN</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuration-reference/">Configuration Reference</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/drill-on-yarn-command-line-tool/">Drill-on-YARN Command-Line 
Tool</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/using-the-drill-on-yarn-web-ui/">Using the Drill-on-YARN Web 
UI</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/multiple-drill-clusters/">Multiple Drill Clusters</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/enabling-web-ui-security/">Enabling Web UI Security</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-a-release-note-issues/">Appendix A: Release Note 
Issues</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-b-drill-env-sh-settings/">Appendix B: drill-env.sh 
Settings</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-c-troubleshooting/">Appendix C: Troubleshooting</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Install 
Drill</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/install-drill-introduction/">Install Drill Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/migrating-parquet-data/">Migrating Parquet Data</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Installing 
Drill in Embedded Mode</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/embedded-mode-prerequisites/">Embedded Mode Prerequisites</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-drill-on-linux-and-mac-os-x/">Installing Drill on Linux 
and Mac OS X</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/starting-drill-on-linux-and-mac-os-x/">Starting Drill on Linux and 
Mac OS X</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-drill-on-windows/">Installing Drill on Windows</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/starting-drill-on-windows/">Starting Drill on Windows</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Installing 
Drill in Distributed Mode</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/distributed-mode-prerequisites/">Distributed Mode 
Prerequisites</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-drill-on-the-cluster/">Installing Drill on the 
Cluster</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/starting-drill-in-distributed-mode/">Starting Drill in Distributed 
Mode</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/starting-the-web-console/">Starting the Web Console</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/identifying-multiple-drill-versions-in-a-cluster/">Identifying 
Multiple Drill Versions in a Cluster</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1 current_section "><a href="javascript: 
void(0);">Configure Drill</a></li>
+          <ul class="current_section">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configure-drill-introduction/">Configure Drill Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-drill-memory/">Configuring Drill Memory</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Securing 
Drill</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/securing-drill-introduction/">Securing Drill Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/secure-communication-paths/">Secure Communication Paths</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/roles-and-privileges/">Roles and Privileges</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-user-impersonation/">Configuring User 
Impersonation</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-inbound-impersonation/">Configuring Inbound 
Impersonation</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-user-impersonation-with-hive-authorization/">Configuring
 User Impersonation with Hive Authorization</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-user-security/">Configuring User Security</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-plain-security/">Configuring Plain Security</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-libpam4j-as-the-pam-authenticator/">Using libpam4j as the PAM 
Authenticator</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-jpam-as-the-pam-authenticator/">Using jpam as the PAM 
Authenticator</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-kerberos-security/">Configuring Kerberos 
Security</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-web-console-and-rest-api-security/">Configuring Web 
Console and REST API Security</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: 
void(0);">Configuring a Multitenant Cluster</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-a-multitenant-cluster-introduction/">Configuring a 
Multitenant Cluster Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-multitenant-resources/">Configuring Multitenant 
Resources</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-resources-for-a-shared-drillbit/">Configuring Resources 
for a Shared Drillbit</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: 
void(0);">Configuration Options</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuration-options-introduction/">Configuration Options 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/start-up-options/">Start-Up Options</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/planning-and-execution-options/">Planning and Execution 
Options</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/persistent-configuration-storage/">Persistent Configuration 
Storage</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/ports-used-by-drill/">Ports Used by Drill</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
+            
+          
+            
+              <li class="toctree-l2 current"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Connect a Data 
Source</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/connect-a-data-source-introduction/">Connect a Data Source 
Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/storage-plugin-registration/">Storage Plugin Registration</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Storage 
Plugin Configuration</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/plugin-configuration-basics/">Plugin Configuration Basics</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/workspaces/">Workspaces</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/drill-default-input-format/">Drill Default Input Format</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/file-system-storage-plugin/">File System Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/hbase-storage-plugin/">HBase Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/hive-storage-plugin/">Hive Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/rdbms-storage-plugin/">RDBMS Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/mongodb-storage-plugin/">MongoDB Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/mapr-db-format/">MapR-DB Format</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/s3-storage-plugin/">S3 Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/httpd-storage-plugin/">HTTPD Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/opentsdb-storage-plugin/">OpenTSDB Storage Plugin</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/kafka-storage-plugin/">Kafka Storage Plugin</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">ODBC/JDBC 
Interfaces</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/interfaces-introduction/">Interfaces Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/using-the-jdbc-driver/">Using the JDBC Driver</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/using-jdbc-with-squirrel-on-windows/">Using JDBC with SQuirreL on 
Windows</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Installing 
the ODBC Driver</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-the-driver-on-linux/">Installing the Driver on 
Linux</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-the-driver-on-mac-os-x/">Installing the Driver on Mac OS 
X</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/installing-the-driver-on-windows/">Installing the Driver on 
Windows</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: 
void(0);">Configuring ODBC</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/odbc-configuration-reference/">ODBC Configuration Reference</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/logging-and-tracing/">Logging and Tracing</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-odbc-on-linux/">Configuring ODBC on Linux</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-odbc-on-mac-os-x/">Configuring ODBC on Mac OS X</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-odbc-on-windows/">Configuring ODBC on Windows</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/testing-the-odbc-connection/">Testing the ODBC Connection</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Using 
Drill Explorer</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/drill-explorer-introduction/">Drill Explorer Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/connecting-drill-explorer-to-data/">Connecting Drill Explorer to 
Data</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/browsing-data-and-defining-views/">Browsing Data and Defining 
Views</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Using 
Drill with BI Tools</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-drill-with-bi-tools-introduction/">Using Drill with BI Tools 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/tableau-examples/">Tableau Examples</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-microstrategy-analytics-with-apache-drill/">Using 
MicroStrategy Analytics with Apache Drill</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-tibco-spotfire-desktop-with-drill/">Using Tibco Spotfire 
Desktop with Drill</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-tibco-spotfire-server-with-drill/">Configuring Tibco 
Spotfire Server with Drill</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-qlik-sense-with-drill/">Using Qlik Sense with Drill</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-apache-drill-with-tableau-10-2/">Using Apache Drill with 
Tableau 10.2</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-apache-drill-with-tableau-9-desktop/">Using Apache Drill with 
Tableau 9 Desktop</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-apache-drill-with-tableau-9-server/">Using Apache Drill with 
Tableau 9 Server</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-information-builders-webfocus-with-apache-drill/">Using 
Information Builders’ WebFOCUS with Apache Drill</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/configuring-jreport-with-drill/">Configuring JReport with 
Drill</a></li>
+              
+            </ul>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Query 
Data</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/query-data-introduction/">Query Data Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Querying a 
File System</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-a-file-system-introduction/">Querying a File System 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-avro-files/">Querying Avro Files</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-json-files/">Querying JSON Files</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-parquet-files/">Querying Parquet Files</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-plain-text-files/">Querying Plain Text Files</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-directories/">Querying Directories</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-sequence-files/">Querying Sequence Files</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/querying-hbase/">Querying HBase</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Querying 
Complex Data</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/querying-complex-data-introduction/">Querying Complex Data 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/sample-data-donuts/">Sample Data: Donuts</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/selecting-flat-data/">Selecting Flat Data</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/using-sql-functions-clauses-and-joins/">Using SQL Functions, 
Clauses, and Joins</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/selecting-nested-data-for-a-column/">Selecting Nested Data for a 
Column</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/selecting-multiple-columns-within-nested-data/">Selecting Multiple 
Columns Within Nested Data</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/querying-hive/">Querying Hive</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/querying-the-information-schema/">Querying the INFORMATION 
SCHEMA</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/querying-system-tables/">Querying System Tables</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/monitoring-and-canceling-queries-in-the-drill-web-console/">Monitoring
 and Canceling Queries in the Drill Web Console</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Performance 
Tuning</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/performance-tuning-introduction/">Performance Tuning 
Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Partition 
Pruning</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/partition-pruning-introduction/">Partition Pruning 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/how-to-partition-data/">How to Partition Data</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/asynchronous-parquet-reader/">Asynchronous Parquet Reader</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/optimizing-parquet-metadata-reading/">Optimizing Parquet Metadata 
Reading</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/parquet-filter-pushdown/">Parquet Filter Pushdown</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/hive-metadata-caching/">Hive Metadata Caching</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/choosing-a-storage-format/">Choosing a Storage Format</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Query 
Plans and Tuning</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/query-plans-and-tuning-introduction/">Query Plans and Tuning 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/join-planning-guidelines/">Join Planning Guidelines</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/guidelines-for-optimizing-aggregation/">Guidelines for Optimizing 
Aggregation</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/modifying-query-planning-options/">Modifying Query Planning 
Options</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/sort-based-and-hash-based-memory-constrained-operators/">Sort-Based 
and Hash-Based Memory-Constrained Operators</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/enabling-query-queuing/">Enabling Query Queuing</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/throttling/">Throttling</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/">Controlling
 Parallelization to Balance Performance with Multi-Tenancy</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: 
void(0);">Identifying Performance Issues</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/query-plans/">Query Plans</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/query-profiles/">Query Profiles</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: 
void(0);">Performance Tuning Reference</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/query-profile-column-descriptions/">Query Profile Column 
Descriptions</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/physical-operators/">Physical Operators</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/monitoring-metrics/">Monitoring Metrics</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Log and 
Debug</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/log-and-debug-introduction/">Log and Debug Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/error-messages/">Error Messages</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/modify-logback-xml/">Modify logback.xml</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/review-the-java-stack-trace/">Review the Java Stack Trace</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/query-audit-logging/">Query Audit Logging</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">SQL 
Reference</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/sql-reference-introduction/">SQL Reference Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Data 
Types</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/supported-data-types/">Supported Data Types</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/date-time-and-timestamp/">Date, Time, and Timestamp</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/handling-different-data-types/">Handling Different Data 
Types</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/lexical-structure/">Lexical Structure</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/operators/">Operators</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">SQL 
Functions</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/about-sql-function-examples/">About SQL Function Examples</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/math-and-trig/">Math and Trig</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/data-type-conversion/">Data Type Conversion</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/date-time-functions-and-arithmetic/">Date/Time Functions and 
Arithmetic</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/string-manipulation/">String Manipulation</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/aggregate-and-aggregate-statistical/">Aggregate and Aggregate 
Statistical</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/functions-for-handling-nulls/">Functions for Handling Nulls</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">SQL Window 
Functions</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/sql-window-functions-introduction/">SQL Window Functions 
Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/aggregate-window-functions/">Aggregate Window Functions</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/ranking-window-functions/">Ranking Window Functions</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/value-window-functions/">Value Window Functions</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/sql-window-functions-examples/">SQL Window Functions 
Examples</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Nested 
Data Functions</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/nested-data-limitations/">Nested Data Limitations</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/flatten/">FLATTEN</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/kvgen/">KVGEN</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/repeated-count/">REPEATED_COUNT</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/repeated-contains/">REPEATED_CONTAINS</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/query-directory-functions/">Query Directory Functions</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">SQL 
Commands</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/supported-sql-commands/">Supported SQL Commands</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/set/">SET</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/reset/">RESET</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/alter-system/">ALTER SYSTEM</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/create-table-as-ctas/">CREATE TABLE AS (CTAS)</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/create-temporary-table-as-cttas/">CREATE TEMPORARY TABLE AS 
(CTTAS)</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/create-function-using-jar/">CREATE FUNCTION USING JAR</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/partition-by-clause/">PARTITION BY Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/create-view/">CREATE VIEW</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/describe/">DESCRIBE</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/drop-function-using-jar/">DROP FUNCTION USING JAR</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/drop-table/">DROP TABLE</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/drop-view/">DROP VIEW</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/explain/">EXPLAIN</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/select/">SELECT</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/select-list/">SELECT List</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/from-clause/">FROM Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/group-by-clause/">GROUP BY Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/having-clause/">HAVING Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/limit-clause/">LIMIT Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/offset-clause/">OFFSET Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/order-by-clause/">ORDER BY Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/union-set-operator/">UNION Set Operator</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/where-clause/">WHERE Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/with-clause/">WITH Clause</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/show-databases-and-show-schemas/">SHOW DATABASES and SHOW 
SCHEMAS</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/show-files/">SHOW FILES</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/show-tables/">SHOW TABLES</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/use/">USE</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">SQL 
Conditional Expressions</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/case/">CASE</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/reserved-keywords/">Reserved Keywords</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/sql-extensions/">SQL Extensions</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Data Sources 
and File Formats</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/data-sources-and-file-formats-introduction/">Data Sources and File 
Formats Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/hive-to-drill-data-type-mapping/">Hive-to-Drill Data Type 
Mapping</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/deploying-and-using-a-hive-udf/">Deploying and Using a Hive 
UDF</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/parquet-format/">Parquet Format</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/json-data-model/">JSON Data Model</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/text-files-csv-tsv-psv/">Text Files: CSV, TSV, PSV</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/sequence-files/">Sequence Files</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Develop Custom 
Functions</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/develop-custom-functions-introduction/">Develop Custom Functions 
Introduction</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/developing-a-simple-function/">Developing a Simple Function</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/tutorial-develop-a-simple-function/">Tutorial: Develop a Simple 
Function</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/developing-an-aggregate-function/">Developing an Aggregate 
Function</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Adding 
Custom Functions to Drill</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/adding-custom-functions-to-drill-introduction/">Adding Custom 
Functions to Drill Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/manually-adding-custom-functions-to-drill/">Manually Adding Custom 
Functions to Drill</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/creating-custom-authenticators/">Creating Custom 
Authenticators</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/dynamic-udfs/">Dynamic UDFs</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/using-custom-functions-in-queries/">Using Custom Functions in 
Queries</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/custom-function-interfaces/">Custom Function Interfaces</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a class="reference internal" 
href="/docs/troubleshooting/">Troubleshooting</a></li>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Developer 
Information</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">REST 
API</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/rest-api-introduction/">REST API Introduction</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/submitting-queries-from-the-rest-api-when-impersonation-is-enabled-and-authentication-is-disabled/">Submitting
 Queries from the REST API when Impersonation is Enabled and Authentication is 
Disabled</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Develop 
Drill</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/compiling-drill-from-source/">Compiling Drill from Source</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Contribute 
to Drill</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/apache-drill-contribution-guidelines/">Apache Drill Contribution 
Guidelines</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/apache-drill-contribution-ideas/">Apache Drill Contribution 
Ideas</a></li>
+              
+            </ul>
+            
+          
+            
+              <li class="toctree-l2"><a href="javascript: void(0);">Design 
Docs</a></li>
+              <ul style="display: none">
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/drill-plan-syntax/">Drill Plan Syntax</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/rpc-overview/">RPC Overview</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/query-stages/">Query Stages</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/useful-research/">Useful Research</a></li>
+              
+                <li class="toctree-l3"><a class="reference internal" 
href="/docs/value-vectors/">Value Vectors</a></li>
+              
+            </ul>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Release 
Notes</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-13-0-release-notes/">Apache Drill 1.13.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-12-0-release-notes/">Apache Drill 1.12.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-11-0-release-notes/">Apache Drill 1.11.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-10-0-release-notes/">Apache Drill 1.10.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-9-0-release-notes/">Apache Drill 1.9.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-8-0-release-notes/">Apache Drill 1.8.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-7-0-release-notes/">Apache Drill 1.7.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-6-0-release-notes/">Apache Drill 1.6.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-5-0-release-notes/">Apache Drill 1.5.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-4-0-release-notes/">Apache Drill 1.4.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-3-0-release-notes/">Apache Drill 1.3.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-2-0-release-notes/">Apache Drill 1.2.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-1-0-release-notes/">Apache Drill 1.1.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-1-0-0-release-notes/">Apache Drill 1.0.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-0-9-0-release-notes/">Apache Drill 0.9.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-0-8-0-release-notes/">Apache Drill 0.8.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-0-7-0-release-notes/">Apache Drill 0.7.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-0-6-0-release-notes/">Apache Drill 0.6.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-0-5-0-release-notes/">Apache Drill 0.5.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-0-4-0-release-notes/">Apache Drill 0.4.0 Release 
Notes</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-m1-release-notes-apache-drill-alpha/">Apache Drill M1 
Release Notes (Apache Drill Alpha)</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/apache-drill-m1-release-notes-apache-drill-alpha/">Apache Drill M1 
Release Notes (Apache Drill Alpha)</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a href="javascript: void(0);">Sample 
Datasets</a></li>
+          <ul style="display: none">
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/aol-search/">AOL Search</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/enron-emails/">Enron Emails</a></li>
+            
+          
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/wikipedia-edit-history/">Wikipedia Edit History</a></li>
+            
+          
+          </ul>
+        
+      
+        
+          <li class="toctree-l1"><a class="reference internal" 
href="/docs/project-bylaws/">Project Bylaws</a></li>
+        
+      
+      </ul>
+
+    </div>
+  </div>
+</aside>
+
+
+<nav class="breadcrumbs">
+  <li><a href="/docs/">Docs</a></li>
+ 
+  
+    <li><a href="/docs/configure-drill/">Configure Drill</a></li>
+  
+  <li>Configuring cgroups to Control CPU Usage</li>
+</nav>
+
+<div class="main-content-wrapper">
+  <div class="main-content">
+
+    
+      <a class="edit-link" 
href="https://github.com/apache/drill/blob/gh-pages/_docs/configure-drill/121-configuring-cgroups-to-control-cpu-usage.md";
 target="_blank"><i class="fa fa-pencil-square-o"></i></a>
+    
+
+    <div class="int_title left">
+      <h1>Configuring cgroups to Control CPU Usage</h1>
+
+    </div>
+
+     Mar 22, 2018
+
+    <link href="/css/docpage.css" rel="stylesheet" type="text/css">
+
+    <div class="int_text" align="left">
+      
+        <p>Linux cgroups (control groups) enable you to limit system resources 
to defined user groups or processes. As of Drill 1.13, you can configure a 
cgroup for Drill to enforce CPU limits on the Drillbit service. You can set a 
CPU limit for the Drill cgroup on each Drill node in the /etc/cgconfig.conf 
file.</p>
+
+<p>You can set the CPU limit as a soft or hard limit, or both. The hard limit 
takes precedence over the soft limit. When Drill hits the hard limit, 
in-progress queries may not complete.  </p>
+
+<h2 id="cpu-limits">CPU Limits</h2>
+
+<p>You set the soft and hard limits with parameters in the /etc/cgconfig.conf 
file. The following sections describe the parameters for soft and hard limits.  
</p>
+
+<p><strong>Soft Limit Parameter</strong><br>
+You set the soft limit with the <code>cpu.shares</code> parameter. When you 
set a soft limit, Drill can exceed the CPU allocated if extra CPU is available 
for use on the system. Drill can continue to use CPU until there is contention 
with other processes over the CPU or Drill hits the hard limit.  </p>
+
+<p><strong>Hard Limit Parameters</strong><br>
+You set the hard limit with the <code>cpu.cfs_period_us</code> and 
<code>cpu.cfs_quota_us</code> parameters. The <code>cpu.cfs_period_us</code> 
and <code>cpu.cfs_quota_us</code> parameters set a hard limit on the amount of 
CPU time that the Drill process can use.  </p>
+
+<ul>
+<li><p><strong><code>cpu.cfs_period_us</code></strong><br>
+The <code>cpu.cfs_quota_us</code> parameter specifies a segment of time (in 
microseconds represented by <code>us</code> for µs) for how often the access 
to CPU resources should be reallocated. For example, if tasks in a cgroup can 
access a single CPU for 0.2 seconds out of every 1 second, set cpu.cfs_quota_us 
to 200000 and cpu.cfs_period_us to 1000000. The upper limit of the 
<code>cpu.cfs_quota_us</code> parameter is 1 second and the lower limit is 1000 
microseconds.    </p></li>
+<li><p><strong><code>cpu.cfs_quota_us</code></strong><br>
+The <code>cpu.cfs_quota_us</code> parameter specifies the total amount of 
runtime (in microseconds represented by <code>us</code> for µs) for which all 
tasks in the Drill cgroup can run during one period (as defined by 
cpu.cfs_period_us). As soon as tasks in the Drill cgroup use the time specified 
by the quota, they are throttled for the remainder of the time specified by the 
period and not allowed to run until the next period. For example, if tasks in 
the Drill cgroup can access a single CPU for 0.2 seconds out of every 1 second, 
set <code>cpu.cfs_quota_us</code> to 200000 and <code>cpu.cfs_period_us</code> 
to 1000000. A value of -1 indicates that the group does not have any 
restrictions on CPU.  </p></li>
+</ul>
+
+<h2 id="before-you-begin">Before You Begin</h2>
+
+<p>Each Drill node must have the libcgroup package installed to configure CPU 
limits for a Drill cgroup. The libcgroup package installs the cgconfig service 
required to configure and manage the Drill cgroup.</p>
+
+<p>You can install the libcgroup package using the <code>yum install</code> 
command, as shown:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
yum install libcgroup  
+</code></pre></div>
+<h2 id="configuring-cpu-limits">Configuring CPU Limits</h2>
+
+<p>Complete the following steps to set a hard and/or soft limit on Drill CPU 
usage for the Drill process running on the node:  </p>
+
+<p>1-Start the cgconfig service:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">    
service cgconfig start
+</code></pre></div>
+<p>2-Add a cgroup for Drill in the /etc/cgconfig.conf file:    </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">      
    group drillcpu {
+                 cpu {
+                        cpu.shares = 320;
+                        cpu.cfs_quota_us = 400000;
+                        cpu.cfs_period_us = 100000;
+                        }
+                 }  
+</code></pre></div>
+<p><strong>Note:</strong> The cgroup name is specific to the Drill cgroup and 
does not correlate with any other configuration. You can give this group any 
name you prefer. The name drillcpu is used as an example.  </p>
+
+<p>In the configuration example, the <code>cpu.shares</code> parameter sets 
the soft limit. The other two parameters, <code>cpu.cfs_quota_us</code> and 
<code>cpu.cfs_period_us</code>, set the hard limit. If you prefer to set only 
one type of limit, remove the parameters that do not apply.  </p>
+
+<p>To set a soft limit, allocate a specific number of CPU shares to the Drill 
cgroup in the configuration. Calculate the CPU shares as:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
1024 (CPU allocated to Drill/Total available CPU)
+</code></pre></div>
+<p>In the example, CPU shares was calculated as:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
1024 (10/32) = 320
+</code></pre></div>
+<p>To set a hard limit, add limits to the <code>cpu.cfs_quota_us</code> and 
<code>cpu.cfs_period_us</code> parameters. In the configuration example, the 
Drill process can fully utilize 4 CPU.  </p>
+
+<p><strong>Note:</strong> The hard limit parameter settings persist after each 
cgroup service restart. Alternatively, you can set the parameters at the 
session level using the following commands:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
echo 400000 &gt; /cgroup/cpu/drillcpu/cpu.cfs_quota_us
+   echo 100000 &gt; /cgroup/cpu/drillcpu/cpu.cfs_period_us
+</code></pre></div>
+<p>3-(Optional) If you want the cgconfig service to automatically restart upon 
system reboots, run the following command:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
chkconfig cgconfig on  
+</code></pre></div>
+<p>4-Run the following command to add the Drill process ID (PID) to the 
/cgroup/cpu/drillcpu/cgroup.procs file, as shown:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
echo 25809 &gt; /cgroup/cpu/drillcpu/cgroup.procs
+</code></pre></div>
+<p><strong>Note:</strong> You must perform this step each time a Drillbit 
restarts.  </p>
+
+<p>For additional information, refer to the following documentation:<br>
+- <a 
href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html";>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html</a><br>
+- <a 
href="resource_management_guide/sect-cpu-example_usage">resource_management_guide/sect-cpu-example_usage</a><br>
+- <a 
href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html";>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html</a>
+- <a 
href="resource_management_guide/sec-cpu_and_memory-use_case">resource_management_guide/sec-cpu_and_memory-use_case</a></p>
+
+    
+      
+        <div class="doc-nav">
+  
+  <span class="previous-toc"><a href="/docs/configuring-the-drill-shell/">← 
Configuring the Drill Shell</a></span><span class="next-toc"><a 
href="/docs/connect-a-data-source/">Connect a Data Source →</a></span>
+</div>
+
+    
+    </div>
+  </div>
+</div>
+
+  </div>
+  <p class="push"></p>
+<div id="footer" class="mw">
+<div class="wrapper">
+Copyright © 2012-2014 The Apache Software Foundation, licensed under the 
Apache License, Version 2.0.<br>
+Apache and the Apache feather logo are trademarks of The Apache Software 
Foundation. Other names appearing on the site may be trademarks of their 
respective owners.<br/><br/>
+</div>
+</div>
+
+  <script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-53379651-1', 'auto');
+ga('send', 'pageview');
+</script>
+<script type="text/javascript" 
src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d" 
async="async"></script>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-drill-memory/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-drill-memory/index.html 
b/docs/configuring-drill-memory/index.html
index 8beca66..476d195 100644
--- a/docs/configuring-drill-memory/index.html
+++ b/docs/configuring-drill-memory/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       
@@ -1216,7 +1216,7 @@
 
     </div>
 
-     Mar 14, 2018
+     Mar 22, 2018
 
     <link href="/css/docpage.css" rel="stylesheet" type="text/css">
 
@@ -1229,36 +1229,75 @@
 <p>The JVM heap memory does not limit the amount of direct memory available in 
a Drillbit. The on-heap memory for Drill is typically set at 4-8G (default is 
4), which should
 suffice because Drill avoids having data sit in heap memory.  </p>
 
-<p>The following sections describe how to modify the memory allocated to each 
Drillbit and queries:  </p>
+<p>The following sections describe how to allocate memory to Drillbits and 
queries, and how to enable bounds checking if you see performance issues:  </p>
 
 <h2 id="modifying-memory-allocated-to-a-drillbit">Modifying Memory Allocated 
to a Drillbit</h2>
 
-<p>Modify the memory allocated to each Drillbit in a cluster in the Drillbit 
startup script, 
<code>&lt;drill_installation_directory&gt;/conf/drill-env.sh</code>. You must 
<a href="/docs/starting-drill-in-distributed-mode">restart Drill</a> after you 
modify the script.</p>
+<p>Modify the memory allocated to each Drillbit in a cluster in the Drillbit 
startup script, 
<code>&lt;drill_installation_directory&gt;/conf/drill-env.sh</code>. You must 
<a href="/docs/starting-drill-in-distributed-mode">restart Drill</a> after you 
modify the script.  </p>
+
+<p>The <code>drill-env.sh</code> file contains the following options:</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">#export 
DRILLBIT_MAX_PROC_MEM=${DRILLBIT_MAX_PROC_MEM:-&quot;13G&quot;}
+//Maximum cumulative memory allocated to the Drill process during startup. 
This option was introduced in Drill 1.13.
+
+#export DRILL_HEAP=${DRILL_HEAP:-&quot;4G&quot;}
+//Maximum theoretical heap limit for the JVM per node.
 
+#export DRILL_MAX_DIRECT_MEMORY=${DRILL_MAX_DIRECT_MEMORY:-&quot;8G&quot;}  
+//Java direct memory limit per node.
+
+#export DRILLBIT_CODE_CACHE_SIZE=${DRILLBIT_CODE_CACHE_SIZE:-&quot;1G&quot;} 
+//Do not modify the DRILLBIT_CODE_CACHE_SIZE. The value for this parameter is 
auto-computed based on the heap size and cannot exceed 1GB. 
+</code></pre></div>
 <div class="admonition note">
   <p class="first admonition-title">Note</p>
   <p class="last">If DRILL_MAX_DIRECT_MEMORY is not set, the limit depends on 
the amount of available direct memory.  </p>
 </div>
 
-<p>The <code>drill-env.sh</code> file contains the following options:</p>
-<div class="highlight"><pre><code class="language-text" 
data-lang="text">#export DRILL_HEAP=${DRILL_HEAP:-&quot;4G”}  
-#export DRILL_MAX_DIRECT_MEMORY=${DRILL_MAX_DIRECT_MEMORY:-&quot;8G&quot;}
-</code></pre></div>
 <p>To customize memory limits, uncomment the line needed and change the 
setting:  </p>
-<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_HEAP=${DRILL_HEAP:-&quot;&lt;limit&gt;”}
-export 
DRILL_MAX_DIRECT_MEMORY=${DRILL_MAX_DIRECT_MEMORY:-“&lt;limit&gt;&quot;}  
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">export 
DRILLBIT_MAX_PROC_MEM=${DRILLBIT_MAX_PROC_MEM:-&quot;&lt;limit&gt;&quot;}
+export DRILL_HEAP=${DRILL_HEAP:-&quot;&lt;limit&gt;&quot;}
+export 
DRILL_MAX_DIRECT_MEMORY=${DRILL_MAX_DIRECT_MEMORY:-&quot;&lt;limit&gt;&quot;}   
 </code></pre></div>
-<p>DRILL_MAX_HEAP is the maximum theoretical heap limit for the JVM per 
node.<br>
-DRILL_MAX_DIRECT_MEMORY is the Java direct memory limit per node.  </p>
+<p>For example, if you set <code>DRILLBIT_MAX_PROC_MEM</code> to 40G, the 
total amount of memory allocated to the following memory parameters cannot 
exceed 40G:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
DRILL_HEAP=8G
+   DRILL_MAX_DIRECT_MEMORY=10G
+   DRILLBIT_CODE_CACHE_SIZE=1024M
+</code></pre></div>
+<p>At startup, the auto-setup.sh script (introduced in Drill 1.13) performs a 
check to see if these memory parameters are declared. If the parameters are 
declared, the script performs a check to verify that the cumulative memory of 
the parameters does not exceed the value specified by 
<code>DRILLBIT_MAX_PROC_MEM</code>. If the cumulative memory exceeds the total 
amount of memory defined by <code>DRILLBIT_MAX_PROC_MEM</code>, Drill returns 
an error message with instructions. See the example below.</p>
 
-<p>If performance is an issue, add -Dbounds=false, as shown in the following 
example:</p>
-<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_JAVA_OPTS=&quot;$DRILL_JAVA_OPTS 
-Dbounds=false&quot;  
+<p>If any of the memory parameters are undefined, the script adjusts the 
settings for the undefined parameters to ensure that the total memory allocated 
is within the value defined by <code>DRILLBIT_MAX_PROC_MEM</code>.</p>
+
+<p>By default, <code>DRILLBIT_MAX_PROC_MEM</code> is not defined. You can 
define <code>DRILLBIT_MAX_PROC_MEM</code> in KB, MB, or GB, as shown:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
DRILLBIT_MAX_PROC_MEM=13G
+   DRILLBIT_MAX_PROC_MEM=8192M
+   DRILLBIT_MAX_PROC_MEM=4194304K
 </code></pre></div>
-<p>As of Drill 1.13, bounds checking for direct memory is disabled by default. 
To enable bounds checking for direct memory, use the DRILLBIT_JAVA_OPTS 
variable to pass the <code>drill.exec.memory.enable_unsafe_bounds_check</code> 
parameter in $DRILL_HOME/conf/drill-env.sh, as shown:  </p>
-<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_JAVA_OPTS=&quot;$DRILL_JAVA_OPTS 
-Ddrill.exec.memory.enable_unsafe_bounds_check=true&quot;  
+<p>Alternatively, you can set <code>DRILLBIT_MAX_PROC_MEM</code> as a 
percentage of total memory:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
DRILLBIT_MAX_PROC_MEM=50%
 </code></pre></div>
-<p>For earlier versions of Drill (prior to 1.13), bounds checking is enabled 
by default. To disable bounds checking, set the 
<code>drill.enable_unsafe_memory_access</code> parameter to true, as shown:  
</p>
-<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_JAVA_OPTS=&quot;$DRILL_JAVA_OPTS 
-Ddrill.enable_unsafe_memory_access=true&quot;  
+<p>If you do not set this variable, it is disabled. If you set this variable, 
you can unset it to disable it.  </p>
+
+<p><strong>Example</strong>  </p>
+
+<p>If a system has 48GB of free memory and you set the following parameters in 
drill-env.sh:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
DRILLBIT_MAX_PROC_MEM=25%
+   DRILL_HEAP=8G
+   DRILL_MAX_DIRECT_MEMORY=10G
+   DRILLBIT_CODE_CACHE_SIZE=1024M  
+</code></pre></div>
+<p>The Drillbit fails on startup with the following messages:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
[WARN] 25% of System Memory (47 GB) translates to 12 GB
+   [ERROR] Unable to start Drillbit due to memory constraint violations Total 
Memory Requested : 19 GB 
+   Check and modify the settings or increase the maximum amount of memory 
permitted.
+</code></pre></div>
+<p>If DRILLBIT_MAX_PROC_MEM is increased to 50%; the Drillbit starts up with 
the following warnings:  </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
[WARN] 50% of the system memory (48 GB) translates to 24 GB.
+   [WARN] You have an allocation of 4 GB that is currently unused from a total 
of 24 GB. 
+   You can increase your existing memory configuration to use this extra 
memory.  
+</code></pre></div>
+<p>Additionally, if the available free memory is less than the allocation, the 
following additional warnings are provided under the assumption that the 
operating system will reclaim more free memory when required:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
[WARN] Total Memory Allocation for Drillbit (19GB) exceeds available free 
memory (11GB).
+   [WARN] Drillbit will start up, but can potentially crash due to 
oversubscribing of system memory.  
 </code></pre></div>
 <h2 id="modifying-memory-allocated-to-queries">Modifying Memory Allocated to 
Queries</h2>
 
@@ -1266,7 +1305,7 @@ DRILL_MAX_DIRECT_MEMORY is the Java direct memory limit 
per node.  </p>
 
 <p>If you modify the memory allocated per query and continue to experience 
out-of-memory errors, you can try reducing the value of the <a 
href="/docs/configuration-options-introduction/"><code>planner.width.max_per_node</code></a>
 option. Reducing the value of this option reduces the level of parallelism per 
node. However, this may increase the amount of time required for a query to 
complete.  </p>
 
-<p>Another option you can modify is the 
<code>drill.exec.memory.operator.output_batch_size</code> option, introduced in 
Drill 1.13. The  <code>drill.exec.memory.operator.output_batch_size</code> 
option limits the amount of memory that the Flatten, Merge Join, and External 
Sort operators allocate to outgoing batches. Limiting the memory allocated to 
outgoing batches can improve concurrency and prevent queries from failing with 
out-of-memory errors.</p>
+<p>You can also modify the 
<code>drill.exec.memory.operator.output_batch_size</code> option, introduced in 
Drill 1.13. The <code>drill.exec.memory.operator.output_batch_size</code> 
option limits the amount of memory that the Flatten, Merge Join, and External 
Sort operators allocate to outgoing batches. Limiting the memory allocated to 
outgoing batches can improve concurrency and prevent queries from failing with 
out-of-memory errors.</p>
 
 <p>The average row size of the outgoing batch (calculated from the incoming 
batch size) determines the number of rows that can fit into the available 
memory for the batch. If your queries fail with memory errors, reduce the value 
of the <code>drill.exec.memory.operator.output_batch_size</code> option to 
reduce the output batch size. </p>
 
@@ -1275,7 +1314,18 @@ DRILL_MAX_DIRECT_MEMORY is the Java direct memory limit 
per node.  </p>
 <p><strong>Note:</strong> Configuring a batch size less than 1 MB is not 
recommended, as it could lead to performance issues. </p>
 
 <p>Use the ALTER SYSTEM SET command to change the settings, as shown:  </p>
-<div class="highlight"><pre><code class="language-text" data-lang="text">   
ALTER SYSTEM SET `drill.exec.memory.operator.output_batch_size` = &lt;value&gt;;
+<div class="highlight"><pre><code class="language-text" data-lang="text">   
ALTER SYSTEM SET `drill.exec.memory.operator.output_batch_size` = 
&lt;value&gt;;  
+</code></pre></div>
+<h2 id="bounds-checking">Bounds Checking</h2>
+
+<p>If performance is an issue, add -Dbounds=false, as shown in the following 
example:</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_JAVA_OPTS=&quot;$DRILL_JAVA_OPTS 
-Dbounds=false&quot;  
+</code></pre></div>
+<p>As of Drill 1.13, bounds checking for direct memory is disabled by default. 
To enable bounds checking for direct memory, use the DRILLBIT_JAVA_OPTS 
variable to pass the <code>drill.exec.memory.enable_unsafe_bounds_check</code> 
parameter in $DRILL_HOME/conf/drill-env.sh, as shown:  </p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_JAVA_OPTS=&quot;$DRILL_JAVA_OPTS 
-Ddrill.exec.memory.enable_unsafe_bounds_check=true&quot;  
+</code></pre></div>
+<p>For earlier versions of Drill (prior to 1.13), bounds checking is enabled 
by default. To disable bounds checking, set the 
<code>drill.enable_unsafe_memory_access</code> parameter to true, as shown:  
</p>
+<div class="highlight"><pre><code class="language-text" 
data-lang="text">export DRILL_JAVA_OPTS=&quot;$DRILL_JAVA_OPTS 
-Ddrill.enable_unsafe_memory_access=true&quot;
 </code></pre></div>
     
       

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-inbound-impersonation/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-inbound-impersonation/index.html 
b/docs/configuring-inbound-impersonation/index.html
index 341c2cb..6b9e4b9 100644
--- a/docs/configuring-inbound-impersonation/index.html
+++ b/docs/configuring-inbound-impersonation/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-jreport-with-drill/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-jreport-with-drill/index.html 
b/docs/configuring-jreport-with-drill/index.html
index ce3647a..b5a4361 100644
--- a/docs/configuring-jreport-with-drill/index.html
+++ b/docs/configuring-jreport-with-drill/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-kerberos-security/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-kerberos-security/index.html 
b/docs/configuring-kerberos-security/index.html
index 4b00b68..9b2fd94 100644
--- a/docs/configuring-kerberos-security/index.html
+++ b/docs/configuring-kerberos-security/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       

http://git-wip-us.apache.org/repos/asf/drill-site/blob/b38c239a/docs/configuring-multitenant-resources/index.html
----------------------------------------------------------------------
diff --git a/docs/configuring-multitenant-resources/index.html 
b/docs/configuring-multitenant-resources/index.html
index 9b565f5..0994c0d 100644
--- a/docs/configuring-multitenant-resources/index.html
+++ b/docs/configuring-multitenant-resources/index.html
@@ -265,10 +265,6 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-d-recreate-the-drill-archive/">Appendix D: Recreate the 
Drill Archive</a></li>
             
           
-            
-              <li class="toctree-l2"><a class="reference internal" 
href="/docs/appendix-e-using-cgroups-to-control-cpu-usage/">Appendix E: Using 
cgroups to Control CPU Usage</a></li>
-            
-          
           </ul>
         
       
@@ -404,6 +400,10 @@
               <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" 
href="/docs/configuring-cgroups-to-control-cpu-usage/">Configuring cgroups to 
Control CPU Usage</a></li>
+            
+          
           </ul>
         
       

Reply via email to