- global transaction IDs
- batch key access
- much better SMP performance for SHOW USER_STATS
- more changes to improve SMP performance. Changes were made to reduce contention on log_sys->mutex and buffer_pool->mutex.
- checksums on binlog events
Update 1 -- Domas asked about the overhead from using crc32 rather than adler32 for checksums. I did not measure any difference. Using checksums reduces performance by 3% to 7%. Details on the change and performance results are here.
Update 2 -- the latest SMP changes by Ben Handy improve sysbench readwrite performance by 20% at high levels of concurrency. My results are here.
Update 3 -- we backported batch key access from MySQL 6. Details are here.


Woot! More fun stuff to play with.
ReplyDeleteSweet..... can't wait to get these in our build.
ReplyDeleteSpecifically the binlog checksums.
Great news! Global transaction IDs make for quite a revolution, and binlog checksums are much required.
ReplyDeleteGood work!
"batch key access" - is this a backport of the batched key access join type from MySQL 6.0? Or is it something else?
ReplyDeleteYay!
ReplyDeleteYour patch is growing big, 153k line patch :)
ReplyDeleteLots of great stuff, I particularly liked the
new combination of buf_flush_list mutex and
log_sys mutex which seems to be a surgery
change. Small but very effective.
Any particular reason you didn't adopt the
Percona approach of using a RW-lock for the
buffer page hash mutex?
The rw-lock wasn't used for the buffer page hash mutex because we didn't try to figure out whether it was needed for our workloads. Ben has already moved on to getting the pool-of-threads backport in MySQL 5.0 to scale.
ReplyDelete