<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Apache Druid">
<meta name="keywords" content="druid,kafka,database,analytics,streaming,real-time,real time,apache,open source">
<meta name="author" content="Apache Software Foundation">

<title>Druid | Apache Druid (incubating) Configuration Reference</title>

<link rel="alternate" type="application/atom+xml" href="/feed">
<link rel="shortcut icon" href="/img/favicon.png">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">

<link href='//fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic|Open+Sans:300italic,400italic,600italic,400,300,600,700' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="/css/bootstrap-pure.css?v=1.1">
<link rel="stylesheet" href="/css/base.css?v=1.1">
<link rel="stylesheet" href="/css/header.css?v=1.1">
<link rel="stylesheet" href="/css/footer.css?v=1.1">
<link rel="stylesheet" href="/css/syntax.css?v=1.1">
<link rel="stylesheet" href="/css/docs.css?v=1.1">

<script>
  (function() {
    var cx = '000162378814775985090:molvbm0vggm';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>


  </head>

  <body>
    <!-- Start page_header include -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<div class="top-navigator">
  <div class="container">
    <div class="left-cont">
      <a class="logo" href="/"><span class="druid-logo"></span></a>
    </div>
    <div class="right-cont">
      <ul class="links">
        <li class=""><a href="/technology">Technology</a></li>
        <li class=""><a href="/use-cases">Use Cases</a></li>
        <li class=""><a href="/druid-powered">Powered By</a></li>
        <li class=""><a href="/docs/latest/design/">Docs</a></li>
        <li class=""><a href="/community/">Community</a></li>
        <li class="header-dropdown">
          <a>Apache</a>
          <div class="header-dropdown-menu">
            <a href="https://www.apache.org/" target="_blank">Foundation</a>
            <a href="https://www.apache.org/events/current-event" target="_blank">Events</a>
            <a href="https://www.apache.org/licenses/" target="_blank">License</a>
            <a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a>
            <a href="https://www.apache.org/security/" target="_blank">Security</a>
            <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a>
          </div>
        </li>
        <li class=" button-link"><a href="/downloads.html">Download</a></li>
      </ul>
    </div>
  </div>
  <div class="action-button menu-icon">
    <span class="fa fa-bars"></span> MENU
  </div>
  <div class="action-button menu-icon-close">
    <span class="fa fa-times"></span> MENU
  </div>
</div>

<script type="text/javascript">
  var $menu = $('.right-cont');
  var $menuIcon = $('.menu-icon');
  var $menuIconClose = $('.menu-icon-close');

  function showMenu() {
    $menu.fadeIn(100);
    $menuIcon.fadeOut(100);
    $menuIconClose.fadeIn(100);
  }

  $menuIcon.click(showMenu);

  function hideMenu() {
    $menu.fadeOut(100);
    $menuIconClose.fadeOut(100);
    $menuIcon.fadeIn(100);
  }

  $menuIconClose.click(hideMenu);

  $(window).resize(function() {
    if ($(window).width() >= 840) {
      $menu.fadeIn(100);
      $menuIcon.fadeOut(100);
      $menuIconClose.fadeOut(100);
    }
    else {
      $menu.fadeOut(100);
      $menuIcon.fadeIn(100);
      $menuIconClose.fadeOut(100);
    }
  });
</script>

<!-- Stop page_header include -->


    <div class="container doc-container">
      
      

      
      <p> Looking for the <a href="/docs/0.20.0/">latest stable documentation</a>?</p>
      

      <div class="row">
        <div class="col-md-9 doc-content">
          <p>
            <a class="btn btn-default btn-xs visible-xs-inline-block visible-sm-inline-block" href="#toc">Table of Contents</a>
          </p>
          <!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<h1 id="apache-druid-incubating-configuration-reference">Apache Druid (incubating) Configuration Reference</h1>

<p>This page documents all of the configuration properties for each Druid service type.</p>

<h2 id="table-of-contents">Table of Contents</h2>

<ul>
<li><a href="#recommended-configuration-file-organization">Recommended Configuration File Organization</a></li>
<li><a href="#common-configurations">Common configurations</a>

<ul>
<li><a href="#jvm-configuration-best-practices">JVM Configuration Best Practices</a></li>
<li><a href="#extensions">Extensions</a></li>
<li><a href="#modules">Modules</a></li>
<li><a href="#zookeper">Zookeeper</a></li>
<li><a href="#exhibitor">Exhibitor</a></li>
<li><a href="#tls">TLS</a></li>
<li><a href="#authentication-and-authorization">Authentication &amp; Authorization</a></li>
<li><a href="#startup-logging">Startup Logging</a></li>
<li><a href="#request-logging">Request Logging</a></li>
<li><a href="#enabling-metrics">Enabling Metrics</a></li>
<li><a href="#emitting-metrics">Emitting Metrics</a></li>
<li><a href="#metadata-storage">Metadata Storage</a></li>
<li><a href="#deep-storage">Deep Storage</a></li>
<li><a href="#task-logging">Task Logging</a></li>
<li><a href="#overlord-discovery">Overlord Discovery</a></li>
<li><a href="#coordinator-discovery">Coordinator Discovery</a></li>
<li><a href="#announcing-segments">Announcing Segments</a></li>
<li><a href="#javascript">JavaScript</a></li>
<li><a href="#double-column-storage">Double Column Storage</a></li>
</ul></li>
<li><a href="#master-server">Master Server</a>

<ul>
<li><a href="#coordinator">Coordinator</a>

<ul>
<li><a href="#static-configuration">Static Configuration</a>

<ul>
<li><a href="#coordinator-process-config">Process Config</a></li>
<li><a href="#coordinator-operation">Coordinator Operation</a></li>
<li><a href="#segment-management">Segment Management</a></li>
<li><a href="#metadata-retrieval">Metadata Retrieval</a></li>
</ul></li>
<li><a href="#dynamic-configuration">Dynamic Configuration</a>

<ul>
<li><a href="#lookups-dynamic-configuration">Lookups</a></li>
<li><a href="#compaction-dynamic-configuration">Compaction</a></li>
</ul></li>
</ul></li>
<li><a href="#overlord">Overlord</a>

<ul>
<li><a href="#overlord-static-configuration">Static Configuration</a>

<ul>
<li><a href="#overlord-process-config">Process Config</a></li>
<li><a href="#overlord-operations">Overlord Operations</a></li>
</ul></li>
<li><a href="#overlord-dynamic-configuration">Dynamic Configuration</a>

<ul>
<li><a href="#worker-select-strategy">Worker Select Strategy</a></li>
<li><a href="#autoscaler">Autoscaler</a></li>
</ul></li>
</ul></li>
</ul></li>
<li><a href="#data-server">Data Server</a>

<ul>
<li><a href="#middlemanager-and-peons">MiddleManager &amp; Peons</a>

<ul>
<li><a href="#middlemanager-process-config">Process Config</a></li>
<li><a href="#middlemanager-configuration">MiddleManager Configuration</a></li>
<li><a href="#peon-processing">Peon Processing</a></li>
<li><a href="#peon-query-configuration">Peon Query Configuration</a></li>
<li><a href="#peon-caching">Caching</a></li>
<li><a href="#additional-peon-configuration">Additional Peon Configuration</a></li>
</ul></li>
<li><a href="#historical">Historical</a>

<ul>
<li><a href="#historical-process-config">Process Configuration</a></li>
<li><a href="#historical-general-configuration">General Configuration</a></li>
<li><a href="#historical-query-configs">Query Configs</a></li>
<li><a href="#historical-caching">Caching</a></li>
</ul></li>
</ul></li>
<li><a href="#query-server">Query Server</a>

<ul>
<li><a href="#broker">Broker</a>

<ul>
<li><a href="#broker-process-configs">Process Config</a></li>
<li><a href="#broker-query-configuration">Query Configuration</a></li>
<li><a href="#sql">SQL</a></li>
<li><a href="#broker-caching">Caching</a></li>
<li><a href="#segment-discovery">Segment Discovery</a></li>
</ul></li>
</ul></li>
<li><a href="#cache-configuration">Caching</a></li>
<li><a href="#general-query-configuration">General Query Configuration</a></li>
<li><a href="#realtime-processes">Realtime processes (Deprecated)</a></li>
</ul>

<h2 id="recommended-configuration-file-organization">Recommended Configuration File Organization</h2>

<p>A recommended way of organizing Druid configuration files can be seen in the <code>conf</code> directory in the Druid package root, shown below:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>$ ls -R conf
druid       tranquility

conf/druid:
_common       broker        coordinator   historical    middleManager overlord

conf/druid/_common:
common.runtime.properties log4j2.xml

conf/druid/broker:
jvm.config         runtime.properties

conf/druid/coordinator:
jvm.config         runtime.properties

conf/druid/historical:
jvm.config         runtime.properties

conf/druid/middleManager:
jvm.config         runtime.properties

conf/druid/overlord:
jvm.config         runtime.properties

conf/tranquility:
kafka.json  server.json
</code></pre></div>
<p>Each directory has a <code>runtime.properties</code> file containing configuration properties for the specific Druid process correponding to the directory (e.g., <code>historical</code>).</p>

<p>The <code>jvm.config</code> files contain JVM flags such as heap sizing properties for each service.</p>

<p>Common properties shared by all services are placed in <code>_common/common.runtime.properties</code>.</p>

<h2 id="common-configurations">Common Configurations</h2>

<p>The properties under this section are common configurations that should be shared across all Druid services in a cluster.</p>

<h3 id="jvm-configuration-best-practices">JVM Configuration Best Practices</h3>

<p>There are four JVM parameters that we set on all of our processes:</p>

<ol>
<li> <code>-Duser.timezone=UTC</code> This sets the default timezone of the JVM to UTC. We always set this and do not test with other default timezones, so local timezones might work, but they also might uncover weird and interesting bugs. To issue queries in a non-UTC timezone, see <a href="../querying/granularities.html#period-granularities">query granularities</a></li>
<li> <code>-Dfile.encoding=UTF-8</code> This is similar to timezone, we test assuming UTF-8. Local encodings might work, but they also might result in weird and interesting bugs.</li>
<li> <code>-Djava.io.tmpdir=&lt;a path&gt;</code> Various parts of the system that interact with the file system do it via temporary files, and these files can get somewhat large. Many production systems are set up to have small (but fast) <code>/tmp</code> directories, which can be problematic with Druid so we recommend pointing the JVM’s tmp directory to something with a little more meat.</li>
<li> <code>-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager</code> This allows log4j2 to handle logs for non-log4j2 components (like jetty) which use standard java logging.</li>
</ol>

<h3 id="extensions">Extensions</h3>

<p>Many of Druid&#39;s external dependencies can be plugged in as modules. Extensions can be provided using the following configs:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.extensions.directory</code></td>
<td>The root extension directory where user can put extensions related files. Druid will load extensions stored under this directory.</td>
<td><code>extensions</code> (This is a relative path to Druid&#39;s working directory)</td>
</tr>
<tr>
<td><code>druid.extensions.hadoopDependenciesDir</code></td>
<td>The root hadoop dependencies directory where user can put hadoop related dependencies files. Druid will load the dependencies based on the hadoop coordinate specified in the hadoop index task.</td>
<td><code>hadoop-dependencies</code> (This is a relative path to Druid&#39;s working directory</td>
</tr>
<tr>
<td><code>druid.extensions.loadList</code></td>
<td>A JSON array of extensions to load from extension directories by Druid. If it is not specified, its value will be <code>null</code> and Druid will load all the extensions under <code>druid.extensions.directory</code>. If its value is empty list <code>[]</code>, then no extensions will be loaded at all. It is also allowed to specify absolute path of other custom extensions not stored in the common extensions directory.</td>
<td>null</td>
</tr>
<tr>
<td><code>druid.extensions.searchCurrentClassloader</code></td>
<td>This is a boolean flag that determines if Druid will search the main classloader for extensions.  It defaults to true but can be turned off if you have reason to not automatically add all modules on the classpath.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.extensions.useExtensionClassloaderFirst</code></td>
<td>This is a boolean flag that determines if Druid extensions should prefer loading classes from their own jars rather than jars bundled with Druid. If false, extensions must be compatible with classes provided by any jars bundled with Druid. If true, extensions may depend on conflicting versions.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.extensions.hadoopContainerDruidClasspath</code></td>
<td>Hadoop Indexing launches hadoop jobs and this configuration provides way to explicitly set the user classpath for the hadoop job. By default this is computed automatically by druid based on the druid process classpath and set of extensions. However, sometimes you might want to be explicit to resolve dependency conflicts between druid and hadoop.</td>
<td>null</td>
</tr>
<tr>
<td><code>druid.extensions.addExtensionsToHadoopContainer</code></td>
<td>Only applicable if <code>druid.extensions.hadoopContainerDruidClasspath</code> is provided. If set to true, then extensions specified in the loadList are added to hadoop container classpath. Note that when <code>druid.extensions.hadoopContainerDruidClasspath</code> is not provided then extensions are always added to hadoop container classpath.</td>
<td>false</td>
</tr>
</tbody></table>

<h3 id="modules">Modules</h3>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.modules.excludeList</code></td>
<td>A JSON array of canonical class names (e. g. <code>&quot;org.apache.druid.somepackage.SomeModule&quot;</code>) of module classes which shouldn&#39;t be loaded, even if they are found in extensions specified by <code>druid.extensions.loadList</code>, or in the list of core modules specified to be loaded on a particular Druid process type. Useful when some useful extension contains some module, which shouldn&#39;t be loaded on some Druid process type because some dependencies of that module couldn&#39;t be satisfied.</td>
<td>[]</td>
</tr>
</tbody></table>

<h3 id="zookeeper">Zookeeper</h3>

<p>We recommend just setting the base ZK path and the ZK service host, but all ZK paths that Druid uses can be overwritten to absolute paths.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.zk.paths.base</code></td>
<td>Base Zookeeper path.</td>
<td><code>/druid</code></td>
</tr>
<tr>
<td><code>druid.zk.service.host</code></td>
<td>The ZooKeeper hosts to connect to. This is a REQUIRED property and therefore a host address must be supplied.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.zk.service.user</code></td>
<td>The username to authenticate with ZooKeeper. This is an optional property.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.zk.service.pwd</code></td>
<td>The <a href="../operations/password-provider.html">Password Provider</a> or the string password to authenticate with ZooKeeper. This is an optional property.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.zk.service.authScheme</code></td>
<td>digest is the only authentication scheme supported.</td>
<td>digest</td>
</tr>
</tbody></table>

<h4 id="zookeeper-behavior">Zookeeper Behavior</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.zk.service.sessionTimeoutMs</code></td>
<td>ZooKeeper session timeout, in milliseconds.</td>
<td><code>30000</code></td>
</tr>
<tr>
<td><code>druid.zk.service.compress</code></td>
<td>Boolean flag for whether or not created Znodes should be compressed.</td>
<td><code>true</code></td>
</tr>
<tr>
<td><code>druid.zk.service.acl</code></td>
<td>Boolean flag for whether or not to enable ACL security for ZooKeeper. If ACL is enabled, zNode creators will have all permissions.</td>
<td><code>false</code></td>
</tr>
</tbody></table>

<h4 id="path-configuration">Path Configuration</h4>

<p>Druid interacts with ZK through a set of standard path configurations. We recommend just setting the base ZK path, but all ZK paths that Druid uses can be overwritten to absolute paths.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.zk.paths.base</code></td>
<td>Base Zookeeper path.</td>
<td><code>/druid</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.propertiesPath</code></td>
<td>Zookeeper properties path.</td>
<td><code>${druid.zk.paths.base}/properties</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.announcementsPath</code></td>
<td>Druid process announcement path.</td>
<td><code>${druid.zk.paths.base}/announcements</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.liveSegmentsPath</code></td>
<td>Current path for where Druid processes announce their segments.</td>
<td><code>${druid.zk.paths.base}/segments</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.loadQueuePath</code></td>
<td>Entries here cause Historical processes to load and drop segments.</td>
<td><code>${druid.zk.paths.base}/loadQueue</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.coordinatorPath</code></td>
<td>Used by the Coordinator for leader election.</td>
<td><code>${druid.zk.paths.base}/coordinator</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.servedSegmentsPath</code></td>
<td>@Deprecated. Legacy path for where Druid processes announce their segments.</td>
<td><code>${druid.zk.paths.base}/servedSegments</code></td>
</tr>
</tbody></table>

<p>The indexing service also uses its own set of paths. These configs can be included in the common configuration.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.zk.paths.indexer.base</code></td>
<td>Base zookeeper path for</td>
<td><code>${druid.zk.paths.base}/indexer</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.indexer.announcementsPath</code></td>
<td>Middle managers announce themselves here.</td>
<td><code>${druid.zk.paths.indexer.base}/announcements</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.indexer.tasksPath</code></td>
<td>Used to assign tasks to MiddleManagers.</td>
<td><code>${druid.zk.paths.indexer.base}/tasks</code></td>
</tr>
<tr>
<td><code>druid.zk.paths.indexer.statusPath</code></td>
<td>Parent path for announcement of task statuses.</td>
<td><code>${druid.zk.paths.indexer.base}/status</code></td>
</tr>
</tbody></table>

<p>If <code>druid.zk.paths.base</code> and <code>druid.zk.paths.indexer.base</code> are both set, and none of the other <code>druid.zk.paths.*</code> or <code>druid.zk.paths.indexer.*</code> values are set, then the other properties will be evaluated relative to their respective <code>base</code>.
For example, if <code>druid.zk.paths.base</code> is set to <code>/druid1</code> and <code>druid.zk.paths.indexer.base</code> is set to <code>/druid2</code> then <code>druid.zk.paths.announcementsPath</code> will default to <code>/druid1/announcements</code> while <code>druid.zk.paths.indexer.announcementsPath</code> will default to <code>/druid2/announcements</code>.</p>

<p>The following path is used for service discovery. It is <strong>not</strong> affected by <code>druid.zk.paths.base</code> and <strong>must</strong> be specified separately.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.discovery.curator.path</code></td>
<td>Services announce themselves under this ZooKeeper path.</td>
<td><code>/druid/discovery</code></td>
</tr>
</tbody></table>

<h3 id="exhibitor">Exhibitor</h3>

<p><a href="https://github.com/Netflix/exhibitor/wiki">Exhibitor</a> is a supervisor system for ZooKeeper.
Exhibitor can dynamically scale-up/down the cluster of ZooKeeper servers.
Druid can update self-owned list of ZooKeeper servers through Exhibitor without restarting.
That is, it allows Druid to keep the connections of Exhibitor-supervised ZooKeeper servers.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.exhibitor.service.hosts</code></td>
<td>A JSON array which contains the hostnames of Exhibitor instances. Please specify this property if you want to use Exhibitor-supervised cluster.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.exhibitor.service.port</code></td>
<td>The REST port used to connect to Exhibitor.</td>
<td><code>8080</code></td>
</tr>
<tr>
<td><code>druid.exhibitor.service.restUriPath</code></td>
<td>The path of the REST call used to get the server set.</td>
<td><code>/exhibitor/v1/cluster/list</code></td>
</tr>
<tr>
<td><code>druid.exhibitor.service.useSsl</code></td>
<td>Boolean flag for whether or not to use https protocol.</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>druid.exhibitor.service.pollingMs</code></td>
<td>How ofter to poll the exhibitors for the list</td>
<td><code>10000</code></td>
</tr>
</tbody></table>

<p>Note that <code>druid.zk.service.host</code> is used as a backup in case an Exhibitor instance can&#39;t be contacted and therefore should still be set.</p>

<h3 id="tls">TLS</h3>

<h4 id="general-configuration">General Configuration</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.enablePlaintextPort</code></td>
<td>Enable/Disable HTTP connector.</td>
<td><code>true</code></td>
</tr>
<tr>
<td><code>druid.enableTlsPort</code></td>
<td>Enable/Disable HTTPS connector.</td>
<td><code>false</code></td>
</tr>
</tbody></table>

<p>Although not recommended but both HTTP and HTTPS connectors can be enabled at a time and respective ports are configurable using <code>druid.plaintextPort</code>
and <code>druid.tlsPort</code> properties on each process. Please see <code>Configuration</code> section of individual processes to check the valid and default values for these ports.</p>

<h4 id="jetty-server-tls-configuration">Jetty Server TLS Configuration</h4>

<p>Druid uses Jetty as an embedded web server. To get familiar with TLS/SSL in general and related concepts like Certificates etc.
reading this <a href="http://www.eclipse.org/jetty/documentation/9.4.x/configuring-ssl.html">Jetty documentation</a> might be helpful.
To get more in depth knowledge of TLS/SSL support in Java in general, please refer to this <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html">guide</a>.
The documentation <a href="http://www.eclipse.org/jetty/documentation/9.4.x/configuring-ssl.html#configuring-sslcontextfactory">here</a>
can help in understanding TLS/SSL configurations listed below. This <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html">document</a> lists all the possible
values for the below mentioned configs among others provided by Java implementation.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
<th>Required</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.server.https.keyStorePath</code></td>
<td>The file path or URL of the TLS/SSL Key store.</td>
<td>none</td>
<td>yes</td>
</tr>
<tr>
<td><code>druid.server.https.keyStoreType</code></td>
<td>The type of the key store.</td>
<td>none</td>
<td>yes</td>
</tr>
<tr>
<td><code>druid.server.https.certAlias</code></td>
<td>Alias of TLS/SSL certificate for the connector.</td>
<td>none</td>
<td>yes</td>
</tr>
<tr>
<td><code>druid.server.https.keyStorePassword</code></td>
<td>The <a href="../operations/password-provider.html">Password Provider</a> or String password for the Key Store.</td>
<td>none</td>
<td>yes</td>
</tr>
</tbody></table>

<p>Following table contains non-mandatory advanced configuration options, use caution.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
<th>Required</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.server.https.keyManagerFactoryAlgorithm</code></td>
<td>Algorithm to use for creating KeyManager, more details <a href="https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManager">here</a>.</td>
<td><code>javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm()</code></td>
<td>no</td>
</tr>
<tr>
<td><code>druid.server.https.keyManagerPassword</code></td>
<td>The <a href="../operations/password-provider.html">Password Provider</a> or String password for the Key Manager.</td>
<td>none</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.server.https.includeCipherSuites</code></td>
<td>List of cipher suite names to include. You can either use the exact cipher suite name or a regular expression.</td>
<td>Jetty&#39;s default include cipher list</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.server.https.excludeCipherSuites</code></td>
<td>List of cipher suite names to exclude. You can either use the exact cipher suite name or a regular expression.</td>
<td>Jetty&#39;s default exclude cipher list</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.server.https.includeProtocols</code></td>
<td>List of exact protocols names to include.</td>
<td>Jetty&#39;s default include protocol list</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.server.https.excludeProtocols</code></td>
<td>List of exact protocols names to exclude.</td>
<td>Jetty&#39;s default exclude protocol list</td>
<td>no</td>
</tr>
</tbody></table>

<h4 id="internal-client-tls-configuration-requires-simple-client-sslcontext-extension">Internal Client TLS Configuration (requires <code>simple-client-sslcontext</code> extension)</h4>

<p>These properties apply to the SSLContext that will be provided to the internal HTTP client that Druid services use to communicate with each other. These properties require the <code>simple-client-sslcontext</code> extension to be loaded. Without it, Druid services will be unable to communicate with each other when TLS is enabled.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
<th>Required</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.client.https.protocol</code></td>
<td>SSL protocol to use.</td>
<td><code>TLSv1.2</code></td>
<td>no</td>
</tr>
<tr>
<td><code>druid.client.https.trustStoreType</code></td>
<td>The type of the key store where trusted root certificates are stored.</td>
<td><code>java.security.KeyStore.getDefaultType()</code></td>
<td>no</td>
</tr>
<tr>
<td><code>druid.client.https.trustStorePath</code></td>
<td>The file path or URL of the TLS/SSL Key store where trusted root certificates are stored.</td>
<td>none</td>
<td>yes</td>
</tr>
<tr>
<td><code>druid.client.https.trustStoreAlgorithm</code></td>
<td>Algorithm to be used by TrustManager to validate certificate chains</td>
<td><code>javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()</code></td>
<td>no</td>
</tr>
<tr>
<td><code>druid.client.https.trustStorePassword</code></td>
<td>The <a href="../operations/password-provider.html">Password Provider</a> or String password for the Trust Store.</td>
<td>none</td>
<td>yes</td>
</tr>
</tbody></table>

<p>This <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html">document</a> lists all the possible
values for the above mentioned configs among others provided by Java implementation.</p>

<h3 id="authentication-and-authorization">Authentication and Authorization</h3>

<table><thead>
<tr>
<th>Property</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
<th>Required</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.auth.authenticatorChain</code></td>
<td>JSON List of Strings</td>
<td>List of Authenticator type names</td>
<td>[&quot;allowAll&quot;]</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.escalator.type</code></td>
<td>String</td>
<td>Type of the Escalator that should be used for internal Druid communications. This Escalator must use an authentication scheme that is supported by an Authenticator in <code>druid.auth.authenticationChain</code>.</td>
<td>&quot;noop&quot;</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.auth.authorizers</code></td>
<td>JSON List of Strings</td>
<td>List of Authorizer type names</td>
<td>[&quot;allowAll&quot;]</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.auth.unsecuredPaths</code></td>
<td>List of Strings</td>
<td>List of paths for which security checks will not be performed. All requests to these paths will be allowed.</td>
<td>[]</td>
<td>no</td>
</tr>
<tr>
<td><code>druid.auth.allowUnauthenticatedHttpOptions</code></td>
<td>Boolean</td>
<td>If true, skip authentication checks for HTTP OPTIONS requests. This is needed for certain use cases, such as supporting CORS pre-flight requests. Note that disabling authentication checks for OPTIONS requests will allow unauthenticated users to determine what Druid endpoints are valid (by checking if the OPTIONS request returns a 200 instead of 404), so enabling this option may reveal information about server configuration, including information about what extensions are loaded (if those extensions add endpoints).</td>
<td>false</td>
<td>no</td>
</tr>
</tbody></table>

<p>For more information, please see <a href="../design/auth.html">Authentication and Authorization</a>.</p>

<p>For configuration options for specific auth extensions, please refer to the extension documentation.</p>

<h3 id="startup-logging">Startup Logging</h3>

<p>All processes can log debugging information on startup.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.startup.logging.logProperties</code></td>
<td>Log all properties on startup (from common.runtime.properties, runtime.properties, and the JVM command line).</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.startup.logging.maskProperties</code></td>
<td>Masks sensitive properties (passwords, for example) containing theses words.</td>
<td>[&quot;password&quot;]</td>
</tr>
</tbody></table>

<p>Note that some sensitive information may be logged if these settings are enabled.</p>

<h3 id="request-logging">Request Logging</h3>

<p>All processes that can serve queries can also log the query requests they see. Broker processes can additionally log the SQL requests (both from HTTP and JDBC) they see.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.type</code></td>
<td>Choices: noop, file, emitter, slf4j, filtered, composing, switching. How to log every query request.</td>
<td>[required to configure request logging]</td>
</tr>
</tbody></table>

<p>Note that, you can enable sending all the HTTP requests to log by setting  &quot;org.apache.druid.jetty.RequestLog&quot; to DEBUG level. See <a href="../configuration/logging.html">Logging</a></p>

<h4 id="file-request-logging">File Request Logging</h4>

<p>Daily request logs are stored on disk.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.dir</code></td>
<td>Historical, Realtime and Broker processes maintain request logs of all of the requests they get (interacton is via POST, so normal request logs don’t generally capture information about the actual query), this specifies the directory to store the request logs in</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.request.logging.filePattern</code></td>
<td><a href="http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html">Joda datetime format</a> for each file</td>
<td>&quot;yyyy-MM-dd&#39;.log&#39;&quot;</td>
</tr>
</tbody></table>

<p>The format of request logs is TSV, one line per requests, with five fields: timestamp, remote_addr, native_query, query_context, sql_query.</p>

<p>For native JSON request, the <code>sql_query</code> field is empty. Example
<code>
2019-01-14T10:00:00.000Z        127.0.0.1   {&quot;queryType&quot;:&quot;topN&quot;,&quot;dataSource&quot;:{&quot;type&quot;:&quot;table&quot;,&quot;name&quot;:&quot;wikiticker&quot;},&quot;virtualColumns&quot;:[],&quot;dimension&quot;:{&quot;type&quot;:&quot;LegacyDimensionSpec&quot;,&quot;dimension&quot;:&quot;page&quot;,&quot;outputName&quot;:&quot;page&quot;,&quot;outputType&quot;:&quot;STRING&quot;},&quot;metric&quot;:{&quot;type&quot;:&quot;LegacyTopNMetricSpec&quot;,&quot;metric&quot;:&quot;count&quot;},&quot;threshold&quot;:10,&quot;intervals&quot;:{&quot;type&quot;:&quot;LegacySegmentSpec&quot;,&quot;intervals&quot;:[&quot;2015-09-12T00:00:00.000Z/2015-09-13T00:00:00.000Z&quot;]},&quot;filter&quot;:null,&quot;granularity&quot;:{&quot;type&quot;:&quot;all&quot;},&quot;aggregations&quot;:[{&quot;type&quot;:&quot;count&quot;,&quot;name&quot;:&quot;count&quot;}],&quot;postAggregations&quot;:[],&quot;context&quot;:{&quot;queryId&quot;:&quot;74c2d540-d700-4ebd-b4a9-3d02397976aa&quot;},&quot;descending&quot;:false}    {&quot;query/time&quot;:100,&quot;query/bytes&quot;:800,&quot;success&quot;:true,&quot;identity&quot;:&quot;user1&quot;}
</code></p>

<p>For SQL query request, the <code>native_query</code> field is empty. Example
<code>
2019-01-14T10:00:00.000Z        127.0.0.1       {&quot;sqlQuery/time&quot;:100,&quot;sqlQuery/bytes&quot;:600,&quot;success&quot;:true,&quot;identity&quot;:&quot;user1&quot;}  {&quot;query&quot;:&quot;SELECT page, COUNT(*) AS Edits FROM wikiticker WHERE __time BETWEEN TIMESTAMP &#39;2015-09-12 00:00:00&#39; AND TIMESTAMP &#39;2015-09-13 00:00:00&#39; GROUP BY page ORDER BY Edits DESC LIMIT 10&quot;,&quot;context&quot;:{&quot;sqlQueryId&quot;:&quot;c9d035a0-5ffd-4a79-a865-3ffdadbb5fdd&quot;,&quot;nativeQueryIds&quot;:&quot;[490978e4-f5c7-4cf6-b174-346e63cf8863]&quot;}}
</code></p>

<h4 id="emitter-request-logging">Emitter Request Logging</h4>

<p>Every request is emitted to some external location.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.feed</code></td>
<td>Feed name for requests.</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="slf4j-request-logging">SLF4J Request Logging</h4>

<p>Every request is logged via SLF4J. Native queries are serialized into JSON in the log message regardless of the SJF4J format specification. They will be logged under the class <code>org.apache.druid.server.log.LoggingRequestLogger</code>.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.setMDC</code></td>
<td>If MDC entries should be set in the log entry. Your logging setup still has to be configured to handle MDC to format this data</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.request.logging.setContextMDC</code></td>
<td>If the druid query <code>context</code> should be added to the MDC entries. Has no effect unless <code>setMDC</code> is <code>true</code></td>
<td>false</td>
</tr>
</tbody></table>

<p>For native query, the following MDC fields are populated with <code>setMDC</code>:</p>

<table><thead>
<tr>
<th>MDC field</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td><code>queryId</code></td>
<td>The query ID</td>
</tr>
<tr>
<td><code>sqlQueryId</code></td>
<td>The SQL query ID if this query is part of a SQL request</td>
</tr>
<tr>
<td><code>dataSource</code></td>
<td>The datasource the query was against</td>
</tr>
<tr>
<td><code>queryType</code></td>
<td>The type of the query</td>
</tr>
<tr>
<td><code>hasFilters</code></td>
<td>If the query has any filters</td>
</tr>
<tr>
<td><code>remoteAddr</code></td>
<td>The remote address of the requesting client</td>
</tr>
<tr>
<td><code>duration</code></td>
<td>The duration of the query interval</td>
</tr>
<tr>
<td><code>resultOrdering</code></td>
<td>The ordering of results</td>
</tr>
<tr>
<td><code>descending</code></td>
<td>If the query is a descending query</td>
</tr>
</tbody></table>

<h4 id="filtered-request-logging">Filtered Request Logging</h4>

<p>Filtered Request Logger filters requests based on a configurable query/time threshold (for native query) and sqlQuery/time threshold (for SQL query).
For native query, only request logs where query/time is above the threshold are emitted. For SQL query, only request logs where sqlQuery/time is above the threshold are emitted.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.queryTimeThresholdMs</code></td>
<td>Threshold value for query/time in milliseconds.</td>
<td>0 i.e no filtering</td>
</tr>
<tr>
<td><code>druid.request.logging.sqlQueryTimeThresholdMs</code></td>
<td>Threshold value for sqlQuery/time in milliseconds.</td>
<td>0 i.e no filtering</td>
</tr>
<tr>
<td><code>druid.request.logging.delegate.type</code></td>
<td>Type of delegate request logger to log requests.</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="composite-request-logging">Composite Request Logging</h4>

<p>Composite Request Logger emits request logs to multiple request loggers.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.loggerProviders</code></td>
<td>List of request loggers for emitting request logs.</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="switching-request-logging">Switching Request Logging</h4>

<p>Switching Request Logger routes native query&#39;s request logs to one request logger and SQL query&#39;s request logs to another request logger.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.request.logging.nativeQueryLogger</code></td>
<td>request logger for emitting native query&#39;s request logs.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.request.logging.sqlQueryLogger</code></td>
<td>request logger for emitting SQL query&#39;s request logs.</td>
<td>none</td>
</tr>
</tbody></table>

<h3 id="enabling-metrics">Enabling Metrics</h3>

<p>Druid processes periodically emit metrics and different metrics monitors can be included. Each process can overwrite the default list of monitors.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.monitoring.emissionPeriod</code></td>
<td>How often metrics are emitted.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.monitoring.monitors</code></td>
<td>Sets list of Druid monitors used by a process. See below for names and more information. For example, you can specify monitors for a Broker with <code>druid.monitoring.monitors=[&quot;org.apache.druid.java.util.metrics.SysMonitor&quot;,&quot;org.apache.druid.java.util.metrics.JvmMonitor&quot;]</code>.</td>
<td>none (no monitors)</td>
</tr>
</tbody></table>

<p>The following monitors are available:</p>

<table><thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td><code>org.apache.druid.client.cache.CacheMonitor</code></td>
<td>Emits metrics (to logs) about the segment results cache for Historical and Broker processes. Reports typical cache statistics include hits, misses, rates, and size (bytes and number of entries), as well as timeouts and and errors.</td>
</tr>
<tr>
<td><code>org.apache.druid.java.util.metrics.SysMonitor</code></td>
<td>This uses the <a href="https://github.com/hyperic/sigar">SIGAR library</a> to report on various system activities and statuses.</td>
</tr>
<tr>
<td><code>org.apache.druid.server.metrics.HistoricalMetricsMonitor</code></td>
<td>Reports statistics on Historical processes.</td>
</tr>
<tr>
<td><code>org.apache.druid.java.util.metrics.JvmMonitor</code></td>
<td>Reports various JVM-related statistics.</td>
</tr>
<tr>
<td><code>org.apache.druid.java.util.metrics.JvmCpuMonitor</code></td>
<td>Reports statistics of CPU consumption by the JVM.</td>
</tr>
<tr>
<td><code>org.apache.druid.java.util.metrics.CpuAcctDeltaMonitor</code></td>
<td>Reports consumed CPU as per the cpuacct cgroup.</td>
</tr>
<tr>
<td><code>org.apache.druid.java.util.metrics.JvmThreadsMonitor</code></td>
<td>Reports Thread statistics in the JVM, like numbers of total, daemon, started, died threads.</td>
</tr>
<tr>
<td><code>org.apache.druid.segment.realtime.RealtimeMetricsMonitor</code></td>
<td>Reports statistics on Realtime processes.</td>
</tr>
<tr>
<td><code>org.apache.druid.server.metrics.EventReceiverFirehoseMonitor</code></td>
<td>Reports how many events have been queued in the EventReceiverFirehose.</td>
</tr>
<tr>
<td><code>org.apache.druid.server.metrics.QueryCountStatsMonitor</code></td>
<td>Reports how many queries have been successful/failed/interrupted.</td>
</tr>
<tr>
<td><code>org.apache.druid.server.emitter.HttpEmittingMonitor</code></td>
<td>Reports internal metrics of <code>http</code> or <code>parametrized</code> emitter (see below). Must not be used with another emitter type. See the description of the metrics here: https://github.com/apache/incubator-druid/pull/4973.</td>
</tr>
</tbody></table>

<h3 id="emitting-metrics">Emitting Metrics</h3>

<p>The Druid servers <a href="../operations/metrics.html">emit various metrics</a> and alerts via something we call an Emitter. There are three emitter implementations included with the code, a &quot;noop&quot; emitter, one that just logs to log4j (&quot;logging&quot;, which is used by default if no emitter is specified) and one that does POSTs of JSON events to a server (&quot;http&quot;). The properties for using the logging emitter are described below.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.emitter</code></td>
<td>Setting this value to &quot;noop&quot;, &quot;logging&quot;, &quot;http&quot; or &quot;parametrized&quot; will initialize one of the emitter modules. value &quot;composing&quot; can be used to initialize multiple emitter modules.</td>
<td>noop</td>
</tr>
</tbody></table>

<h4 id="logging-emitter-module">Logging Emitter Module</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.emitter.logging.loggerClass</code></td>
<td>Choices: HttpPostEmitter, LoggingEmitter, NoopServiceEmitter, ServiceEmitter. The class used for logging.</td>
<td>LoggingEmitter</td>
</tr>
<tr>
<td><code>druid.emitter.logging.logLevel</code></td>
<td>Choices: debug, info, warn, error. The log level at which message are logged.</td>
<td>info</td>
</tr>
</tbody></table>

<h4 id="http-emitter-module">Http Emitter Module</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.emitter.http.flushMillis</code></td>
<td>How often the internal message buffer is flushed (data is sent).</td>
<td>60000</td>
</tr>
<tr>
<td><code>druid.emitter.http.flushCount</code></td>
<td>How many messages the internal message buffer can hold before flushing (sending).</td>
<td>500</td>
</tr>
<tr>
<td><code>druid.emitter.http.basicAuthentication</code></td>
<td>Login and password for authentification in &quot;login:password&quot; form, e. g. <code>druid.emitter.http.basicAuthentication=admin:adminpassword</code></td>
<td>not specified = no authentification</td>
</tr>
<tr>
<td><code>druid.emitter.http.flushTimeOut</code></td>
<td>The timeout after which an event should be sent to the endpoint, even if internal buffers are not filled, in milliseconds.</td>
<td>not specified = no timeout</td>
</tr>
<tr>
<td><code>druid.emitter.http.batchingStrategy</code></td>
<td>The strategy of how the batch is formatted. &quot;ARRAY&quot; means <code>[event1,event2]</code>, &quot;NEWLINES&quot; means <code>event1\nevent2</code>, ONLY_EVENTS means <code>event1event2</code>.</td>
<td>ARRAY</td>
</tr>
<tr>
<td><code>druid.emitter.http.maxBatchSize</code></td>
<td>The maximum batch size, in bytes.</td>
<td>the minimum of (10% of JVM heap size divided by 2) or (5191680 (i. e. 5 MB))</td>
</tr>
<tr>
<td><code>druid.emitter.http.batchQueueSizeLimit</code></td>
<td>The maximum number of batches in emitter queue, if there are problems with emitting.</td>
<td>the maximum of (2) or (10% of the JVM heap size divided by 5MB)</td>
</tr>
<tr>
<td><code>druid.emitter.http.minHttpTimeoutMillis</code></td>
<td>If the speed of filling batches imposes timeout smaller than that, not even trying to send batch to endpoint, because it will likely fail, not being able to send the data that fast. Configure this depending based on emitter/successfulSending/minTimeMs metric. Reasonable values are 10ms..100ms.</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.emitter.http.recipientBaseUrl</code></td>
<td>The base URL to emit messages to. Druid will POST JSON to be consumed at the HTTP endpoint specified by this property.</td>
<td>none, required config</td>
</tr>
</tbody></table>

<h4 id="http-emitter-module-tls-overrides">Http Emitter Module TLS Overrides</h4>

<p>When emitting events to a TLS-enabled receiver, the Http Emitter will by default use an SSLContext obtained via the process described at <a href="../operations/tls-support.html#druids-internal-communication-over-tls">Druid&#39;s internal communication over TLS</a>, i.e., the same SSLContext that would be used for internal communications between Druid processes.</p>

<p>In some use cases it may be desirable to have the Http Emitter use its own separate truststore configuration. For example, there may be organizational policies that prevent the TLS-enabled metrics receiver&#39;s certificate from being added to the same truststore used by Druid&#39;s internal HTTP client.</p>

<p>The following properties allow the Http Emitter to use its own truststore configuration when building its SSLContext.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.emitter.http.ssl.useDefaultJavaContext</code></td>
<td>If set to true, the HttpEmitter will use <code>SSLContext.getDefault()</code>, the default Java SSLContext, and all other properties below are ignored.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.emitter.http.ssl.trustStorePath</code></td>
<td>The file path or URL of the TLS/SSL Key store where trusted root certificates are stored. If this is unspecified, the Http Emitter will use the same SSLContext as Druid&#39;s internal HTTP client, as described in the beginning of this section, and all other properties below are ignored.</td>
<td>null</td>
</tr>
<tr>
<td><code>druid.emitter.http.ssl.trustStoreType</code></td>
<td>The type of the key store where trusted root certificates are stored.</td>
<td><code>java.security.KeyStore.getDefaultType()</code></td>
</tr>
<tr>
<td><code>druid.emitter.http.ssl.trustStoreAlgorithm</code></td>
<td>Algorithm to be used by TrustManager to validate certificate chains</td>
<td><code>javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()</code></td>
</tr>
<tr>
<td><code>druid.emitter.http.ssl.trustStorePassword</code></td>
<td>The <a href="../operations/password-provider.html">Password Provider</a> or String password for the Trust Store.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.emitter.http.ssl.protocol</code></td>
<td>TLS protocol to use.</td>
<td>&quot;TLSv1.2&quot;</td>
</tr>
</tbody></table>

<h4 id="parametrized-http-emitter-module">Parametrized Http Emitter Module</h4>

<p><code>druid.emitter.parametrized.httpEmitting.*</code> configs correspond to the configs of Http Emitter Modules, see above.
Except <code>recipientBaseUrl</code>. E. g. <code>druid.emitter.parametrized.httpEmitting.flushMillis</code>,
<code>druid.emitter.parametrized.httpEmitting.flushCount</code>, <code>druid.emitter.parametrized.httpEmitting.ssl.trustStorePath</code>, etc.</p>

<p>The additional configs are:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.emitter.parametrized.recipientBaseUrlPattern</code></td>
<td>The URL pattern to send an event to, based on the event&#39;s feed. E. g. <code>http://foo.bar/{feed}</code>, that will send event to <code>http://foo.bar/metrics</code> if the event&#39;s feed is &quot;metrics&quot;.</td>
<td>none, required config</td>
</tr>
</tbody></table>

<h4 id="composing-emitter-module">Composing Emitter Module</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.emitter.composing.emitters</code></td>
<td>List of emitter modules to load e.g. [&quot;logging&quot;,&quot;http&quot;].</td>
<td>[]</td>
</tr>
</tbody></table>

<h4 id="graphite-emitter">Graphite Emitter</h4>

<p>To use graphite as emitter set <code>druid.emitter=graphite</code>. For configuration details please follow this <a href="../development/extensions-contrib/graphite.html">link</a>.</p>

<h3 id="metadata-storage">Metadata Storage</h3>

<p>These properties specify the jdbc connection and other configuration around the metadata storage. The only processes that connect to the metadata storage with these properties are the <a href="../design/coordinator.html">Coordinator</a>, <a href="../design/overlord.html">Overlord</a> and <a href="../design/realtime.html">Realtime Processes</a>.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.metadata.storage.type</code></td>
<td>The type of metadata storage to use. Choose from &quot;mysql&quot;, &quot;postgresql&quot;, or &quot;derby&quot;.</td>
<td>derby</td>
</tr>
<tr>
<td><code>druid.metadata.storage.connector.connectURI</code></td>
<td>The jdbc uri for the database to connect to</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.metadata.storage.connector.user</code></td>
<td>The username to connect with.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.metadata.storage.connector.password</code></td>
<td>The <a href="../operations/password-provider.html">Password Provider</a> or String password used to connect with.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.metadata.storage.connector.createTables</code></td>
<td>If Druid requires a table and it doesn&#39;t exist, create it?</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.base</code></td>
<td>The base name for tables.</td>
<td>druid</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.dataSource</code></td>
<td>The table to use to look for dataSources which created by <a href="../development/extensions-core/kafka-ingestion.html">Kafka Indexing Service</a>.</td>
<td>druid_dataSource</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.pendingSegments</code></td>
<td>The table to use to look for pending segments.</td>
<td>druid_pendingSegments</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.segments</code></td>
<td>The table to use to look for segments.</td>
<td>druid_segments</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.rules</code></td>
<td>The table to use to look for segment load/drop rules.</td>
<td>druid_rules</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.config</code></td>
<td>The table to use to look for configs.</td>
<td>druid_config</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.tasks</code></td>
<td>Used by the indexing service to store tasks.</td>
<td>druid_tasks</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.taskLog</code></td>
<td>Used by the indexing service to store task logs.</td>
<td>druid_taskLog</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.taskLock</code></td>
<td>Used by the indexing service to store task locks.</td>
<td>druid_taskLock</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.supervisors</code></td>
<td>Used by the indexing service to store supervisor configurations.</td>
<td>druid_supervisors</td>
</tr>
<tr>
<td><code>druid.metadata.storage.tables.audit</code></td>
<td>The table to use for audit history of configuration changes e.g. Coordinator rules.</td>
<td>druid_audit</td>
</tr>
</tbody></table>

<h3 id="deep-storage">Deep Storage</h3>

<p>The configurations concern how to push and pull <a href="../design/segments.html">Segments</a> from deep storage.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.storage.type</code></td>
<td>Choices:local, noop, s3, hdfs, c*. The type of deep storage to use.</td>
<td>local</td>
</tr>
</tbody></table>

<h4 id="local-deep-storage">Local Deep Storage</h4>

<p>Local deep storage uses the local filesystem.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.storage.storageDirectory</code></td>
<td>Directory on disk to use as deep storage.</td>
<td>/tmp/druid/localStorage</td>
</tr>
</tbody></table>

<h4 id="noop-deep-storage">Noop Deep Storage</h4>

<p>This deep storage doesn&#39;t do anything. There are no configs.</p>

<h4 id="s3-deep-storage">S3 Deep Storage</h4>

<p>This deep storage is used to interface with Amazon&#39;s S3. Note that the <code>druid-s3-extensions</code> extension must be loaded.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.s3.accessKey</code></td>
<td>The access key to use to access S3.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.s3.secretKey</code></td>
<td>The secret key to use to access S3.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.storage.bucket</code></td>
<td>S3 bucket name.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.storage.baseKey</code></td>
<td>S3 object key prefix for storage.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.storage.disableAcl</code></td>
<td>Boolean flag for ACL.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.storage.archiveBucket</code></td>
<td>S3 bucket name for archiving when running the <em>archive task</em>.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.storage.archiveBaseKey</code></td>
<td>S3 object key prefix for archiving.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.storage.useS3aSchema</code></td>
<td>If true, use the &quot;s3a&quot; filesystem when using Hadoop-based ingestion. If false, the &quot;s3n&quot; filesystem will be used. Only affects Hadoop-based ingestion.</td>
<td>false</td>
</tr>
</tbody></table>

<h4 id="hdfs-deep-storage">HDFS Deep Storage</h4>

<p>This deep storage is used to interface with HDFS.  Note that the <code>druid-hdfs-storage</code> extension must be loaded.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.storage.storageDirectory</code></td>
<td>HDFS directory to use as deep storage.</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="cassandra-deep-storage">Cassandra Deep Storage</h4>

<p>This deep storage is used to interface with Cassandra.  Note that the <code>druid-cassandra-storage</code> extension must be loaded.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.storage.host</code></td>
<td>Cassandra host.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.storage.keyspace</code></td>
<td>Cassandra key space.</td>
<td>none</td>
</tr>
</tbody></table>

<h3 id="task-logging">Task Logging</h3>

<p>If you are running the indexing service in remote mode, the task logs must be stored in S3, Azure Blob Store, Google Cloud Storage or HDFS.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.type</code></td>
<td>Choices:noop, s3, azure, google, hdfs, file. Where to store task logs</td>
<td>file</td>
</tr>
</tbody></table>

<p>You can also configure the Overlord to automatically retain the task logs in log directory and entries in task-related metadata storage tables only for last x milliseconds by configuring following additional properties.
Caution: Automatic log file deletion typically works based on log file modification timestamp on the backing store, so large clock skews between druid processes and backing store nodes might result in un-intended behavior.  </p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.kill.enabled</code></td>
<td>Boolean value for whether to enable deletion of old task logs. If set to true, Overlord will submit kill tasks periodically based on <code>druid.indexer.logs.kill.delay</code> specified, which will delete task logs from the log directory as well as tasks and tasklogs table entries in metadata storage except for tasks created in the last <code>druid.indexer.logs.kill.durationToRetain</code> period.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.indexer.logs.kill.durationToRetain</code></td>
<td>Required if kill is enabled. In milliseconds, task logs and entries in task-related metadata storage tables to be retained created in last x milliseconds.</td>
<td>None</td>
</tr>
<tr>
<td><code>druid.indexer.logs.kill.initialDelay</code></td>
<td>Optional. Number of milliseconds after Overlord start when first auto kill is run.</td>
<td>random value less than 300000 (5 mins)</td>
</tr>
<tr>
<td><code>druid.indexer.logs.kill.delay</code></td>
<td>Optional. Number of milliseconds of delay between successive executions of auto kill run.</td>
<td>21600000 (6 hours)</td>
</tr>
</tbody></table>

<h4 id="file-task-logs">File Task Logs</h4>

<p>Store task logs in the local filesystem.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.directory</code></td>
<td>Local filesystem path.</td>
<td>log</td>
</tr>
</tbody></table>

<h4 id="s3-task-logs">S3 Task Logs</h4>

<p>Store task logs in S3. Note that the <code>druid-s3-extensions</code> extension must be loaded.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.s3Bucket</code></td>
<td>S3 bucket name.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.indexer.logs.s3Prefix</code></td>
<td>S3 key prefix.</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="azure-blob-store-task-logs">Azure Blob Store Task Logs</h4>

<p>Store task logs in Azure Blob Store.</p>

<p>Note: The <code>druid-azure-extensions</code> extension must be loaded, and this uses the same storage account as the deep storage module for azure.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.container</code></td>
<td>The Azure Blob Store container to write logs to</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.indexer.logs.prefix</code></td>
<td>The path to prepend to logs</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="google-cloud-storage-task-logs">Google Cloud Storage Task Logs</h4>

<p>Store task logs in Google Cloud Storage.</p>

<p>Note: The <code>druid-google-extensions</code> extension must be loaded, and this uses the same storage settings as the deep storage module for google.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.bucket</code></td>
<td>The Google Cloud Storage bucket to write logs to</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.indexer.logs.prefix</code></td>
<td>The path to prepend to logs</td>
<td>none</td>
</tr>
</tbody></table>

<h4 id="hdfs-task-logs">HDFS Task Logs</h4>

<p>Store task logs in HDFS. Note that the <code>druid-hdfs-storage</code> extension must be loaded.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.logs.directory</code></td>
<td>The directory to store logs.</td>
<td>none</td>
</tr>
</tbody></table>

<h3 id="overlord-discovery">Overlord Discovery</h3>

<p>This config is used to find the <a href="../design/overlord.html">Overlord</a> using Curator service discovery. Only required if you are actually running an Overlord.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.selectors.indexing.serviceName</code></td>
<td>The druid.service name of the Overlord process. To start the Overlord with a different name, set it with this property.</td>
<td>druid/overlord</td>
</tr>
</tbody></table>

<h3 id="coordinator-discovery">Coordinator Discovery</h3>

<p>This config is used to find the <a href="../design/coordinator.html">Coordinator</a> using Curator service discovery. This config is used by the realtime indexing processes to get information about the segments loaded in the cluster.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.selectors.coordinator.serviceName</code></td>
<td>The druid.service name of the Coordinator process. To start the Coordinator with a different name, set it with this property.</td>
<td>druid/coordinator</td>
</tr>
</tbody></table>

<h3 id="announcing-segments">Announcing Segments</h3>

<p>You can configure how to announce and unannounce Znodes in ZooKeeper (using Curator). For normal operations you do not need to override any of these configs.</p>

<h5 id="batch-data-segment-announcer">Batch Data Segment Announcer</h5>

<p>In current Druid, multiple data segments may be announced under the same Znode.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.announcer.segmentsPerNode</code></td>
<td>Each Znode contains info for up to this many segments.</td>
<td>50</td>
</tr>
<tr>
<td><code>druid.announcer.maxBytesPerNode</code></td>
<td>Max byte size for Znode.</td>
<td>524288</td>
</tr>
<tr>
<td><code>druid.announcer.skipDimensionsAndMetrics</code></td>
<td>Skip Dimensions and Metrics list from segment announcements. NOTE: Enabling this will also remove the dimensions and metrics list from Coordinator and Broker endpoints.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.announcer.skipLoadSpec</code></td>
<td>Skip segment LoadSpec from segment announcements. NOTE: Enabling this will also remove the loadspec from Coordinator and Broker endpoints.</td>
<td>false</td>
</tr>
</tbody></table>

<h3 id="javascript">JavaScript</h3>

<p>Druid supports dynamic runtime extension through JavaScript functions. This functionality can be configured through
the following properties.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.javascript.enabled</code></td>
<td>Set to &quot;true&quot; to enable JavaScript functionality. This affects the JavaScript parser, filter, extractionFn, aggregator, post-aggregator, router strategy, and worker selection strategy.</td>
<td>false</td>
</tr>
</tbody></table>

<div class="note info">
JavaScript-based functionality is disabled by default. Please refer to the Druid <a href="../development/javascript.html">JavaScript programming guide</a> for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it.
</div>

<h3 id="double-column-storage">Double Column storage</h3>

<p>Prior to version 0.13.0 Druid&#39;s storage layer used a 32-bit float representation to store columns created by the 
doubleSum, doubleMin, and doubleMax aggregators at indexing time.
Starting from version 0.13.0 the default will be 64-bit floats for Double columns.
Using 64-bit representation for double column will lead to avoid precesion loss at the cost of doubling the storage size of such columns.
To keep the old format set the system-wide property <code>druid.indexing.doubleStorage=float</code>.
You can also use floatSum, floatMin and floatMax to use 32-bit float representation.
Support for 64-bit floating point columns was released in Druid 0.11.0, so if you use this feature then older versions of Druid will not be able to read your data segments.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexing.doubleStorage</code></td>
<td>Set to &quot;float&quot; to use 32-bit double representation for double columns.</td>
<td>double</td>
</tr>
</tbody></table>

<h2 id="master-server">Master Server</h2>

<p>This section contains the configuration options for the processes that reside on Master servers (Coordinators and Overlords) in the suggested <a href="../design/processes.html#server-types">three-server configuration</a>.</p>

<h3 id="coordinator">Coordinator</h3>

<p>For general Coordinator Process information, see <a href="../design/coordinator.html">here</a>.</p>

<h4 id="static-configuration">Static Configuration</h4>

<p>These Coordinator static configurations can be defined in the <code>coordinator/runtime.properties</code> file.</p>

<h5 id="coordinator-process-config">Coordinator Process Config</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.host</code></td>
<td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td>
<td>InetAddress.getLocalHost().getCanonicalHostName()</td>
</tr>
<tr>
<td><code>druid.bindOnHost</code></td>
<td>Indicating whether the process&#39;s internal jetty server bind on <code>druid.host</code>. Default is false, which means binding to all interfaces.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.plaintextPort</code></td>
<td>This is the port to actually listen on; unless port mapping is used, this will be the same port as is on <code>druid.host</code></td>
<td>8081</td>
</tr>
<tr>
<td><code>druid.tlsPort</code></td>
<td>TLS port for HTTPS connector, if <a href="../operations/tls-support.html">druid.enableTlsPort</a> is set then this config will be used. If <code>druid.host</code> contains port then that port will be ignored. This should be a non-negative Integer.</td>
<td>8281</td>
</tr>
<tr>
<td><code>druid.service</code></td>
<td>The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services</td>
<td>druid/coordinator</td>
</tr>
</tbody></table>

<h5 id="coordinator-operation">Coordinator Operation</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.coordinator.period</code></td>
<td>The run period for the Coordinator. The Coordinator’s operates by maintaining the current state of the world in memory and periodically looking at the set of segments available and segments being served to make decisions about whether any changes need to be made to the data topology. This property sets the delay between each of these runs.</td>
<td>PT60S</td>
</tr>
<tr>
<td><code>druid.coordinator.period.indexingPeriod</code></td>
<td>How often to send compact/merge/conversion tasks to the indexing service. It&#39;s recommended to be longer than <code>druid.manager.segments.pollDuration</code></td>
<td>PT1800S (30 mins)</td>
</tr>
<tr>
<td><code>druid.coordinator.startDelay</code></td>
<td>The operation of the Coordinator works on the assumption that it has an up-to-date view of the state of the world when it runs, the current ZK interaction code, however, is written in a way that doesn’t allow the Coordinator to know for a fact that it’s done loading the current state of the world. This delay is a hack to give it enough time to believe that it has all the data.</td>
<td>PT300S</td>
</tr>
<tr>
<td><code>druid.coordinator.merge.on</code></td>
<td>Boolean flag for whether or not the Coordinator should try and merge small segments into a more optimal segment size.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.coordinator.load.timeout</code></td>
<td>The timeout duration for when the Coordinator assigns a segment to a Historical process.</td>
<td>PT15M</td>
</tr>
<tr>
<td><code>druid.coordinator.kill.pendingSegments.on</code></td>
<td>Boolean flag for whether or not the Coordinator clean up old entries in the <code>pendingSegments</code> table of metadata store. If set to true, Coordinator will check the created time of most recently complete task. If it doesn&#39;t exist, it finds the created time of the earlist running/pending/waiting tasks. Once the created time is found, then for all dataSources not in the <code>killPendingSegmentsSkipList</code> (see <a href="#dynamic-configuration">Dynamic configuration</a>), Coordinator will ask the Overlord to clean up the entries 1 day or more older than the found created time in the <code>pendingSegments</code> table. This will be done periodically based on <code>druid.coordinator.period</code> specified.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.coordinator.kill.on</code></td>
<td>Boolean flag for whether or not the Coordinator should submit kill task for unused segments, that is, hard delete them from metadata store and deep storage. If set to true, then for all whitelisted dataSources (or optionally all), Coordinator will submit tasks periodically based on <code>period</code> specified. These kill tasks will delete all segments except for the last <code>durationToRetain</code> period. Whitelist or All can be set via dynamic configuration <code>killAllDataSources</code> and <code>killDataSourceWhitelist</code> described later.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.coordinator.kill.period</code></td>
<td>How often to send kill tasks to the indexing service. Value must be greater than <code>druid.coordinator.period.indexingPeriod</code>. Only applies if kill is turned on.</td>
<td>P1D (1 Day)</td>
</tr>
<tr>
<td><code>druid.coordinator.kill.durationToRetain</code></td>
<td>Do not kill segments in last <code>durationToRetain</code>, must be greater or equal to 0. Only applies and MUST be specified if kill is turned on. Note that default value is invalid.</td>
<td>PT-1S (-1 seconds)</td>
</tr>
<tr>
<td><code>druid.coordinator.kill.maxSegments</code></td>
<td>Kill at most n segments per kill task submission, must be greater than 0. Only applies and MUST be specified if kill is turned on. Note that default value is invalid.</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.coordinator.balancer.strategy</code></td>
<td>Specify the type of balancing strategy that the Coordinator should use to distribute segments among the Historicals. <code>cachingCost</code> is logically equivalent to <code>cost</code> but is more CPU-efficient on large clusters and will replace <code>cost</code> in the future versions, users are invited to try it. Use <code>diskNormalized</code> to distribute segments among Historical processes so that the disks fill up uniformly and use <code>random</code> to randomly pick nodes to distribute segments.</td>
<td><code>cost</code></td>
</tr>
<tr>
<td><code>druid.coordinator.loadqueuepeon.repeatDelay</code></td>
<td>The start and repeat delay for the loadqueuepeon , which manages the load and drop of segments.</td>
<td>PT0.050S (50 ms)</td>
</tr>
<tr>
<td><code>druid.coordinator.asOverlord.enabled</code></td>
<td>Boolean value for whether this Coordinator process should act like an Overlord as well. This configuration allows users to simplify a druid cluster by not having to deploy any standalone Overlord processes. If set to true, then Overlord console is available at <code>http://coordinator-host:port/console.html</code> and be sure to set <code>druid.coordinator.asOverlord.overlordService</code> also. See next.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.coordinator.asOverlord.overlordService</code></td>
<td>Required, if <code>druid.coordinator.asOverlord.enabled</code> is <code>true</code>. This must be same value as <code>druid.service</code> on standalone Overlord processes and <code>druid.selectors.indexing.serviceName</code> on Middle Managers.</td>
<td>NULL</td>
</tr>
</tbody></table>

<h5 id="segment-management">Segment Management</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.serverview.type</code></td>
<td>batch or http</td>
<td>Segment discovery method to use. &quot;http&quot; enables discovering segments using HTTP instead of zookeeper.</td>
<td>batch</td>
</tr>
<tr>
<td><code>druid.coordinator.loadqueuepeon.type</code></td>
<td>curator or http</td>
<td>Whether to use &quot;http&quot; or &quot;curator&quot; implementation to assign segment loads/drops to Historical</td>
<td>curator</td>
</tr>
</tbody></table>

<h6 id="additional-config-when-http-loadqueuepeon-is-used">Additional config when &quot;http&quot; loadqueuepeon is used</h6>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.coordinator.loadqueuepeon.http.batchSize</code></td>
<td>Number of segment load/drop requests to batch in one HTTP request. Note that it must be smaller than <code>druid.segmentCache.numLoadingThreads</code> config on Historical process.</td>
<td>1</td>
</tr>
</tbody></table>

<h5 id="metadata-retrieval">Metadata Retrieval</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.manager.config.pollDuration</code></td>
<td>How often the manager polls the config table for updates.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.manager.segments.pollDuration</code></td>
<td>The duration between polls the Coordinator does for updates to the set of active segments. Generally defines the amount of lag time it can take for the Coordinator to notice new segments.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.manager.rules.pollDuration</code></td>
<td>The duration between polls the Coordinator does for updates to the set of active rules. Generally defines the amount of lag time it can take for the Coordinator to notice rules.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.manager.rules.defaultTier</code></td>
<td>The default tier from which default rules will be loaded from.</td>
<td>_default</td>
</tr>
<tr>
<td><code>druid.manager.rules.alertThreshold</code></td>
<td>The duration after a failed poll upon which an alert should be emitted.</td>
<td>PT10M</td>
</tr>
</tbody></table>

<h4 id="dynamic-configuration">Dynamic Configuration</h4>

<p>The Coordinator has dynamic configuration to change certain behaviour on the fly. The Coordinator uses a JSON spec object from the Druid <a href="../dependencies/metadata-storage.html">metadata storage</a> config table. This object is detailed below:</p>

<p>It is recommended that you use the Coordinator Console to configure these parameters. However, if you need to do it via HTTP, the JSON object can be submitted to the Coordinator via a POST request at:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;COORDINATOR_IP&gt;:&lt;PORT&gt;/druid/coordinator/v1/config
</code></pre></div>
<p>Optional Header Parameters for auditing the config change can also be specified.</p>

<table><thead>
<tr>
<th>Header Param Name</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>X-Druid-Author</code></td>
<td>author making the config change</td>
<td>&quot;&quot;</td>
</tr>
<tr>
<td><code>X-Druid-Comment</code></td>
<td>comment describing the change being done</td>
<td>&quot;&quot;</td>
</tr>
</tbody></table>

<p>A sample Coordinator dynamic config JSON object is shown below:</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;millisToWaitBeforeDeleting&quot;</span><span class="p">:</span> <span class="mi">900000</span><span class="p">,</span>
  <span class="nt">&quot;mergeBytesLimit&quot;</span><span class="p">:</span> <span class="mi">100000000</span><span class="p">,</span>
  <span class="nt">&quot;mergeSegmentsLimit&quot;</span> <span class="p">:</span> <span class="mi">1000</span><span class="p">,</span>
  <span class="nt">&quot;maxSegmentsToMove&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
  <span class="nt">&quot;replicantLifetime&quot;</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
  <span class="nt">&quot;replicationThrottleLimit&quot;</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
  <span class="nt">&quot;emitBalancingStats&quot;</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
  <span class="nt">&quot;killDataSourceWhitelist&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;wikipedia&quot;</span><span class="p">,</span> <span class="s2">&quot;testDatasource&quot;</span><span class="p">],</span>
  <span class="nt">&quot;decommissioningNodes&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;localhost:8182&quot;</span><span class="p">,</span> <span class="s2">&quot;localhost:8282&quot;</span><span class="p">],</span>
  <span class="nt">&quot;decommissioningMaxPercentOfMaxSegmentsToMove&quot;</span><span class="p">:</span> <span class="mi">70</span>
<span class="p">}</span>
</code></pre></div>
<p>Issuing a GET request at the same URL will return the spec that is currently in place. A description of the config setup spec is shown below.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>millisToWaitBeforeDeleting</code></td>
<td>How long does the Coordinator need to be active before it can start removing (marking unused) segments in metadata storage.</td>
<td>900000 (15 mins)</td>
</tr>
<tr>
<td><code>mergeBytesLimit</code></td>
<td>The maximum total uncompressed size in bytes of segments to merge.</td>
<td>524288000L</td>
</tr>
<tr>
<td><code>mergeSegmentsLimit</code></td>
<td>The maximum number of segments that can be in a single <a href="../ingestion/tasks.html">append task</a>.</td>
<td>100</td>
</tr>
<tr>
<td><code>maxSegmentsToMove</code></td>
<td>The maximum number of segments that can be moved at any given time.</td>
<td>5</td>
</tr>
<tr>
<td><code>replicantLifetime</code></td>
<td>The maximum number of Coordinator runs for a segment to be replicated before we start alerting.</td>
<td>15</td>
</tr>
<tr>
<td><code>replicationThrottleLimit</code></td>
<td>The maximum number of segments that can be replicated at one time.</td>
<td>10</td>
</tr>
<tr>
<td><code>balancerComputeThreads</code></td>
<td>Thread pool size for computing moving cost of segments in segment balancing. Consider increasing this if you have a lot of segments and moving segments starts to get stuck.</td>
<td>1</td>
</tr>
<tr>
<td><code>emitBalancingStats</code></td>
<td>Boolean flag for whether or not we should emit balancing stats. This is an expensive operation.</td>
<td>false</td>
</tr>
<tr>
<td><code>killDataSourceWhitelist</code></td>
<td>List of dataSources for which kill tasks are sent if property <code>druid.coordinator.kill.on</code> is true. This can be a list of comma-separated dataSources or a JSON array.</td>
<td>none</td>
</tr>
<tr>
<td><code>killAllDataSources</code></td>
<td>Send kill tasks for ALL dataSources if property <code>druid.coordinator.kill.on</code> is true. If this is set to true then <code>killDataSourceWhitelist</code> must not be specified or be empty list.</td>
<td>false</td>
</tr>
<tr>
<td><code>killPendingSegmentsSkipList</code></td>
<td>List of dataSources for which pendingSegments are <em>NOT</em> cleaned up if property <code>druid.coordinator.kill.pendingSegments.on</code> is true. This can be a list of comma-separated dataSources or a JSON array.</td>
<td>none</td>
</tr>
<tr>
<td><code>maxSegmentsInNodeLoadingQueue</code></td>
<td>The maximum number of segments that could be queued for loading to any given server. This parameter could be used to speed up segments loading process, especially if there are &quot;slow&quot; nodes in the cluster (with low loading speed) or if too much segments scheduled to be replicated to some particular node (faster loading could be preferred to better segments distribution). Desired value depends on segments loading speed, acceptable replication time and number of nodes. Value 1000 could be a start point for a rather big cluster. Default value is 0 (loading queue is unbounded)</td>
<td>0</td>
</tr>
<tr>
<td><code>decommissioningNodes</code></td>
<td>List of historical servers to &#39;decommission&#39;. Coordinator will not assign new segments to &#39;decommissioning&#39; servers,  and segments will be moved away from them to be placed on non-decommissioning servers at the maximum rate specified by <code>decommissioningMaxPercentOfMaxSegmentsToMove</code>.</td>
<td>none</td>
</tr>
<tr>
<td><code>decommissioningMaxPercentOfMaxSegmentsToMove</code></td>
<td>The maximum number of segments that may be moved away from &#39;decommissioning&#39; servers to non-decommissioning (that is, active) servers during one Coordinator run. This value is relative to the total maximum segment movements allowed during one run which is determined by <code>maxSegmentsToMove</code>. If <code>decommissioningMaxPercentOfMaxSegmentsToMove</code> is 0, segments will neither be moved from <em>or to</em> &#39;decommissioning&#39; servers, effectively putting them in a sort of &quot;maintenance&quot; mode that will not participate in balancing or assignment by load rules. Decommissioning can also become stalled if there are no available active servers to place the segments. By leveraging the maximum percent of decommissioning segment movements, an operator can prevent active servers from overload by prioritizing balancing, or decrease decommissioning time instead. The value should be between 0 and 100.</td>
<td>70</td>
</tr>
</tbody></table>

<p>To view the audit history of Coordinator dynamic config issue a GET request to the URL -</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;COORDINATOR_IP&gt;:&lt;PORT&gt;/druid/coordinator/v1/config/history?interval=&lt;interval&gt;
</code></pre></div>
<p>default value of interval can be specified by setting <code>druid.audit.manager.auditHistoryMillis</code> (1 week if not configured) in Coordinator runtime.properties</p>

<p>To view last <n> entries of the audit history of Coordinator dynamic config issue a GET request to the URL -</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;COORDINATOR_IP&gt;:&lt;PORT&gt;/druid/coordinator/v1/config/history?count=&lt;n&gt;
</code></pre></div>
<h5 id="lookups-dynamic-configuration-experimental">Lookups Dynamic Configuration (EXPERIMENTAL)<a id="lookups-dynamic-configuration"></a></h5>

<p>These configuration options control the behavior of the Lookup dynamic configuration described in the <a href="../querying/lookups.html">lookups page</a></p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.manager.lookups.hostDeleteTimeout</code></td>
<td>How long to wait for a <code>DELETE</code> request to a particular process before considering the <code>DELETE</code> a failure</td>
<td>PT1S</td>
</tr>
<tr>
<td><code>druid.manager.lookups.hostUpdateTimeout</code></td>
<td>How long to wait for a <code>POST</code> request to a particular process before considering the <code>POST</code> a failure</td>
<td>PT10S</td>
</tr>
<tr>
<td><code>druid.manager.lookups.deleteAllTimeout</code></td>
<td>How long to wait for all <code>DELETE</code> requests to finish before considering the delete attempt a failure</td>
<td>PT10S</td>
</tr>
<tr>
<td><code>druid.manager.lookups.updateAllTimeout</code></td>
<td>How long to wait for all <code>POST</code> requests to finish before considering the attempt a failure</td>
<td>PT60S</td>
</tr>
<tr>
<td><code>druid.manager.lookups.threadPoolSize</code></td>
<td>How many processes can be managed concurrently (concurrent POST and DELETE requests). Requests this limit will wait in a queue until a slot becomes available.</td>
<td>10</td>
</tr>
<tr>
<td><code>druid.manager.lookups.period</code></td>
<td>How many milliseconds between checks for configuration changes</td>
<td>30_000</td>
</tr>
</tbody></table>

<h5 id="compaction-dynamic-configuration">Compaction Dynamic Configuration</h5>

<p>Compaction configurations can also be set or updated dynamically using
<a href="../operations/api-reference.html#compaction-configuration">Coordinator&#39;s API</a> without restarting Coordinators.</p>

<p>For details about segment compaction, please check <a href="../operations/segment-optimization.html">Segment Size Optimization</a>.</p>

<p>A description of the compaction config is:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead><tbody>
<tr>
<td><code>dataSource</code></td>
<td>dataSource name to be compacted.</td>
<td>yes</td>
</tr>
<tr>
<td><code>keepSegmentGranularity</code></td>
<td>Set <a href="../ingestion/compaction.html">keepSegmentGranularity</a> to true for compactionTask.</td>
<td>no (default = true)</td>
</tr>
<tr>
<td><code>taskPriority</code></td>
<td><a href="../ingestion/tasks.html#task-priorities">Priority</a> of compaction task.</td>
<td>no (default = 25)</td>
</tr>
<tr>
<td><code>inputSegmentSizeBytes</code></td>
<td>Maximum number of total segment bytes processed per compaction task. Since a time chunk must be processed in its entirety, if the segments for a particular time chunk have a total size in bytes greater than this parameter, compaction will not run for that time chunk. Because each compaction task runs with a single thread, setting this value too far above 1–2GB will result in compaction tasks taking an excessive amount of time.</td>
<td>no (default = 419430400)</td>
</tr>
<tr>
<td><code>targetCompactionSizeBytes</code></td>
<td>The target segment size, for each segment, after compaction. The actual sizes of compacted segments might be slightly larger or smaller than this value. Each compaction task may generate more than one output segment, and it will try to keep each output segment close to this configured size. This configuration cannot be used together with <code>maxRowsPerSegment</code>.</td>
<td>no (default = 419430400)</td>
</tr>
<tr>
<td><code>maxRowsPerSegment</code></td>
<td>Max number of rows per segment after compaction. This configuration cannot be used together with <code>targetCompactionSizeBytes</code>.</td>
<td>no</td>
</tr>
<tr>
<td><code>maxNumSegmentsToCompact</code></td>
<td>Maximum number of segments to compact together per compaction task. Since a time chunk must be processed in its entirety, if a time chunk has a total number of segments greater than this parameter, compaction will not run for that time chunk.</td>
<td>no (default = 150)</td>
</tr>
<tr>
<td><code>skipOffsetFromLatest</code></td>
<td>The offset for searching segments to be compacted. Strongly recommended to set for realtime dataSources.</td>
<td>no (default = &quot;P1D&quot;)</td>
</tr>
<tr>
<td><code>tuningConfig</code></td>
<td>Tuning config for compaction tasks. See below <a href="#compact-task-tuningconfig">Compaction Task TuningConfig</a>.</td>
<td>no</td>
</tr>
<tr>
<td><code>taskContext</code></td>
<td><a href="../ingestion/tasks.html#task-context">Task context</a> for compaction tasks.</td>
<td>no</td>
</tr>
</tbody></table>

<p>An example of compaction config is:</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;dataSource&quot;</span><span class="p">:</span> <span class="s2">&quot;wikiticker&quot;</span>
<span class="p">}</span>
</code></pre></div>
<p>Note that compaction tasks can fail if their locks are revoked by other tasks of higher priorities.
Since realtime tasks have a higher priority than compaction task by default,
it can be problematic if there are frequent conflicts between compaction tasks and realtime tasks.
If this is the case, the coordinator&#39;s automatic compaction might get stuck because of frequent compaction task failures.
This kind of problem may happen especially in Kafka/Kinesis indexing systems which allow late data arrival.
If you see this problem, it&#39;s recommended to set <code>skipOffsetFromLatest</code> to some large enough value to avoid such conflicts between compaction tasks and realtime tasks.</p>

<h6 id="compaction-tuningconfig">Compaction TuningConfig</h6>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead><tbody>
<tr>
<td><code>maxRowsInMemory</code></td>
<td>See <a href="../ingestion/native_tasks.html#tuningconfig">tuningConfig for indexTask</a></td>
<td>no (default = 1000000)</td>
</tr>
<tr>
<td><code>maxTotalRows</code></td>
<td>See <a href="../ingestion/native_tasks.html#tuningconfig">tuningConfig for indexTask</a></td>
<td>no (default = 20000000)</td>
</tr>
<tr>
<td><code>indexSpec</code></td>
<td>See <a href="../ingestion/native_tasks.html#indexspec">IndexSpec</a></td>
<td>no</td>
</tr>
<tr>
<td><code>maxPendingPersists</code></td>
<td>See <a href="../ingestion/native_tasks.html#tuningconfig">tuningConfig for indexTask</a></td>
<td>no (default = 0 (meaning one persist can be running concurrently with ingestion, and none can be queued up))</td>
</tr>
<tr>
<td><code>pushTimeout</code></td>
<td>See <a href="../ingestion/native_tasks.html#tuningconfig">tuningConfig for indexTask</a></td>
<td>no (default = 0)</td>
</tr>
</tbody></table>

<h3 id="overlord">Overlord</h3>

<p>For general Overlord Process information, see <a href="../design/overlord.html">here</a>.</p>

<h4 id="overlord-static-configuration">Overlord Static Configuration</h4>

<p>These Overlord static configurations can be defined in the <code>overlord/runtime.properties</code> file.</p>

<h5 id="overlord-process-configs">Overlord Process Configs</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.host</code></td>
<td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td>
<td>InetAddress.getLocalHost().getCanonicalHostName()</td>
</tr>
<tr>
<td><code>druid.bindOnHost</code></td>
<td>Indicating whether the process&#39;s internal jetty server bind on <code>druid.host</code>. Default is false, which means binding to all interfaces.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.plaintextPort</code></td>
<td>This is the port to actually listen on; unless port mapping is used, this will be the same port as is on <code>druid.host</code></td>
<td>8090</td>
</tr>
<tr>
<td><code>druid.tlsPort</code></td>
<td>TLS port for HTTPS connector, if <a href="../operations/tls-support.html">druid.enableTlsPort</a> is set then this config will be used. If <code>druid.host</code> contains port then that port will be ignored. This should be a non-negative Integer.</td>
<td>8290</td>
</tr>
<tr>
<td><code>druid.service</code></td>
<td>The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services</td>
<td>druid/overlord</td>
</tr>
</tbody></table>

<h5 id="overlord-operations">Overlord Operations</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.runner.type</code></td>
<td>Choices &quot;local&quot; or &quot;remote&quot;. Indicates whether tasks should be run locally or in a distributed environment. Experimental task runner &quot;httpRemote&quot; is also available which is same as &quot;remote&quot; but uses HTTP to interact with Middle Manaters instead of Zookeeper.</td>
<td>local</td>
</tr>
<tr>
<td><code>druid.indexer.storage.type</code></td>
<td>Choices are &quot;local&quot; or &quot;metadata&quot;. Indicates whether incoming tasks should be stored locally (in heap) or in metadata storage. Storing incoming tasks in metadata storage allows for tasks to be resumed if the Overlord should fail.</td>
<td>local</td>
</tr>
<tr>
<td><code>druid.indexer.storage.recentlyFinishedThreshold</code></td>
<td>A duration of time to store task results.</td>
<td>PT24H</td>
</tr>
<tr>
<td><code>druid.indexer.queue.maxSize</code></td>
<td>Maximum number of active tasks at one time.</td>
<td>Integer.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.indexer.queue.startDelay</code></td>
<td>Sleep this long before starting Overlord queue management. This can be useful to give a cluster time to re-orient itself after e.g. a widespread network issue.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.indexer.queue.restartDelay</code></td>
<td>Sleep this long when Overlord queue management throws an exception before trying again.</td>
<td>PT30S</td>
</tr>
<tr>
<td><code>druid.indexer.queue.storageSyncRate</code></td>
<td>Sync Overlord state this often with an underlying task persistence mechanism.</td>
<td>PT1M</td>
</tr>
</tbody></table>

<p>The following configs only apply if the Overlord is running in remote mode. For a description of local vs. remote mode, please see (../design/overlord.html).</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.runner.taskAssignmentTimeout</code></td>
<td>How long to wait after a task as been assigned to a MiddleManager before throwing an error.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.indexer.runner.minWorkerVersion</code></td>
<td>The minimum MiddleManager version to send tasks to.</td>
<td>&quot;0&quot;</td>
</tr>
<tr>
<td><code>druid.indexer.runner.compressZnodes</code></td>
<td>Indicates whether or not the Overlord should expect MiddleManagers to compress Znodes.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.indexer.runner.maxZnodeBytes</code></td>
<td>The maximum size Znode in bytes that can be created in Zookeeper.</td>
<td>524288</td>
</tr>
<tr>
<td><code>druid.indexer.runner.taskCleanupTimeout</code></td>
<td>How long to wait before failing a task after a MiddleManager is disconnected from Zookeeper.</td>
<td>PT15M</td>
</tr>
<tr>
<td><code>druid.indexer.runner.taskShutdownLinkTimeout</code></td>
<td>How long to wait on a shutdown request to a MiddleManager before timing out</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.indexer.runner.pendingTasksRunnerNumThreads</code></td>
<td>Number of threads to allocate pending-tasks to workers, must be at least 1.</td>
<td>1</td>
</tr>
<tr>
<td><code>druid.indexer.runner.maxRetriesBeforeBlacklist</code></td>
<td>Number of consecutive times the MiddleManager can fail tasks,  before the worker is blacklisted, must be at least 1</td>
<td>5</td>
</tr>
<tr>
<td><code>druid.indexer.runner.workerBlackListBackoffTime</code></td>
<td>How long to wait before a task is whitelisted again. This value should be greater that the value set for taskBlackListCleanupPeriod.</td>
<td>PT15M</td>
</tr>
<tr>
<td><code>druid.indexer.runner.workerBlackListCleanupPeriod</code></td>
<td>A duration after which the cleanup thread will startup to clean blacklisted workers.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.indexer.runner.maxPercentageBlacklistWorkers</code></td>
<td>The maximum percentage of workers to blacklist, this must be between 0 and 100.</td>
<td>20</td>
</tr>
</tbody></table>

<p>There are additional configs for autoscaling (if it is enabled):</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.autoscale.strategy</code></td>
<td>Choices are &quot;noop&quot; or &quot;ec2&quot;. Sets the strategy to run when autoscaling is required.</td>
<td>noop</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.doAutoscale</code></td>
<td>If set to &quot;true&quot; autoscaling will be enabled.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.provisionPeriod</code></td>
<td>How often to check whether or not new MiddleManagers should be added.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.terminatePeriod</code></td>
<td>How often to check when MiddleManagers should be removed.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.originTime</code></td>
<td>The starting reference timestamp that the terminate period increments upon.</td>
<td>2012-01-01T00:55:00.000Z</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.workerIdleTimeout</code></td>
<td>How long can a worker be idle (not a run task) before it can be considered for termination.</td>
<td>PT90M</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.maxScalingDuration</code></td>
<td>How long the Overlord will wait around for a MiddleManager to show up before giving up.</td>
<td>PT15M</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.numEventsToTrack</code></td>
<td>The number of autoscaling related events (node creation and termination) to track.</td>
<td>10</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.pendingTaskTimeout</code></td>
<td>How long a task can be in &quot;pending&quot; state before the Overlord tries to scale up.</td>
<td>PT30S</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.workerVersion</code></td>
<td>If set, will only create nodes of set version during autoscaling. Overrides dynamic configuration.</td>
<td>null</td>
</tr>
<tr>
<td><code>druid.indexer.autoscale.workerPort</code></td>
<td>The port that MiddleManagers will run on.</td>
<td>8080</td>
</tr>
</tbody></table>

<h4 id="overlord-dynamic-configuration">Overlord Dynamic Configuration</h4>

<p>The Overlord can dynamically change worker behavior.</p>

<p>The JSON object can be submitted to the Overlord via a POST request at:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;OVERLORD_IP&gt;:&lt;port&gt;/druid/indexer/v1/worker
</code></pre></div>
<p>Optional Header Parameters for auditing the config change can also be specified.</p>

<table><thead>
<tr>
<th>Header Param Name</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>X-Druid-Author</code></td>
<td>author making the config change</td>
<td>&quot;&quot;</td>
</tr>
<tr>
<td><code>X-Druid-Comment</code></td>
<td>comment describing the change being done</td>
<td>&quot;&quot;</td>
</tr>
</tbody></table>

<p>A sample worker config spec is shown below:</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;selectStrategy&quot;</span><span class="p">:</span> <span class="p">{</span>
    <span class="nt">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;fillCapacity&quot;</span><span class="p">,</span>
    <span class="nt">&quot;affinityConfig&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;affinity&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;datasource1&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;host1:port&quot;</span><span class="p">,</span> <span class="s2">&quot;host2:port&quot;</span><span class="p">],</span>
        <span class="nt">&quot;datasource2&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;host3:port&quot;</span><span class="p">]</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">},</span>
  <span class="nt">&quot;autoScaler&quot;</span><span class="p">:</span> <span class="p">{</span>
    <span class="nt">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;ec2&quot;</span><span class="p">,</span>
    <span class="nt">&quot;minNumWorkers&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
    <span class="nt">&quot;maxNumWorkers&quot;</span><span class="p">:</span> <span class="mi">12</span><span class="p">,</span>
    <span class="nt">&quot;envConfig&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;availabilityZone&quot;</span><span class="p">:</span> <span class="s2">&quot;us-east-1a&quot;</span><span class="p">,</span>
      <span class="nt">&quot;nodeData&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;amiId&quot;</span><span class="p">:</span> <span class="s2">&quot;${AMI}&quot;</span><span class="p">,</span>
        <span class="nt">&quot;instanceType&quot;</span><span class="p">:</span> <span class="s2">&quot;c3.8xlarge&quot;</span><span class="p">,</span>
        <span class="nt">&quot;minInstances&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="nt">&quot;maxInstances&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="nt">&quot;securityGroupIds&quot;</span><span class="p">:</span> <span class="p">[</span><span class="s2">&quot;${IDs}&quot;</span><span class="p">],</span>
        <span class="nt">&quot;keyName&quot;</span><span class="p">:</span> <span class="s2">&quot;${KEY_NAME}&quot;</span>
      <span class="p">},</span>
      <span class="nt">&quot;userData&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;impl&quot;</span><span class="p">:</span> <span class="s2">&quot;string&quot;</span><span class="p">,</span>
        <span class="nt">&quot;data&quot;</span><span class="p">:</span> <span class="s2">&quot;${SCRIPT_COMMAND}&quot;</span><span class="p">,</span>
        <span class="nt">&quot;versionReplacementString&quot;</span><span class="p">:</span> <span class="s2">&quot;:VERSION:&quot;</span><span class="p">,</span>
        <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="kc">null</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>Issuing a GET request at the same URL will return the current worker config spec that is currently in place. The worker config spec list above is just a sample for EC2 and it is possible to extend the code base for other deployment environments. A description of the worker config spec is shown below.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>selectStrategy</code></td>
