COVID-19 Update: We are currently shipping orders daily. However, due to transit disruptions in some geographies, deliveries may be delayed. To provide all customers with timely access to content, we are offering 50% off Science and Technology Print & eBook bundle options. Terms & conditions.
Transactional Information Systems - 1st Edition - ISBN: 9781558605084, 9780080519562

Transactional Information Systems

1st Edition

Theory, Algorithms, and the Practice of Concurrency Control and Recovery

Authors: Gerhard Weikum Gottfried Vossen
eBook ISBN: 9780080519562
Hardcover ISBN: 9781558605084
Imprint: Morgan Kaufmann
Published Date: 21st May 2001
Page Count: 872
Sales tax will be calculated at check-out Price includes VAT/GST
Price includes VAT/GST

Institutional Subscription

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.

Table of Contents

Foreword by

Gray, Microsoft, Inc.



Chapter 1 What Is It All About?

1.1 Goal and Overview

1.2 Application Examples

1.2.1 Online Transaction Processing: Debit/Credit Example

1.2.2 Electronic Commerce Example

1.2.3 Workflow Management: Travel Planning Example

1.3 System Paradigms

1.3.1 Three-Tier and Two-Tier Architectures

1.3.2 Federations of Servers

1.4 Virtues of the Transaction Concept

1.4.1 Transaction Properties and the Transaction Programming Interface

1.4.2 Requirements on Transactional Servers

1.5 Concepts and Architecture of Database Servers

1.5.1 Architectural Layers of Database Systems

1.5.2 How Data Is Stored

1.5.3 How Data Is Accessed

1.5.4 How Queries and Updates Are Executed

1.6 Lessons Learned


Bibliographic Notes

Chapter 2 Computational Models

2.1 Goal and Overview

2.2 Ingredients

2.3 The Page Model

2.4 The Object Model

2.5 Road Map of the Book

2.6 Lessons Learned


Bibliographic Notes


Chapter 3 Concurrency Control: Notions of Correctness for the Page Model

3.1 Goal and Overview

3.2 Canonical Concurrency Problems

3.3 Syntax of Histories and Schedules

3.4 Correctness of Histories and Schedules

3.5 Herbrand Semantics of Schedules

3.6 Final State Serializability

3.7 View Serializability

3.7.1 View Equivalence and the Resulting Correctness Criterion

3.7.2 On the Complexity of Testing View Serializability

3.8 Conflict Serializability

3.8.1 Conflict Relations

3.8.2 Class CSR

3.8.3 Conflicts and Commutativity

3.8.4 Restrictions of Conflict Serializability

3.9 Commit Serializability

3.10 An Alternative Correctness Criterion: Interleaving Specifications

3.11 Lessons Learned

Bibliographic Notes

Chapter 4 Concurrency Control Algorithms

4.1 Goal and Overview

4.2 General Scheduler Design

4.3 Locking Schedulers

4.3.1 Introduction

4.3.2 The Two-Phase Locking Protocol

4.3.3 Deadlock Handling

4.3.4 Variants of 2PL

4.3.5 Ordered Sharing of Locks

4.3.6 Altruistic Locking

4.3.7 Non-Two-Phase Locking Protocols

4.3.8 On the Geometry of Locking

4.4 Nonlocking Schedulers

4.4.1 Timestamp Ordering

4.4.2 Serialization Graph Testing

4.4.3 Optimistic Protocols

4.5 Hybrid Protocols

4.6 Lessons Learned


Bibliographic Notes

Chapter 5 Multiversion Concurrency Control

5.1 Goal and Overview

5.2 Multiversion Schedules

5.3 Multiversion Serializability

5.3.1 Multiversion View Serializability

5.3.2 Testing Membership in MVSR

5.3.3 Multiversion Conflict Serializability

5.4 Limiting the Number of Versions

5.5 Multiversion Concurrency Control Protocols

5.5.1 The MVTO Protocol

5.5.2 The MV2PL Protocol

5.5.3 The MVSGT Protocol

