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

Remove support for XtraDB's changed page bitmap from Mariabackup in 10.2+

Details

    Description

      XtraDB supports a feature called "changed page tracking":

      XtraDB now tracks the pages that have changes written to them according to the redo log. This information is written out in special changed page bitmap files. This information can be used to speed up incremental backups using Percona XtraBackup by removing the need to scan whole data files to find the changed pages. Changed page tracking is done by a new XtraDB worker thread that reads and parses log records between checkpoints. The tracking is controlled by a new read-only server variable innodb_track_changed_pages.

      Bitmap filename format used for changed page tracking is ib_modified_log_<seq>_<startlsn>.xdb. The first number is the sequence number of the bitmap log file and the startlsn number is the starting LSN number of data tracked in that file. Example of the bitmap log files should look like this:

      https://www.percona.com/doc/percona-server/5.6/management/changed_page_tracking.html

      This was used for incremental backups in Percona XtraBackup:

      An incremental backup copies each page whose LSN is newer than the previous incremental or full backup’s LSN. There are two algorithms in use to find the set of such pages to be copied. The first one, available with all the server types and versions, is to check the page LSN directly by reading all the data pages. The second one, available with Percona Server, is to enable the changed page tracking feature on the server, which will note the pages as they are being changed. This information will be then written out in a compact separate so-called bitmap file. The xtrabackup binary will use that file to read only the data pages it needs for the incremental backup, potentially saving many read requests. The latter algorithm is enabled by default if the xtrabackup binary finds the bitmap file. It is possible to specify xtrabackup --incremental-force-scan to read all the pages even if the bitmap data is available.

      https://www.percona.com/doc/percona-xtrabackup/2.3/backup_scenarios/incremental_backup.html

      MariaDB switched from XtraDB to InnoDB in MariaDB 10.2 and later, so those versions do not support this changed page tracking:

      innodb_track_changed_pages

      Description: For faster incremental backup with Xtrabackup, XtraDB tracks pages with changes written to them according to the XtraDB redo log and writes the information to special changed page bitmap files. This read-only variable is used for controlling this feature. See also innodb_max_changed_pages and innodb_max_bitmap_file_size. XtraDB only. Added as a deprecated and ignored option in MariaDB 10.2.6 (which uses InnoDB as default instead of XtraDB) to allow for easier upgrades.

      https://mariadb.com/kb/en/library/innodb-system-variables/#innodb_track_changed_pages

      We should probably remove support for this in Mariabackup in 10.2 and later, if we do not plan to support it. It looks like the code is still there:

      https://github.com/MariaDB/server/blob/mariadb-10.4.4/extra/mariabackup/changed_page_bitmap.cc#L61

      Attachments

        Issue Links

          Activity

            The code was removed from mariadb-backup as part of fixing MDEV-33383, which was about some incorrect usage of rbt_create() (in a different subsystem). Sorry, I should have looked up this ticket for the commit message.

            marko Marko Mäkelä added a comment - The code was removed from mariadb-backup as part of fixing MDEV-33383 , which was about some incorrect usage of rbt_create() (in a different subsystem). Sorry, I should have looked up this ticket for the commit message .

            People

              marko Marko Mäkelä
              GeoffMontee Geoff Montee (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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