|
A transaction is committed to the database by the
atomic action of adding the link between the transaction and its
timestamp, which is called the commit link, labelled "effective"
in the diagram.
Every item and link ("things") in the database
has a link to the transaction that created it. The database has
a visibility layer which dictates that:
-
Any transaction whose commit link has not been committed is
invisible;
-
Any thing created by a transaction that is not visible is itself
not visible;
-
Any thing deleted by a transaction that is not visible is itself
visible.
|
Database transactions are required to be ACID: atomic, consistent,
isolated and durable. Atomicity and isolation are functions of the
the mechanism by which the database effects transactions:
-
Atomicity requires that a transaction must execute only
in its entirety, not in part. Atomicity is preserved under the
associative model because, no matter how many things a transaction
has added to the database, none of them is visible until its
commit link is written: an atomic action that either succeeds
or fails.
-
Isolation requires that transactions must execute independently
of any other transactions that may be executing concurrently.
Similarly, the atomic commit point in conjunction with the visibility
layer ensures that no pending transaction may ever see any part
of any other pending transaction.
|