----------------------------------------------------------------------- WORKLOG TASK -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TASK...........: Cross-engine consistency for START TRANSACTION WITH CONSISTENT SNAPSHOT CREATION DATE..: Fri, 03 Sep 2010, 14:15 SUPERVISOR.....: Sergei IMPLEMENTOR....: Knielsen COPIES TO......: Sergei CATEGORY.......: Server-RawIdeaBin TASK ID........: 136 (http://askmonty.org/worklog/?tid=136) VERSION........: Server-9.x STATUS.........: Un-Assigned PRIORITY.......: 60 WORKED HOURS...: 0 ESTIMATE.......: 0 (hours remain) ORIG. ESTIMATE.: 0 PROGRESS NOTES: DESCRIPTION: With current MySQL/MariaDB, there is no imposed commit ordering. So even with START TRANSACTION WITH CONSISTENT SNAPSHOT, you can end up with a snapshot where in engine E, A is committed but not B; and in engine F, B is committed but not A. MWL#116 introduces consistent commit order, making this inconsistency impossible. A and B will be consistently ordered (say A commits before B), and it is not possible to see <B committed but not A> in any engine. But there is still another inconsistency possible, where we get a snapshot where both A and B are committed in one engine, but only A is committed in another. This worklog is about making START TRANSACTION WITH CONSISTENT SNAPSHOT always create a snapshot with a consistent picture between engines about which transaction is committed and which is not. The change will work for storage engines which support MVCC, and which implement the commit_ordered() handler method of MWL#116 (but not for other engines). In order to test this, it will be necessary that the PBXT engine (or some other engine, but PBXT seems the obvious candidate) is made to implement commit_ordered(). ESTIMATED WORK TIME ESTIMATED COMPLETION DATE ----------------------------------------------------------------------- WorkLog (v4.0.0)