← Back to team overview

maria-developers team mailing list archive

Re: [Commits] Rev 4376: MDEV-6676: Speculative parallel replication in http://bazaar.launchpad.net/~maria-captains/maria/10.0


On Thu, Sep 11, 2014 at 12:49 PM, Kristian Nielsen <knielsen@xxxxxxxxxxxxxxx
> wrote:

> Robert Hodges <robert.hodges@xxxxxxxxxxxxxx> writes:
> > What would be cool is something like a group transaction that other
> threads
> > can join so that the commit becomes atomic. Most of the parallel load use
> > cases I can think of don't require you to coordinate things like
> isolation
> > because they are conflict free anyway--it's just atomic group commit.
> Hm, I don't quite have this.
> Given T1 and T2, there is a facility to ensure that T2 will commit no
> sooner
> than T1. But there is no facility to prevent T1 from commiting before T2.
> (This is what was needed for parallel replication).
> In that case it gets complex for outsiders to figure out how to restart if
there's a failure. Let's say my transaction fails after T1 commits but
before T1 commits. Then on restart I have to regenerate T2 and rerun it.
 That could be hard if T2 contains statements that came before T1 in the
original, serialized log.

Without a "group" transaction another approach is to keep separate restart
points for each worker thread.  It works well as long as you can
deterministically assign transactions to threads and keep those same
threads from getting too far apart. The logic to do this is non-trivial, so
it's not an approach for everybody.

Cheers, Robert

>  - Kristian.

Follow ups