Browse Prior Art Database

Locking of a Subrelation

IP.com Disclosure Number: IPCOM000084319D
Original Publication Date: 1975-Oct-01
Included in the Prior Art Database: 2005-Mar-02
Document File: 3 page(s) / 26K

Publishing Venue

IBM

Related People

Lorie, RA: AUTHOR

Abstract

This description relates to a solution of the problem of concurrent access to a relational data base. The terms "relation" and "tuples" are used as in Codd's data model (1). Methods for controlling concurrent access needs to determine which portion of the data base a program is interested in (for locking or warning other users). This implies that the system be able to identify a portion of the data and realize that it is or is not disjoint with another portion requested by another user. Two collections of data are disjoint if the result of a query on one collection is independent of the data contained in the other.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 58% of the total text.

Page 1 of 3

Locking of a Subrelation

This description relates to a solution of the problem of concurrent access to a relational data base. The terms "relation" and "tuples" are used as in Codd's data model (1). Methods for controlling concurrent access needs to determine which portion of the data base a program is interested in (for locking or warning other users). This implies that the system be able to identify a portion of the data and realize that it is or is not disjoint with another portion requested by another user. Two collections of data are disjoint if the result of a query on one collection is independent of the data contained in the other.

In the relational model it seems natural to use the relation as the unit of locking, but this method yields to poor concurrency. Tuples can also be used as the unit of locking, but very often it implies a large number of locks. The choice as a unit of locking of a subset of the tuples in a relation seems attractive. A predicate expression can be used to designate the subset of tuples (subrelation) exactly like an expression in a query language.

This description proposes an algorithm for determining that two subsets specified by predicate expressions of a certain class are disjoint.

The class of predicate expressions which can be handled by this algorithm is clear from what follows.

A request for a subrelation can be specified by the following information:

(Image Omitted)

The first line is a predicate line. Each column can specify:

Ignore: The user is not interested in this column.

Any: The user is interested in that column for all rows

which satisfy the other predicates.

Pred: The user is interested in the rows that satisfy this

predicate together with all the other specified

predicates.

The form of a predicate is:

field(i) = value.

The second line is a code indicating the mode:

1 For read operation on that column.

2 For write operation on that column.

0 For ignore that column.

The system maintains a table containing one entry for each granted subrelation. Each entry contains the user id and the predicate and mode line.

When a request for a subrelation is submitted it must be checked for conflict against every entry in the table correspo...