Understand InnoDB's architecture for MariaDB Enterprise Server. This section details its components and their interactions, focusing on performance, scalability, and reliability for enterprise workloa
Starting with MariaDB Enterprise Server 10.5 and MariaDB Community Server 10.5, InnoDB uses the InnoDB Background Thread Pool to perform internal operations in the background. In previous versions, the internal operations were performed by dedicated threads. By using the InnoDB Background Thread Pool instead of many dedicated threads, InnoDB can reduce context switching and use system resources more effectively.
The InnoDB Background Thread Pool performs internal operations in multiple categories: tasks, timers, and asynchronous I/O.
Tasks are used to perform internal operations that are triggered by some event. In ES 10.5 and later and CS 10.5 and later, the following threads have been replaced by tasks with the InnoDB Background Thread Pool:
The InnoDB Buffer Pool Resize Thread
The InnoDB Buffer Pool Dump Thread
The InnoDB Full-Text Search (FTS) Optimization Thread
Timers are used to perform internal operations that are triggered periodically. In ES 10.5 and later and CS 10.5 and later, the following threads have been replaced by timers with the InnoDB Background Thread Pool:
The InnoDB Master Thread
The InnoDB Defragmentation Thread
The InnoDB Monitor Thread
The InnoDB Error Monitor Thread
Asynchronous I/O is used to read from and write to disk asynchronously. In ES 10.5 and later and CS 10.5 and later, the following threads have been replaced by asynchronous I/O with the InnoDB Background Thread Pool:
Thread Pool
InnoDB Background Thread Pool
Storage Engine
InnoDB
Purpose
Handles background tasks for InnoDB
This page is: Copyright © 2025 MariaDB. All rights reserved.
Starting with MariaDB Enterprise Server 10.5 and MariaDB Community Server 10.5, the InnoDB I/O Threads were replaced by the asynchronous I/O functionality in the InnoDB Background Thread Pool.
Thread
InnoDB I/O Threads
Storage Engine
InnoDB
Purpose
Reading data from disk / Writing data to disk
[mariadb]
...
innodb_read_io_threads=8
innodb_write_io_threads=8
SET GLOBAL innodb_read_io_threads=8;
SET GLOBAL innodb_write_io_threads=8;
SHOW GLOBAL VARIABLES
LIKE 'innodb_%_io_threads';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| innodb_read_io_threads | 8 |
| innodb_write_io_threads | 8 |
+-------------------------+-------+
This page is: Copyright © 2025 MariaDB. All rights reserved.