<td>How to assign tasks to MiddleManagers. Choices are <code>fillCapacity</code>, <code>equalDistribution</code>, and <code>javascript</code>.</td>
<td>equalDistribution</td>
</tr>
<tr>
<td><code>autoScaler</code></td>
<td>Only used if autoscaling is enabled. See below.</td>
<td>null</td>
</tr>
</tbody></table>

<p>To view the audit history of worker config issue a GET request to the URL -</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;OVERLORD_IP&gt;:&lt;port&gt;/druid/indexer/v1/worker/history?interval=&lt;interval&gt;
</code></pre></div>
<p>default value of interval can be specified by setting <code>druid.audit.manager.auditHistoryMillis</code> (1 week if not configured) in Overlord runtime.properties.</p>

<p>To view last <n> entries of the audit history of worker config issue a GET request to the URL -</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;OVERLORD_IP&gt;:&lt;port&gt;/druid/indexer/v1/worker/history?count=&lt;n&gt;
</code></pre></div>
<h5 id="worker-select-strategy">Worker Select Strategy</h5>

<p>Worker select strategies control how Druid assigns tasks to middleManagers.</p>

<h6 id="equal-distribution">Equal Distribution</h6>

<p>Tasks are assigned to the middleManager with the most available capacity at the time the task begins running. This is
useful if you want work evenly distributed across your middleManagers.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>type</code></td>
<td><code>equalDistribution</code>.</td>
<td>required; must be <code>equalDistribution</code></td>
</tr>
<tr>
<td><code>affinityConfig</code></td>
<td><a href="#affinity">Affinity config</a> object</td>
<td>null (no affinity)</td>
</tr>
</tbody></table>

