lp:~jaypipes/drizzle/split-xa-resource-manager

Created by Jay Pipes and last modified
Get this branch:
bzr branch lp:~jaypipes/drizzle/split-xa-resource-manager
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

1307. By Jay Pipes <jpipes@serialcoder>

Add errno.h to a few files. Apparently, this is necessary on OSX.

1306. By Jay Pipes <jpipes@serialcoder>

Merge trunk and add in data dictionary fix for OSX/FreeBSD

1305. By Jay Pipes <jpipes@serialcoder>

Merge fixes for LP Bug 530870

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

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