Created by Alexey Kopytov on 2011-01-12 and last modified on 2011-01-12
Get this branch:
bzr branch lp:~percona-dev/percona-server/fb_changes_auto_lru_dump
Members of Percona developers can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

190. By Alexey Kopytov on 2011-01-12

Merged Facebook's changes to innodb_lru_dump_restore.patch:

LRU is dumped to a temporary file first to avoid partially written files
in backups or in case of a crash.

Release the LRU mutex while doing memset and file IO. Should mimimize
the impact on the host during scheduled LRU dump. Basic detection of
LRU cycling should the next page to dump be put back at the head of the
LRU during the unlocked window.

Added option innodb_lru_dump_old_pages to control whether old pages are
included in the LRU dump. The default is to only dump young pages.

Added option innodb_lru_load_max_entries specifying the maximum number
of LRU entries to restore. The default is 512k entries (8GB).
Consecutive pages are merged and only count as one, so you will probably
load more pages than this number of LRU entries.

Switched to writing out LRU in priority order.

Load in LRU priority order, but always merge consecutive pages.

Add status vars for LRU restore progress: lru_restore_total_pages and

Added restore rate limiting (restore no more than innodb_io_capacity
pages per second). In my testing, a value of 5000 is fine for a
pre-up-ip warmup, but this should be reduced to 500 before serving
traffic to ensure adequate IO capacity is available for foreground

189. By Oleg Tsarev on 2011-01-07

final fix test for patch show_slave_status_nolock.patch. Unfortunatelly, SHOW SLAVE STATUS NOLOCK doesn't determenistic, because doesnt' lock mutex. As result we get float result of tests. Now I remove the SHOW SLAVE STATUS NOLOCK output from the test's result

188. By Oleg Tsarev on 2011-01-06

remove wrong patch

187. By Aleksandr Kuzminsky on 2011-01-06

Ported fixed tests from 5.1.53

186. By Oleg Tsarev on 2011-01-05

I change test for show_slave_status_nolock.patch - replace values in columns Slave_IO_Running and Slave_SQL_Running by constants, and add additional sleep (I didn't find quick in mysql-test-framework way without sleep).

185. By Ignacio Nin on 2011-01-05

Merged from ~percona-dev/percona-server/innodb_bug56413_test_disable

184. By Alexey Kopytov on 2011-01-04

Fixed linker errors about undefined clock_gettime() in client programs
when building without SSL support (i.e. without the '--with-ssl' option
to configure).

The problem was that in client/Makefile.am "LIBS" is overwritten by
"CLIENT_LIBS". So adding "-lrt" to LIBS alone is not enough, it has to
be added to CLIENT_LIBS as well. --with-ssl pulls the "-lrt" flag to
CLIENT_LIBS, that's why the problem could only be observed in very
specific build configurations (e.g. all BUILD/* scripts did not have
it). Actually, the problem exists in the MySQL server as well. It is
just hidden because MySQL does not check for librt at configure stage,
so it is always built without clock_gettime() support by default.

Fixed by adding "-lrt" to CLIENT_LIBS as well. AC_SEARCH_LIBS() has to
be used instead of AC_CHECK_LIB() now, because apart from adding a
library flag to LIBS we now have to perform an additional action.

183. By Oleg Tsarev on 2010-12-29

Sometime test percona_slow_extended-log_slow_verbosity are failed.
This test run long query(SELECT sleep(2)), and than analyze slow query log (search string "No InnoDB statistics available for this query").
You can see bug #695373 - first run of test doesn't string "No InnoDB... " instead of one, but retry run found two string instead of one.
I think reason of that - script searchs string in slow query log BEFORE this string was wrote to log by mysql.

I add FLUSH LOGS, and now test work fine.

Similar changes for tests:

182. By Alexey Kopytov on 2010-12-28


181. By Alexey Kopytov on 2010-12-23

Bug #692211: innodb_auto_lru_dump crashes if ib_lru_dump doesn't exist

Starting the server with a non-zero innodb_auto_lru_dump value could
crash the server if the dump file does not exist.

The problem was that the 'records' pointer was not initialized at the
start of buf_LRU_file_restore(). This could lead to calling ut_free()
with uninitialized value when the dump file is not found and further
execution of buf_LRU_file_restore() is therefore aborted.

Fixed by initializing 'records' with NULL.

Branch metadata

Branch format:
Branch format 6
Repository format:
Bazaar pack repository format 1 (needs bzr 0.92)
This branch contains Public information 
Everyone can see this information.