Dimitri Kravtchuk (MySQL Performance Architect, Oracle) - published blog post on new MySQL 8.0 performance. He writes about how their Read-Only scalability was a big pain, as Read-Only (RO) workloads were often slower than Read-Write (sounds very odd: “add Writes to your Reads to go faster”, but this was our reality ;-)) – and things were largely improved since MySQL 5.7 where we broke 1M queries per second (QPS) barrier and reached 1.6M QPS for the first time. However, improving Writes or mixed Read+Writes (RW) workloads is a much more complex story.
They identified the main scalability show-stoppers in MySQL 5.7 and current 8.0 release candidate for RW and IO-bound workloads:
- REDO log contentions are blocking your whole transaction processing
- Transaction (TRX) management
- internal locking and row locking (LOCK)
- historically as soon as you’re involving any IO operations, they all will go via one single and global locking path (fil_system mutex) which will make a use of faster storage solutions (flash) simply useless.
Article then goes in length how they redesigned InnoDB REDO with detailed charts and performance tests. Plus download the tarball with author’s scripts + sysbench binary + my.conf. Excellent!
[Read More]