Created by Kristian Nielsen on 2011-08-10 and last modified on 2011-08-12
Get this branch:
bzr branch lp:~knielsen/mysqlatfacebook/mwl234
Only Kristian Nielsen can upload to this branch. If you are Kristian Nielsen please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Kristian Nielsen

Recent revisions

3632. By Kristian Nielsen on 2011-08-12

MWL#234 after-review fixes: Better names for new system variables.

3631. By Kristian Nielsen on 2011-08-12

MWL#234: After-review fixes.

3630. By Kristian Nielsen on 2011-08-10

MWL#234: Implement protection against changing @@do_not_replicate in the middle of statement or transaction.

3629. By Kristian Nielsen on 2011-08-10

MWL#234: Merge implementation into the mysqlatfacebook tree.

3628. By Mark Callaghan on 2011-02-03

Add log_query_sample_rate and log_error_sample_rate

When log_query_sample_rate is > 0, then 1 / log_query_sample_rate of all queries
are written to the slow query log. When log_error_sample_rate is > 0, then
1 / log_error_sample_rate of all queries that raise an error are written to the
slow query log.

These do not change behavior for the existing parameters that also determine
when a statement is logged.

This also fixes the Errno value printed in the slow query log so that it is
usually correct.

3627. By Mark Callaghan on 2011-02-03

Change the default for innodb_ibuf_max_pct_of_buffer from 25% to 50% to
match existing behavior

3626. By Mark Callaghan on 2011-02-03

fix compiler warning from previous commit

3625. By Mark Callaghan on 2011-02-03

Adds the Innodb my.cnf variable innodb_sync_checkpoint_limit.
This is a percentage and is used to override the sync and async checkpoint
limits. This is ignored when set to 0. Those limits determine when dirty
pages are flushed to enforce fuzzy checkpoint constraints. Making this
greater than 80 might reduce the dirty page flush rate. Assume that max_size
is the sum of the transaction log file sizes, then the current code sets the
sync checkpoint limit to 0.9 * 0.9 * (15/16) of max_size (about 75% of it)
and the async limit to 0.9 * 0.9 * (7/8) of max size (about 70% of it).
When this is set to a non-zero value, then the sync limit is set to
(sync_checkpoint_limit/100) * 0.95 of max_size and the async limit is set to
(sync_checkpoint_limit/100) * 0.90 of max_size. The impact of this is that
you get the performance benefits of a larger transaction log file without
making it larger.
Below, "age" is Innodb_lsn_current - Innodb_lsn_oldest
Also adds SHOW STATUS counters:
Innodb_preflush_async_limit - limit at which async page flushes are done for
fuzzy checkpoint
Innodb_preflush_sync_limit - limit at which sync page flushes are done for
fuzzy checkpoint
Innodb_preflush_async_margin - age minus preflush_async_limit
Innodb_preflush_sync_margin - age minus preflush_sync_limit
Innodb_checkpoint_lsn - LSN of last checkpoint
Innodb_lsn_current - current LSN
Innodb_lsn_current_minus_oldest - current LSN minus oldest LSN for which there
    is a dirty page in the buffer pool
Innodb_lsn_oldest - min of the oldest modification LSN from all dirty pages
Innodb_purged_pages - number of pages processed by trx_purge
I ran sysbench for a read-write workload using 2 x 1900 transaction log files
and with innodb_sync_checkpoint_limit=95, the page write rate was 80% of the rate with
the default settings.

3624. By Mark Callaghan on 2011-02-03

Backport the fix for http://bugs.mysql.com/bug.php?id=59143. The fix is in the 5.1
mysql-server branch on launchpad and is obtained via "bzr log -r revno:3452.13.3 -p"

3623. By Mark Callaghan on 2011-02-03

Add Records_in_range_calls column to IS.user_statistics
This column counts the number of calls to handler::records_in_range per account

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.