Narendra Dhami

My Site

INNODB Performance TODO List

Posted by Narendra Dhami on August 7, 2009

These are my plans for making InnoDB faster on SMP and high-IOPs servers. I think we can double throughput at high levels of concurrency.

Future work:

1. Reduce the size of mutex and rw-lock structures
2. Reduce contention on the sync array mutex
3. Reduce contention on kernel_mutex
4. Reduce contention on commit_prepare_mutex
5. Reduce the number of mutex lock/unlock calls used when a thread is put on the sync array
6. Name all events, rw-locks and mutexes in InnoDB to make contention statistics output useful
7. Add optional support to time all operations that may block
8. Introduce dulint to native 64-bit integer types
9. Make BUF_READ_AHEAD_AREA a compile-time constant
10. Prevent full table scans from wiping out the InnoDB buffer cache
11. Make prefetching smarter
12. Get feedback from Dimitri, Domas, Mikael and Percona
13. Use prefetch with MRR/BKA to get parallel IO in InnoDB
14. Investigate larger doublewrite buffer to allow for more concurrent IOs
15. Make Innodb work with a 4kb page size
16. Make trx_purge() faster when called by the main background thread
17. Use crc32 for Innodb page checksums with hardware support or otherwise make checksum faster.
18. Reduce the per-page overhead for sync objects
19. Repeat

Current work:

1. Add my.cnf options to disable InnoDB prefetch reads
2. Put more output in SHOW INNODB STATUS and SHOW STATUS
3. Reduce the overhead from buf_flush_free_margin()
4. Change background IO threads to use available IO capacity
5. Use more IO to merge insert buffer records when the insert buffer is full

Non-InnoDB work:

1. Fix mutex contention for the HEAP engine
2. Fix mutex contention for the MyISAM engine
3. Fix mutex contention for the query cache
4. Give priority (CPU, disk) to the replication SQL thread to minimize replication delay.
5. Push changes for –oltp-secondary-index to public sysbench branch
6. Add support to sysbench fileio for transaction log and doublewrite buffer IO patterns

Originally from


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: