On Fri, 24 Jul 2009 10:56:20 +0200, Paul McCullagh
<[email protected]> wrote:
> On Jul 23, 2009, at 3:15 PM, Stewart Smith wrote:
> 
>> On Tue, Jul 21, 2009 at 09:28:54PM -0700, MARK CALLAGHAN wrote:
>>> How is the serial log to be kept in sync with a storage engine given
>>> the Applier interface? MySQL uses two phase commit, but the Applier
>>> interface has one method, ::apply(). In addition to methods for
>>> performing 2PC, keeping a storage engine and the serial log in sync
>>> requires additional methods for crash recovery to support commit or
>>> rollback of transactions in state PREPARED in the storage engine
>>> depending on the outcome recorded in the serial log.
>>
>> The bit that keeps banging in my head in regards to this is storing it
>> in the same engine as part of the transaction and so avoiding 2pc.
> 
> We discussed this on Drizzle Day, and that was my recommendation.
> 
> This would mean, after a transaction has committed, the replication  
> system asks the engine for a "list of operations" that were performed  
> by the transaction.
> 
> For engines that have this information in their transaction log, it is  
> a relatively simple task.

This is absolutely the way to go. From the replication perspective picking
log events straight form the storage engine transactional log would save
quite a lot of IO and CPU. In addition those log events can be in the
engine native form, so a blast to apply on a slave.

>> Then, in 99.9% of cases when there are not cross engine  
>> transactions, we
>> never need 2pc.
>>
>> Although I haven't given this intense deep thought as to various  
>> corner cases...
>>
>> -- 
>> Stewart Smith
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~drizzle-discuss
>> Post to     : [email protected]
>> Unsubscribe : https://launchpad.net/~drizzle-discuss
>> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> --
> Paul McCullagh
> PrimeBase Technologies
> www.primebase.org
> www.blobstreaming.org
> pbxt.blogspot.com
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~drizzle-discuss
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~drizzle-discuss
> More help   : https://help.launchpad.net/ListHelp

-- 
Alexey Yurchenko,
Codership Oy, www.codership.com
Skype: alexey.yurchenko, Phone: +358-400-516-011

_______________________________________________
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