Chapter 22
Concurrency
Control Techniques
In this chapter we discuss a number of concurrency control techniques
that are used to ensure the noninterference or isolation property of
concurrently executing transactions. Most of these techniques ensure
serializability of schedules—which we defined in Section 21.5—using concurrency control protocols (sets of
rules) that guarantee serializability. One important set of protocols—known as
two-phase locking protocols— employ
the technique of locking data items
to prevent multiple transactions from accessing the items concurrently; a
number of locking protocols are described in Sections 22.1 and 22.3.2. Locking
protocols are used in most commercial DBMSs. Another set of concurrency control
protocols use timestamps. A
timestamp is a unique identifier for each transaction, generated by the system.
Timestamps values are generated in the same order as the transaction start
times. Concurrency control protocols that use timestamp ordering to ensure
serializability are introduced in Section 22.2. In Section 22.3 we discuss multiversion concurrency control
protocols that use multiple versions of a data item. One multiversion protocol
extends timestamp order to multiversion timestamp ordering (Section 22.3.1),
and another extends two-phase locking (Section 22.3.2). In Section 22.4 we
present a protocol based on the concept of validation
or certification of a transaction
after it executes its operations; these are sometimes called optimistic protocols, and also assume
that multiple versions of a data item can exist.
Another factor that affects concurrency control is the granularity of the data items—that is,
what portion of the database a data item represents. An item can be as small as
a single attribute (field) value or as large as a disk block, or even a whole
file or the entire database. We discuss granularity of items and a multiple
granularity concurrency control protocol, which is an extension of two-phase
locking, in Section 22.5. In Section 22.6 we describe concurrency control
issues that arise when indexes are used to process transactions, and in Section
22.7 we discuss some additional concurrency control concepts. Section 22.8
summarizes the chapter.
It is sufficient to read Sections 22.1, 22.5, 22.6, and 22.7, and
possibly 22.3.2, if your main interest is an introduction to the concurrency
control techniques that are based on locking, which are used most often in
practice. The other techniques are mainly of theoretical interest.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.