← Back to team overview

maria-developers team mailing list archive

Re: Group commit comparison between mysql and mariadb


Sergei Petrunia <psergey@xxxxxxxxxxxx> writes:

> Hi Kristian,
> I'm wondering, do we have any comparison of MariaDB's binlog group commit
> implementation vs MySQL's binlog's group commit? I recall Mats writing a blog

This is the best I have:


You can also try asking Monty, I believe he did something about this in his
slides at the UC this Spring.

> about the differences last year, but he didn't have the code back then. I'm
> wondering if Oracle had implemented what he described, or did something else...

What Oracle (and Mats, I think) ended up implementing is completely different
from what Mats originally described in his blogs. The idea in the final
implementation in MySQL 5.6 is basically the same as the MariaDB group
commit. The implementation is completely different (and in my opinion it has
some problems).

> I understand that in order to do benchmark we need to finish merging InnoDB
> from MySQL 5.6 into MariaDB 10.0.  One can't benchmark group commit per se, it
> is tied to innodb.

Well, if you do a write-benchmark with short transactions and crash-safe
configuration (--log-bin --innodb-flush-log-at-trx-commit=1 --sync-binlog=1),
the fsync() at commit will be your bottleneck unless you have a _very_ fast
disk system (remember to disable disk cache, unless you have a
battery-backed-up controller). This kind of load and setup is where binlog
group commit is interesting. Most likely other differences between different
InnoDB versions will not be visible...

> Do we still have any clue, before the merge happens? Btw, what should the 
> merge do - take group commit from MariaDB or from MySQL?

The MariaDB one (we have other code that depends on it, and the MySQL one has
serious deadlock and other issues, see this mail thread:


). But note that we have already done this. A previous merge with an earlier
MySQL 5.6 InnoDB was done, where the MySQL 5.6 group commit part in InnoDB was
replaced with the MariaDB part. Note that there are only small changes inside
InnoDB for group commit, most of it happens in the binlog code.

Hope this helps,

 - Kristian.

Follow ups