Transactional Information Systems

Book description

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.

  • 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.

Table of contents

  1. Cover (1/2)
  2. Cover (2/2)
  3. Copyright Page
  4. Foreword
  5. Contents (1/2)
  6. Contents (2/2)
  7. Preface (1/2)
  8. Preface (2/2)
  9. Part One: Background and Motivation
    1. Chapter 1. What Is It All About?
      1. 1.1 Goal and Overview
      2. 1.2 Application Examples (1/3)
      3. 1.2 Application Examples (2/3)
      4. 1.2 Application Examples (3/3)
      5. 1.3 System Paradigms (1/2)
      6. 1.3 System Paradigms (2/2)
      7. 1.4 Virtues of the Transaction Concept
      8. 1.5 Concepts and Architecture of Database Servers (1/2)
      9. 1.5 Concepts and Architecture of Database Servers (2/2)
      10. 1.6 Lessons Learned
      11. Exercises
      12. Bibliographic Notes
    2. Chapter 2. Computational Models
      1. 2.1 Goal and Overview
      2. 2.2 Ingredients
      3. 2.3 The Page Model
      4. 2.4 The Object Model (1/2)
      5. 2.4 The Object Model (2/2)
      6. 2.5 Road Map of the Book
      7. 2.6 Lessons Learned
      8. Exercises
      9. Bibliographic Notes
  10. Part Two: Concurrency Control
    1. Chapter 3. Concurrency Control: Notions of Correctness for the Page Model
      1. 3.1 Goal and Overview
      2. 3.2 Canonical Concurrency Problems
      3. 3.3 Syntax of Histories and Schedules (1/2)
      4. 3.3 Syntax of Histories and Schedules (2/2)
      5. 3.4 Correctness of Histories and Schedules
      6. 3.5 Herbrand Semantics of Schedules
      7. 3.6 Final State Serializability (1/2)
      8. 3.6 Final State Serializability (2/2)
      9. 3.7 View Serializability (1/2)
      10. 3.7 View Serializability (2/2)
      11. 3.8 Conflict Serializability (1/3)
      12. 3.8 Conflict Serializability (2/3)
      13. 3.8 Conflict Serializability (3/3)
      14. 3.9 Commit Serializability
      15. 3.10 An Alternative Correctness Criterion: Interleaving Specifications (1/3)
      16. 3.10 An Alternative Correctness Criterion: Interleaving Specifications (2/3)
      17. 3.10 An Alternative Correctness Criterion: Interleaving Specifications (3/3)
      18. 3.11 Lessons Learned
      19. Exercises
      20. Bibliographic Notes
    2. Chapter 4. Concurrency Control Algorithms
      1. 4.1 Goal and Overview
      2. 4.2 General Scheduler Design
      3. 4.3 Locking Schedulers (1/8)
      4. 4.3 Locking Schedulers (2/8)
      5. 4.3 Locking Schedulers (3/8)
      6. 4.3 Locking Schedulers (4/8)
      7. 4.3 Locking Schedulers (5/8)
      8. 4.3 Locking Schedulers (6/8)
      9. 4.3 Locking Schedulers (7/8)
      10. 4.3 Locking Schedulers (8/8)
      11. 4.4 Nonlocking Schedulers (1/2)
      12. 4.4 Nonlocking Schedulers (2/2)
      13. 4.5 Hybrid Protocols
      14. 4.6 Lessons Learned
      15. Exercises
      16. Bibliographic Notes
    3. Chapter 5. Multiversion Concurrency Control
      1. 5.1 Goal and Overview
      2. 5.2 Multiversion Schedules
      3. 5.3 Multiversion Serializability (1/3)
      4. 5.3 Multiversion Serializability (2/3)
      5. 5.3 Multiversion Serializability (3/3)
      6. 5.4 Limiting the Number of Versions
      7. 5.5 Multiversion Concurrency Control Protocols (1/2)
      8. 5.5 Multiversion Concurrency Control Protocols (2/2)
      9. 5.6 Lessons Learned
      10. Exercises
      11. Bibliographic Notes
    4. Chapter 6. Concurrency Control on Objects: Notions of Correctness
      1. 6.1 Goal and Overview
      2. 6.2 Histories and Schedules
      3. 6.3 Conflict Serializability for Flat Object Transactions
      4. 6.4 Tree Reducibility
      5. 6.5 Sufficient Conditions for Tree Reducibility (1/2)
      6. 6.5 Sufficient Conditions for Tree Reducibility (2/2)
      7. 6.6 Exploiting State Based Commutativity (1/2)
      8. 6.6 Exploiting State Based Commutativity (2/2)
      9. 6.7 Lessons Learned
      10. Exercises
      11. Bibliographical Notes
    5. Chapter 7. Concurrency Control Algorithms on Objects
      1. 7.1 Goal and Overview
      2. 7.2 Locking for Flat Object Transactions
      3. 7.3 Layered Locking (1/2)
      4. 7.3 Layered Locking (2/2)
      5. 7.4 Locking on General Transaction Forests (1/2)
      6. 7.4 Locking on General Transaction Forests (2/2)
      7. 7.5 Hybrid Algorithms
      8. 7.6 Locking for Return Value Commutativity and Escrow Locking
      9. 7.7 Lessons Learned
      10. Exercises
      11. Bibliographic Notes
    6. Chapter 8. Concurrency Control on Relational Databases
      1. 8.1 Goal and Overview
      2. 8.2 Predicate-Oriented Concurrency Control (1/2)
      3. 8.2 Predicate-Oriented Concurrency Control (2/2)
      4. 8.3 Relational Update Transactions (1/3)
      5. 8.3 Relational Update Transactions (2/3)
      6. 8.3 Relational Update Transactions (3/3)
      7. 8.4 Exploiting Transaction Program Knowledge (1/2)
      8. 8.4 Exploiting Transaction Program Knowledge (2/2)
      9. 8.5 Lessons Learned
      10. Exercises
      11. Bibliographic Notes
    7. Chapter 9. Concurrency Control on Search Structures
      1. 9.1 Goal and Overview
      2. 9.2 Implementation of Search Structures by B+ Trees
      3. 9.3 Key Range Locking at the Access Layer (1/2)
      4. 9.3 Key Range Locking at the Access Layer (2/2)
      5. 9.4 Techniques for the Page Layer (1/3)
      6. 9.4 Techniques for the Page Layer (2/3)
      7. 9.4 Techniques for the Page Layer (3/3)
      8. 9.5 Further Optimizations
      9. 9.6 Lessons Learned
      10. Exercises
      11. Bibliographic Notes
    8. Chapter 10. Implementation and Pragmatic Issues
      1. 10.1 Goal and Overview
      2. 10.2 Data Structures of a Lock Manager
      3. 10.3 Multiple Granularity Locking and Dynamic Escalation
      4. 10.4 Transient Versioning
      5. 10.5 Nested Transactions for Intra-transaction Parallelism
      6. 10.6 Tuning Options (1/2)
      7. 10.6 Tuning Options (2/2)
      8. 10.7 Overload Control
      9. 10.8 Lessons Learned
      10. Exercises
      11. Bibliographic Notes
  11. Part Three: Recovery
    1. Chapter 11. Transaction Recovery
      1. 11.1 Goal and Overview
      2. 11.2 Expanded Schedules with Explicit Undo Operations
      3. 11.3 Correctness Criteria for the Page Model
      4. 11.4 Sufficient Syntactic Conditions (1/3)
      5. 11.4 Sufficient Syntactic Conditions (2/3)
      6. 11.4 Sufficient Syntactic Conditions (3/3)
      7. 11.5 Page Model Protocols for Schedules with Transaction Aborts
      8. 11.6 Correctness Criteria for the Object Model (1/3)
      9. 11.6 Correctness Criteria for the Object Model (2/3)
      10. 11.6 Correctness Criteria for the Object Model (3/3)
      11. 11.7 Object Model Protocols for Schedules with Transaction Aborts
      12. 11.8 Lessons Learned
      13. Exercises
      14. Bibliographic Notes
    2. Chapter 12. Crash Recovery: Notion of Correctness
      1. 12.1 Goal and Overview
      2. 12.2 System Architecture and Interfaces
      3. 12.3 System Model
      4. 12.4 Correctness Criterion
      5. 12.5 Road Map of Algorithms
      6. 12.6 Lessons Learned
      7. Exercises
      8. Bibliographic Notes
    3. Chapter 13. Page Model Crash Recovery Algorithms
      1. 13.1 Goal and Overview
      2. 13.2 Basic Data Structures
      3. 13.3 Redo-Winners Paradigm (1/10)
      4. 13.3 Redo-Winners Paradigm (2/10)
      5. 13.3 Redo-Winners Paradigm (3/10)
      6. 13.3 Redo-Winners Paradigm (4/10)
      7. 13.3 Redo-Winners Paradigm (5/10)
      8. 13.3 Redo-Winners Paradigm (6/10)
      9. 13.3 Redo-Winners Paradigm (7/10)
      10. 13.3 Redo-Winners Paradigm (8/10)
      11. 13.3 Redo-Winners Paradigm (9/10)
      12. 13.3 Redo-Winners Paradigm (10/10)
      13. 13.4 Redo-History Paradigm (1/4)
      14. 13.4 Redo-History Paradigm (2/4)
      15. 13.4 Redo-History Paradigm (3/4)
      16. 13.4 Redo-History Paradigm (4/4)
      17. 13.5 Lessons Learned (1/2)
      18. 13.5 Lessons Learned (2/2)
      19. Exercises
      20. Bibliographic Notes
    4. Chapter 14. Object Model Crash Recovery
      1. 14.1 Goal and Overview
      2. 14.2 Conceptual Overview of Redo-History Algorithms
      3. 14.3 A Simple Redo-History Algorithm for Two-Layered Systems (1/2)
      4. 14.3 A Simple Redo-History Algorithm for Two-Layered Systems (2/2)
      5. 14.4 An Enhanced Redo-History Algorithm for Two-Layered Systems (1/2)
      6. 14.4 An Enhanced Redo-History Algorithm for Two-Layered Systems (2/2)
      7. 14.5 A Complete Redo-History Algorithm for General Object Model Executions
      8. 14.6 Lessons Learned
      9. Exercises
      10. Bibliographic Notes
    5. Chapter 15. Special Issues of Recovery
      1. 15.1 Goal and Overview
      2. 15.2 Logging and Recovery for Indexes and Large Objects (1/2)
      3. 15.2 Logging and Recovery for Indexes and Large Objects (2/2)
      4. 15.3 Intra-transaction Savepoints and Nested Transactions (1/2)
      5. 15.3 Intra-transaction Savepoints and Nested Transactions (2/2)
      6. 15.4 Exploiting Parallelism during Restart
      7. 15.5 Special Considerations for Main-Memory Data Servers
      8. 15.6 Extensions for Data-Sharing Clusters (1/2)
      9. 15.6 Extensions for Data-Sharing Clusters (2/2)
      10. 15.7 Lessons Learned
      11. Exercises
      12. Bibliographic Notes
    6. Chapter 16. Media Recovery
      1. 16.1 Goal and Overview
      2. 16.2 Log-Based Method (1/2)
      3. 16.2 Log-Based Method (2/2)
      4. 16.3 Storage Redundancy (1/3)
      5. 16.3 Storage Redundancy (2/3)
      6. 16.3 Storage Redundancy (3/3)
      7. 16.4 Disaster Recovery
      8. 16.5 Lessons Learned
      9. Exercises
      10. Bibliographic Notes
    7. Chapter 17. Application Recovery
      1. 17.1 Goal and Overview
      2. 17.2 Stateless Applications Based on Queues (1/2)
      3. 17.2 Stateless Applications Based on Queues (2/2)
      4. 17.3 Stateful Applications Based on Queues
      5. 17.4 Workflows Based on Queues
      6. 17.5 General Stateful Applications (1/5)
      7. 17.5 General Stateful Applications (2/5)
      8. 17.5 General Stateful Applications (3/5)
      9. 17.5 General Stateful Applications (4/5)
      10. 17.5 General Stateful Applications (5/5)
      11. 17.6 Lessons Learned
      12. Exercises
      13. Bibliographic Notes
  12. Part Four: Coordination of Distributed Transactions
    1. Chapter 18. Distributed Concurrency Control
      1. 18.1 Goal and Overview
      2. 18.2 Concurrency Control in Homogeneous Federations (1/2)
      3. 18.2 Concurrency Control in Homogeneous Federations (2/2)
      4. 18.3 Distributed Deadlock Detection
      5. 18.4 Serializability in Heterogeneous Federations (1/2)
      6. 18.4 Serializability in Heterogeneous Federations (2/2)
      7. 18.5 Achieving Global Serializability through Local Guarantees
      8. 18.6 Ticket-Based Concurrency Control (1/2)
      9. 18.6 Ticket-Based Concurrency Control (2/2)
      10. 18.7 Object Model Concurrency Control in Heterogeneous Federations
      11. 18.8 Coherency and Concurrency Control for Data-Sharing Systems (1/2)
      12. 18.8 Coherency and Concurrency Control for Data-Sharing Systems (2/2)
      13. 18.9 Lessons Learned
      14. Exercises
      15. Bibliographic Notes
    2. Chapter 19. Distributed Transaction Recovery
      1. 19.1 Goal and Overview
      2. 19.2 The Basic Two-Phase Commit Algorithm (1/4)
      3. 19.2 The Basic Two-Phase Commit Algorithm (2/4)
      4. 19.2 The Basic Two-Phase Commit Algorithm (3/4)
      5. 19.2 The Basic Two-Phase Commit Algorithm (4/4)
      6. 19.3 The Transaction Tree Two-Phase Commit Algorithm
      7. 19.4 Optimized Algorithms for Distributed Commit (1/3)
      8. 19.4 Optimized Algorithms for Distributed Commit (2/3)
      9. 19.4 Optimized Algorithms for Distributed Commit (3/3)
      10. 19.5 Lessons Learned
      11. Exercises
      12. Bibliographic Notes
  13. Part Five: Applications and Future Perspectives
    1. Chapter 20. What Is Next?
      1. 20.1 Goal and Overview
      2. 20.2 What Has Been Achieved?
      3. 20.3 Data Replication for Ubiquitous Access
      4. 20.4 E-Services and Workflows
      5. 20.5 Performance and Availability Guarantees
      6. Bibliographic Notes
  14. References (1/8)
  15. References (2/8)
  16. References (3/8)
  17. References (4/8)
  18. References (5/8)
  19. References (6/8)
  20. References (7/8)
  21. References (8/8)
  22. Index (1/5)
  23. Index (2/5)
  24. Index (3/5)
  25. Index (4/5)
  26. Index (5/5)
  27. About the Authors

Product information

  • Title: Transactional Information Systems
  • Author(s): Gerhard Weikum, Gottfried Vossen
  • Release date: May 2001
  • Publisher(s): Morgan Kaufmann
  • ISBN: 9780080519562