lp:~vlad-lesin/percona-server/5.6-logical-readahead

Created by Vlad Lesin on 2014-04-22 and last modified on 2014-04-22
Get this branch:
bzr branch lp:~vlad-lesin/percona-server/5.6-logical-readahead
Only Vlad Lesin can upload to this branch. If you are Vlad Lesin please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

578. By Vlad Lesin on 2014-04-22

Add mysqldump support for logical read ahead

Summary:
Adds options to mysqldump:
 --lra-size=X
 --lra-sleep=X
 --lra-n-node-recs-before-sleep=X

These just inject SET statements to set these session variables.

The original implementation is here:
https://github.com/facebook/mysql-5.6/commit/f69a4ea522bce24e4cdcc7696d5fad29587cf87a

577. By Vlad Lesin on 2014-04-22

When the session variable innodb_lra_size is set to N, we issue async
read requests for the next M logical pages where the total size of the M
pages on disk is N megabytes. The max allowed value of innodb_lra_size
is is 16384 which corresponds to prefetching 16GB of data. We may choose
to use smaller values in production.

The original implementation can be found here:
https://github.com/facebook/mysql-5.6/commit/f8e361952612d00979f7cf744f487e48b15cb5a6

This implementation does not contain code for flashcahe.

576. By Vlad Lesin on 2014-04-21

Merge aio page read requests

Summary:
Tries to submit multiple aio page read requests together to improve read
performance.

The original code and description can be found here:
https://github.com/facebook/mysql-5.6/commit/f9d1a5332eb2c82c028638d3b93b5a3592a69ffa

The difference between this and the original implementation is that fil_io()
macros invokes _fil_io() function with enabled io's buffering by default in
the original implementation, it can cause the errors connected with waiting
io finishing just after fil_io() invocation.

For example log_archive_do() waits io's finishing on log_sys->archive_lock
mutex, but the mutex is not being unlocked as io's were buffered and
uncommited and io_handler_thread() does not process io's completion in
fil_aio_wait(). Potentially there can be the same errors so io's buffering
is disabled by default and will be enabled only for logical readahead code.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:percona-server/5.6
This branch contains Public information 
Everyone can see this information.

Subscribers