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

Change the default value for innodb_log_compressed_pages to false

    Details

      Description

      https://github.com/facebook/mysql-5.6
      commit ca40b4417fd224a68de6636b58c92f133703fc68

      Change the default value for innodb_log_compressed_pages to false

      Summary:
      Feature: 2012 InnoDB Compression

      Logging these pages is a waste. We don't want this to be enabled.

      One caution here: If the zlib version used by innodb is changed, but
      the running version is still the previous version, and the running
      version crashes, it is possible crash recovery could fail.

      When crash recovery uses a zlib version at all different than the
      version used by the crashed instance, it is possible that a redone
      compression could fail, where the original did not, because the new
      zlib version compresses the same data to a slightly larger size.

      Because of the nature of compression, this is even possible when
      upgrading to a version of zlib which actually peforms overall better
      compression than the previous version.

      If this happens, mysql will fail to recover, since a page split can
      not be safely triggered during crash recovery.

      So, either the exact zlib version must be controlled between builds,
      or these rare recovery failures must be accepted. The cost of
      logging these pages is quite high, so we consider this limitation to
      be worthwhile.

      This failure scenario can not happen if there was a clean shutdown.
      This is only relevant to restarting crashed instances, or starting an
      instance built via a hot backup too (XtraBackup).

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              jplindst Jan Lindström added a comment -

              commit f0a545ccfbde0b7d5cf23968c8a6d3d919bb1455
              Author: Jan Lindström <jan.lindstrom@skysql.com>
              Date: Wed Oct 29 10:42:27 2014 +0200

              MDEV-6935: Change the default value for innodb_log_compressed_pages to false

              Merge Facebook commit ca40b4417fd224a68de6636b58c92f133703fc68
              authored by Steaphan Greene from https://github.com/facebook/mysql-5.6
              Change the default value for innodb_log_compressed_pages to false

              Logging these pages is a waste. We don't want this to be enabled.

              One caution here: If the zlib version used by innodb is changed, but
              the running version is still the previous version, and the running
              version crashes, it is possible crash recovery could fail.

              When crash recovery uses a zlib version at all different than the
              version used by the crashed instance, it is possible that a redone
              compression could fail, where the original did not, because the new
              zlib version compresses the same data to a slightly larger size.

              Because of the nature of compression, this is even possible when
              upgrading to a version of zlib which actually peforms overall better
              compression than the previous version.

              If this happens, mysql will fail to recover, since a page split can
              not be safely triggered during crash recovery.

              So, either the exact zlib version must be controlled between builds,
              or these rare recovery failures must be accepted. The cost of
              logging these pages is quite high, so we consider this limitation to
              be worthwhile.

              This failure scenario can not happen if there was a clean shutdown.
              This is only relevant to restarting crashed instances, or starting an
              instance built via a hot backup too (XtraBackup).

              Show
              jplindst Jan Lindström added a comment - commit f0a545ccfbde0b7d5cf23968c8a6d3d919bb1455 Author: Jan Lindström <jan.lindstrom@skysql.com> Date: Wed Oct 29 10:42:27 2014 +0200 MDEV-6935 : Change the default value for innodb_log_compressed_pages to false Merge Facebook commit ca40b4417fd224a68de6636b58c92f133703fc68 authored by Steaphan Greene from https://github.com/facebook/mysql-5.6 Change the default value for innodb_log_compressed_pages to false Logging these pages is a waste. We don't want this to be enabled. One caution here: If the zlib version used by innodb is changed, but the running version is still the previous version, and the running version crashes, it is possible crash recovery could fail. When crash recovery uses a zlib version at all different than the version used by the crashed instance, it is possible that a redone compression could fail, where the original did not, because the new zlib version compresses the same data to a slightly larger size. Because of the nature of compression, this is even possible when upgrading to a version of zlib which actually peforms overall better compression than the previous version. If this happens, mysql will fail to recover, since a page split can not be safely triggered during crash recovery. So, either the exact zlib version must be controlled between builds, or these rare recovery failures must be accepted. The cost of logging these pages is quite high, so we consider this limitation to be worthwhile. This failure scenario can not happen if there was a clean shutdown. This is only relevant to restarting crashed instances, or starting an instance built via a hot backup too (XtraBackup).

                People

                • Assignee:
                  jplindst Jan Lindström
                  Reporter:
                  jplindst Jan Lindström
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: