is it possible to apply a patch for MariaDB

Asked by shenglin on 2010-08-08

We can consider using MariaDB, so I am doing POC(prove of concept) in our test ENV.
In our production env, we using memory engine on Solaris(x86) with 20000 connections. For the official binary release for Solaris(x86), it doesn’t support “pool-of-threads”. I have to compile by myself from the source code with gcc.
the insert performance of MariaDB is about 10% worse than MYSQL; the select is about 10-20% worse than MYSQL, and CPU usage is higher on MariaDB. I am not sure if that is related to my compile environment.
I am not sure if it is related to my compile. Is it possible to get a standard binary for Soaris(X86) platform with “pool-of-threads”.

  One more important thing, we are using mysql-heap-dynamic-rows, which can save a lot of memory for us. Is patch can be applifed for MariaDB? This is the key point to decide if we will use MariaDB or not.

   Thanks for your help in advance.


Question information

English Edit question
MariaDB Edit question
No assignee Edit question
Last query:
Last reply:
Launchpad Janitor (janitor) said : #1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Michael Widenius (monty) said : #2

First sorry for the late reply; We have not been actively monitoring
the questions part of Launchpad but assumed that questions would be
asked on our mailing lists. We have fixed this by forwarding
questions to maria-captains to try to ensure that delays like this
will not happen again.

All MariaDB releases should have pool-of-threads (if the Solaris version
we provide doesn't it's a bug in the configuration somewhere).
Which MariaDB version did your try that didn't support it ?

I assume you are comparing the following versions:

- Specific Solaris versions of MySQL 5.0 or MySQL 5.1 built with
  pool-of-threads that uses event-ports (original pool-of-threads
- Stock MariaDB with it's base pool-of-threads implementation.

If this is not the case, please tell us!

MariaDB uses an enhanced versions of pool-of-threads that is based on
the pool-of-threads code from MySQL 5.5. One major difference between
this version and the one that you are using is that the old version
was only working for Solaris and used event ports (port_get() etc)
while the 5.5 version was changed to use libevents to make it works
for all systems. The problem with libevents is that on Solaris it's
notable slower than event ports, which can explain the differences you
are seeing.

It's possible to fix the performance problem one of the following ways:

- To not use libevents
- To optimize libevents to use event ports efficiently (no mutex)
- To change the code so that on Solaris we would use event ports instead
  of libevent.

We have offered to do the last option to some MariaDB users but have
so far not got any reply if they are interest to fund an effort like
this (or do the code themselves).

About mysql-heap-dynamic-rows; I have been in contact with Ebay to try
to get this patch under BSD or under the MCA so that we can include
this in MariaDB, but so far we have not been successful in getting the
code under an acceptable license.

We are considering reimplementing the patch (and also fix all the
'not-complete-things' in the patch), but we would need to find someone
to fund this too.

Note that even if we would get the original patch under another license,
we would need to spend 2-3 days to fix the issues with the patch to make it
work for all common cases. (See README file for original patch)

Feel free to contact us directly at Monty Program (sales (at) so that we can find a way to solve this.
If you want to do the development yourself, then please discuss this on
the <email address hidden> list.

Michael Widenius (monty) said : #3

Changed status to Answered as the question is now answered and we are waiting for new feedback

Can you help with this problem?

Provide an answer of your own, or ask shenglin for more information if necessary.

To post a message you must log in.