Title:
Avoiding Conflicts between Reads and Writes Using Dynamic Versioning
Avoiding Conflicts between Reads and Writes Using Dynamic Versioning
Author(s)
Omiecinski, Edward
Ramachandran, Umakishore
Gukal, Sreenivas
Ramachandran, Umakishore
Gukal, Sreenivas
Advisor(s)
Editor(s)
Collections
Supplementary to
Permanent Link
Abstract
In this paper, we discuss a new approach to multi-version concurrency control,
called Dynamic Versioning, that avoids the data contention due to conflicts
between Reads and Writes. A data item is allowed to have several committed
versions and at most one uncommitted version. A conflict between a Read and a
Write is resolved by imposing an order between the requesting transactions,
and allowing the Read to access one of the committed versions. The space
overhead is reduced to the minimum possible by making the versions dynamic; a
version exists only as long as it may be accessed by an active transaction.
Conditional lock compatibilities are used for providing serializable access to
the multiple versions. The results from simulation studies indicate that the
dynamic versioning method, with little space overhead (about 1\% the size of
the database), significantly reduces blocking (by 60\% to 90\%) compared to
single-version two-phase locking. Lower blocking rates increase transaction
throughput and reduce variance in transaction response times by better
utilization of resources. This approach also reduces starvation of short
transactions and subsumes previous methods proposed for supporting long-running
queries. The dynamic versioning method can be easily incorporated into existing
DBMS systems. The modifications required for the lock manager and the storage
manager modules to implement dynamic versioning are discussed.
Sponsor
Date Issued
1994
Extent
292897 bytes
Resource Type
Text
Resource Subtype
Technical Report