Summary: a object oriented transaction system
Author: Stephen Pair
Owner: Stephen Pair (svp)
Co-maintainers: <None>
Homepage: http://spair.swiki.net/20
PackageInfo name: <Not entered>
RSS feed:


Prerequisites: Runtime Environments, IvapParser (for non Chango VMs)

Kats is a transaction service that operates entirely in memory. It allows you to organize the mutations of objects into logical units of work that transition the system from one consistent state to another in an atomic fashion. Kats has the following features:

* A pluggable two-phase commit protocol
* Support for optimistic and pessimistic concurrency
* No need for special coding on the developer's part to support transactions
* A transaction explorer for observing, creating and testing active transactions in the system (includes a transactional workspace)
* Transactional inspector for viewing objects in a given transaction context
* Transactional Workspace for evaluating expressions in the context of a transaction
* Nested transactions (arbitrary depth)
* State management (through a state context resource)
* Process execution management (through an execution context)
* Automatic conflict detection (using a default conflict detection algorithm)
* Ability to customize the concurrency semantics for any given object
* Object locking (read, write, and exclusive)
* A generic TxObject for convenient transaction support (by subclassing)
* Support for the Chango VM for transparent state management
* A transactional aspect installation/deinstallation tool (for making existing classes transactional)
* A number of transactional collection classes with concurrency semantics designed to minimize conflict

The following list is some of work that remains (contact me if you are interested in contributing):

* Documentation (especially a tutorial)