Robert Hodges <[email protected]> writes:

> Hi Kristian, 
>
> On Sep 23, 2010, at 11:50 PM PDT, Kristian Nielsen wrote:
>
>
>     Robert Hodges <[email protected]> writes:

>     Right, rollback must be written at the end for transactions that do not
>     commit, but I read that Drizzle already does that (in one special case).
>
>     You also need to write some kind of "server restart" event, so slave knows
>     to
>     rollback any not committed transactions after master crashed and comes 
> back
>     up.
>
>
> At this point the binlog *does* look pretty much like a DBMS log, doesn't it?

Yes!

It would be really nice to be able to use the storage engine log also for the
replication stream. Having multiple logs requires 2-phase commit to be able to
recover reliably after crash and is quite expensive. But it seems quite tricky
to achive single log in a general way that supports both the storage engine
plugin interface and the replication plugin interface.

> One consequence, then, of design #2 is that fast and robust plugin
> implementations will be more complex, hence fewer.   You'll either have to
> demultiplex interleaved transaction fragments as others have described or
> maintain a cache of connections that apply transactions in parallel.  Either
> way you have to deal with a number of special cases.  
>
> Personally I think fast and readily parallelizable should win over a bit of
> complexity in implementation.  However, there is a real trade-off that runs
> deeper than a bit of light buffering to iron things out.  

I think it should be possible to make a filter on the slave side that reads
the complex interleaved log, and presents a nicely buffered and serialised log
to clients that want to avoid the complexity.

I mean, if you have to do the buffering anyway, it shouldn't be any harder to
do it on the slave end than on the master, should it?

 - Kristian.

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to