Partial Rollback: Savepoints
[Transactions, Locking and Logging]

Collaboration diagram for Partial Rollback: Savepoints:


Detailed Description

A transaction may perform a partial rollback using savepoints. The transaction populates a savepoint by calling ss_m::save_work, then it may roll back to that point with ss_m::rollback_work. Locks acquired between the save_work and rollback_work are not released.


Classes

class  sm_save_point_t
 A point to which a transaction can roll back. More...

Functions

static rc_t ss_m::save_work (sm_save_point_t &sp)
 Populate a save point.
static rc_t ss_m::rollback_work (const sm_save_point_t &sp)
 Roll back to a savepoint.


Function Documentation

static rc_t ss_m::save_work ( sm_save_point_t sp  )  [static, inherited]

Populate a save point.

Parameters:
[out] sp An sm_save_point_t owned by the caller.
Store in sp the needed information to be able to roll back to this point. For use with rollback_work.
Note:
Only one thread may be attached to a transaction when this is called.

static rc_t ss_m::rollback_work ( const sm_save_point_t sp  )  [static, inherited]

Roll back to a savepoint.

Parameters:
[in] sp An sm_save_point_t owned by the caller and populated by save_work.
Undo everything that was done from the time save_work was called on this savepoint.
Note:
Locks are not freed.

Only one thread may be attached to a transaction when this is called.


Generated on Wed Jul 7 17:22:37 2010 for Shore Storage Manager by  doxygen 1.4.7