Sergei Petrunia <psergey@askmonty.org> 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: http://kristiannielsen.livejournal.com/16382.html 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: https://lists.launchpad.net/maria-developers/msg05239.html ). 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.