WL#13958: Deprecate relay_log_info_repository and master_info_repository
Affects: Server-8.0
—
Status: Complete
EXECUTIVE SUMMARY ================= This worklog deprecates the option relay_log_info_repository and master_info_repository. There shall not be any alternative and the replication configuration and metadata shall always be stored in a transactional (InnoDB based) system table. The default of relay_log_info_repository and master_info_repository is TABLE already. Background ========== This worklog implements a deprecation warning when the user sets or reads the value of relay_log_info_repository or master_info_repository WL#6959 has deprecated the use of these two options when set to FILE (master_info_repository=FILE and relay_log_info_repository=FILE). This WL deprecates the two options and warning is logged irrespective of value set. By default server shall always use TABLE repositories. The default is TABLE as of WL#10474: Defaults: Store Replication Metadata In InnoDB WL#11031 deprecated the use of --relay-log-info-file and --master-info-file Rationale ========= - We want users to use only TABLE repository going forward, since it is transactional. - New features require TABLE repositories (Multisource, GR). - We want replication to be safe and not use MyISAM tables or depend on external files as much as possible. - The default is to store replication metadata in InnoDB tables already in MySQL 8.
FR1. server SHALL emit a warning in the session when configuring relay-log-info-repository in the session (SET GLOBAL relay_log...) FR2. server SHALL emit a warning, at server start time, when configuring relay-log-info-repository in the server configuration file (relay_log_info_repository=..) FR3. server SHALL emit a warning in the session when configuring master-info-repository in the session (SET GLOBAL master_info...) FR4. server SHALL emit a warning, at server start time, when configuring master-info-repository in the server configuration file (master_info_repository=..)
User Visible Changes ==================== - Deprecation Warning in the session when setting relay-log-info-repository dynamically The user visible change is that a deprecation warning will be emited when the user configures relay-log-info-repository in the session irrespective of the value set: mysql> SET GLOBAL relay_log_info_repository=TABLE; Query OK, 0 rows affected, 1 warning (0,00 sec) mysql> SHOW WARNINGS\G *************************** 1. row *************************** Level: Warning Code: 1287 Message: '@@relay_log_info_repository' is deprecated and will be removed in a future release. 1 row in set (0.01 sec) - Deprecation Warning in the error log when setting relay-log-info-repository in the server configuration The user visible change is that a deprecation warning will be emited when the user configures relay-log-info-repository in the config file and the server is restarted. Example: 2020-08-14T11:05:22.830731Z 0 [Warning] [MY-011069] [Server] The syntax '--relay-log-info-repository' is deprecated and will be removed in a future release. - Deprecation Warning in the session when setting master-info-repository dynamically The user visible change is that a deprecation warning will be emited when the user configures relay-log-info-repository=FILE in the session: mysql> SET GLOBAL master_info_repository=TABLE; Query OK, 0 rows affected, 1 warning (0,00 sec) mysql> SHOW WARNINGS\G *************************** 1. row *************************** Level: Warning Code: 1287 Message: '@@master_info_repository' is deprecated and will be removed in a future release. 1 row in set (0.00 sec) - Deprecation Warning in the error log when setting relay-log-info-repository in the server configuration The user visible change is that a deprecation warning will be emited when the user configures master-info-repository in the config file and the server is restarted. Example: 2020-08-14T10:58:53.283596Z 0 [Warning] [MY-011069] [Server] The syntax '--master-info-repository' is deprecated and will be removed in a future release. Upgrades ======== After using MySQL 8, the user will get the deprecation warnings as described in the previous section. This however, shall not break backwards compatibility. Security ======== There are no security considerations. Observability ============= There are no observability considerations. There is no new functionality added only a new warning is emited.
LOW LEVEL CHANGES ================= 1. Deploy DEPRECATED_VAR("") in the master-info-repository and relay-log-info-repository variable declaration. 2. Deploy conditional calls to push_deprecated_warn in mysql_get_one_options, for both relay_log_info_file and master_info_file, so that the warning is pushed at server start time, when the options is set. 3. Add test case validating session and server start warnings.
Copyright (c) 2000, 2024, Oracle Corporation and/or its affiliates. All rights reserved.