<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j" -->

---
title: How MariaDB 11.8 became about 3× faster on some...
description: MariaDB 11.8 fixes a performance regression in InnoDB's buffer pool LRU management that dates back to version 10.5. A clock meant to signal 'eviction has...
canonical: https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How MariaDB 11.8 became about 3× faster on some in-memory workloads, fixing a regression dating back to 10.5 | daily.dev
og:description: MariaDB 11.8 fixes a performance regression in InnoDB's buffer pool LRU management that dates back to version 10.5. A clock meant to signal 'eviction has...
og:url: https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j
og:image: https://api.daily.dev/og/posts/STp7EHb2J.png
og:image:alt: How MariaDB 11.8 became about 3× faster on some in-memory workloads, fixing a regression dating back to 10.5
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How MariaDB 11.8 became about 3× faster on some in-memory workloads, fixing a regression dating back to 10.5

**[MariaDB.org](https://daily.dev/sources/mariadb-foundation)** · 16 min read · 1 upvotes · 0 comments

## Summary

MariaDB 11.8 fixes a performance regression in InnoDB's buffer pool LRU management that dates back to version 10.5. A clock meant to signal 'eviction has started' began ticking too early, causing in-memory workloads to pay unnecessary mutex contention costs. In one test by Mark Callaghan, 11.8 jumped from 20,326 to 57,052 QPS, about 2.8 times faster. The fix removes buf_pool.mutex from LRU promotion on page access, not only for in-memory workloads. Independent validation on another host showed 11.8 going from 17,925 to 66,653 TPS, and on both hosts the patched 11.8 beats 10.4.34 by 7 to 9%.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://mariadb.org/how-mariadb-11-8-became-about-3x-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-to-10-5>

## Questions this post answers

### Why did MariaDB InnoDB performance drop starting in version 10.5 for in-memory workloads?

MariaDB 10.5 removed the multiple buffer pool instances design, consolidating to a single buf_pool.mutex, and changes in MDEV-15528 and MDEV-8139 (handling freed pages) caused the freed_page_clock to start ticking much earlier than intended. This made InnoDB begin LRU promotion bookkeeping, and its mutex contention, even for workloads that fit entirely in memory, which previously paid no such cost in 10.4.

_Developers tuning MariaDB upgrades can track regression fixes like this one on daily.dev._

### How much faster is MariaDB 11.8 after the InnoDB buffer pool LRU fix in MDEV-37992?

In one sysbench test, MariaDB 11.8 with the fix reached 57,052 QPS versus 20,326 QPS before, about 2.8 times faster, and roughly 7 to 9% faster than 10.4.34. Independent validation on a separate Hetzner host showed 11.8 improving from 17,925 to 66,653 TPS, with similar gains confirmed on the 12.3 and 13.1 branches.

_Teams weighing a MariaDB upgrade can check benchmark deltas like these on daily.dev before migrating._

### What change did MariaDB make to remove buf_pool.mutex contention during InnoDB LRU page promotion?

The fix splits the LRU decision into an access-time step and a sweep-time step: page access only sets a PROMOTE bit atomically with no mutex, and threads already holding buf_pool.mutex for flushing or eviction later move flagged blocks to the recently-used end. It also replaces freed_page_clock with a new buf_pool.access_clock, a 16-bit second counter, removing the old clock entirely.

_Engineers debugging InnoDB mutex contention can dig into fixes like this on daily.dev._

## Similar posts on daily.dev

- [Performance improvements in Percona Server 8.4.11-11](https://daily.dev/posts/performance-improvements-in-percona-server-8-4-11-11-mvtt2zqgb) · Planet MySQL · 0 upvotes · 0 comments
- [MariaDB Foundation: Reproducing and Validating MDEV‑37992 with TAF](https://daily.dev/posts/mariadb-foundation-reproducing-and-validating-mdev-37992-with-taf-hx3mzbb7p) · MariaDB.org · 0 upvotes · 0 comments
- [Performance Progression of Percona Server for MySQL 8.4](https://daily.dev/posts/performance-progression-of-percona-server-for-mysql-8-4-twcu44nfu) · Planet MySQL · 7 upvotes · 0 comments
- [Redis 8.8 performance improvements: Faster string, hash, streams, SCAN & more](https://daily.dev/posts/redis-8-8-performance-improvements-faster-string-hash-streams-scan-more-r1i57y9jy) · Redis · 2 upvotes · 0 comments

---

Tags: [#infrastructure](https://daily.dev/tags/infrastructure)

[View this post on daily.dev](https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How MariaDB 11.8 became about 3× faster on some in-memory workloads, fixing a regression dating back to 10.5","url":"https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j"},"datePublished":"2026-10-27T14:28:17.067Z","dateModified":"2026-10-27T14:28:51.602Z","description":"MariaDB 11.8 fixes a performance regression in InnoDB's buffer pool LRU management that dates back to version 10.5. A clock meant to signal 'eviction has...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d53dfd338654e18e26a1cb204debee5a?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d53dfd338654e18e26a1cb204debee5a?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"MariaDB.org","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"MariaDB.org","logo":"https://media.daily.dev/image/upload/s--onniydaR--/f_auto,q_auto/v1787487510/logos/mariadb-foundation?_a=BAMAMicg0","url":"https://daily.dev/sources/mariadb-foundation"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"infrastructure","timeRequired":"PT16M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"MariaDB.org","item":"https://daily.dev/sources/mariadb-foundation"},{"@type":"ListItem","position":3,"name":"How MariaDB 11.8 became about 3× faster on some in-memory workloads, fixing a regression dating back to 10.5"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-mariadb-11-8-became-about-3-faster-on-some-in-memory-workloads-fixing-a-regression-dating-back-stp7ehb2j#faq","mainEntity":[{"@type":"Question","name":"Why did MariaDB InnoDB performance drop starting in version 10.5 for in-memory workloads?","acceptedAnswer":{"@type":"Answer","text":"MariaDB 10.5 removed the multiple buffer pool instances design, consolidating to a single buf_pool.mutex, and changes in MDEV-15528 and MDEV-8139 (handling freed pages) caused the freed_page_clock to start ticking much earlier than intended. This made InnoDB begin LRU promotion bookkeeping, and its mutex contention, even for workloads that fit entirely in memory, which previously paid no such cost in 10.4. Developers tuning MariaDB upgrades can track regression fixes like this one on daily.dev."}},{"@type":"Question","name":"How much faster is MariaDB 11.8 after the InnoDB buffer pool LRU fix in MDEV-37992?","acceptedAnswer":{"@type":"Answer","text":"In one sysbench test, MariaDB 11.8 with the fix reached 57,052 QPS versus 20,326 QPS before, about 2.8 times faster, and roughly 7 to 9% faster than 10.4.34. Independent validation on a separate Hetzner host showed 11.8 improving from 17,925 to 66,653 TPS, with similar gains confirmed on the 12.3 and 13.1 branches. Teams weighing a MariaDB upgrade can check benchmark deltas like these on daily.dev before migrating."}},{"@type":"Question","name":"What change did MariaDB make to remove buf_pool.mutex contention during InnoDB LRU page promotion?","acceptedAnswer":{"@type":"Answer","text":"The fix splits the LRU decision into an access-time step and a sweep-time step: page access only sets a PROMOTE bit atomically with no mutex, and threads already holding buf_pool.mutex for flushing or eviction later move flagged blocks to the recently-used end. It also replaces freed_page_clock with a new buf_pool.access_clock, a 16-bit second counter, removing the old clock entirely. Engineers debugging InnoDB mutex contention can dig into fixes like this on daily.dev."}}]}
```

