A mechanism controls concurrency among database transactions through the
use of serial ordering relations. The ordering relations are computed
dynamically in response to patterns of use. An embodiment of the present
invention serializes a transaction that accesses a resource before a
transaction that modifies the resource, even if the accessor starts after
the modifier starts or commits after the modifier commits. A method of
concurrency control for a database transaction in a distributed database
system stores an intended use of a database system resource by the
database transaction in a serialization graph. A serialization ordering
is asserted between the database transaction and other database
transactions based on the intended use of the database system resource by
the database transaction. The serialization ordering is then communicated
to a node in the distributed database system that needs to know the
serialization ordering to perform concurrency control. Cycles in the
serialization graph are detected based on the asserted serialization
order and in order to break such cycles and ensure transaction
serializability a database transaction is identified that is a member of
a cycle in the serialization graph.