.. rn:: 5.7.16-27.19

===================================
Percona XtraDB Cluster 5.7.16-27.19
===================================

Percona is glad to announce the release of
|Percona XtraDB Cluster| 5.7.16-27.19 on December 15, 2016.
Binaries are available from the `downloads section
<http://www.percona.com/downloads/Percona-XtraDB-Cluster-57/>`_
or from our :ref:`software repositories <install>`.

Percona XtraDB Cluster 5.7.16-27.19 is now the current release,
based on the following:

* `Percona Server 5.7.16-10 <http://www.percona.com/doc/percona-server/5.7/release-notes/Percona-Server-5.7.16-10.html>`_

* Galera Replication library 3.19

* wsrep API version 27

All Percona software is open-source and free.
Details of this release can be found in the
`5.7.16-27.19 milestone on Launchpad
<https://launchpad.net/percona-xtradb-cluster/+milestone/5.7.16-27.19>`_.

Deprecated
==========

* The following encryption modes:

  * ``encrypt=1``
  * ``encrypt=2``
  * ``encrypt=3``

  The default is ``encrypt=0`` with encryption disabled.
  The recommended mode now is the new ``encrypt=4``,
  which uses SSL files generated by MySQL.

  For more information, see :ref:`encrypt-traffic`.

New Features
============

* Added ``encrypt=4`` mode for SST encryption
  that uses SSL files generated by MySQL.
  Modes ``1``, ``2``, and ``3`` will soon be deprecated.

* ProxySQL assisted maintenance mode that enables you to take a node down
  without adjusting ProxySQL manually.
  The mode is controlled using the ``pxc_maint_mode`` variable,
  which can be set to one of the following values:

  * ``DISABLED``: This is the default state
    that tells ProxySQL to route traffic to the node as usual.

  * ``SHUTDOWN``: This state is set automatically
    when you initiate node shutdown.

  * ``MAINTENANCE``: You can change to this state
    if you need to perform maintenace on a node without shutting it down.

  For more information, see :ref:`pxc-maint-mode`.

* Simplified SSL configuration for Galera/SST traffic
  with ``pxc-encrypt-cluster-traffic`` option,
  which auto-configures SSL encryption.

  For more information, see :ref:`ssl-auto-conf`.

* Added the :variable:`wsrep_flow_control_interval` status variable
  that displays the lower and upper limits of the flow control system
  used for the Galera receive queue.

Fixed Bugs
==========

* Optimized IST donor selection logic to avoid SST.
  Child processes are now cleaned-up and node state is resumed if SST fails.

* Added ``init.ok`` to the list of files that do not get removed during SST.

* Fixed error with ASIO library not acknowledging an ``EPOLLIN`` event
  when building Galera.

* Fixed stalling of DML workload on slave node
  caused by ``FLUSH TABLE`` executed on master.

  For more information, see :bug:`1629296`.

* Fixed ``super_read_only`` to not apply to Galera replication applier.

  For more information, see :bug:`1634295`.

* Redirected ``netcat`` output to ``stdout`` to avoid it in the log.

  For more information, see :bug:`1625968`.

* Enabled replication of ``ALTER USER`` statements.

  For more information, see :bug:`1376269`.

* Changed the :variable:`wsrep_max_ws_rows` variable
  to ignore non-replicated write-sets generated by DML action
  on temporary tables (explict or implicit).

  For more information, see :bug:`1638138`.

* Fixed SST to fail with an error if SSL is not supported by ``socat``,
  instead of switching to unencrypted mode.

* Fixed SST with SSL to auto-generate a 2048-bit :file:`dhparams` file
  for versions of ``socat`` before 1.7.3.
  These older versions use 512-bit :file:`dhparams` file by default
  that get rejected by newer clients with ``dh key too small`` error.

* :jirabug:`PXC-731`: Changed the :variable:`wsrep_cluster_name` variable
  to read-only, because changing it dynamically leads to high overhead.

  For more information, see :bug:`1620439`.

* :jirabug:`PXC-732`: Improved error message
  when any of the SSL files required for SST are missing.

* :jirabug:`PXC-735`: Fixed SST to fail with an error when ``netcat`` is used
  (:option:`transferfmt` set to ``nc``) with SSL encryption
  (:option:`encrypt` set to ``2``, ``3`` or ``4``),
  instead of silently switching to unencrypted mode.

* Fixed faulty switch case that caused cluster to stall
  when the :variable:`repl.commit_order` variable was set to ``2``
  (``LOCAL_OOOC`` mode that should allow out-of-order committing
  for local transactions).

