Distributed concurrency control using serialization ordering
First Claim
1. A method of concurrency control for database transactions in a distributed database system comprising two or more nodes on a computer network, said method comprising:
- locally, with respect to a node, asserting a serialization ordering between a first transaction requesting to use a database resource locally and one or more other database transactions that have already used the database resource locally;
including the serialization ordering within a local serialization graph, wherein the local serialization graph comprises a subset of all serialization orderings throughout the distributed database; and
detecting cycles in a local serialization graph.
8 Assignments
0 Petitions
Accused Products
Abstract
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.
62 Citations
34 Claims
-
1. A method of concurrency control for database transactions in a distributed database system comprising two or more nodes on a computer network, said method comprising:
-
locally, with respect to a node, asserting a serialization ordering between a first transaction requesting to use a database resource locally and one or more other database transactions that have already used the database resource locally;
including the serialization ordering within a local serialization graph, wherein the local serialization graph comprises a subset of all serialization orderings throughout the distributed database; and
detecting cycles in a local serialization graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A method of controlling concurrency of database transactions in a distributed database system comprising two or more nodes, said method comprising:
-
locally asserting a resolution of resource contention between a first database transaction attempting to use a database resource and one or more other database transactions that have already used the database resource;
communicating the resolution of resource contention from the local node to a second node in the distributed database system, wherein the second node is responsible for ensuring serializability of at least one of the database transactions participating in the resource contention; and
locally identifying a database transaction that is causing the resource contention. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
Specification