lp:~jaypipes/drizzle/refactor-trx-log-applier

Created by Jay Pipes on 2010-03-05 and last modified on 2010-03-05
Get this branch:
bzr branch lp:~jaypipes/drizzle/refactor-trx-log-applier
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> on 2010-03-05

Make OSX/FreeBSD happy about size_t != uint64_t != int64_t...

1306. By Jay Pipes <jpipes@serialcoder> on 2010-03-05

Merge trunk

1305. By Jay Pipes <jpipes@serialcoder> on 2010-03-05

Completes the blueprint for refactoring applier out of log descriptor.

1) Makes the TransactionLog class a simple descriptor for the actual transaction log file
2) Splits out the TransactionLogApplier into separate class with constructor taking a TransactionLog instance
3) Splits the module initialization stuff out into a file, /plugin/transaction_log/module.cc

1304. By Jay Pipes <jpipes@serialcoder> on 2010-03-04

Merge trunk

1303. By Jay Pipes <jpipes@serialcoder> on 2010-03-03

* 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> on 2010-03-02

Merge trunk

1301. By Jay Pipes <jpipes@serialcoder> on 2010-03-02

Merge trunk

1300. By Jay Pipes <jpipes@serialcoder> on 2010-02-25

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> on 2010-02-23

Merge trunk and fix conflicts.

1298. By Jay Pipes <jpipes@serialcoder> on 2010-02-19

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