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 <mdcallag@stripped>:
> 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 <haihaot@stripped> 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 -_-!
>>