Merge lp:~gl-az/percona-xtrabackup/2.0-io-block-size into lp:percona-xtrabackup/2.0
Status: | Work in progress |
---|---|
Proposed branch: | lp:~gl-az/percona-xtrabackup/2.0-io-block-size |
Merge into: | lp:percona-xtrabackup/2.0 |
Diff against target: |
234 lines (+99/-34) 3 files modified
innobackupex (+12/-1) src/xtrabackup.cc (+52/-33) test/t/xb_io_block_size.sh (+35/-0) |
To merge this branch: | bzr merge lp:~gl-az/percona-xtrabackup/2.0-io-block-size |
Related bugs: | |
Related blueprints: |
Specify I/O block size
(Undefined)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexey Kopytov (community) | Needs Information | ||
Review via email: mp+161862@code.launchpad.net |
Description of the change
This implements the io-block-size option for XtraBackup and innobackupex (just for passthrough) which specifies number of pages to read/write per cycle.
Changes made:
- Increased the default from 64 pages to 256 pages (4M).
- Changed the ds_buffer size when chained behind compression to (UNIV_PAGE_SIZE * (xtrabackup_iosize + 1)), the one extra page is for any additional formatting overhead that would normally be seen in compression and xbstream.
- Corrected the retry logic in fil_cur.cc so that an individual page will be re-read up to a pre-determined number of times and for each validation failure, only that page will be re-read. Previous logic would re-read the entire block and continue counting retry failures even across failed, then successfully read pages.
- Created very simple test case that sets io-block-size to a larger value.
- Corrupt page reads are tested as part of bug766033.sh which creates a corrupted dataset and looks for the error message.
- Not tested as part of any test is a page that has been read and failed validation, then re-read and passed.
Unmerged revisions
- 552. By George Ormond Lorch III
-
This implements the io-block-size option for XtraBackup and innobackupex (just for passthrough) which specifies number of pages to read/write per cycle.
Changes made:
- Increased the default from 64 pages to 256 pages (4M).
- Corrected the retry logic in xtrabackup_copy_datafile so that an individual page will be re-read up to a pre-determined number of times and for each validation failure, only that page will be re-read. Previous logic would re-read the entire block and continue counting retry failures even across failed and then successfully read pages.
- Created very simple test case that sets io-block-size to a larger value.
- Corrupt page reads are tested as part of bug766033.sh which creates a corrupted dataset and looks for the error message.
- Not tested as part of any test is a page that has been read and failed validation, then re-read and passed.
Jenkins: http:// jenkins. percona. com/view/ XtraBackup/ job/percona- xtrabackup- 2.0-param/ 427
Other notes:
- In recent testing on two systems, 256 pages seems to be a sweet spot with slowly increasing benefit up to about 512 pages. At 256 pages, a consistent 20-25% reduction in backup time is observed with only a very minor hit to concurrent load throughput.