5.5.4 A Multiversion Protocol for Read-Only Transactions

5.6 Lessons Learned


Bibliographic Notes

Chapter 6 Concurrency Control on Objects: Notions of Correctness

6.1 Goal and Overview

6.2 Histories and Schedules

6.3 Conflict Serializability for Flat Object Transactions

6.4 Tree Reducibility

6.5 Sufficient Conditions for Tree Reducibility

6.6 Exploiting State Based Commutativity

6.7 Lessons Learned


Bibliographical Notes

Chapter 7 Concurrency Control Algorithms on Objects

7.1 Goal and Overview

7.2 Locking for Flat Object Transactions

7.3 Layered Locking

7.4 Locking on General Transaction Forests

7.5 Hybrid Algorithms

7.6 Locking for Return Value Commutativity and Escrow Locking

7.7 Lessons Learned


Bibliographic Notes

Chapter 8 Concurrency Control on Relational Databases

8.1 Goal and Overview

8.2 Predicate-Oriented Concurrency Control

8.3 Relational Update Transactions

8.3.1 Syntax and Semantics

8.3.2 Commutativity and Simplification Rules

8.3.3 Historiesand Final State Serializability

8.3.4 Conflict Serializability

8.3.5 Extended Conflict Serializability

8.3.6 Serializability in the Presence of Functional Dependencies

8.3.7 Summary

8.4 Exploiting Transaction Program Knowledge

8.4.1 Motivating Example

8.4.2 Transaction Chopping

8.4.3 Applicability of Chopping

8.5 Lessons Learned


Bibliographic Notes

Chapter 9 Concurrency Control on Search Structures

9.1 Goal and Overview

9.2 Implementation of Search Structures by B+ Trees

9.3 Key Range Locking at the Access Layer

9.4 Techniques for the Page Layer

9.4.1 Lock Coupling

9.4.2 Link Technique

9.4.3 Giveup Technique

9.5 Further Optimizations

9.5.1 Deadlock-Free Page Latching

9.5.2 Enhanced Key Range Concurrency

9.5.3 Reduced Locking Overhead

9.5.4 Exploiting Transient Versioning

9.6 Lessons Learned


Bibliographic Notes

Chapter 10 Implementation and Pragmatic Issues

10.1 Goal and Overview

10.2 Data Structures of a Lock Manager

10.3 Multiple Granularity Locking and Dynamic Escalation

10.4 Transient Versioning

10.5 Nested Transactions for Intra-transaction Parallelism

10.6 Tuning Options

10.6.1 Manual Locking

10.6.2 SQL Isolation Levels

10.6.3 Short Transactions

10.6.4 Limiting the Level of Multiprogramming

10.7 Overload Control

10.7.1 Feedback-Driven Method

10.7.2 Wait-Depth Limitation

10.8 Lessons Learned


Bibliographic Notes


Chapter 11 Transaction Recovery

11.1 Goal and Overview

11.2 Expanded Schedules with Explicit Undo Operations

11.2.1 Intuition and Overview of Concepts

11.2.2 The Formal Model

11.3 Correctness Criteria for the Page Model

11.3.1 Expanded Conflict Serializability

11.3.2 Reducibility and Prefix Reducibility

11.4 Sufficient Syntactic Conditions

11.4.1 Recoverability

11.4.2 Avoiding Cascading Aborts

11.4.3 Strictness

11.4.4 Rigorousness

11.4.5 Log Recoverability

11.5 Page Model Protocols for Schedules with Transaction Aborts

11.5.1 Extending Two-Phase Locking for Strictness and Rigorousness

11.5.2 Extending Serialization Graph Testing for Log Recoverability

11.5.3 Extending Other Protocols for Log Recoverability

11.6 Correctness Criteria for the Object Model

11.6.1 Aborts in Flat Object Schedules

11.6.2 Complete and Partial Aborts in General Object Model Schedules

11.7 Object Model Protocols for Schedules with Transaction Aborts

11.8 Lessons Learned


Bibliographic Notes

