WL#9038: Group Replication: Support Binary Log Checksums

Affects: Server-8.0   —   Status: Complete

EXECUTIVE SUMMARY
=================

This worklog implements support for binlog checksums in Group
Replication. After this work is done, the user will be able
to use Group Replication without having to explicitly disable
binlog checksums on all members of the cluster.


RATIONALE
=========

Currently the Group Replication plugin requires that binlog-checksum
is disabled (set to NONE).

The default for the variable is CRC32:
https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#option_mysqld_binlog-checksum

In order to use Group Replication, however, you're required to set
it to NONE. This is not advisable since it:
  1. Removes one extra check that data is not corrupted when reading
     it from disk.
  2. Hurts usability as it requires more custom configuration of
     each mysqld member;
  3. Hurts user perception of the product, as it does not play well
     with other parts of the server

This worklog will introduce the support to binary log checksums to
Group Replication, that is, the required configuration
  --binlog-checksum=NONE
will be dropped.


USER STORIES
============

- As a MySQL DBA I want my servers to automatically compute and
  validate checksums of binary logs events, ensuring its integrity.

- As a MySQL DBA I want my binary logs to contain event checksums,
  so that even if I move them around for archiving purposes (different
  storage, different communication infrastructures, etc) or to feed
  other consumers than just MySQL replication, I can still validate
  event integrity when consuming such events.