Transactions in Hypertext

Transactions in database systems serve three purposes:
  1. they are logical units that group operations comprising a complete task;
  2. they are atomicity units whose execution preserves the consistency of the database;
  3. they are recovery units that ensure that either all the steps enclosed within them are executed or none.

Short Transactions
Short transactions are needed for saving editing work while continuing a long editing session. Data are locked in different granularities to prevent other users from performing conflicting operations on the same set of data. In databases short transactions use locks to avoid read-write and write-write conflicts. In hypertext only write-write conflicts must be avoided.

Long Transactions
User-controlled locking combined with short transactions is a better solution to long updating sessions than long transactions.

  1. The logical, atomicity and recovery units are much smaller in user-controled locking.
  2. User-controlled (shared) locking does not completely prevent other users from getting to resources over long periods of time.
  3. In user-controlled locking, users or applications must explicitly lock needed resources. Users must be aware of the multiuser situation.