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

