Buffer pool performance improvements
summary
MariaDB 10.5 replaces multiple buffer pool instances with a single buffer pool and a single page-cleaner thread, removes many mutexes in favor of atomic ops, and swaps two 64-page synchronous doublewrite writes for a 128-page asynchronous doublewrite using two memory buffers; batch page flushing moves into user threads (MDEV-23399), reducing eviction stalls. Linux perf record -t finds hotspots. Result: single-threaded page flushing saturates modern I/O, scaling across ~50 cores to thousands of connections with much lower contention.
AI-written summary · about
chapters (11)
- 0:00Introduction and overview
- 1:45Buffer pool and mini-transactions
- 9:51MariaDB 10.5 optimizations
- 11:40Buffer pool bottlenecks
- 15:32Page flushing improvements
- 17:40Doublewrite buffer changes
- 18:03Page hash table rewrite
- 20:20Batch flushing and checkpoint
- 21:51Page cleaner optimizations
- 22:54Future improvements in 10.6
- 23:44Conclusion and remarks
related talks
47mThe Low Hanging Fruits of MySQL
29mMySQL Performance for DevOps
41mMariaDB The New MySQL
25mThe future of databases: Combining operational and analytical data at massive scale
43mOptimizing MySQL without SQL or touching my.cnf
30mSolving MySQL Scalability with Adaptive IO
57mMariaDB 10.5 Tutorial - New Features for Troubleshooting
56mOptimization Techniques in MySQL
