From: Haihao Tang Date: October 11 2010 3:09am Subject: Re: A question of "MySQL external XA and internal XA" List-Archive: http://lists.mysql.com/internals/38142 Message-Id: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Thank you very much, Mark. The following is my understanding, and if they are right? 1) First, at startup mysqld uses transaction log to recover to make InnoDB consistent; 2) If a transaction is on the list from binlog and is in state PREPARED, then commit it, otherwise roll it back? 2010/10/11 MARK CALLAGHAN : > This is after crash recovery. Crash recovery is done at startup to > make InnoDB consistent. At the conclusion of that there might be > InnoDB transactions in state PREPARED. The following is then done. > > The list is used to determine what to do with transactions in state PREPARED. > * if it is on the list it is committed > * otherwise it is rolled back > > On Sun, Oct 10, 2010 at 7:25 PM, Haihao Tang wrote: >> Thanks Mark. Under your guidance, I even more understood internal XA. >> But I still have one quetion: >> In crash recovery, mysqld uses the list of committed transactions from >> the current binlog to recover. Why not use transaction log to recover >> the crashed transaction ? I am not familiar with InnoDB -_-! >>