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

            mdcallag Mark Callaghan created issue -
            marko Marko Mäkelä made changes -
            Field Original Value New Value
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -

            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.
            serg Sergei Golubchik made changes -
            Assignee Michael Widenius [ monty ]
            serg Sergei Golubchik made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.6 [ 24028 ]
            Fix Version/s 10.11 [ 27614 ]
            Fix Version/s 11.0 [ 28320 ]
            Fix Version/s 11.1 [ 28549 ]
            Fix Version/s 11.2 [ 28603 ]
            serg Sergei Golubchik made changes -
            Affects Version/s 10.6 [ 24028 ]
            Affects Version/s 10.11 [ 27614 ]
            Affects Version/s 11.0 [ 28320 ]
            Affects Version/s 11.1 [ 28549 ]
            Affects Version/s 11.2 [ 28603 ]
            Affects Version/s 11.3 [ 28565 ]
            Affects Version/s 11.4 [ 29301 ]
            Affects Version/s 11.4.1 [ 29523 ]

            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.
            marko Marko Mäkelä made changes -
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 11.0 [ 28320 ]
            serg Sergei Golubchik made changes -
            Status Open [ 1 ] Confirmed [ 10101 ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 11.1 [ 28549 ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 11.2(EOL) [ 28603 ]

            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.