Development Plans

We are considering developing or integrating the following extensions to the standard MySQL server (in random order, not in order of priority). If you would like to discuss any of these enhancements, please contact us. Enhancements are usually sponsored by customers or interested community members.

General Storage Engines


  • Add replication load statistics. The idea is to measure how much time passed since the replication thread was started. We simply need to measure its start time compared to the current time. We also want to capture the time the SQL thread spends executing the queries. If we see the replication thread has been running for 500 seconds and it executed queries for 200 seconds, we know the replication load is 40%. We should just keep it as two numbers so they can be easily incrementally measured (i.e. each 5 minutes).

Server Enhancements

  • Add query timeouts.
  • Show more information on filesorts. There are two kinds of filesorts, and the micro-slow logging patch doesn't show which one was used for any given query. Also, we could implement a new status variable to count one of the types. This would allow to know the ratio of single-pass filesorts to dual-pass.
  • Create a counter to track the size of the largest implicit temporary table created.
  • Include the FNV_64() hash function from maatkit.
  • Add CPU time for the query in PROCESSLIST table.
  • Make 5.1 partitioning support different storage engines.

InnoDB Enhancements

  • Make InnoDB tablespace movable when innodb_file_per_table is used.
  • SHOW MUTEX STATUS not only for InnoDB mutexes, but for all (in INFORMATION_SCHEMA).
  • Make more of InnoDB's settings into server variables (such as page fill factor, LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK, LOCK_MAX_N_STEPS_IN_DEADLOCK_CHECK).
  • Look if we can replace the standard InnoDB zlib compression with bzip2, lzo, QuickLZ
  • Make InnoDB zlib_compression_level a server variable.
  • Add the age of transactions in the PROCESSLIST table so long transactions are easy to see.
  • Add information about InnoDB we have for the slow query log in the PROCESSLIST - how long was IO wait so far, how long were row lock waits etc.
  • Move deadlock output to end of InnoDB status so it does not displace other information.
  • Make InnoDB not single mutex per buffer_pool size, but hash of mutexes.
  • Implement ability to examine “raw” table/index pages (location, size, free space etc).
  • Make the doublewrite buffer's size configurable, assuming it is beneficial.
  • Add (optionally) queries executed with error to the slow query log with their error code.
percona-server/ideas.txt · Last modified: 2015/08/05 15:37 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Contact Us 24 Hours A Day
SupportContact us 24×7
Emergency? Contact us for help now!
Sales North America(888) 316-9775 or
(208) 473-2904
+44-208-133-0309 (UK)
0-800-051-8984 (UK)
0-800-181-0665 (GER)
Training(855) 55TRAIN or
(925) 271-5054


Share This
]]> ]]>