<h6 id="fill-capacity">Fill Capacity</h6>

<p>Tasks are assigned to the worker with the most currently-running tasks at the time the task begins running. This is
useful in situations where you are elastically auto-scaling middleManagers, since it will tend to pack some full and
leave others empty. The empty ones can be safely terminated.</p>

<p>Note that if <code>druid.indexer.runner.pendingTasksRunnerNumThreads</code> is set to <em>N</em> &gt; 1, then this strategy will fill <em>N</em>
middleManagers up to capacity simultaneously, rather than a single middleManager.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>type</code></td>
<td><code>fillCapacity</code>.</td>
<td>required; must be <code>fillCapacity</code></td>
</tr>
<tr>
<td><code>affinityConfig</code></td>
<td><a href="#affinity">Affinity config</a> object</td>
<td>null (no affinity)</td>
</tr>
</tbody></table>

<h6 id="javascript">Javascript<a id="javascript-worker-select-strategy"></a></h6>

<p>Allows defining arbitrary logic for selecting workers to run task using a JavaScript function.
The function is passed remoteTaskRunnerConfig, map of workerId to available workers and task to be executed and returns the workerId on which the task should be run or null if the task cannot be run.
It can be used for rapid development of missing features where the worker selection logic is to be changed or tuned often.
If the selection logic is quite complex and cannot be easily tested in javascript environment,
its better to write a druid extension module with extending current worker selection strategies written in java.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>type</code></td>
<td><code>javascript</code>.</td>
<td>required; must be <code>javascript</code></td>
</tr>
<tr>
<td><code>function</code></td>
<td>String representing javascript function</td>
<td></td>
</tr>
</tbody></table>

