
Principles of Transaction Processing for the Systems Professional
- 1st Edition - November 1, 1996
- Imprint: Morgan Kaufmann
- Authors: Philip A. Bernstein, Eric Newcomer
- Language: English
- Paperback ISBN:9 7 8 - 1 - 5 5 8 6 0 - 4 1 5 - 5
- eBook ISBN:9 7 8 - 0 - 0 8 - 0 5 1 4 7 6 - 5
Principles of Transaction Processing is a clear, concise guide for anyoneinvolved in developing applications, evaluating products, designing systems,or engineering products.… Read more
Purchase options

Principles of Transaction Processing is a clear, concise guide for anyone
involved in developing applications, evaluating products, designing systems,
or engineering products. This book provides an understanding of the internals of
transaction processing systems, describing how they work and how best to use them.
It includes the architecture of transaction processing monitors, transactional
communications paradigms, and mechanisms for recovering from transaction and
system failures.
Use of transaction processing systems in business, industry, and
government is increasing rapidly; the emergence of electronic commerce on
the Internet is creating new demands. As a result, many developers are
encountering transaction processing applications for the first time and need
a practical explanation of techniques. Software engineers who build and
market operating systems, communications systems, programming tools, and
other products used in transaction processing applications will also benefit
from this thorough presentation of principles. Rich with examples, it
describes commercial transaction processing systems, transactional aspects
of database servers, messaging systems, Internet servers, and
object-oriented systems, as well as each of their subsystems.
* Real world examples illustrating key points.
* Focuses on practical issues faced by developers.
* Explains most major products and standards, including IBM's CICS, IMS, and MQSeries; X/Open's XA, STDL, and TX; BEA Systems' TUXEDO; Digital's ACMS; Transarc's Encina; AT&T/NCR's TOP END; Tandem's Pathway/TS; OMG's OTS; and Microsoft's Microsoft Transaction Server.
by Philip Bernstein and Eric Newcomer
- Foreword
Preface
Chapter 1 Introduction
- 1.1 The Basics
- The Problem
What's a Transaction
Transaction Processing Applications
A Transaction Program's Main Functions
1.2 The Transaction Processing Systems
1.3 Atomicity, Consistency, Isolation, and Durability
- Atomicity
Consistency
Isolation
Durability
1.4 Two-Phase Commit
1.5 Transaction Processing Performance
- The TPC-A and TPC-B Benchmarks
The TPC-C Benchmark
1.6 Availability
1.7 Styles of Systems
- Batch Processing Systems
Time-Sharing Systems
Real-Time Systems
Client-Server Systems
Decision Support Systems
Why Engineer a Transaction Processing System?
1.8 Example Applications
- Automated Teller Machine
Stock Exchange
1.9 Summary
Chapter 2: Transaction Processing Monitors
- 2.1 Introduction
2.2 Transaction Processing Monitor Architecture
- Two-tier vs. Three-tier Systems
Transaction Processing Monitor Functions
Three-tier Applications
Simple Requests
2.3 Presentation Server
- Presentation Server Layers
Gathering Input
Constructing Requests
Authentication
Communication
Logging
2.4 Workflow Control
- Routing
Workflow Logic
Transaction Bracketing
Exception Handling
2.5 Transaction Servers
2.6 Operating System Processes
- Why We Need Threads
Implementing Threads
Mapping Servers to Processes
Server Classes
2.7 Database Servers vs. Transaction Processing Monitors
2.8 Transactions over the Internet
2.9 Summary
Chapter 3: Transaction Processing Communications
- 3.2 The Remote Procedure Call Model
- RPC Programming Model
Transaction Bracketing
Transparent Transaction Identifiers
Binding Clients and Servers
How to Compare RPC Systems
3.3 An RPC Walkthrough
- Parameter Translation in RPC
Security of RPC
Fault Tolerance in RPC
Performance of RPC
System Management
3.4 Peer-to-Peer Programming
- Programming Interfaces
Syncpoint Rules
An Example
The ISO Transaction Processing Protocol
3.5 Comparing RPC and Peer-to-Peer
- Allowed Message Sequences
Termination Model
Connection Model
Current Trends
3.6 Summary
Chapter 4: Queued Transaction Processing
- 4.1 Why Use Queues?
- Problems
Queues as the Solution
4.2 The Queued Transaction Processing Model
- Server's View of Queuing
Client's View of Queuing
4.3 Client Recovery
4.4 Handling Non-Undoable Operations
4.5 The Queue Manager
- Operations on Queue Elements
Routing
IBM's MQSeries
4.6 Multitransaction Workflow
- Motivation for Workflow Applications
Managing Workflow Using Queued Requests
Workflow and Atomicity
4.7 Multitransaction Requests without Queues
- Pseudoconversations
Fault-Tolerant Input Using Logging
4.8 Summary
Chapter 5: Transaction Processing Monitor Examples
- 5.1 Introduction
5.2 CICS
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.3 IMS
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.4 Standardization --X/OPEN, OSI, OMG, and MIA/SPIRIT
- X/OPEN
OSI Transaction Processing
Object Transaction Service
STDL
5.5 Tuxedo
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.6 ACMS
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.7 Encina
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.8 TOP END
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
5.9 Pathways/TS
- System Architecture
Presentation Server
Transaction Processing Communications
Database Access
System Management
Programming Example
Chapter 6: Locking
- 6.1 Introduction
- Correctness and the Two-Phase Rule
Automating Locking
6.2 Implementation
- Lock Managers
Granularity
Multigranularity Locking
6.3 Deadlocks
- Deadlock Prevention
Deadlock Detection
Distributed Deadlock Detection
6.4 Performance
- Lock Thrashing
Tuning to Reduce Lock Contention
A Mathematical Model of Locking Performance
6.5 Hot Spots
- Delaying Operations Until Commit
Optimistic Methods
Batching
6.6 Query-Update Problems
- Degrees of Isolation
Multiversion of Isolation
Multiversion Data
Multiversion Implementation Details
6.7 Avoiding Phantoms
- Performance Implications
6.8 Other Techniques
6.9 Summary
Appendix - Proof of Two-Phase Locking Theorem
Chapter 7: High Availability
- 7.1 Introduction
7.2 Causes of Computer Failure
- The Environment
System Management
Hardware
Software
7.3 Availability in the Clien/Server Model
- Client/Server Architecture
Detecting Process Failures
Client Recovery
Server Recovery
Checkpoint-Based Recovery
Transaction-Based Server Recovery
Stateless Servers
7.4 Using Backups
- Warm Backups
Hot Backups
7.5 Summary
Chapter 8: Database System Recovery
- 8.1 Introduction
- Types of Failure
Recovery Strategies
8.2 The System Model
- Locking Assumptions
Storage Model
The Log
8.3 The Recovery Manager
- Implementing Abort
Implementing Commit
8.4 Log-Based Recovery Algorithms
- Implementing Commit
Implementing Abort
Implementing Restart
8.5 Optimizing Restart in Log-Based Algorithms
- Fuzzy Checkpointing
Operation Logging
User Techniques
8.6 Media Failures
- Shadowed Disks
Archiving
8.7 Summary
Chapter 9: Two-Phase Commit
- 9.1 Introduction
9.2 The Two-Phase Commit Protocol
- Assumptions
Being Prepared
The Protocol
Analysis
9.3 Failure Handling
9.4 Optimizations
- Presumed Abort
Transfer of Coordination
Reinfection
Read-Only Transactions
Cooperative Termination Protocol
9.5 Process Structuring
- Independent Transaction Managers
Enlisting in a Transaction
The Tree-of-Processes Model
9.6 User Checklist
9.7 Summary
Chapter 10: Replication
- 10.1 Introduction
- Goals
Implementation Challenges
10.2 Single-Master Primary-Copy Replication
- Normal Operation
Failures and Recoveries
Majority and Quorum Consensus
10.3 Multimaster Replication
- Partitioned Operation Can Be Useful
Update Propagation with Multiple Masters
Multimaster Replication Without a Primary
Behavior of Multimaster Replication
10.4 Other Techniques
10.5 Summary
Chapter 11: Conclusion
- 11.1 Introduction
11.2 Commodization
11.3 Object-Oriented Programming
- Specifying Transaction Composition
Optimizing Property Updates
Organizing Functions
Objects as Units of Computation
Negotiating Interfaces
11.4 Nested Transactions
- Programming Model
Implementation
Other Exotic Transaction Models
11.5 The Internet and the World Wide Web
11.6 Summary
Bibliographic Notes
Bibliography
Glossary of Acronyms
Index
About the Authors
- Edition: 1
- Published: November 1, 1996
- Imprint: Morgan Kaufmann
- Language: English
PB
Philip A. Bernstein
EN