lp:~laurynas-biveinis/percona-server/bug1235379

Created by Laurynas Biveinis and last modified
Get this branch:
bzr branch lp:~laurynas-biveinis/percona-server/bug1235379
Only Laurynas Biveinis can upload to this branch. If you are Laurynas Biveinis please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

462. By Laurynas Biveinis on 2013-10-06

Make use of flush wait events in the sync preflush backoff algorithm,
fixing bug 1235379.

Add new function buf_flush_flush_list_in_progress() to check whether
there is a flush list flush in progress on any buffer pool instance.
Use this function in log_preflush_pool_modified_pages() to backoff
until this condition is true, and then wait until the flush completes
by a buf_flush_wait_batch_end() call.

Additionally revert to the synchronous flush algorithm when
log_preflush_pool_modified_pages() is called to clean the whole buffer
pool (new_oldest == LSN_MAX), and adjust buf_flush_list() not to apply
flush time limit for such flushes.

At the same time implement flush list flush cleaner tweaks: issue
buf_flush_common() calls during flush list flushing less frequently,
as would Oracle MySQL 5.6 call it, and adjust AF heuristics not to
throttle flushing using avg_page_rate if the server is in async flush
zone.

At the same time fix bug 1235978 (Purge thread deadlock on shutdown
with --innodb_empty_free_list_algorithm=backoff), which is made
visible by the above changes, by only using free list backoff
algorithm if the server is not in the shutdown.

At the same time fix bug 1235730 (Sporadic percona_changed_page_bmp
testcase warnings) by removing the timeouts from shutdow_server
command in the testcase and using the default 60 second timeout.

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.