WL#13950: Deprecate transaction_write_set_extraction
Affects: Server-8.0 — Status: Complete
EXECUTIVE SUMMARY ================= This worklog deprecates the option transaction_write_set_extraction. There shall not be any alternative and the writeset shall always use XXHASH64. The default of transaction_write_set_extraction is XXHASH64 already. Background ========== This worklog implements a deprecation warning when the user sets or reads the value of transaction_write_set_extraction. This WL deprecates the option and warning is logged irrespective of value set. By default server shall always use XXHASH64. The default is XXHASH64 as of WL10477: Defaults: Enable Transaction Write Sets Rationale ========= - We want users to use only XXHASH64 going forward.
FR1. Server SHALL emit a warning in the session when configuring transaction_write_set_extraction Session or Global or persist value in the session (SET GLOBAL transaction_write_set_extraction...) FR2. Server SHALL emit a warning, at server start time, when configuring transaction_write_set_extraction in the server configuration file (transaction_write_set_extraction=..) FR3: Server SHALL emit a warning, at server start time, when passing transaction_write_set_extraction as a server start up option on the command line. FR4: Server SHALL emit a warning in the session when reading transaction_write_set_extraction Session or Global value in the session (SELECT @@GLOBAL.transaction_write_set_extraction...) FR5: RESET PERSIST transaction_write_set_extraction should not generate a warning.
User Visible Changes ==================== - Deprecation Warning in the session when setting transaction_write_set_extraction dynamically The user visible change is that a deprecation warning will be emited when the user configures transaction_write_set_extraction in the session irrespective of the value set: mysql> SET GLOBAL transaction_write_set_extraction=XXHASH64; Query OK, 0 rows affected, 1 warning (0,00 sec) mysql> SHOW WARNINGS\G *************************** 1. row *************************** Level: Warning Code: 1287 Message: '@@transaction_write_set_extraction' 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 transaction-write-set-extraction in the server configuration The user visible change is that a deprecation warning will be emited when the user configures transaction-write-set-extraction in the config file and the server is restarted. Example: 2020-08-14T11:05:22.830731Z 0 [Warning] [MY-011069] [Server] The syntax '--transaction-write-set-extraction' 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 transaction-write-set-extraction variable declaration. 2. Deploy conditional calls to push_deprecated_warn in mysql_get_one_options, for transaction-write-set-extraction, so that the warning is pushed at server start time, when the options is set. 3. Add test case validating session, global, persist and server start warnings.
Copyright (c) 2000, 2021, Oracle Corporation and/or its affiliates. All rights reserved.