In my blog series about external contributions to MySQL 8 we have reached version 8.0.18 which was released Monday 14 October 2019. Again the community has contributed to make MySQL better. Thank you.
The contributions to MySQL 8.0.18 includes several patches from Facebook as well as patches from Gillian Gunson, Przemysław Skibiński (Percona), Daniel Black, and Satya Bodapati (also Percona). The contributions are:
- MySQL now provides more control over the use of compression to minimize the number of bytes sent over connections to the server. Previously, a given connection was either uncompressed or used the
zlibcompression algorithm. Now, it is also possible to use the
zstdalgorithm (zstd 1.3), and to select a compression level for
zstdconnections. The permitted compression algorithms can be configured on the server side, as well as on the connection-origination side for connections by client programs and by servers participating in master/slave replication or Group Replication. For more information, see Connection Compression Control.
Connection compression using the
zstdalgorithm requires that the server be built with
zstdlibrary support. The new
WITH_ZSTDCMake option indicates whether to use the bundled or system
Legacy compression-control parameters, such as the
--compressclient option, are deprecated and will be removed in a future MySQL version.
Thanks to Facebook for a contribution on which some of this work was based.
sys.schema_unused_indexesview now filters out unique indexes. Thanks to Gillian Gunson for the contribution. (Bug #24798995, Bug #83257)
- The new
innodb_idle_flush_pctvariable permits placing a limit on page flushing during idle periods, which can help extend the life of solid state storage devices. See Limiting Buffer Flushing During Idle Periods.
Thanks to Facebook for the contribution. (Bug #27147088, Bug #88566)
- Replication: The heartbeat interval for a replication slave, which is controlled by the
MASTER_HEARTBEAT_PERIODoption of the
CHANGE MASTERTO statement, can be specified with a resolution in milliseconds. Previously, the master's binary log dump thread used a granularity of seconds to calculate whether a heartbeat signal should be sent to the slave, causing excessive heartbeat activity in the case of multiple skipped events. To remove this issue, all heartbeat-related calculations by the master and slave are now carried out using a granularity of nanoseconds for precision. Thanks to Facebook for the contribution. (Bug #29363787, Bug #94356)
- When generating C source from SQL scripts, Some utf8-encoded characters were split across lines. Thanks to Przemysław Skibiński from Percona for the patch. (Bug #30152555, Bug #96449)
- With strict SQL mode enabled, the
STR_TO_DATE()function did not properly handle values with time parts only. Thanks to Daniel Black for the contribution. (Bug #18090591, Bug #71386)
- InnoDB: A long running ALTER TABLE … ADD INDEX operation with concurrent inserts caused semaphore waits. Thanks to Satya Bodapati from Percona for the patch. (Bug #29008298)
Thank you for the contributions.