TransId beginTransaction() throws TransactionException; void write(TransId, Object, Value) throws TransactionAbortedException, TransactionException; Value read(TransId, Object) throws TransactionAbortedException, TransactionException; void commitTransaction(TransId) throws TransactionAbortedException, TransactionException; void abortTransaction(TransId) throws TransactionException;Java equivalent may extend Reader and Writer classes to TransactionReader and TransactionWriter, and require transaction ids to be passed in on creation, and for the commit and abort operation. Flashier type systems which ensure commit and abort operations happen are good topics for research.
Recovery managers and logs
Recovery works by recovery manager redoing operations in order for those transactions that have commited, and undoing any operations that have aborted, depending on particular semantics of rollback - most systems wait till commitment before performing writes, requiring reads within a transaction potentially to read the tentative values.
Ian Wakeman 2005-02-22