Submitted: 16 Feb 2009 17:39 Modified: 17 Feb 2009 12:03
Reporter: Kevin Benton (Candidate Quality Contributor) Email Updates:
Status: Verified Impact on me:
Category:MySQL Server: General Severity:S4 (Feature request)
Version: OS:Any
Assigned to: CPU Architecture:Any
Tags: qc

[16 Feb 2009 17:39] Kevin Benton
To quote the manual (http://dev.mysql.com/doc/refman/5.1/en/xa-statements.html):

"For XA START, the JOIN and RESUME clauses are not supported.

For XA END the SUSPEND [FOR MIGRATE] clause is not supported."

These items seem to indicate that there is no plan to support true distributed transactions.

How to repeat:

Suggested fix:
XA START RESUME and XA END SUSPEND are truly required for servers interacting with the DB.  This is very standard distributed transaction handling.  Without it, it's not possible to maintain integrity when parts of a full transaction happen on different systems.  For example, person 1 begins changing settings of an application (a three-step process).  Person 2 comes along after step 1 is completed, but not before step 3 is completed in an attempt to update the same settings.  Person 2 must see the changes applied in step 1 because there is no way for the application to start a transaction as step 1 begins, then commit those changes (or worse - rollback) as step 3 completes.

The only way I can see around this is to make the software implement its own form of transactional awareness.
[16 Feb 2009 17:40] Kevin Benton
If nothing else, I believe it's critical to mention in the documentation what the status of this type of unsupported code is by referring directly to a bug describing that status.
[17 Feb 2009 12:03] Valeriy Kravchuk
Thank you for the enhancement request. I agree that we have to implement complete support for distributed transactions eventually.