Created by Mark Callaghan on 2009-08-13 and last modified on 2013-06-20

This is out of date repo, current Facebook MySQL code lives at:

And 5.6 at:

Get this branch:
bzr branch lp:mysqlatfacebook/trunk
Members of MySQLAtFacebook can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information


Recent revisions

109. By Mark Callaghan on 2010-05-05

Update 5.0 to latest version of fast timer code from 5.1.

This version of the fast timer patch includes automatic
detection of CPU synchronization. We need this in order to disable fast
timers on hardware that does not prevent cycle counter drift between x86 cores.

108. By Mark Callaghan on 2010-05-05

Initialize THD::examined_row_count

The slocket would show weird values for examined_row_count when showing
operations that didn't examine rows, such as 'USE database'. This is
because when no rows are examined, the variable is never set. This sets
the variable when the THD is created, as is done in 5.1.

107. By Mark Callaghan on 2010-05-05

Apply commit 97825 for bug 49238: Crash in row_drop_table_for_mysql().

Creating/Dropping a temporary table while at 1023 transactions
will cause assert. Handle possible DB_TOO_MANY_CONCURRENT_TRXS when
deleting metadata in row_drop_table_for_mysql().

106. By Mark Callaghan on 2010-05-05

Re-enable fsync w/O_DIRECT when idb file changes size.

Some file systems don't write fs metadata immediately. After
system crash the ibdata files appeared much smaller than they should have
been preventing recovery. This change re-enables sync on O_DIRECT only when the
file node size has changed since the last sync.

105. By Mark Callaghan on 2010-05-05

Fix bug for my_fast_timer_is valid when low order 32 bits are 0

104. By Mark Callaghan on 2010-05-05

Provide compile-time option to use gettimeofday instead of rdtsc for my_fast_timer_t.
Older x86 HW does not provide guarantees against clock drift for the cycle timer used by
rdtsc. The only way to prevent this is to pin all threads to one core. A compile time
option is added -- use ./configure C_EXTRA_FLAGS="-DMY_FAST_TIMER_RDTSC" to use rdtsc().
Otherwise, gettimeofday is used.

103. By Mark Callaghan on 2010-05-05

Fix bug in slocket Lock_time and Lock_time fast calculations

The code used the difference between the wrong values when calculating
lock times in the slocket. It used the time before the lock.

102. By Mark Callaghan on 2010-03-16

Make innodb_lock_wait_timeout dynamic and per session.
Currently, innodb_lock_wait_timeout can only be set in my.cnf and not
changed after mysqld is running. This changes that and allows it to
be set per session.

101. By Mark Callaghan on 2010-03-16

Add my.cnf option innodb_retry_io_on_error to retry read & write once
after a disk error (EIO). Add SHOW STATUS counters:
Innodb_data_retried_reads - number of reads retried
Innodb_data_retried_writes - number of writes retried
Also print counters in SHOW INNODB STATUS in FILE section

100. By Mark Callaghan on 2010-03-16

Add counters for innodb commit and rollback. Add to SHOW STATUS
Innodb_transaction_commit_all - counts all commits (readonly and readwrite)
Innodb_transaction_commit_with_undo - count commits for which undo was created
Innodb_transaction_rollback_total - count rollback of transaction
Innodb_transaction_rollback_parital - count rollback to savepoint or from
    one statement
Also, display output in TRANSACTION section of SHOW INNODB STATUS

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.