• unknown's avatar
    Added support for X/Open XA prepare, recover, commit and rollback. · df0e057a
    unknown authored
    
    innobase/include/trx0roll.h:
      Changed prototype of the function trx_rollback_or_clean_all_without_sess
      because this function is executed in a background thread.
    innobase/include/trx0trx.h:
      Added support for X/Open XA prepare, recover and search by X/Open XA XID.
    innobase/include/trx0undo.h:
      Added support for X/Open XA prepare and recover. We need to store X/Open XA XID
      to the undo log header for recovery.
    innobase/log/log0recv.c:
      Create a thread to run trx_rollback_or_clean_all_without_sess function
      to rollback the uncommitted transactions which have no user session.
    innobase/row/row0ins.c:
      Remove unnecessary variables.
    innobase/trx/trx0roll.c:
      Changed so that trx_rollback_or_clean_all_without_sess is executed
      in a background thread. We should also leave all prepared transactions
      active to wait for commit or abort from MySQL.
    innobase/trx/trx0sys.c:
      Only those rows which belong to the active transaction in crash recovery
      are undone.
    innobase/trx/trx0trx.c:
      Added support for X/Open XA prepare and recover. We need to store X/Open XA
      XID to trx structure and left prepared transactions to wait for a
      commit or abort from MySQL. This requires also that we add TRX_PREPARED
      state to the transaction and TRX_UNDO_PREPARED state for undo logs.
    innobase/trx/trx0undo.c:
      Added support for X/Open XA prepare and recover. We need to store X/Open XA
      XID to undo log header for recovery of distributed transactions.
    sql/ha_innodb.h:
      Added prototypes for X/Open XA prepare, recover, commit and rollback.
    sql/handler.h:
      Added definition for X/Open XA XID structure.
    df0e057a
trx0sys.c 25.9 KB