Make incremental backups use the changed page bitmap data

Registered by Laurynas Biveinis

Add another incremental backup implementation to XtraBackup in addition to the existing one that iterates over all data files to check last page modification LSN > LSN of last full backup. The new implementation avoids the full scan by using the changed page bitmap data to read only the required subset of pages.

The bitmap data is produced by XtraDB as documented in
https://blueprints.launchpad.net/percona-server/+spec/xtradb-changed-page-bitmap-writer

The bitmap data will be parsed for the interval (incremental_lsn, last_xb_startup_checkpoint_lsn). Here incremental_lsn is the value of --incremental-lsn option or its equivavalent from the base backup metadata. Last_xb_startup_checkpoint_lsn is the last checkpoint LSN value at the time of XtraBackup startup, that is, the LSN value where it starts the log copying operation.

This blueprint does not include:
- Attempting to read bitmap data in the loop with sleeps if the required data is not available yet.
- Multiple bitmap file support.

Blueprint information

Status:
Complete
Approver:
Alexey Kopytov
Priority:
High
Drafter:
Laurynas Biveinis
Direction:
Approved
Assignee:
Laurynas Biveinis
Definition:
Approved
Series goal:
Accepted for 2.1
Implementation:
Implemented
Milestone target:
None
Started by
Laurynas Biveinis
Completed by
Alexey Kopytov

Whiteboard

Alexey: it should be a new method of incremental backups in addition to the existing one, so we keep the ability to backup the upstream server. From the BP text one may get an impression we are going to replace the existing scan method completely.
Laurynas: updated to clarify.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.