Multiple changed page bitmap file support in XtraDB

Registered by Laurynas Biveinis

Implement multiple bitmap file support in XtraDB. The files shall be named as follows: ib_modified_log_<seq>_<startlsn>.xdb, where seq is incremented for each following bitmap file and startlsn is monotonically increasing sequence of starting LSN of data tracked in that file. For example, there could be files ib_modified_log_1_0.xdb, ib_modified_log_2_1230000.xdb, ib_modified_log_3_2445400.xdb. It is assumed that the tracked LSN range is continuous, thus there is no need to store the end LSN for each file somehow. In the case the LSN range is not continuous, the start LSN in the file name matches the actual start LSN of the data in the file. The start LSN of the 1st file in sequence is always 0.

The sequence number is there for humans to ensure the presence of all required data, and the start LSN number will be used in XtraBackup and INFORMATION_SCHEMA queries to determine which files have to be opened and read for the required LSN interval data.

The bitmap file is rotated on each server restart and whenever the current file size reaches the predefined maximum. This maximum is controlled by a new innodb_max_bitmap_file_size variable.

The server startup check of previously-tracked data is adjusted as follows. The reading of the data backwards to find the end of good tracking data is limited to the last file only. In the case the last file does not contain good data at all, we assume that the log is tracked up to LSN that is contained in the last file name. This does not limit the crash recovery in any way.

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Laurynas Biveinis
Direction:
Approved
Assignee:
Laurynas Biveinis
Definition:
Approved
Series goal:
Accepted for 5.5
Implementation:
Implemented
Milestone target:
milestone icon 5.5.28-29.2
Started by
Laurynas Biveinis
Completed by
Stewart Smith

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.