Planet MySQL Planet MySQL: Meta Deutsch Español Français Italiano 日本語 Русский Português 中文
Group commit in PostgreSQL
+1 Vote Up -0 Vote Down

There are three active projects to add support for group commit to MySQL/InnoDB. Monty Program and MySQL appear to have work in progress. The Facebook version is done but we will gladly undo it when official versions are ready.

 

PostgreSQL has group commit today. It is enabled by the commit_delay configuration parameter and the feature is described in the manual.

 

The commit_delay options provides a constraint on when group commit is done that has yet to be considered in the MySQL implementations. When commit_siblings is set to a non-zero value then a transaction attempting to commit will only wait at least that many transactions are active. This is a great option because for workloads with limited or intermittent concurrency there is no reason to wait when it is unlikely that another commit will be attempted before the commit_delay time expires.

 

It is harder to implement group commit for MySQL/InnoDB because two resource managers must be kept in sync: InnoDB and the binlog. This looks a lot like XA. But that is required until someone implements storage-engine replication (which is another hard problem).

 

In PostgreSQL there is but one log to worry about, the WAL. That simplifies group commit, replication and incremental backup. But those are topics for another post or another author.


Votes:

You must be logged in with a MySQL account to vote on Planet MySQL entries. More information on PlanetMySQL voting.

Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.