Specify I/O block size

Registered by Alexey Kopytov on 2012-05-04

Converted from bug #976716.

In this article http://www.facebook.com/note.php?note_id=10150098033318920
Facebook says that using 8MB block IO shows better results than 1MB IO.
I propose we create command line parameter to be able to change default IO block size.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Vadim Tkachenko
Direction:
Needs approval
Assignee:
None
Definition:
Review
Series goal:
Accepted for 2.0
Implementation:
Unknown
Milestone target:
None

Whiteboard

I suggest we do the following (well, actually I have it mostlyimplemented already):
- Implement new option '--io-block-size' to xtrabackup and innobackupex (just for passthrough) which specifies number of pages to read/write per cycle.
- Increase the default from 64 pages to at least 256 pages (4M). In my recent testing on two systems, this seems to be a sweet spot with slowly increasing benefit up to about 512 pages. At 256 pages I am able to consistently get a 20-25% reduction in backup time with only a very minor hit to concurrent load throughput.
- For 2.1 with ds_buffer behind compression (and need to add behind encryption), should consider changing buffer size to (UNIV_PAGE_SIZE * (xtrabackup_iosize + 1)).
- Add a simple new test case to test with unusually low # and unusually high # as well as an unaligned value.

I have everything already implemented in a sandbox except for the test cases if you would like to move it forward.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.