Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-33503

innodb_log_files_in_group is quietly ignored

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.6, 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL), 11.3(EOL), 11.4
    • 10.6, 10.11
    • None
    • None
    • Ubuntu 22.04

    Description

      Docs claim that innodb_log_files_in_group was removed in 10.6:
      https://mariadb.com/kb/en/innodb-system-variables/#innodb_log_files_in_group

      But I can start 11.4.1 with the following in my.cnf:
      innodb_log_files_in_group=16
      innodb_log_file_size=1G

      When I use the above I expect 16 1G files and 16G in total for redo, but I only get 1 1G file. This is bad for performance. MySQL and MariaDB have a way to deal with possibly unsupported options via the "skip_" prefix. I don't want MariaDB also quietly ignoring options that are not supported.

      Attachments

        Issue Links

          Activity

            MariaDB was changed to use a single log file in MDEV-20907 (MariaDB Server 10.5). A deprecation warning was added to InnoDB startup in 10.5.2, but it was lost when the deprecated setting was removed by MDEV-23397 in 10.6.0.

            The reason why the parameter is quietly ignored is that someone wanted to be old configuration files to "work" without any modification. That is why the MARIADB_REMOVED_OPTION was introduced in 10.5.

            Similar to the PLUGIN_VAR_DEPRECATED that was added in MDEV-27730, there is no consistent and prominent flagging about the use of any MARIADB_REMOVED_OPTION parameters. I did not find a bug specifically about this; maybe serg could retitle this bug and target the fix for the earliest affected version series, which would be 10.6.

            By the way, starting with MDEV-27812, you can SET GLOBAL innodb_log_file_size while the server is running. But unlike MySQL, there is no SET PERSISTENT in MariaDB Server.

            marko Marko Mäkelä added a comment - MariaDB was changed to use a single log file in MDEV-20907 (MariaDB Server 10.5). A deprecation warning was added to InnoDB startup in 10.5.2, but it was lost when the deprecated setting was removed by MDEV-23397 in 10.6.0. The reason why the parameter is quietly ignored is that someone wanted to be old configuration files to "work" without any modification. That is why the MARIADB_REMOVED_OPTION was introduced in 10.5. Similar to the PLUGIN_VAR_DEPRECATED that was added in MDEV-27730 , there is no consistent and prominent flagging about the use of any MARIADB_REMOVED_OPTION parameters. I did not find a bug specifically about this; maybe serg could retitle this bug and target the fix for the earliest affected version series, which would be 10.6. By the way, starting with MDEV-27812 , you can SET GLOBAL innodb_log_file_size while the server is running. But unlike MySQL, there is no SET PERSISTENT in MariaDB Server.

            This is dangerous and/or unfriendly.

            The impact here is that the InnoDB redo log would have been 1/16th the size that I requested and nothing in MariaDB warned me about that.

            mdcallag Mark Callaghan added a comment - This is dangerous and/or unfriendly. The impact here is that the InnoDB redo log would have been 1/16th the size that I requested and nothing in MariaDB warned me about that.

            This is intentional behavior that monty wanted. Removing any command line option could make the server to fail to start after an upgrade, unlike replacing an option with a dummy that does nothing. The argument was that failing to start after an upgrade is unfriendly.

            serg Sergei Golubchik added a comment - This is intentional behavior that monty wanted. Removing any command line option could make the server to fail to start after an upgrade, unlike replacing an option with a dummy that does nothing. The argument was that failing to start after an upgrade is unfriendly.

            Mark so good to see you here thanks

            stephane@skysql.com VAROQUI Stephane added a comment - Mark so good to see you here thanks
            wlad Vladislav Vaintroub added a comment - - edited

            MySQL and MariaDB have a way to deal with possibly unsupported options via the skip_ loose_ prefix.

            loose- , not skip-

            wlad Vladislav Vaintroub added a comment - - edited MySQL and MariaDB have a way to deal with possibly unsupported options via the skip_ loose_ prefix. loose- , not skip-
            stephane@skysql.com VAROQUI Stephane added a comment - - edited

            +1 for a fatal error if redo log size is going to decrease according to the config of innodb_log_files_in_group >1 instead of deprecate and continue. thinking all those benchmark around that simple use same config to compare flavors. looks like a task for the upcoming mariadb-config-upgrade client

            stephane@skysql.com VAROQUI Stephane added a comment - - edited +1 for a fatal error if redo log size is going to decrease according to the config of innodb_log_files_in_group >1 instead of deprecate and continue. thinking all those benchmark around that simple use same config to compare flavors. looks like a task for the upcoming mariadb-config-upgrade client

            The configuration upgrade helper tool is covered by MDEV-32745.

            There are a number of removed InnoDB options listed in sql/mysqld.cc.

            Performance-related would be also innodb_idle_flush_pct (10.1), which was documented as deprecated and having no effect already in 10.2. I see that it had been originally added in MDEV-6932 and the idea reimplemented in a different way in MDEV-26055.

            Most removed InnoDB parameters are really meaningless and the result of some cleanup such as MDEV-23379. For example, innodb_undo_logs a.k.a. innodb_rollback_segments is now hard-coded to the maximum value 128.

            I went through the list, and in addition to innodb_log_files_in_group I found only one InnoDB related MARIADB_REMOVED_OPTION that could cause surprises:innodb_stats_sample_pages should have been replaced to innodb_stats_transient_sample_pages but is now being ignored.

            marko Marko Mäkelä added a comment - The configuration upgrade helper tool is covered by MDEV-32745 . There are a number of removed InnoDB options listed in sql/mysqld.cc . Performance-related would be also innodb_idle_flush_pct (10.1), which was documented as deprecated and having no effect already in 10.2. I see that it had been originally added in MDEV-6932 and the idea reimplemented in a different way in MDEV-26055 . Most removed InnoDB parameters are really meaningless and the result of some cleanup such as MDEV-23379 . For example, innodb_undo_logs a.k.a. innodb_rollback_segments is now hard-coded to the maximum value 128. I went through the list, and in addition to innodb_log_files_in_group I found only one InnoDB related MARIADB_REMOVED_OPTION that could cause surprises: innodb_stats_sample_pages should have been replaced to innodb_stats_transient_sample_pages but is now being ignored.

            People

              monty Michael Widenius
              mdcallag Mark Callaghan
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.