MariaDB-5.5.21-beta is the first MariaDB release featuring the new thread pool. Oracle offers a commercial thread pool plugin for MySQL Enterprise, but now MariaDB brings a thread pool implementation to the community!

If you are not familiar with the term, please read the Knowledge Base article about it.

The main design goal of the thread pool is to increase the scalability of the MariaDB server with many concurrent connections. In order to test and demonstrate this, I have run the sysbench OLTP RO benchmark with up to 4096 threads to compare the new pool-of-threads and the traditional thread-per-connection scheduler:

OLTP(ro) MariaDB-5.5.21 pool-of-threads vs. thread-per-connection

Benchmark description:

  • sysbench multi table OLTP, readonly
  • 16 tables, totaling 40 mio rows (~10G of data)
  • 16G buffer pool – result is independent of disk performance
  • mysqld bound to 16 cpu cores, sysbench to the other 8

Read/write OLTP benchmark results will be published as soon as they are available.

Raw benchmark results and the scripts used can be downloaded here

PS:

Let me add few more words about binding cpu cores and thread pool configuration.

Sysbench-0.5 which was used for this benchmark, turned out to be quite a cpu hog; especially for high concurrency levels. If both mysqld and sysbench are allowed to run on all cpu cores, they will fight for resources – which will result in artificially bad results with many threads. With 4 cores for sysbench and 20 for mysqld, sysbench itself became the bottleneck. So I ended with 8 cores for sysbench (leaving some room here) and 16 for mysqld.

On UNIX, the MariaDB thread pool normally needs no configuration because it autoconfigures thread-pool-size to the number of cpu cores (this depends on sysconf(3) to implement _SC_NPROCESSORS_ONLN) which is in almost all cases the optimal size. If one binds mysqld to a subset of cpu cores, one should set thread-pool-size manually to the number of cpu cores given to mysqld.

We are pleased to announce the immediate availability of MariaDB 5.5.21-beta. MariaDB 5.5.21 is the first Beta release in the 5.5 series and follows the initial MariaDB 5.5.20-alpha release. We hope to follow it up soon with Release Candiate and then Stable (GA) 5.5 releases.

MariaDB 5.5.21 beta is a merge of MariaDB 5.3 and MySQL 5.5 with some limited additional bug fixes. In this release we have added some extra notable features including an improved thread pool, an updated SphinxSE storage engine for fulltext search, and the ability to selectively skip replication of binlog events. Extra features planned for MariaDB 5.5 will be pushed into subsequent releases.

As with any beta release, MariaDB 5.5.21-beta should not be used on production systems.

The Release Notes page has some notes on the release. There is also a Changelog available for those who are interested.

Sources, binaries, and package downloads are available from our network of MariaDB mirrors. Debian and Ubuntu packages are available from our mirrored apt repositories. We have created a sources.list generator for creating sources.list entries.

About MariaDB 5.5

The MariaDB 5.5 series is the combination of MariaDB 5.3 and MySQL 5.5.

Please see the What is MariaDB 5.5 page for details.

Here’s another MariaDB screencast, this time highlighting some of the GIS functionality in MariaDB.

MariaDB Screencast: MariaDB GIS Demo

Watch this video on YouTube.

(I recommend watching it in full screen 720p, so you can see the details.)

Some links and notes:

Acknowledgments:

A big thanks to Alexey Botchkov, MariaDB’s GIS guru, for the example data and help with the screencast.