LP #1264306: Per Session innodb_flush_log_at_trx_commit poorly documented

Description

**Reported in Launchpad by Jaime Crespo last update 01-08-2017 06:48:14

This and the same section on 5.5 is poorly written and has some documentation bugs:
http://www.percona.com/doc/percona-server/5.6/scalability/innodb_io.html#innodb_use_global_flush_log_at_trx_commit

In summary:

  • The feature doc is difficult to understand, and overuses "GLOBAL" when it means "session as if it was set globally"

  • I think it has some erroneous information: wrong quoted example and the session variable can always be set, but (hopefully) it will have no effect

  • The feature is not documented in any other place, and it requires further discussion than simple parameters settings

I have written an alternative version (please check validity) to at least change the current information:

---------------
This variable is used to enable or disable the effect of the per session value of innodb_flush_log_at_trx_commit.

If the global variable innodb_use_global_flush_log_at_trx_commit is set to 1 (True), the session will use always use the current global value of innodb_flush_log_at_trx_commit. This is the default value.

Under this mode, changing the session variable for innodb_flush_log_at_trx_commit will have no effect for upstream compatibility.

If the global variable innodb_use_global_flush_log_at_trx_commit is set to 0 (False), the user can modify the MySQL commit durability per session, using:

SET SESSION innodb_flush_log_at_trx_commit=N

This change will only affect the transactions in the session where it has changed, while the rest will keep the global innodb_flush_log_at_trx_commit value unless similarly changed.

Environment

None

Smart Checklist

Activity

patrick.birch January 17, 2020 at 4:01 PM

Merged 5.6 version

Merged 5.7 version

lpjirasync January 21, 2018 at 4:01 PM

**Comment from Launchpad by: Jaime Crespo on: 27-12-2013 09:39:24

For future reference, enabling a feature by setting it from 1 to 0 is anti-intuitive. I understand the original requirement of maintaining backwards compatibility, but setting innodb_use_session_flush_log_at_trx_commit to 1 would have been more intuitive.

lpjirasync January 21, 2018 at 4:01 PM

**Comment from Launchpad by: Laurynas Biveinis on: 27-12-2013 04:23:03

I agree that innodb_use_global_flush_log_at_trx_commit docs should be improved. The 5.1 innodb_flush_log_at_trx_commit_session docs are IMHO clearer but still targeting the bug to 5.1 too for a review (e.g. is innodb_flush_log_at_trx_commit_session really a global and not session variable?)

Done

Details

Assignee

Reporter

Needs Review

Yes

Time tracking

7h 40m logged

Components

Priority

Smart Checklist

Created January 21, 2018 at 4:00 PM
Updated March 6, 2024 at 3:09 PM
Resolved March 24, 2022 at 12:08 PM

Flag notifications