<p>Example: a function that sends batch_index_task to workers 10.0.0.1 and 10.0.0.2 and all other tasks to other available workers.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>{
&quot;type&quot;:&quot;javascript&quot;,
&quot;function&quot;:&quot;function (config, zkWorkers, task) {\nvar batch_workers = new java.util.ArrayList();\nbatch_workers.add(\&quot;10.0.0.1\&quot;);\nbatch_workers.add(\&quot;10.0.0.2\&quot;);\nworkers = zkWorkers.keySet().toArray();\nvar sortedWorkers = new Array()\n;for(var i = 0; i &lt; workers.length; i++){\n sortedWorkers[i] = workers[i];\n}\nArray.prototype.sort.call(sortedWorkers,function(a, b){return zkWorkers.get(b).getCurrCapacityUsed() - zkWorkers.get(a).getCurrCapacityUsed();});\nvar minWorkerVer = config.getMinWorkerVersion();\nfor (var i = 0; i &lt; sortedWorkers.length; i++) {\n var worker = sortedWorkers[i];\n  var zkWorker = zkWorkers.get(worker);\n  if(zkWorker.canRunTask(task) &amp;&amp; zkWorker.isValidVersion(minWorkerVer)){\n    if(task.getType() == &#39;index_hadoop&#39; &amp;&amp; batch_workers.contains(worker)){\n      return worker;\n    } else {\n      if(task.getType() != &#39;index_hadoop&#39; &amp;&amp; !batch_workers.contains(worker)){\n        return worker;\n      }\n    }\n  }\n}\nreturn null;\n}&quot;
}
</code></pre></div>
<div class="note info">
JavaScript-based functionality is disabled by default. Please refer to the Druid <a href="../development/javascript.html">JavaScript programming guide</a> for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it.
</div>

<h6 id="affinity">Affinity</h6>

<p>Affinity configs can be provided to the <em>equalDistribution</em> and <em>fillCapacity</em> strategies using the &quot;affinityConfig&quot;
field. If not provided, the default is to not use affinity at all.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>affinity</code></td>
<td>JSON object mapping a datasource String name to a list of indexing service middleManager host:port String values. Druid doesn&#39;t perform DNS resolution, so the &#39;host&#39; value must match what is configured on the middleManager and what the middleManager announces itself as (examine the Overlord logs to see what your middleManager announces itself as).</td>
<td>{}</td>
</tr>
<tr>
<td><code>strong</code></td>
<td>With weak affinity (the default), tasks for a dataSource may be assigned to other middleManagers if their affinity-mapped middleManagers are not able to run all pending tasks in the queue for that dataSource. With strong affinity, tasks for a dataSource will only ever be assigned to their affinity-mapped middleManagers, and will wait in the pending queue if necessary.</td>
<td>false</td>
</tr>
</tbody></table>

<h5 id="autoscaler">Autoscaler</h5>

<p>Amazon&#39;s EC2 is currently the only supported autoscaler.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>minNumWorkers</code></td>
<td>The minimum number of workers that can be in the cluster at any given time.</td>
<td>0</td>
</tr>
<tr>
<td><code>maxNumWorkers</code></td>
<td>The maximum number of workers that can be in the cluster at any given time.</td>
<td>0</td>
</tr>
<tr>
<td><code>availabilityZone</code></td>
<td>What availability zone to run in.</td>
<td>none</td>
</tr>
<tr>
<td><code>nodeData</code></td>
<td>A JSON object that describes how to launch new nodes.</td>
<td>none; required</td>
</tr>
<tr>
<td><code>userData</code></td>
<td>A JSON object that describes how to configure new nodes. If you have set druid.indexer.autoscale.workerVersion, this must have a versionReplacementString. Otherwise, a versionReplacementString is not necessary.</td>
<td>none; optional</td>
</tr>
</tbody></table>

<h2 id="data-server">Data Server</h2>

<p>This section contains the configuration options for the processes that reside on Data servers (MiddleManagers/Peons and Historicals) in the suggested <a href="../design/processes.html#server-types">three-server configuration</a>.</p>

<h3 id="middlemanager-and-peons">MiddleManager and Peons</h3>

<p>These MiddleManager and Peon configurations can be defined in the <code>middleManager/runtime.properties</code> file.</p>

<h4 id="middlemanager-process-config">MiddleManager Process Config</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.host</code></td>
<td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td>
<td>InetAddress.getLocalHost().getCanonicalHostName()</td>
</tr>
<tr>
<td><code>druid.bindOnHost</code></td>
<td>Indicating whether the process&#39;s internal jetty server bind on <code>druid.host</code>. Default is false, which means binding to all interfaces.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.plaintextPort</code></td>
<td>This is the port to actually listen on; unless port mapping is used, this will be the same port as is on <code>druid.host</code></td>
<td>8091</td>
</tr>
<tr>
<td><code>druid.tlsPort</code></td>
<td>TLS port for HTTPS connector, if <a href="../operations/tls-support.html">druid.enableTlsPort</a> is set then this config will be used. If <code>druid.host</code> contains port then that port will be ignored. This should be a non-negative Integer.</td>
<td>8291</td>
</tr>
<tr>
<td><code>druid.service</code></td>
<td>The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services</td>
<td>druid/middlemanager</td>
</tr>
</tbody></table>

<h4 id="middlemanager-configuration">MiddleManager Configuration</h4>

<p>Middle managers pass their configurations down to their child peons. The MiddleManager requires the following configs:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.indexer.runner.allowedPrefixes</code></td>
<td>Whitelist of prefixes for configs that can be passed down to child peons.</td>
<td>&quot;com.metamx&quot;, &quot;druid&quot;, &quot;org.apache.druid&quot;, &quot;user.timezone&quot;, &quot;file.encoding&quot;, &quot;java.io.tmpdir&quot;, &quot;hadoop&quot;</td>
</tr>
<tr>
<td><code>druid.indexer.runner.compressZnodes</code></td>
<td>Indicates whether or not the MiddleManagers should compress Znodes.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.indexer.runner.classpath</code></td>
<td>Java classpath for the peon.</td>
<td>System.getProperty(&quot;java.class.path&quot;)</td>
</tr>
<tr>
<td><code>druid.indexer.runner.javaCommand</code></td>
<td>Command required to execute java.</td>
<td>java</td>
</tr>
<tr>
<td><code>druid.indexer.runner.javaOpts</code></td>
<td><em>DEPRECATED</em> A string of -X Java options to pass to the peon&#39;s JVM. Quotable parameters or parameters with spaces are encouraged to use javaOptsArray</td>
<td>&quot;&quot;</td>
</tr>
<tr>
<td><code>druid.indexer.runner.javaOptsArray</code></td>
<td>A json array of strings to be passed in as options to the peon&#39;s jvm. This is additive to javaOpts and is recommended for properly handling arguments which contain quotes or spaces like <code>[&quot;-XX:OnOutOfMemoryError=kill -9 %p&quot;]</code></td>
<td><code>[]</code></td>
</tr>
<tr>
<td><code>druid.indexer.runner.maxZnodeBytes</code></td>
<td>The maximum size Znode in bytes that can be created in Zookeeper.</td>
<td>524288</td>
</tr>
<tr>
<td><code>druid.indexer.runner.startPort</code></td>
<td>Starting port used for peon processes, should be greater than 1023 and less than 65536.</td>
<td>8100</td>
</tr>
<tr>
<td><code>druid.indexer.runner.endPort</code></td>
<td>Ending port used for peon processes, should be greater than or equal to <code>druid.indexer.runner.startPort</code> and less than 65536.</td>
<td>65535</td>
</tr>
<tr>
<td><code>druid.indexer.runner.ports</code></td>
<td>A json array of integers to specify ports that used for peon processes. If provided and non-empty, ports for peon processes will be chosen from these ports. And <code>druid.indexer.runner.startPort/druid.indexer.runner.endPort</code> will be completely ignored.</td>
<td><code>[]</code></td>
</tr>
<tr>
<td><code>druid.worker.ip</code></td>
<td>The IP of the worker.</td>
<td>localhost</td>
</tr>
<tr>
<td><code>druid.worker.version</code></td>
<td>Version identifier for the MiddleManager.</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.worker.capacity</code></td>
<td>Maximum number of tasks the MiddleManager can accept.</td>
<td>Number of available processors - 1</td>
</tr>
</tbody></table>

<h4 id="peon-processing">Peon Processing</h4>

<p>Processing properties set on the Middlemanager will be passed through to Peons.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.processing.buffer.sizeBytes</code></td>
<td>This specifies a buffer size for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller values can require more passes depending on the query that is being executed.</td>
<td>auto (max 1GB)</td>
</tr>
<tr>
<td><code>druid.processing.buffer.poolCacheMaxCount</code></td>
<td>processing buffer pool caches the buffers for later use, this is the maximum count cache will grow to. note that pool can create more buffers than it can cache if necessary.</td>
<td>Integer.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.processing.formatString</code></td>
<td>Realtime and Historical processes use this format string to name their processing threads.</td>
<td>processing-%s</td>
</tr>
<tr>
<td><code>druid.processing.numMergeBuffers</code></td>
<td>The number of direct memory buffers available for merging query results. The buffers are sized by <code>druid.processing.buffer.sizeBytes</code>. This property is effectively a concurrency limit for queries that require merging buffers. If you are using any queries that require merge buffers (currently, just groupBy v2) then you should have at least two of these.</td>
<td><code>max(2, druid.processing.numThreads / 4)</code></td>
</tr>
<tr>
<td><code>druid.processing.numThreads</code></td>
<td>The number of processing threads to have available for parallel processing of segments. Our rule of thumb is <code>num_cores - 1</code>, which means that even under heavy load there will still be one core available to do background tasks like talking with ZooKeeper and pulling down segments. If only one core is available, this property defaults to the value <code>1</code>.</td>
<td>Number of cores - 1 (or 1)</td>
</tr>
<tr>
<td><code>druid.processing.columnCache.sizeBytes</code></td>
<td>Maximum size in bytes for the dimension value lookup cache. Any value greater than <code>0</code> enables the cache. It is currently disabled by default. Enabling the lookup cache can significantly improve the performance of aggregators operating on dimension values, such as the JavaScript aggregator, or cardinality aggregator, but can slow things down if the cache hit rate is low (i.e. dimensions with few repeating values). Enabling it may also require additional garbage collection tuning to avoid long GC pauses.</td>
<td><code>0</code> (disabled)</td>
</tr>
<tr>
<td><code>druid.processing.fifo</code></td>
<td>If the processing queue should treat tasks of equal priority in a FIFO manner</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>druid.processing.tmpDir</code></td>
<td>Path where temporary files created while processing a query should be stored. If specified, this configuration takes priority over the default <code>java.io.tmpdir</code> path.</td>
<td>path represented by <code>java.io.tmpdir</code></td>
</tr>
</tbody></table>

<p>The amount of direct memory needed by Druid is at least
<code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)</code>. You can
ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> in
<code>druid.indexer.runner.javaOptsArray</code> as documented above.</p>

<h4 id="peon-query-configuration">Peon Query Configuration</h4>

<p>See <a href="#general-query-configuration">general query configuration</a>.</p>

<h4 id="peon-caching">Peon Caching</h4>

<p>You can optionally configure caching to be enabled on the peons by setting caching configs here.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.realtime.cache.useCache</code></td>
<td>true, false</td>
<td>Enable the cache on the realtime.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.realtime.cache.populateCache</code></td>
<td>true, false</td>
<td>Populate the cache on the realtime.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.realtime.cache.unCacheable</code></td>
<td>All druid query types</td>
<td>All query types to not cache.</td>
<td><code>[&quot;groupBy&quot;, &quot;select&quot;]</code></td>
</tr>
</tbody></table>

<p>See <a href="#cache-configuration">cache configuration</a> for how to configure cache settings.</p>

<h4 id="additional-peon-configuration">Additional Peon Configuration</h4>

<p>Although peons inherit the configurations of their parent MiddleManagers, explicit child peon configs in MiddleManager can be set by prefixing them with:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>druid.indexer.fork.property
</code></pre></div>
<p>Additional peon configs include:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.peon.mode</code></td>
<td>Choices are &quot;local&quot; and &quot;remote&quot;. Setting this to local means you intend to run the peon as a standalone process (Not recommended).</td>
<td>remote</td>
</tr>
<tr>
<td><code>druid.indexer.task.baseDir</code></td>
<td>Base temporary working directory.</td>
<td><code>System.getProperty(&quot;java.io.tmpdir&quot;)</code></td>
</tr>
<tr>
<td><code>druid.indexer.task.baseTaskDir</code></td>
<td>Base temporary working directory for tasks.</td>
<td><code>${druid.indexer.task.baseDir}/persistent/tasks</code></td>
</tr>
<tr>
<td><code>druid.indexer.task.defaultHadoopCoordinates</code></td>
<td>Hadoop version to use with HadoopIndexTasks that do not request a particular version.</td>
<td>org.apache.hadoop:hadoop-client:2.8.3</td>
</tr>
<tr>
<td><code>druid.indexer.task.defaultRowFlushBoundary</code></td>
<td>Highest row count before persisting to disk. Used for indexing generating tasks.</td>
<td>75000</td>
</tr>
<tr>
<td><code>druid.indexer.task.directoryLockTimeout</code></td>
<td>Wait this long for zombie peons to exit before giving up on their replacements.</td>
<td>PT10M</td>
</tr>
<tr>
<td><code>druid.indexer.task.gracefulShutdownTimeout</code></td>
<td>Wait this long on middleManager restart for restorable tasks to gracefully exit.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.indexer.task.hadoopWorkingPath</code></td>
<td>Temporary working directory for Hadoop tasks.</td>
<td><code>/tmp/druid-indexing</code></td>
</tr>
<tr>
<td><code>druid.indexer.task.restoreTasksOnRestart</code></td>
<td>If true, middleManagers will attempt to stop tasks gracefully on shutdown and restore them on restart.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.indexer.server.maxChatRequests</code></td>
<td>Maximum number of concurrent requests served by a task&#39;s chat handler. Set to 0 to disable limiting.</td>
<td>0</td>
</tr>
</tbody></table>

<p>If the peon is running in remote mode, there must be an Overlord up and running. Peons in remote mode can set the following configurations:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.peon.taskActionClient.retry.minWait</code></td>
<td>The minimum retry time to communicate with Overlord.</td>
<td>PT5S</td>
</tr>
<tr>
<td><code>druid.peon.taskActionClient.retry.maxWait</code></td>
<td>The maximum retry time to communicate with Overlord.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.peon.taskActionClient.retry.maxRetryCount</code></td>
<td>The maximum number of retries to communicate with Overlord.</td>
<td>60</td>
</tr>
</tbody></table>

<h5 id="segmentwriteoutmediumfactory">SegmentWriteOutMediumFactory</h5>

<p>When new segments are created, Druid temporarily stores some pre-processed data in some buffers. Currently two types of
<em>medium</em> exist for those buffers: <em>temporary files</em> and <em>off-heap memory</em>.</p>

<p><em>Temporary files</em> (<code>tmpFile</code>) are stored under the task working directory (see <code>druid.indexer.task.baseTaskDir</code>
configuration above) and thus share it&#39;s mounting properies, e. g. they could be backed by HDD, SSD or memory (tmpfs).
This type of medium may do unnecessary disk I/O and requires some disk space to be available.</p>

<p><em>Off-heap memory medium</em> (<code>offHeapMemory</code>) creates buffers in off-heap memory of a JVM process that is running a task.
This type of medium is preferred, but it may require to allow the JVM to have more off-heap memory, by changing
<code>-XX:MaxDirectMemorySize</code> configuration. It is not yet understood how does the required off-heap memory size relates
to the size of the segments being created. But definitely it doesn&#39;t make sense to add more extra off-heap memory,
than the configured maximum <em>heap</em> size (<code>-Xmx</code>) for the same JVM.</p>

<p>For most types of tasks SegmentWriteOutMediumFactory could be configured per-task (see <a href="../ingestion/tasks.html">Tasks</a>
page, &quot;TuningConfig&quot; section), but if it&#39;s not specified for a task, or it&#39;s not supported for a particular task type,
then the value from the configuration below is used:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.peon.defaultSegmentWriteOutMediumFactory.type</code></td>
<td><code>tmpFile</code> or <code>offHeapMemory</code>, see explanation above</td>
<td><code>tmpFile</code></td>
</tr>
</tbody></table>

<h3 id="historical">Historical</h3>

<p>For general Historical Process information, see <a href="../design/historical.html">here</a>.</p>

<p>These Historical configurations can be defined in the <code>historical/runtime.properties</code> file.</p>

<h4 id="historical-process-configuration">Historical Process Configuration</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.host</code></td>
<td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td>
<td>InetAddress.getLocalHost().getCanonicalHostName()</td>
</tr>
<tr>
<td><code>druid.bindOnHost</code></td>
<td>Indicating whether the process&#39;s internal jetty server bind on <code>druid.host</code>. Default is false, which means binding to all interfaces.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.plaintextPort</code></td>
<td>This is the port to actually listen on; unless port mapping is used, this will be the same port as is on <code>druid.host</code></td>
<td>8083</td>
</tr>
<tr>
<td><code>druid.tlsPort</code></td>
<td>TLS port for HTTPS connector, if <a href="../operations/tls-support.html">druid.enableTlsPort</a> is set then this config will be used. If <code>druid.host</code> contains port then that port will be ignored. This should be a non-negative Integer.</td>
<td>8283</td>
</tr>
<tr>
<td><code>druid.service</code></td>
<td>The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services</td>
<td>druid/historical</td>
</tr>
</tbody></table>

<h4 id="historical-general-configuration">Historical General Configuration</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.server.maxSize</code></td>
<td>The maximum number of bytes-worth of segments that the process wants assigned to it. This is not a limit that Historical processes actually enforces, just a value published to the Coordinator process so it can plan accordingly.</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.server.tier</code></td>
<td>A string to name the distribution tier that the storage process belongs to. Many of the <a href="../operations/rule-configuration.html">rules Coordinator processes use</a> to manage segments can be keyed on tiers.</td>
<td><code>_default_tier</code></td>
</tr>
<tr>
<td><code>druid.server.priority</code></td>
<td>In a tiered architecture, the priority of the tier, thus allowing control over which processes are queried. Higher numbers mean higher priority. The default (no priority) works for architecture with no cross replication (tiers that have no data-storage overlap). Data centers typically have equal priority.</td>
<td>0</td>
</tr>
</tbody></table>

<h4 id="storing-segments">Storing Segments</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.segmentCache.locations</code></td>
<td>Segments assigned to a Historical process are first stored on the local file system (in a disk cache) and then served by the Historical process. These locations define where that local cache resides. This value cannot be NULL or EMPTY. Here is an example <code>druid.segmentCache.locations=[{&quot;path&quot;: &quot;/mnt/druidSegments&quot;, &quot;maxSize&quot;: 10000, &quot;freeSpacePercent&quot;: 1.0}]</code>. &quot;freeSpacePercent&quot; is optional, if provided then enforces that much of free disk partition space while storing segments. But, it depends on File.getTotalSpace() and File.getFreeSpace() methods, so enable if only if they work for your File System.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.segmentCache.deleteOnRemove</code></td>
<td>Delete segment files from cache once a process is no longer serving a segment.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.segmentCache.dropSegmentDelayMillis</code></td>
<td>How long a process delays before completely dropping segment.</td>
<td>30000 (30 seconds)</td>
</tr>
<tr>
<td><code>druid.segmentCache.infoDir</code></td>
<td>Historical processes keep track of the segments they are serving so that when the process is restarted they can reload the same segments without waiting for the Coordinator to reassign. This path defines where this metadata is kept. Directory will be created if needed.</td>
<td>${first_location}/info_dir</td>
</tr>
<tr>
<td><code>druid.segmentCache.announceIntervalMillis</code></td>
<td>How frequently to announce segments while segments are loading from cache. Set this value to zero to wait for all segments to be loaded before announcing.</td>
<td>5000 (5 seconds)</td>
</tr>
<tr>
<td><code>druid.segmentCache.numLoadingThreads</code></td>
<td>How many segments to drop or load concurrently from from deep storage.</td>
<td>10</td>
</tr>
<tr>
<td><code>druid.segmentCache.numBootstrapThreads</code></td>
<td>How many segments to load concurrently from local storage at startup.</td>
<td>Same as numLoadingThreads</td>
</tr>
</tbody></table>

<p>In <code>druid.segmentCache.locations</code>, <em>freeSpacePercent</em> was added because <em>maxSize</em> setting is only a theoretical limit and assumes that much space will always be available for storing segments. In case of any druid bug leading to unaccounted segment files left alone on disk or some other process writing stuff to disk, This check can start failing segment loading early before filling up the disk completely and leaving the host usable otherwise.</p>

<h4 id="historical-query-configs">Historical Query Configs</h4>

<h5 id="concurrent-requests">Concurrent Requests</h5>

<p>Druid uses Jetty to serve HTTP requests.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.server.http.numThreads</code></td>
<td>Number of threads for HTTP requests.</td>
<td>max(10, (Number of cores * 17) / 16 + 2) + 30</td>
</tr>
<tr>
<td><code>druid.server.http.queueSize</code></td>
<td>Size of the worker queue used by Jetty server to temporarily store incoming client connections. If this value is set and a request is rejected by jetty because queue is full then client would observe request failure with TCP connection being closed immediately with a completely empty response from server.</td>
<td>Unbounded</td>
</tr>
<tr>
<td><code>druid.server.http.maxIdleTime</code></td>
<td>The Jetty max idle time for a connection.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.server.http.enableRequestLimit</code></td>
<td>If enabled, no requests would be queued in jetty queue and &quot;HTTP 429 Too Many Requests&quot; error response would be sent.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.server.http.defaultQueryTimeout</code></td>
<td>Query timeout in millis, beyond which unfinished queries will be cancelled</td>
<td>300000</td>
</tr>
<tr>
<td><code>druid.server.http.gracefulShutdownTimeout</code></td>
<td>The maximum amount of time Jetty waits after receiving shutdown signal. After this timeout the threads will be forcefully shutdown. This allows any queries that are executing to complete.</td>
<td><code>PT0S</code> (do not wait)</td>
</tr>
<tr>
<td><code>druid.server.http.unannouncePropagationDelay</code></td>
<td>How long to wait for zookeeper unannouncements to propagate before shutting down Jetty. This is a minimum and <code>druid.server.http.gracefulShutdownTimeout</code> does not start counting down until after this period elapses.</td>
<td><code>PT0S</code> (do not wait)</td>
</tr>
<tr>
<td><code>druid.server.http.maxQueryTimeout</code></td>
<td>Maximum allowed value (in milliseconds) for <code>timeout</code> parameter. See <a href="../querying/query-context.html">query-context</a> to know more about <code>timeout</code>. Query is rejected if the query context <code>timeout</code> is greater than this value.</td>
<td>Long.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.server.http.maxRequestHeaderSize</code></td>
<td>Maximum size of a request header in bytes. Larger headers consume more memory and can make a server more vulnerable to denial of service attacks.</td>
<td>8 * 1024</td>
</tr>
</tbody></table>

<h5 id="processing">Processing</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.processing.buffer.sizeBytes</code></td>
<td>This specifies a buffer size for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller values can require more passes depending on the query that is being executed.</td>
<td>auto (max 1GB)</td>
</tr>
<tr>
<td><code>druid.processing.buffer.poolCacheMaxCount</code></td>
<td>processing buffer pool caches the buffers for later use, this is the maximum count cache will grow to. note that pool can create more buffers than it can cache if necessary.</td>
<td>Integer.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.processing.formatString</code></td>
<td>Realtime and Historical processes use this format string to name their processing threads.</td>
<td>processing-%s</td>
</tr>
<tr>
<td><code>druid.processing.numMergeBuffers</code></td>
<td>The number of direct memory buffers available for merging query results. The buffers are sized by <code>druid.processing.buffer.sizeBytes</code>. This property is effectively a concurrency limit for queries that require merging buffers. If you are using any queries that require merge buffers (currently, just groupBy v2) then you should have at least two of these.</td>
<td><code>max(2, druid.processing.numThreads / 4)</code></td>
</tr>
<tr>
<td><code>druid.processing.numThreads</code></td>
<td>The number of processing threads to have available for parallel processing of segments. Our rule of thumb is <code>num_cores - 1</code>, which means that even under heavy load there will still be one core available to do background tasks like talking with ZooKeeper and pulling down segments. If only one core is available, this property defaults to the value <code>1</code>.</td>
<td>Number of cores - 1 (or 1)</td>
</tr>
<tr>
<td><code>druid.processing.columnCache.sizeBytes</code></td>
<td>Maximum size in bytes for the dimension value lookup cache. Any value greater than <code>0</code> enables the cache. It is currently disabled by default. Enabling the lookup cache can significantly improve the performance of aggregators operating on dimension values, such as the JavaScript aggregator, or cardinality aggregator, but can slow things down if the cache hit rate is low (i.e. dimensions with few repeating values). Enabling it may also require additional garbage collection tuning to avoid long GC pauses.</td>
<td><code>0</code> (disabled)</td>
</tr>
<tr>
<td><code>druid.processing.fifo</code></td>
<td>If the processing queue should treat tasks of equal priority in a FIFO manner</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>druid.processing.tmpDir</code></td>
<td>Path where temporary files created while processing a query should be stored. If specified, this configuration takes priority over the default <code>java.io.tmpdir</code> path.</td>
<td>path represented by <code>java.io.tmpdir</code></td>
</tr>
</tbody></table>

<p>The amount of direct memory needed by Druid is at least
<code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)</code>. You can
ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> at the command
line.</p>

<h5 id="historical-query-configuration">Historical Query Configuration</h5>

<p>See <a href="#general-query-configuration">general query configuration</a>.</p>

<h4 id="historical-caching">Historical Caching</h4>

<p>You can optionally only configure caching to be enabled on the Historical by setting caching configs here.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.historical.cache.useCache</code></td>
<td>true, false</td>
<td>Enable the cache on the Historical.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.historical.cache.populateCache</code></td>
<td>true, false</td>
<td>Populate the cache on the Historical.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.historical.cache.unCacheable</code></td>
<td>All druid query types</td>
<td>All query types to not cache.</td>
<td>[&quot;groupBy&quot;, &quot;select&quot;]</td>
</tr>
</tbody></table>

<p>See <a href="#cache-configuration">cache configuration</a> for how to configure cache settings.</p>

<h2 id="query-server">Query Server</h2>

<p>This section contains the configuration options for the processes that reside on Query servers (Brokers) in the suggested <a href="../design/processes.html#server-types">three-server configuration</a>.</p>

<h3 id="broker">Broker</h3>

<p>For general Broker process information, see <a href="../design/broker.html">here</a>.</p>

<p>These Broker configurations can be defined in the <code>broker/runtime.properties</code> file.</p>

<h4 id="broker-process-configs">Broker Process Configs</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.host</code></td>
<td>The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that <code>http://${druid.host}/</code> could actually talk to this process</td>
<td>InetAddress.getLocalHost().getCanonicalHostName()</td>
</tr>
<tr>
<td><code>druid.bindOnHost</code></td>
<td>Indicating whether the process&#39;s internal jetty server bind on <code>druid.host</code>. Default is false, which means binding to all interfaces.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.plaintextPort</code></td>
<td>This is the port to actually listen on; unless port mapping is used, this will be the same port as is on <code>druid.host</code></td>
<td>8082</td>
</tr>
<tr>
<td><code>druid.tlsPort</code></td>
<td>TLS port for HTTPS connector, if <a href="../operations/tls-support.html">druid.enableTlsPort</a> is set then this config will be used. If <code>druid.host</code> contains port then that port will be ignored. This should be a non-negative Integer.</td>
<td>8282</td>
</tr>
<tr>
<td><code>druid.service</code></td>
<td>The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services</td>
<td>druid/broker</td>
</tr>
</tbody></table>

<h4 id="query-configuration">Query Configuration</h4>

<h5 id="query-prioritization">Query Prioritization</h5>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.broker.balancer.type</code></td>
<td><code>random</code>, <code>connectionCount</code></td>
<td>Determines how the broker balances connections to Historical processes. <code>random</code> choose randomly, <code>connectionCount</code> picks the process with the fewest number of active connections to</td>
<td><code>random</code></td>
</tr>
<tr>
<td><code>druid.broker.select.tier</code></td>
<td><code>highestPriority</code>, <code>lowestPriority</code>, <code>custom</code></td>
<td>If segments are cross-replicated across tiers in a cluster, you can tell the broker to prefer to select segments in a tier with a certain priority.</td>
<td><code>highestPriority</code></td>
</tr>
<tr>
<td><code>druid.broker.select.tier.custom.priorities</code></td>
<td><code>An array of integer priorities.</code></td>
<td>Select servers in tiers with a custom priority list.</td>
<td>None</td>
</tr>
</tbody></table>

<h5 id="server-configuration">Server Configuration</h5>

<p>Druid uses Jetty to serve HTTP requests.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.server.http.numThreads</code></td>
<td>Number of threads for HTTP requests.</td>
<td>max(10, (Number of cores * 17) / 16 + 2) + 30</td>
</tr>
<tr>
<td><code>druid.server.http.queueSize</code></td>
<td>Size of the worker queue used by Jetty server to temporarily store incoming client connections. If this value is set and a request is rejected by jetty because queue is full then client would observe request failure with TCP connection being closed immediately with a completely empty response from server.</td>
<td>Unbounded</td>
</tr>
<tr>
<td><code>druid.server.http.maxIdleTime</code></td>
<td>The Jetty max idle time for a connection.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.server.http.enableRequestLimit</code></td>
<td>If enabled, no requests would be queued in jetty queue and &quot;HTTP 429 Too Many Requests&quot; error response would be sent.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.server.http.defaultQueryTimeout</code></td>
<td>Query timeout in millis, beyond which unfinished queries will be cancelled</td>
<td>300000</td>
</tr>
<tr>
<td><code>druid.server.http.maxScatterGatherBytes</code></td>
<td>Maximum number of bytes gathered from data processes such as Historicals and realtime processes to execute a query. Queries that exceed this limit will fail. This is an advance configuration that allows to protect in case Broker is under heavy load and not utilizing the data gathered in memory fast enough and leading to OOMs. This limit can be further reduced at query time using <code>maxScatterGatherBytes</code> in the context. Note that having large limit is not necessarily bad if broker is never under heavy concurrent load in which case data gathered is processed quickly and freeing up the memory used.</td>
<td>Long.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.server.http.gracefulShutdownTimeout</code></td>
<td>The maximum amount of time Jetty waits after receiving shutdown signal. After this timeout the threads will be forcefully shutdown. This allows any queries that are executing to complete.</td>
<td><code>PT0S</code> (do not wait)</td>
</tr>
<tr>
<td><code>druid.server.http.unannouncePropagationDelay</code></td>
<td>How long to wait for zookeeper unannouncements to propagate before shutting down Jetty. This is a minimum and <code>druid.server.http.gracefulShutdownTimeout</code> does not start counting down until after this period elapses.</td>
<td><code>PT0S</code> (do not wait)</td>
</tr>
<tr>
<td><code>druid.server.http.maxQueryTimeout</code></td>
<td>Maximum allowed value (in milliseconds) for <code>timeout</code> parameter. See <a href="../querying/query-context.html">query-context</a> to know more about <code>timeout</code>. Query is rejected if the query context <code>timeout</code> is greater than this value.</td>
<td>Long.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.server.http.maxRequestHeaderSize</code></td>
<td>Maximum size of a request header in bytes. Larger headers consume more memory and can make a server more vulnerable to denial of service attacks.</td>
<td>8 * 1024</td>
</tr>
</tbody></table>

<h5 id="client-configuration">Client Configuration</h5>

<p>Druid Brokers use an HTTP client to communicate with with data servers (Historical servers and real-time tasks). This
client has the following configuration options.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.broker.http.numConnections</code></td>
<td>Size of connection pool for the Broker to connect to Historical and real-time processes. If there are more queries than this number that all need to speak to the same process, then they will queue up.</td>
<td>20</td>
</tr>
<tr>
<td><code>druid.broker.http.compressionCodec</code></td>
<td>Compression codec the Broker uses to communicate with Historical and real-time processes. May be &quot;gzip&quot; or &quot;identity&quot;.</td>
<td>gzip</td>
</tr>
<tr>
<td><code>druid.broker.http.readTimeout</code></td>
<td>The timeout for data reads from Historical servers and real-time tasks.</td>
<td>PT15M</td>
</tr>
<tr>
<td><code>druid.broker.http.unusedConnectionTimeout</code></td>
<td>The timeout for idle connections in connection pool. This timeout should be less than <code>druid.broker.http.readTimeout</code>. Set this timeout = ~90% of <code>druid.broker.http.readTimeout</code></td>
<td><code>PT4M</code></td>
</tr>
<tr>
<td><code>druid.broker.http.maxQueuedBytes</code></td>
<td>Maximum number of bytes queued per query before exerting backpressure on the channel to the data server. Similar to <code>druid.server.http.maxScatterGatherBytes</code>, except unlike that configuration, this one will trigger backpressure rather than query failure. Zero means disabled. Can be overridden by the <a href="../querying/query-context.html">&quot;maxQueuedBytes&quot; query context parameter</a>.</td>
<td>0 (disabled)</td>
</tr>
</tbody></table>

<h5 id="retry-policy">Retry Policy</h5>

<p>Druid broker can optionally retry queries internally for transient errors.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.broker.retryPolicy.numTries</code></td>
<td>Number of tries.</td>
<td>1</td>
</tr>
</tbody></table>

<h5 id="processing">Processing</h5>

<p>The broker uses processing configs for nested groupBy queries. And, if you use groupBy v1, long-interval queries (of any type) can be broken into shorter interval queries and processed in parallel inside this thread pool. For more details, see &quot;chunkPeriod&quot; in <a href="../querying/query-context.html">Query Context</a> doc.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.processing.buffer.sizeBytes</code></td>
<td>This specifies a buffer size for the storage of intermediate results. The computation engine in both the Historical and Realtime processes will use a scratch buffer of this size to do all of their intermediate computations off-heap. Larger values allow for more aggregations in a single pass over the data while smaller values can require more passes depending on the query that is being executed.</td>
<td>auto (max 1GB)</td>
</tr>
<tr>
<td><code>druid.processing.buffer.poolCacheMaxCount</code></td>
<td>processing buffer pool caches the buffers for later use, this is the maximum count cache will grow to. note that pool can create more buffers than it can cache if necessary.</td>
<td>Integer.MAX_VALUE</td>
</tr>
<tr>
<td><code>druid.processing.formatString</code></td>
<td>Realtime and Historical processes use this format string to name their processing threads.</td>
<td>processing-%s</td>
</tr>
<tr>
<td><code>druid.processing.numMergeBuffers</code></td>
<td>The number of direct memory buffers available for merging query results. The buffers are sized by <code>druid.processing.buffer.sizeBytes</code>. This property is effectively a concurrency limit for queries that require merging buffers. If you are using any queries that require merge buffers (currently, just groupBy v2) then you should have at least two of these.</td>
<td><code>max(2, druid.processing.numThreads / 4)</code></td>
</tr>
<tr>
<td><code>druid.processing.numThreads</code></td>
<td>The number of processing threads to have available for parallel processing of segments. Our rule of thumb is <code>num_cores - 1</code>, which means that even under heavy load there will still be one core available to do background tasks like talking with ZooKeeper and pulling down segments. If only one core is available, this property defaults to the value <code>1</code>.</td>
<td>Number of cores - 1 (or 1)</td>
</tr>
<tr>
<td><code>druid.processing.columnCache.sizeBytes</code></td>
<td>Maximum size in bytes for the dimension value lookup cache. Any value greater than <code>0</code> enables the cache. It is currently disabled by default. Enabling the lookup cache can significantly improve the performance of aggregators operating on dimension values, such as the JavaScript aggregator, or cardinality aggregator, but can slow things down if the cache hit rate is low (i.e. dimensions with few repeating values). Enabling it may also require additional garbage collection tuning to avoid long GC pauses.</td>
<td><code>0</code> (disabled)</td>
</tr>
<tr>
<td><code>druid.processing.fifo</code></td>
<td>If the processing queue should treat tasks of equal priority in a FIFO manner</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>druid.processing.tmpDir</code></td>
<td>Path where temporary files created while processing a query should be stored. If specified, this configuration takes priority over the default <code>java.io.tmpdir</code> path.</td>
<td>path represented by <code>java.io.tmpdir</code></td>
</tr>
</tbody></table>

<p>The amount of direct memory needed by Druid is at least
<code>druid.processing.buffer.sizeBytes * (druid.processing.numMergeBuffers + druid.processing.numThreads + 1)</code>. You can
ensure at least this amount of direct memory is available by providing <code>-XX:MaxDirectMemorySize=&lt;VALUE&gt;</code> at the command
line.</p>

<h5 id="broker-query-configuration">Broker Query Configuration</h5>

<p>See <a href="#general-query-configuration">general query configuration</a>.</p>

<h4 id="sql">SQL</h4>

<p>The Druid SQL server is configured through the following properties on the Broker.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.sql.enable</code></td>
<td>Whether to enable SQL at all, including background metadata fetching. If false, this overrides all other SQL-related properties and disables SQL metadata, serving, and planning completely.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.sql.avatica.enable</code></td>
<td>Whether to enable JDBC querying at <code>/druid/v2/sql/avatica/</code>.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.sql.avatica.maxConnections</code></td>
<td>Maximum number of open connections for the Avatica server. These are not HTTP connections, but are logical client connections that may span multiple HTTP connections.</td>
<td>50</td>
</tr>
<tr>
<td><code>druid.sql.avatica.maxRowsPerFrame</code></td>
<td>Maximum number of rows to return in a single JDBC frame. Setting this property to -1 indicates that no row limit should be applied. Clients can optionally specify a row limit in their requests; if a client specifies a row limit, the lesser value of the client-provided limit and <code>maxRowsPerFrame</code> will be used.</td>
<td>5,000</td>
</tr>
<tr>
<td><code>druid.sql.avatica.maxStatementsPerConnection</code></td>
<td>Maximum number of simultaneous open statements per Avatica client connection.</td>
<td>1</td>
</tr>
<tr>
<td><code>druid.sql.avatica.connectionIdleTimeout</code></td>
<td>Avatica client connection idle timeout.</td>
<td>PT5M</td>
</tr>
<tr>
<td><code>druid.sql.http.enable</code></td>
<td>Whether to enable JSON over HTTP querying at <code>/druid/v2/sql/</code>.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.sql.planner.awaitInitializationOnStart</code></td>
<td>Boolean</td>
<td>Whether the the Broker will wait for its SQL metadata view to fully initialize before starting up. If set to &#39;true&#39;, the Broker&#39;s HTTP server will not start up, and the Broker will not announce itself as available, until the server view is initialized. See also <code>druid.broker.segment.awaitInitializationOnStart</code>, a related setting.</td>
</tr>
<tr>
<td><code>druid.sql.planner.maxQueryCount</code></td>
<td>Maximum number of queries to issue, including nested queries. Set to 1 to disable sub-queries, or set to 0 for unlimited.</td>
<td>8</td>
</tr>
<tr>
<td><code>druid.sql.planner.maxSemiJoinRowsInMemory</code></td>
<td>Maximum number of rows to keep in memory for executing two-stage semi-join queries like <code>SELECT * FROM Employee WHERE DeptName IN (SELECT DeptName FROM Dept)</code>.</td>
<td>100000</td>
</tr>
<tr>
<td><code>druid.sql.planner.maxTopNLimit</code></td>
<td>Maximum threshold for a <a href="../querying/topnquery.html">TopN query</a>. Higher limits will be planned as <a href="../querying/groupbyquery.html">GroupBy queries</a> instead.</td>
<td>100000</td>
</tr>
<tr>
<td><code>druid.sql.planner.metadataRefreshPeriod</code></td>
<td>Throttle for metadata refreshes.</td>
<td>PT1M</td>
</tr>
<tr>
<td><code>druid.sql.planner.selectThreshold</code></td>
<td>Page size threshold for <a href="../querying/select-query.html">Select queries</a>. Select queries for larger resultsets will be issued back-to-back using pagination.</td>
<td>1000</td>
</tr>
<tr>
<td><code>druid.sql.planner.useApproximateCountDistinct</code></td>
<td>Whether to use an approximate cardinalty algorithm for <code>COUNT(DISTINCT foo)</code>.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.sql.planner.useApproximateTopN</code></td>
<td>Whether to use approximate <a href="../querying/topnquery.html">TopN queries</a> when a SQL query could be expressed as such. If false, exact <a href="../querying/groupbyquery.html">GroupBy queries</a> will be used instead.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.sql.planner.useFallback</code></td>
<td>Whether to evaluate operations on the Broker when they cannot be expressed as Druid queries. This option is not recommended for production since it can generate unscalable query plans. If false, SQL queries that cannot be translated to Druid queries will fail.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.sql.planner.requireTimeCondition</code></td>
<td>Whether to require SQL to have filter conditions on __time column so that all generated native queries will have user specified intervals. If true, all queries wihout filter condition on __time column will fail</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.sql.planner.sqlTimeZone</code></td>
<td>Sets the default time zone for the server, which will affect how time functions and timestamp literals behave. Should be a time zone name like &quot;America/Los_Angeles&quot; or offset like &quot;-08:00&quot;.</td>
<td>UTC</td>
</tr>
<tr>
<td><code>druid.sql.planner.serializeComplexValues</code></td>
<td>Whether to serialize &quot;complex&quot; output values, false will return the class name instead of the serialized value.</td>
<td>true</td>
</tr>
</tbody></table>

<h4 id="broker-caching">Broker Caching</h4>

<p>You can optionally only configure caching to be enabled on the Broker by setting caching configs here.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.broker.cache.useCache</code></td>
<td>true, false</td>
<td>Enable the cache on the Broker.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.broker.cache.populateCache</code></td>
<td>true, false</td>
<td>Populate the cache on the Broker.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.broker.cache.useResultLevelCache</code></td>
<td>true, false</td>
<td>Enable result level caching on the Broker.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.broker.cache.populateResultLevelCache</code></td>
<td>true, false</td>
<td>Populate the result level cache on the Broker.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.broker.cache.resultLevelCacheLimit</code></td>
<td>positive integer</td>
<td>Maximum size of query response that can be cached.</td>
<td><code>Integer.MAX_VALUE</code></td>
</tr>
<tr>
<td><code>druid.broker.cache.unCacheable</code></td>
<td>All druid query types</td>
<td>All query types to not cache.</td>
<td><code>[&quot;groupBy&quot;, &quot;select&quot;]</code></td>
</tr>
<tr>
<td><code>druid.broker.cache.cacheBulkMergeLimit</code></td>
<td>positive integer or 0</td>
<td>Queries with more segments than this number will not attempt to fetch from cache at the broker level, leaving potential caching fetches (and cache result merging) to the Historicals</td>
<td><code>Integer.MAX_VALUE</code></td>
</tr>
</tbody></table>

<p>See <a href="#cache-configuration">cache configuration</a> for how to configure cache settings.</p>

<h4 id="segment-discovery">Segment Discovery</h4>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.serverview.type</code></td>
<td>batch or http</td>
<td>Segment discovery method to use. &quot;http&quot; enables discovering segments using HTTP instead of zookeeper.</td>
<td>batch</td>
</tr>
<tr>
<td><code>druid.broker.segment.watchedTiers</code></td>
<td>List of strings</td>
<td>Broker watches the segment announcements from processes serving segments to build cache of which process is serving which segments, this configuration allows to only consider segments being served from a whitelist of tiers. By default, Broker would consider all tiers. This can be used to partition your dataSources in specific Historical tiers and configure brokers in partitions so that they are only queryable for specific dataSources.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.broker.segment.watchedDataSources</code></td>
<td>List of strings</td>
<td>Broker watches the segment announcements from processes serving segments to build cache of which process is serving which segments, this configuration allows to only consider segments being served from a whitelist of dataSources. By default, Broker would consider all datasources. This can be used to configure brokers in partitions so that they are only queryable for specific dataSources.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.broker.segment.awaitInitializationOnStart</code></td>
<td>Boolean</td>
<td>Whether the the Broker will wait for its view of segments to fully initialize before starting up. If set to &#39;true&#39;, the Broker&#39;s HTTP server will not start up, and the Broker will not announce itself as available, until the server view is initialized. See also <code>druid.sql.planner.awaitInitializationOnStart</code>, a related setting.</td>
<td>true</td>
</tr>
</tbody></table>

<h2 id="cache-configuration">Cache Configuration</h2>

<p>This section describes caching configuration that is common to Broker, Historical, and MiddleManager/Peon processes.</p>

<p>Caching can optionally be enabled on the Broker, Historical, and MiddleManager/Peon processses. See <a href="#broker-caching">Broker</a>, 
<a href="#Historical-caching">Historical</a>, and <a href="#peon-caching">Peon</a> configuration options for how to enable it for different processes.</p>

<p>Druid uses a local in-memory cache by default, unless a diffrent type of cache is specified.
Use the <code>druid.cache.type</code> configuration to set a different kind of cache.</p>

<p>Cache settings are set globally, so the same configuration can be re-used
for both Broker and Historical processes, when defined in the common properties file.</p>

<h3 id="cache-type">Cache Type</h3>

<table><thead>
<tr>
<th>Property</th>
<th>Possible Values</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.cache.type</code></td>
<td><code>local</code>, <code>memcached</code>, <code>hybrid</code>, <code>caffeine</code></td>
<td>The type of cache to use for queries. See below of the configuration options for each cache type</td>
<td><code>caffeine</code></td>
</tr>
</tbody></table>

<h4 id="local-cache">Local Cache</h4>

<div class="note caution">
DEPRECATED: Use caffeine (default as of v0.12.0) instead
</div>

<p>The local cache is deprecated in favor of the Caffeine cache, and may be removed in a future version of Druid. The Caffeine cache affords significantly better performance and control over eviction behavior compared to <code>local</code> cache, and is recommended in any situation where you are using JRE 8u60 or higher.</p>

<p>A simple in-memory LRU cache. Local cache resides in JVM heap memory, so if you enable it, make sure you increase heap size accordingly.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.cache.sizeInBytes</code></td>
<td>Maximum cache size in bytes. Zero disables caching.</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.cache.initialSize</code></td>
<td>Initial size of the hashtable backing the cache.</td>
<td>500000</td>
</tr>
<tr>
<td><code>druid.cache.logEvictionCount</code></td>
<td>If non-zero, log cache eviction every <code>logEvictionCount</code> items.</td>
<td>0</td>
</tr>
</tbody></table>

<h4 id="caffeine-cache">Caffeine Cache</h4>

<p>A highly performant local cache implementation for Druid based on <a href="https://github.com/ben-manes/caffeine">Caffeine</a>. Requires a JRE8u60 or higher if using <code>COMMON_FJP</code>.</p>

<h5 id="configuration">Configuration</h5>

<p>Below are the configuration options known to this module:</p>

<table><thead>
<tr>
<th><code>runtime.properties</code></th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.cache.type</code></td>
<td>Set this to <code>caffeine</code> or leave out parameter</td>
<td><code>caffeine</code></td>
</tr>
<tr>
<td><code>druid.cache.sizeInBytes</code></td>
<td>The maximum size of the cache in bytes on heap.</td>
<td>min(1GB, Runtime.maxMemory / 10)</td>
</tr>
<tr>
<td><code>druid.cache.expireAfter</code></td>
<td>The time (in ms) after an access for which a cache entry may be expired</td>
<td>None (no time limit)</td>
</tr>
<tr>
<td><code>druid.cache.cacheExecutorFactory</code></td>
<td>The executor factory to use for Caffeine maintenance. One of <code>COMMON_FJP</code>, <code>SINGLE_THREAD</code>, or <code>SAME_THREAD</code></td>
<td>ForkJoinPool common pool (<code>COMMON_FJP</code>)</td>
</tr>
<tr>
<td><code>druid.cache.evictOnClose</code></td>
<td>If a close of a namespace (ex: removing a segment from a process) should cause an eager eviction of associated cache values</td>
<td><code>false</code></td>
</tr>
</tbody></table>

<h5 id="druid-cache-cacheexecutorfactory"><code>druid.cache.cacheExecutorFactory</code></h5>

<p>Here are the possible values for <code>druid.cache.cacheExecutorFactory</code>, which controls how maintenance tasks are run</p>

<ul>
<li><code>COMMON_FJP</code> (default) use the common ForkJoinPool. Should use with <a href="https://github.com/apache/incubator-druid/pull/4810#issuecomment-329922810">JRE 8u60 or higher</a>. Older versions of the JRE may have worse performance than newer JRE versions.</li>
<li><code>SINGLE_THREAD</code> Use a single-threaded executor.</li>
<li><code>SAME_THREAD</code> Cache maintenance is done eagerly.</li>
</ul>

<h5 id="metrics">Metrics</h5>

<p>In addition to the normal cache metrics, the caffeine cache implementation also reports the following in both <code>total</code> and <code>delta</code></p>

<table><thead>
<tr>
<th>Metric</th>
<th>Description</th>
<th>Normal value</th>
</tr>
</thead><tbody>
<tr>
<td><code>query/cache/caffeine/*/requests</code></td>
<td>Count of hits or misses</td>
<td>hit + miss</td>
</tr>
<tr>
<td><code>query/cache/caffeine/*/loadTime</code></td>
<td>Length of time caffeine spends loading new values (unused feature)</td>
<td>0</td>
</tr>
<tr>
<td><code>query/cache/caffeine/*/evictionBytes</code></td>
<td>Size in bytes that have been evicted from the cache</td>
<td>Varies, should tune cache <code>sizeInBytes</code> so that <code>sizeInBytes</code>/<code>evictionBytes</code> is approximately the rate of cache churn you desire</td>
</tr>
</tbody></table>

<h5 id="memcached">Memcached</h5>

<p>Uses memcached as cache backend. This allows all processes to share the same cache.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.cache.expiration</code></td>
<td>Memcached <a href="https://code.google.com/p/memcached/wiki/NewCommands#Standard_Protocol">expiration time</a>.</td>
<td>2592000 (30 days)</td>
</tr>
<tr>
<td><code>druid.cache.timeout</code></td>
<td>Maximum time in milliseconds to wait for a response from Memcached.</td>
<td>500</td>
</tr>
<tr>
<td><code>druid.cache.hosts</code></td>
<td>Comma separated list of Memcached hosts <code>&lt;host:port&gt;</code>.</td>
<td>none</td>
</tr>
<tr>
<td><code>druid.cache.maxObjectSize</code></td>
<td>Maximum object size in bytes for a Memcached object.</td>
<td>52428800 (50 MB)</td>
</tr>
<tr>
<td><code>druid.cache.memcachedPrefix</code></td>
<td>Key prefix for all keys in Memcached.</td>
<td>druid</td>
</tr>
<tr>
<td><code>druid.cache.numConnections</code></td>
<td>Number of memcached connections to use.</td>
<td>1</td>
</tr>
<tr>
<td><code>druid.cache.protocol</code></td>
<td>Memcached communication protocol. Can be binary or text.</td>
<td>binary</td>
</tr>
<tr>
<td><code>druid.cache.locator</code></td>
<td>Memcached locator. Can be consistent or array_mod.</td>
<td>consistent</td>
</tr>
</tbody></table>

<h4 id="hybrid">Hybrid</h4>

<p>Uses a combination of any two caches as a two-level L1 / L2 cache.
This may be used to combine a local in-memory cache with a remote memcached cache.</p>

<p>Cache requests will first check L1 cache before checking L2.
If there is an L1 miss and L2 hit, it will also populate L1.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.cache.l1.type</code></td>
<td>type of cache to use for L1 cache. See <code>druid.cache.type</code> configuration for valid types.</td>
<td><code>caffeine</code></td>
</tr>
<tr>
<td><code>druid.cache.l2.type</code></td>
<td>type of cache to use for L2 cache. See <code>druid.cache.type</code> configuration for valid types.</td>
<td><code>caffeine</code></td>
</tr>
<tr>
<td><code>druid.cache.l1.*</code></td>
<td>Any property valid for the given type of L1 cache can be set using this prefix. For instance, if you are using a <code>caffeine</code> L1 cache, specify <code>druid.cache.l1.sizeInBytes</code> to set its size.</td>
<td>defaults are the same as for the given cache type.</td>
</tr>
<tr>
<td><code>druid.cache.l2.*</code></td>
<td>Prefix for L2 cache settings, see description for L1.</td>
<td>defaults are the same as for the given cache type.</td>
</tr>
<tr>
<td><code>druid.cache.useL2</code></td>
<td>A boolean indicating whether to query L2 cache, if it&#39;s a miss in L1. It makes sense to configure this to <code>false</code> on Historical processes, if L2 is a remote cache like <code>memcached</code>, and this cache also used on brokers, because in this case if a query reached Historical it means that a broker didn&#39;t find corresponding results in the same remote cache, so a query to the remote cache from Historical is guaranteed to be a miss.</td>
<td><code>true</code></td>
</tr>
<tr>
<td><code>druid.cache.populateL2</code></td>
<td>A boolean indicating whether to put results into L2 cache.</td>
<td><code>true</code></td>
</tr>
</tbody></table>

<h2 id="general-query-configuration">General Query Configuration</h2>

<p>This section describes configurations that control behavior of Druid&#39;s query types, applicable to Broker, Historical, and MiddleManager processes.</p>

<h3 id="topn-query-config">TopN Query config</h3>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.topN.minTopNThreshold</code></td>
<td>See <a href="../querying/topnquery.html#aliasing">TopN Aliasing</a> for details.</td>
<td>1000</td>
</tr>
</tbody></table>

<h3 id="search-query-config">Search Query Config</h3>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.search.maxSearchLimit</code></td>
<td>Maximum number of search results to return.</td>
<td>1000</td>
</tr>
<tr>
<td><code>druid.query.search.searchStrategy</code></td>
<td>Default search query strategy.</td>
<td>useIndexes</td>
</tr>
</tbody></table>

<h3 id="segment-metadata-query-config">Segment Metadata Query Config</h3>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.segmentMetadata.defaultHistory</code></td>
<td>When no interval is specified in the query, use a default interval of defaultHistory before the end time of the most recent segment, specified in ISO8601 format. This property also controls the duration of the default interval used by GET /druid/v2/datasources/{dataSourceName} interactions for retrieving datasource dimensions/metrics.</td>
<td>P1W</td>
</tr>
<tr>
<td><code>druid.query.segmentMetadata.defaultAnalysisTypes</code></td>
<td>This can be used to set the Default Analysis Types for all segment metadata queries, this can be overridden when making the query</td>
<td>[&quot;cardinality&quot;, &quot;interval&quot;, &quot;minmax&quot;]</td>
</tr>
</tbody></table>

<h3 id="groupby-query-config">GroupBy Query Config</h3>

<p>This section describes the configurations for groupBy queries. You can set the runtime properties in the <code>runtime.properties</code> file on Broker, Historical, and MiddleManager processes. You can set the query context parameters through the <a href="../querying/query-context.html">query context</a>.</p>

<h4 id="configurations-for-groupby-v2">Configurations for groupBy v2</h4>

<p>Supported runtime properties:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.groupBy.maxMergingDictionarySize</code></td>
<td>Maximum amount of heap space (approximately) to use for the string dictionary during merging. When the dictionary exceeds this size, a spill to disk will be triggered.</td>
<td>100000000</td>
</tr>
<tr>
<td><code>druid.query.groupBy.maxOnDiskStorage</code></td>
<td>Maximum amount of disk space to use, per-query, for spilling result sets to disk when either the merging buffer or the dictionary fills up. Queries that exceed this limit will fail. Set to zero to disable disk spilling.</td>
<td>0 (disabled)</td>
</tr>
</tbody></table>

<p>Supported query contexts:</p>

<table><thead>
<tr>
<th>Key</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td><code>maxMergingDictionarySize</code></td>
<td>Can be used to lower the value of <code>druid.query.groupBy.maxMergingDictionarySize</code> for this query.</td>
</tr>
<tr>
<td><code>maxOnDiskStorage</code></td>
<td>Can be used to lower the value of <code>druid.query.groupBy.maxOnDiskStorage</code> for this query.</td>
</tr>
</tbody></table>

<h3 id="advanced-configurations">Advanced configurations</h3>

<h4 id="common-configurations-for-all-groupby-strategies">Common configurations for all groupBy strategies</h4>

<p>Supported runtime properties:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.groupBy.defaultStrategy</code></td>
<td>Default groupBy query strategy.</td>
<td>v2</td>
</tr>
<tr>
<td><code>druid.query.groupBy.singleThreaded</code></td>
<td>Merge results using a single thread.</td>
<td>false</td>
</tr>
</tbody></table>

<p>Supported query contexts:</p>

<table><thead>
<tr>
<th>Key</th>
<th>Description</th>
</tr>
</thead><tbody>
<tr>
<td><code>groupByStrategy</code></td>
<td>Overrides the value of <code>druid.query.groupBy.defaultStrategy</code> for this query.</td>
</tr>
<tr>
<td><code>groupByIsSingleThreaded</code></td>
<td>Overrides the value of <code>druid.query.groupBy.singleThreaded</code> for this query.</td>
</tr>
</tbody></table>

<h4 id="groupby-v2-configurations">GroupBy v2 configurations</h4>

<p>Supported runtime properties:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.groupBy.bufferGrouperInitialBuckets</code></td>
<td>Initial number of buckets in the off-heap hash table used for grouping results. Set to 0 to use a reasonable default (1024).</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.query.groupBy.bufferGrouperMaxLoadFactor</code></td>
<td>Maximum load factor of the off-heap hash table used for grouping results. When the load factor exceeds this size, the table will be grown or spilled to disk. Set to 0 to use a reasonable default (0.7).</td>
<td>0</td>
</tr>
<tr>
<td><code>druid.query.groupBy.forceHashAggregation</code></td>
<td>Force to use hash-based aggregation.</td>
<td>false</td>
</tr>
<tr>
<td><code>druid.query.groupBy.intermediateCombineDegree</code></td>
<td>Number of intermediate processes combined together in the combining tree. Higher degrees will need less threads which might be helpful to improve the query performance by reducing the overhead of too many threads if the server has sufficiently powerful cpu cores.</td>
<td>8</td>
</tr>
<tr>
<td><code>druid.query.groupBy.numParallelCombineThreads</code></td>
<td>Hint for the number of parallel combining threads. This should be larger than 1 to turn on the parallel combining feature. The actual number of threads used for parallel combining is min(<code>druid.query.groupBy.numParallelCombineThreads</code>, <code>druid.processing.numThreads</code>).</td>
<td>1 (disabled)</td>
</tr>
</tbody></table>

<p>Supported query contexts:</p>

<table><thead>
<tr>
<th>Key</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>bufferGrouperInitialBuckets</code></td>
<td>Overrides the value of <code>druid.query.groupBy.bufferGrouperInitialBuckets</code> for this query.</td>
<td>None</td>
</tr>
<tr>
<td><code>bufferGrouperMaxLoadFactor</code></td>
<td>Overrides the value of <code>druid.query.groupBy.bufferGrouperMaxLoadFactor</code> for this query.</td>
<td>None</td>
</tr>
<tr>
<td><code>forceHashAggregation</code></td>
<td>Overrides the value of <code>druid.query.groupBy.forceHashAggregation</code></td>
<td>None</td>
</tr>
<tr>
<td><code>intermediateCombineDegree</code></td>
<td>Overrides the value of <code>druid.query.groupBy.intermediateCombineDegree</code></td>
<td>None</td>
</tr>
<tr>
<td><code>numParallelCombineThreads</code></td>
<td>Overrides the value of <code>druid.query.groupBy.numParallelCombineThreads</code></td>
<td>None</td>
</tr>
<tr>
<td><code>sortByDimsFirst</code></td>
<td>Sort the results first by dimension values and then by timestamp.</td>
<td>false</td>
</tr>
<tr>
<td><code>forceLimitPushDown</code></td>
<td>When all fields in the orderby are part of the grouping key, the broker will push limit application down to the Historical processes. When the sorting order uses fields that are not in the grouping key, applying this optimization can result in approximate results with unknown accuracy, so this optimization is disabled by default in that case. Enabling this context flag turns on limit push down for limit/orderbys that contain non-grouping key columns.</td>
<td>false</td>
</tr>
</tbody></table>

<h4 id="groupby-v1-configurations">GroupBy v1 configurations</h4>

<p>Supported runtime properties:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.query.groupBy.maxIntermediateRows</code></td>
<td>Maximum number of intermediate rows for the per-segment grouping engine. This is a tuning parameter that does not impose a hard limit; rather, it potentially shifts merging work from the per-segment engine to the overall merging index. Queries that exceed this limit will not fail.</td>
<td>50000</td>
</tr>
<tr>
<td><code>druid.query.groupBy.maxResults</code></td>
<td>Maximum number of results. Queries that exceed this limit will fail.</td>
<td>500000</td>
</tr>
</tbody></table>

<p>Supported query contexts:</p>

<table><thead>
<tr>
<th>Key</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>maxIntermediateRows</code></td>
<td>Can be used to lower the value of <code>druid.query.groupBy.maxIntermediateRows</code> for this query.</td>
<td>None</td>
</tr>
<tr>
<td><code>maxResults</code></td>
<td>Can be used to lower the value of <code>druid.query.groupBy.maxResults</code> for this query.</td>
<td>None</td>
</tr>
<tr>
<td><code>useOffheap</code></td>
<td>Set to true to store aggregations off-heap when merging results.</td>
<td>false</td>
</tr>
</tbody></table>

<h2 id="realtime-processes">Realtime processes</h2>

<p>Configuration for the deprecated realtime process can be found <a href="../configuration/realtime.html">here</a>.</p>

        </div>
        <div class="col-md-3">
          <div class="searchbox">
            <gcse:searchbox-only></gcse:searchbox-only>
          </div>
          <div id="toc" class="nav toc hidden-print">
          </div>
        </div>
      </div>
    </div>

    <!-- Start page_footer include -->
<footer class="druid-footer">
<div class="container">
  <div class="text-center">
    <p>
    <a href="/technology">Technology</a>&ensp;·&ensp;
    <a href="/use-cases">Use Cases</a>&ensp;·&ensp;
    <a href="/druid-powered">Powered by Druid</a>&ensp;·&ensp;
    <a href="/docs/latest/">Docs</a>&ensp;·&ensp;
    <a href="/community/">Community</a>&ensp;·&ensp;
    <a href="/downloads.html">Download</a>&ensp;·&ensp;
    <a href="/faq">FAQ</a>
    </p>
  </div>
  <div class="text-center">
    <a title="Join the user group" href="https://groups.google.com/forum/#!forum/druid-user" target="_blank"><span class="fa fa-comments"></span></a>&ensp;·&ensp;
    <a title="Follow Druid" href="https://twitter.com/druidio" target="_blank"><span class="fab fa-twitter"></span></a>&ensp;·&ensp;
    <a title="GitHub" href="https://github.com/apache/druid" target="_blank"><span class="fab fa-github"></span></a>
  </div>
  <div class="text-center license">
    Copyright © 2020 <a href="https://www.apache.org/" target="_blank">Apache Software Foundation</a>.<br>
    Except where otherwise noted, licensed under <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.<br>
    Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
  </div>
</div>
</footer>

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-131010415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'UA-131010415-1');
</script>
<script>
  function trackDownload(type, url) {
    ga('send', 'event', 'download', type, url);
  }
</script>
<script src="//code.jquery.com/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="/assets/js/druid.js"></script>
<!-- stop page_footer include -->


    <script>
    $(function() {
      $(".toc").load("/docs/0.14.0-incubating/toc.html");

      // There is no way to tell when .gsc-input will be async loaded into the page so just try to set a placeholder until it works
      var tries = 0;
      var timer = setInterval(function() {
        tries++;
        if (tries > 300) clearInterval(timer);
        var searchInput = $('input.gsc-input');
        if (searchInput.length) {
          searchInput.attr('placeholder', 'Search');
          clearInterval(timer);
        }
      }, 100);
    });
    </script>
  </body>
</html>
