News

MariaDB fixes 2020 InnoDB regression: up to 2.8× more queries

A regression introduced in MariaDB 10.5 penalised InnoDB workloads that fit entirely in RAM. The patch is confirmed for versions 11.8.10, 12.3.4 and 13.1.2.

UptimeMag editorial team · 28 October 2026 · 2 min read

MariaDB corregge una regressione InnoDB del 2020: fino a 2,8× di query in più

Anyone managing a MariaDB database with a dataset that fits almost entirely in RAM has unknowingly paid a hidden penalty since 2020. A technical analysis published on 27 October on the MariaDB.org blog reconstructs an InnoDB performance regression introduced in version 10.5 and now fixed.

What happened

With MariaDB 10.5, Marko Mäkelä removed multiple instances of the InnoDB buffer pool (MDEV-15058), switching to a single LRU list and a single mutex for the entire server. The intention was sound: in many cases a single buffer pool performed at least as well as multiple instances. But a side effect of two other changes from the same period ended up triggering, much earlier than expected, the internal clock that controls LRU list management, forcing even workloads that fit entirely in memory to pay the cost of page promotion, mutex included.

Mark Callaghan, who runs sysbench on every MariaDB release and publishes results and scripts, opened the report in 2024. A subsequent test with a SELECT on a 100-value IN list on the primary key, 8 tables with 10 million rows each, 40 threads on 48 cores, captured the collapse:

Version QPS
10.4.34 73,106
10.5.29 29,832
10.7.8 29,104
10.8.8 76,104 (anomaly)
10.9.8 27,182
11.8.3 26,044
12.1.1 25,916

The 10.8.8 figure proved to be a false signal: that release had an undo page leak bug that kept the buffer pool full, accidentally masking the problem.

The fix

The patch, discussed in ticket MDEV-33966, removes the buffer pool mutex from page promotion at access time: the decision is recorded with an atomic bit, and the actual movement in the list happens only when another thread already holds the mutex for flush or eviction operations. In Mark Callaghan's tests the gain was approximately 2.8× times, from 20,326 to 57,052 queries per second; a second independent verification, conducted by Jonathan Miller on another host, confirmed even greater improvements on 11.8, 12.3 and 13.1, with the fixed version 11.8 proving roughly 7–9% faster than the old 10.4.34 baseline.

According to the official MariaDB tracker, the fix is destined for releases 11.8.10, 12.3.4 and 13.1.2. Those still on 10.5 will not receive the patch: that series went out of maintenance on 24 June 2025. Version 11.8, where the fix will arrive first among the LTS releases, remains supported until June 2028.

For those unable to wait for the minor release, the original article also suggests a workaround without recompiling: setting innodb_old_blocks_time to a very high value reduces the promotion of old pages, but works only when the data are already in the buffer pool.

Written with the help of artificial intelligence and checked by the editors (EU AI Act, art. 50).