Bug #49326 | Support group commit for the binlog | ||
---|---|---|---|
Submitted: | 2 Dec 2009 5:22 | Modified: | 4 Jul 2012 14:49 |
Reporter: | Mark Callaghan | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S4 (Feature request) |
Version: | 5.0,5.1 | OS: | Any |
Assigned to: | Alfranio Tavares Correia Junior | CPU Architecture: | Any |
Tags: | binlog, group.commit |
[2 Dec 2009 5:22]
Mark Callaghan
[3 Dec 2009 8:15]
Mats Kindahl
Mark, Please have a look at WL#4007 and WL#4832. WL#4832 does some internal refactoring to improve the speed of binary logging, but is a pre-requisite for WL#4007. WL#4007 require all the events to be stored in the transaction cache to be possible to implement efficiently. Once WL#4007 is implemented, the binlog have a form of "group commit". We already have a patch for WL#4832 but to truly work well even for DDL, it require meta-data locking (WL#4284) since DDL operations are synchronized using LOCK_open, so it was put on hold awaiting MDL to be pushed.
[3 Dec 2009 18:24]
Harrison Fisk
Both of these worklogs are available publicly as well at: http://forge.mysql.com/worklog/task.php?id=4007 http://forge.mysql.com/worklog/task.php?id=4832
[28 Feb 2010 20:58]
Mark Callaghan
I want to expand this request to include changes to storage engines to benefit from this change: 1) InnoDB locks prepare_commit_mutex during the prepare phase, until that is removed there will be not concurrent transactions when binlog writes/syncs are done 2) InnoDB does not release row locks until the commit phase. Two fsyncs are done prior to that: one in the prepare phase, one for the binlog. Workloads with dependent transactions won't benefit much from this change unless InnoDB row locks are release earlier
[4 Jul 2012 14:49]
Jon Stephens
Fixed in 5.6.6. To be documented with WL#5223, Closed.