<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="RETRY_FAILED_QUERIES" rev="2.10.0 IMPALA-3200">
  <title>RETRY_FAILED_QUERIES Query Option</title>
  <titlealts audience="PDF">
    <navtitle>RETRY_FAILED_QUERIES</navtitle>
  </titlealts>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="Querying"/>
      <data name="Category" value="Developers"/>
      <data name="Category" value="Administrators"/>
    </metadata>
  </prolog>
  <conbody>
    <p>Use the <codeph>RETRY_FAILED_QUERIES</codeph> query option to control
      whether or not queries are transparently retried on cluster membership
      changes. </p>
    <p>Cluster membership changes typically occur when an impalad crashes, or if the node is
      blacklisted by the Impala Coordinator. If a SELECT query fails due to a cluster membership
      change, the Coordinator will cancel and unregister the running query and then launch a retry
      of the query. For example, if one of the executor nodes fails during query execution, the query
      fails but is transparently re-executed, either with the executor node immediately replaced, or
      with a temporarily reduced number of executor nodes. This feature supports retrying the
      entire query and NOT the individual query fragments. INSERT and DDL queries will NOT be
      retried.</p>
    <p>Note that query retry will be skipped if the query has returned any results to the client. To
      avoid this, enable <codeph>Result Spooling</codeph> and set the
        <codeph>spool_all_results_for_retries</codeph> query option.</p>
    <p><b>Type:</b>
      <codeph>BOOLEAN</codeph></p>
    <p><b>Default:</b>
      <codeph>TRUE</codeph></p>
    <p><b>Added in:</b>
      <keyword keyref="impala40"/></p>
    <p><b>Related information:</b>
      <xref href="impala_transparent_query_retries.xml"/></p>
  </conbody>
</concept>
