← Back to team overview

maria-developers team mailing list archive

WL#136 New (by Knielsen): Cross-engine consistency for START TRANSACTION WITH CONSISTENT SNAPSHOT

 

-----------------------------------------------------------------------
                              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)