Twitter open sources MySQL enhancements
Go get the code at GitHub
Go get the code at GitHub Twitter has open sourced numerous tweaks it has made to MySQL, stating in a blog post that the open source database “is the persistent storage technology behind most Twitter data: the interest graph, timelines, user data and the Tweets themselves.”
The post says that “Due to our scale, we push MySQL a lot further than most companies,” and that the code it has released was developed “to improve the predictability of our services and make our lives easier.” It goes on to say that “we believe in sharing knowledge and that open source software facilitates innovation” and has therefore released a heap of code to GitHub.
Code the company has released includes what it calls:
- Add additional status variables, particularly from the internals of InnoDB. This allows us to monitor our systems more effectively and understand their behavior better when handling production workloads.
- Optimize memory allocation on large NUMA systems: Allocate InnoDB's buffer pool fully on startup, fail fast if memory is not available, ensure performance over time even when server is under memory pressure.
- Reduce unnecessary work through improved server-side statement timeout support. This allows the server to proactively cancel queries that run longer than a millisecond-granularity timeout.
- Export and restore InnoDB buffer pool in using a safe and lightweight method. This enables us to build tools to support rolling restarts of our services with minimal pain.
- Optimize MySQL for SSD-based machines, including page-flushing behavior and reduction in writes to disk to improve lifespan.
If you’re in the USA later this week, Twitter’s DBA Team Lead Jeremy Cole will deliver a talk on the work at the MySQL Conference and Expo. ®