WL#8318: Enable Simplified GTID recovery by default in 5.7
Affects: Server-5.7 — Status: Complete
This work changes the default of binlog_gtid_recovery_simplified to "ON" (was: OFF). This gives improved recovery performance. If this option is OFF: server startup and binlog purge can be very slow in common cases. Gtid_purged is always initialized correctly. If this option is ON: initialization of gtid_purged done at server startup and binlog purge are always fast. Gtid_purged set to wrong value in corner cases. More precisely, if this option is OFF, and GTID_MODE=OFF, the server will read a header from *every* binary log, both during server startup and when purging a binary log. This takes a lot of time and wastes disk caches when there are many binary logs. If this option is ON, the server will always only read only the header of one binary log, so it does not have the performance problem. But it will initialize GTID_PURGED to wrong value (the empty set) during server startup or binlog rotation, if both the following conditions hold: 1. the oldest binary log was generated by a 5.6 server, i.e., this happens recently after an upgrade (*); and 2. somewhere between the oldest binary log and the newest binary log, the user executed a SET GTID_PURGED statement. It is not very harmful to replication that GTID_PURGED is initialized wrong. GTID_PURGED does not directly control replication, it is only used for troubleshooting problems where slave is unable to replicate using AUTO_POSITION protocol because master has purged some transactions that the slave is missing.
Copyright (c) 2000, 2020, Oracle Corporation and/or its affiliates. All rights reserved.