Chapter 12 Crash Recovery: Notion of Correctness

12.1 Goal and Overview

12.2 System Architecture and Interfaces

12.3 System Model

12.4 CorrectnessCriterion

12.5 Road Map of Algorithms

12.6 Lessons Learned


Bibliographic Notes

Chapter 13 Page Model Crash Recovery Algorithms

13.1 Goal and Overview

13.2 Basic Data Structures

13.3 Redo-Winners Paradigm

13.3.1 Actions during Normal Operation

13.3.2 Simple Three-Pass Algorithm

13.3.3 Enhanced Algorithm: Log Truncation, Checkpoints, Redo Optimization

13.3.4 The Complete Algorithm: Handling Transaction Aborts and Undo Completion

13.4 Redo-History Paradigm

13.4.1 Actions during Normal Operation

13.4.2 Simple Three-Pass and Two-Pass Algorithms

13.4.3 Enhanced Algorithms: Log Truncation, Checkpoints, and Redo Optimization

13.4.4 Complete Algorithms: Handling Transaction Rollbacks and Undo Completion

13.5 Lessons Learned

13.5.1 Putting Everything Together


Bibliographic Notes

Chapter 14 Object Model Crash Recovery

14.1 Goal and Overview

14.2 Conceptual Overview of Redo-History Algorithms

14.3 A Simple Redo-History Algorithm for Two-Layered Systems

14.3.1 Actions during Normal Operation

14.3.2 Steps during Restart

14.4 An Enhanced Redo-History Algorithm for Two-Layered Systems

14.5 A Complete Redo-History Algorithm for General Object Model Executions

14.6 Lessons Learned


Bibliographic Notes

Chapter 15 Special Issues of Recovery

15.1 Goal and Overview

15.2 Logging and Recovery for Indexes and Large Objects

15.2.1 Logical Log Entries for the Redo of Index Page Splits

15.2.2 Logical Log Entries and Flush Ordering for Large-Object Operations

15.3 Intra-transaction Savepoints and Nested Transactions

15.4 Exploiting Parallelism during Restart

15.5 Special Considerations for Main-Memory Data Servers

15.6 Extensionsfor Data-Sharing Clusters

15.7 Lessons Learned


Bibliographic Notes

Chapter 16 Media Recovery

16.1 Goal and Overview

16.2 Log-Based Method

16.2.1 Database Backup and Archive Logging during Normal Operation

16.2.2 Database Restore Algorithms

16.2.3 Analysis of the Mean Time to Data Loss

16.3 Storage Redundancy

16.3.1 Techniques Based on Mirroring

16.3.2 Techniques Based on Error-Correcting Codes

16.4 Disaster Recovery

16.5 Lessons Learned


Bibliographic Notes

Chapter 17 Application Recovery

17.1 Goal and Overview

17.2 Stateless Applications Based on Queues

17.3 Stateful Applications Based on Queues

17.4 Workflows Based on Queues

17.4.1 Failure-Resilient Workflow State and Context

17.4.2 Decentralized Workflows Based on Queued Transactions

17.5 General Stateful Application

17.5.1 Design Considerations

17.5.2 Overview of the Server Reply Logging Algorithm

17.5.3 Data Structures

17.5.4 Server Logging during Normal Operation

17.5.5 Client Logging during Normal Operation

17.5.6 Log Truncation

17.5.7 Server Restart

17.5.8 Client Restart

17.5.9 Correctness Reasoning

17.5.10 Applicability to Multi-tier Architectures

17.6 Lessons Learned


Bibliographic Notes


Chapter 18 Distributed Concurrency Control

18.1 Goal and Overview

18.2 Concurrency Control in Homogeneous Federations

18.2.1 Preliminaries

18.2.2 Distributed 2PL

18.2.3 Distributed TO

18.2.4 Distributed SGT

18.2.5 Ootimistic Protocols

18.3 Distributed Deadlock Detection

18.4 Serializability in Heterogeneous Federations

18.4.1 Global Histories

18.4.2 Global Serializability

