lp:~jaypipes/drizzle/bug530870
- Get this branch:
- bzr branch lp:~jaypipes/drizzle/bug530870
Branch merges
Related bugs
Bug #530870: InnoDB messages about active_trans == 0 and trx->conc_state | Medium | Fix Released |
Related blueprints
Recent revisions
- 1305. By Jay Pipes <jpipes@serialcoder>
-
Fixes Bug #530870
* in drizzled/lock.cc, the involved_engines calculation was incorrectly
using getSlot() instead of the new unified MonitoredInTransaction: :getId( )
method for determining uniqueness.
* Removed InnoDB's trx_t's active_trans data member. Now using only
trx_t's conc_state member to determine state of the transaction (imagine that.)
Added asserts() to test some assumptions about when and how a trx_t's
conc_state can and cannot be in TRX_NOT_STARTED state.
* Remove getSlot() from plugin::StorageEngine. - 1303. By Jay Pipes <jpipes@serialcoder>
-
* Completes the blueprint for splitting the XA Resource Manager
API from the storage engine API:We add a new plugin:
:XaResourceMana ger abstract interface class
which exposes the X/Open XA distributed transaction protocol for
resource managers.We add a new plugin:
:MonitoredInTra nsaction base class from
which all plugins that need monitored by Drizzle's transaction
manager (drizzled::TransactionSer vices component) derive. All plugin:
:StorageEngine' s now derive from plugin: :MonitoredInTra nsaction
since all storage engines a monitored by the transaction manager
and the Session keeps a "slot" available for keeping the engine's
per-session data state. In a future patch, the transaction log's
XaApplier plugin will also derive from MonitoredInTransaction, as
the transaction log, in XA mode, is also monitored by Drizzle's
transaction manager and automatically enlisted in XA transactions.* Updates all documentation in /drizzled/
transaction_ services. cc
to accurately reflect Drizzle's new transaction management
process and explicit transaction and statement boundaries.* Kills off dead code:
binlog_
format_ names
ha_init()
total_ha, total_ha_2pc (no longer necessary, as the above-mentioned
abstract base classes provide all of this functionality)
StorageEngine::slot (now plugin: :MonitoredInTra nsaction: :getId( ))
TransactionalStorageEngine: :two_phase_ commit (same as above) - 1300. By Jay Pipes <jpipes@serialcoder>
-
Completes the work of removing the weirdness around transaction
boundaries in the storage engine API.* Transactional storage engines are now all explicitly notified
of the start of a new "normal" transaction in the new PSE API
method plugin::TransactionalS torageEngine: :doStartTransac tion()
This new method takes a start_transaction_option_ t as one of its
parameters, and passing this option allows the storage engine
API to cleanly signal the start of a consistent snapshot (and in
the future additional transaction attributes). This meant the
removal of the old start_consistent_snapshot( ) method. * The TransactionServices component now fully manages the transaction
boundaries, notification of transaction boundaries to participating
resource managers (transactional storage engines)Adds a simple test case (to be expanded with future XA work) for
transaction behaviour.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:~drizzle-trunk/drizzle/development