<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h2 class="title">
      <a name="group-replication-performance">
      </a>
      20.7 Group Replication Performance and Troubleshooting
     </h2>
    </div>
   </div>
  </div>
  <div class="toc">
   <dl class="toc">
    <dt>
     <span class="section">
      <a href="group-replication-fine-tuning-the-group-communication-thread.html">
       20.7.1 Fine Tuning the Group Communication Thread
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-flow-control.html">
       20.7.2 Flow Control
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-single-consensus-leader.html">
       20.7.3 Single Consensus Leader
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-message-compression.html">
       20.7.4 Message Compression
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-performance-message-fragmentation.html">
       20.7.5 Message Fragmentation
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-performance-xcom-cache.html">
       20.7.6 XCom Cache Management
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-responses-failure.html">
       20.7.7 Responses to Failure Detection and Network Partitioning
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="group-replication-network-partitioning.html">
       20.7.8 Handling a Network Partition and Loss of Quorum
      </a>
     </span>
    </dt>
    <dt>
     <span class="section">
      <a href="mysql-gr-memory-monitoring-ps-instruments.html">
       20.7.9 Monitoring Group Replication Memory Usage with Performance Schema Memory
Instrumentation
      </a>
     </span>
    </dt>
   </dl>
  </div>
  <a class="indexterm" name="idm46045132245424">
  </a>
  <a class="indexterm" name="idm46045132243936">
  </a>
  <p>
   Group Replication is designed to create fault-tolerant systems with
    built-in failure detection and automated recovery. If a member
    server instance leaves voluntarily or stops communicating with the
    group, the remaining members agree a reconfiguration of the group
    between themselves, and choose a new primary if needed. Expelled
    members automatically attempt to rejoin the group, and are brought
    up to date by distributed recovery. If a group experiences a level
    of difficulties such that it cannot contact a majority of its
    members in order to agree on a decision, it identifies itself as
    having lost quorum and stops processing transactions. Group
    Replication also has built-in mechanisms and settings to help the
    group adapt to and manage variations in workload and message size,
    and stay within the limitations of the underlying system and
    networking resources.
  </p>
  <p>
   The default settings for Group Replication’s system variables are
    designed to maximize a group’s performance and autonomy. The
    information in this section is to help you configure a replication
    group to optimize the automatic handling of any recurring issues
    that you experience on your particular systems, such as transient
    network outages or workloads and transactions that exceed a server
    instance’s resources.
  </p>
  <p>
   If you find that group members are being expelled and rejoining the
    group more frequently than you would like, it is possible that Group
    Replication’s default failure detection settings are too sensitive
    for your system. This might be the case on slower networks or
    machines, networks with a high rate of unexpected transient outages,
    or during planned network outages. For advice on dealing with that
    situation by adjusting the settings, see
   <a class="xref" href="group-replication-responses-failure.html" title="20.7.7 Responses to Failure Detection and Network Partitioning">
    Section 20.7.7, “Responses to Failure Detection and Network Partitioning”
   </a>
   .
  </p>
  <p>
   You should only need to intervene manually in a Group Replication
    setup if something happens that the group cannot deal with
    automatically. Some key issues that can require administrator
    intervention are when a member is in
   <code class="literal">
    ERROR
   </code>
   status
    and cannot rejoin the group, or when a network partition causes the
    group to lose quorum.
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      If an otherwise correctly functioning and configured member is
        unable to join or rejoin the group using distributed recovery,
        and remains in
      <code class="literal">
       ERROR
      </code>
      status,
      <a class="xref" href="group-replication-distributed-recovery-fault.html" title="20.5.4.4 Fault Tolerance for Distributed Recovery">
       Section 20.5.4.4, “Fault Tolerance for Distributed Recovery”
      </a>
      ,
        explains the possible issues. One likely cause is that the
        joining member has extra transactions that are not present on
        the existing members of the group. For advice on dealing with
        that situation, see
      <a class="xref" href="group-replication-gtids.html" title="20.4.1 GTIDs and Group Replication">
       Section 20.4.1, “GTIDs and Group Replication”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      If a group has lost quorum, this may be due to a network
        partition that divides the group into two parts, or possibly due
        to the failure of the majority of the servers. For advice on
        dealing with that situation, see
      <a class="xref" href="group-replication-network-partitioning.html" title="20.7.8 Handling a Network Partition and Loss of Quorum">
       Section 20.7.8, “Handling a Network Partition and Loss of Quorum”
      </a>
      .
     </p>
    </li>
   </ul>
  </div>
 </div>
 <br/>
</div>