18.4.3 Quasi Serializability

18.5 Achieving Global Serializability through Local Guarantees

18.5.1 Rigorousness

18.5.2 Commitment Ordering

18.6 Ticket-Based Concurrency Control

18.6.1 Explicit Tickets for Forcing Conflicts

18.6.2 Implicit Tickets

18.6.3 Mixing Explicit and Implicit Tickets

18.7 Object Model Concurrency Control in Heterogeneous Federations

18.8 Coherency and Concurrency Control for Data-Sharing Systems

18.9 Lessons Learned


Bibliographic Notes

Chapter 19 Distributed Transaction Recovery

19.1 Goal and Overview

19.2 The Basic Two-Phase Commit Algorithm

19.2.1 2PC Protocol

19.2.2 Restart and Termination Protocol

19.2.3 IndependentvRecovery

19.3 The Transaction Tree Two-Phase Commit Algorithm

19.4 Optimized Algorithms for Distributed Commit

19.4.1 Presumed-Abort and Presumed-Commit Protocols

19.4.2 Read-Only Subtree Optimization

19.4.3 Coordinator Transfer

19.4.4 Reduced Blocking

19.5 Lessons Learned


Bibliographic Notes


Chapter 20 What Is Next?

20.1 Goal and Overview

20.2 What Has Been Achieved?

20.2.1 Ready-to-Use Solutions for Developers

20.2.2 State-of-the-Art Techniques for Advanced System Builders

20.2.3 Methodology and New Challenges for Researchers

20.3 Data Replication for Ubiquitous Access

20.4 E-Services and Workflows

20.5 Performance and Availability Guarantees

Bibliographic Notes



About the Authors


Transactional Information Systems is the long-awaited, comprehensive work from leading scientists in the transaction processing field. Weikum and Vossen begin with a broad look at the role of transactional technology in today's economic and scientific endeavors, then delve into critical issues faced by all practitioners, presenting today's most effective techniques for controlling concurrent access by multiple clients, recovering from system failures, and coordinating distributed transactions.

The authors emphasize formal models that are easily applied across fields, that promise to remain valid as current technologies evolve, and that lend themselves to generalization and extension in the development of new classes of network-centric, functionally rich applications. This book's purpose and achievement is the presentation of the foundations of transactional systems as well as the practical aspects of the field what will help you meet today's challenges.

Key Features

  • Provides the most advanced coverage of the topic available anywhere--along with the database background required for you to make full use of this material.
  • Explores transaction processing both generically as a broadly applicable set of information technology practices and specifically as a group of techniques for meeting the goals of your enterprise.
  • Contains information essential to developers of Web-based e-Commerce functionality--and a wide range of more "traditional" applications.
  • Details the algorithms underlying core transaction processing functionality.


Database designers and programmers.


No. of pages:
© Morgan Kaufmann 2001
21st May 2001
Morgan Kaufmann
eBook ISBN:
Hardcover ISBN:


"This book is a major advance for transaction processing. It gives an in-depth presentation of both the theoretical and practical aspects of the field, and is the first to present our new understanding of multi-level (object model) transaction processing. It's likely to become the standard reference in our field for many years to come."—Jim Gray, Microsoft

Ratings and Reviews

About the Authors

Gerhard Weikum

Gerhard Weikum is Professor of Computer Science at University of the Saarland in Saarbruecken, Germany, where he leads a research group on database and information systems. His research has focused on parallel and distributed information systems, transaction processing and workflow management, database optimization and performance evaluation, multimedia data management, and intelligent search on Web data.

Gottfried Vossen

Gottfried Vossen is Professor of Computer Science and a Director of the Institür für Wirtschaftsinformatik, Universität Münster (Department of Information Systems, University of Muenster, Germany). His research in the area of object-based database systems has dealt primarily with models for data and objects, database languages, transaction processing, integration with scientific applications, XML and its applications, and workflow management.

Affiliations and Expertise

Institür für Wirtschaftsinformatik, Universität Münster, Department of Information Systems, University of Muenster, Germany