Bug #114912 binlog_transaction_dependency_tracking in 8.4: changed default or removed ?
Submitted: 7 May 2024 16:04 Modified: 8 May 2024 13:29
Reporter: Jean-François Gagné Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:8.4 OS:Any
Assigned to: CPU Architecture:Any

[7 May 2024 16:04] Jean-François Gagné
Description:
Hi,

"What Is New in MySQL 8.4 since MySQL 8.0" [1] indicates that binlog_transaction_dependency_tracking default was changed (quote below)...

[1]: https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html

> Change in binlog_transaction_dependency_tracking default value.  The binlog_transaction_dependency_tracking server system variable was deprecated in MySQL 8.2.0. In preparation for the eventual removal of this variable, its default value is now WRITESET. There are no plans to replace this variable or its functionality, which is expected later to be made internal to the server.

...but "Changes in MySQL 8.4.0" [2] indicates it was removed (quote below)...

[2]: https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-0.html

> A number of server options and variables supported in previous versions of MySQL have been removed in this release. Attempting to set any of them in MySQL 8.4 raises an error. These options and variables are listed here:
>
> binlog_transaction_dependency_tracking: Deprecated in MySQL 8.0.35 and MySQL 8.2.0.

...and it looks it was removed (see How to repeat), so "What Is New in MySQL 8.4 since MySQL 8.0" should be corrected.

Somehow related, the link to binlog_transaction_dependency_tracking in the binlog_group_commit_sync_delay section of the 8.4 doc [3] points to the 8.0 docs.  It is weird to have a mention of binlog_transaction_dependency_tracking in the 8.4 docs if it is removed, unclear how this should be fixed.

[3]: https://dev.mysql.com/doc/refman/8.4/en/replication-options-binary-log.html#sysvar_binlog_...

Many thanks for looking into this,

Jean-François Gagné

How to repeat:
Check the docs.

And it was removed:

# Create a 8.4.0 sandbox.
dbdeployer deploy single 8.4.0

# No binlog_transaction_dependency_tracking in 8.4.0.
$ ./use -N <<< "select version(); show global variables like 'binlog_transaction_%'"
8.4.0
binlog_transaction_compression	OFF
binlog_transaction_compression_level_zstd	3
binlog_transaction_dependency_history_size	25000
[7 May 2024 16:56] Jean-François Gagné
Also in "What Is New in MySQL 8.4 since MySQL 8.0" [1], I can read:

[1]: https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html

> This means that, beginning with this release, if binlog_transaction_dependency_tracking is set to WRITESET or WRITESET_SESSION, binlog_format must be ROW; MIXED is no longer supported in such cases.

But binlog_transaction_dependency_tracking has been removed, so this sentence makes little sense.  How this should be fixed.
[8 May 2024 6:36] MySQL Verification Team
Hello Jean-François,

Thank you for the report and feedback.

regards,
Umesh
[8 May 2024 13:29] Jon Stephens
Checked all references to this variable; there should no longer be any conflicting info or confusing cross-version linking in the 8.4 Manual or changelogs.

Fixed in mysqldoc rev 78552 & mysql-relnotes rev 28333.

Closed.

Thanks.