lp:~jaypipes/drizzle/bug530870

Created by Jay Pipes and last modified
Get this branch:
bzr branch lp:~jaypipes/drizzle/bug530870
Only Jay Pipes can upload to this branch. If you are Jay Pipes please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Jay Pipes
Project:
Drizzle
Status:
Merged

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.

1304. By Jay Pipes <jpipes@serialcoder>

Merge trunk

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::XaResourceManager abstract interface class
which exposes the X/Open XA distributed transaction protocol for
resource managers.

We add a new plugin::MonitoredInTransaction base class from
which all plugins that need monitored by Drizzle's transaction
manager (drizzled::TransactionServices component) derive.

All plugin::StorageEngine's now derive from plugin::MonitoredInTransaction
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::MonitoredInTransaction::getId())
  TransactionalStorageEngine::two_phase_commit (same as above)

1302. By Jay Pipes <jpipes@serialcoder>

Merge trunk

1301. By Jay Pipes <jpipes@serialcoder>

Merge trunk

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::TransactionalStorageEngine::doStartTransaction()
  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.

1299. By Jay Pipes <jpipes@serialcoder>

Merge trunk and fix conflicts.

1298. By Jay Pipes <jpipes@serialcoder>

Merge trunk

1297. By Jay Pipes <jpipes@serialcoder>

Merge trunk

1296. By Jay Pipes <jpipes@serialcoder>

Finally kills of n_mysql_tables_in_use.

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
This branch contains Public information 
Everyone can see this information.

Subscribers