事务处理:概念与技术(英文影印版)(图灵奖得主不朽经典)
基本信息
- 作者: (美)Jim Gray Andreas Reuter
- 丛书名: 图灵计算机科学
- 出版社:人民邮电出版社
- ISBN:9787115195869
- 上架时间:2009-4-2
- 出版日期:2009 年5月
- 开本:16开
- 页码:1070
- 版次:1-1
- 所属分类:
计算机 > 操作系统 > 操作系统理论 > 综合
内容简介回到顶部↑
本书从系统的角度全面阐述事务处理的概念和技术,其中涉及终端上的表示管理、通信子系统、操作系统、数据库、程序设计语言的运行时系统以及应用开发环境等。本书重点放在事务处理的基本概念上,主要阐述事务概念是如何用于解决分布式系统问题的,以及利用这些概念如何能够在有限的资金和风险范围内建立高性能、高可用性的应用系统。全书重点讲述了事务处理基础、容错基础知识、面向事务的计算、并发控制、恢复、事务型文件系统、系统概览等7个主题,介绍了事务的acid特性、并发的理论和实践、事务管理和恢复技术等方面的内容,最后还介绍了一个非常重要的资源管理器的实现。.
本书主要面向计算机及相关专业的高年级本科生和研究生,适合作为事务处理导论、数据库系统、分布式系统、操作系统等课程的辅助教材,需要了解事务处理系统的开发人员也可将其作为基本参考书。...
本书主要面向计算机及相关专业的高年级本科生和研究生,适合作为事务处理导论、数据库系统、分布式系统、操作系统等课程的辅助教材,需要了解事务处理系统的开发人员也可将其作为基本参考书。...
作译者回到顶部↑
目录回到顶部↑
part one——the basics of transaction processing .
1 introduction 3
1.1 historical perspective 3
1.2 what is a transaction processing system? 5
1.2.1 the end user's view of a transaction processing system 8
1.2.2 the administrator/operator's view of a tp system 9
1.2.3 application designer's view of a tp system 12
1.2.4 the resource manager's view of a tp system 18
1.2.5 tp system core services 21
1.3 a transaction processing system feature list 22
1.3.1 application development features 22
1.3.2 repository features 23
1.3.3 tp monitor features 26
1.3.4 data communications features 29
1.3.5 database features 33
1.3.6 operations features 39
1.3.7 education and testing features 40
1.3.8 feature summary 41
1.4 summary 42
1.5 historical notes 43
1 introduction 3
1.1 historical perspective 3
1.2 what is a transaction processing system? 5
1.2.1 the end user's view of a transaction processing system 8
1.2.2 the administrator/operator's view of a tp system 9
1.2.3 application designer's view of a tp system 12
1.2.4 the resource manager's view of a tp system 18
1.2.5 tp system core services 21
1.3 a transaction processing system feature list 22
1.3.1 application development features 22
1.3.2 repository features 23
1.3.3 tp monitor features 26
1.3.4 data communications features 29
1.3.5 database features 33
1.3.6 operations features 39
1.3.7 education and testing features 40
1.3.8 feature summary 41
1.4 summary 42
1.5 historical notes 43
前言回到顶部↑
Why We Wrote this Book
The purpose of this book is to give you an understanding of how large, distributed, hetero- geneous computer systems can be made to work reliably. In contrast to the often complex methods of distributed computing, it presents a distributed system application development approach that can be used by mere mortals. Why then doesn't the title use a term like dis- tributed systems, high reliability, interoperability, or client-server? Why use something as prosaic as transaction processing, a term that for many people denotes old-fashioned, batch- oriented, mainframe-minded data processing? .
The point is---and that's what makes the book so long---that the design, implementation, and operation of large application systems, with thousands of terminals, employing hundreds of computers, providing service with absolutely no downtime, cannot be done from a single perspective. An integrated (and integrating) perspective and methodology is needed to ap- proach the distributed systems problem. Our goal is to demonstrate that transactions provide this integrative conceptual framework, and that distributed transaction-oriented operating systems are the enabling technology. The client-server paradigm provides a good way of structuring the system and of developing applications, but it still needs transactions to con- trol the client-server interactions. In a nutshell: without transactions, distributed systems cannot be made to work for typical real-life applications.
This is not an outrageous claim; rather it is a lesson many people--system implemen- tors, system owners, and application developers--have learned the hard way. Of course, the concepts for building large systems have been evolving for a long time. In fact, some of the key ideas were developed way back when batch processing was in full swing, but they are far from being obsolete. Transaction processing concepts were conceived to master the com- plexity in single-processor online applications. If anything, these concepts are even more critical now for the successful implementation of massively distributed systems that work and fail in much more complex ways. This book shows how transaction concepts apply to distributed systems and how they allow us to build high-performance, high-availability applications with finite budgets and risks. We've tried to provide a sense of this development by discussing some of the "lessons from history" with which we're familiar. Many of these demonstrate the problems that transactions help to avoid, as well as where they hide the complexity of distributed systems.
There are many books on database systems, both conventional and distributed" on op- erating systems; on computer communications; on application development--you name it. The partitioning of interests manifest in these terms has become deeply rooted in the syllabi of computer science education all over the world. Education and expertise are organized and compartmentalized. The available books typically take their readers through the ideas in the technical literature over the past decades in an enumerative style. Such presentations offer many options and alternatives, but rarely give a sense of which are the good ideas and which are the not-so-good ones, and why. More specifically, were you ever to design or build a real system, these algorithm overviews would rarely tell you how or where to start.
Our intent is to help you solve real problems. The book is focused in that we present only one or two viable approaches to problems, together with explanations; but there are many other proposals which we do not mention, and the presentation is not encyclopedic. However, the presentation is broad in the sense that it presents transaction processing from a systems perspective. To make large systems work, one must adopt a genuine end-to-end atti- tude, starting at the point where a request comes in, going through all the system layers and components, and not letting go until the final result is safely delivered. This necessarily in- volves presentation management in the terminals, the communication subsystem, the operat- ing system, the database, the programming language run-time systems, and the application development environment. Designing a system with that sort of Integration in mind requires an altogether different set of criteria than designing an algorithm within the narrow confines of its functional specification. This holistic approach is not one that we've found in other presentations of distributed systems and databases. However, since the beginning of this project in 1986, we've been convinced that such an approach is necessary.
Topic Selection and Organization
Since the end-to-end perspective forced us to cover lots of ground, we focused on the basic ideas of transaction processing: simple TP-systems structuring issues, simple transaction models, simple locking, simple logging, simple recovery, and so on. When we looked at the texts and reference books available, we noticed that they are vague on the basics. For exam- ple, we haven't found an actual implementation of B-trees in any textbook. Given that B- trees are the access path structure in databases, file systems, information retrieval systems, and who knows where, that is really basic. This presentation is like a compiler course text- book or like Tanenbaum's operating system book. It is full of code fragments showing the basic algorithms and data structures.
The book is pragmatic, covering basic transaction issues in considerable detail. Writing the book has convinced us that this is a good approach, but the presentation and style may seem foreign. Our motive is to document this more pragmatic perspective. There is no theory of structuring complex systems; rather, the key decisions depend on educated judgment and adherence to good engineering principles---pragmatic criteria. We believe that these principles, derived from the basic concept of transaction-oriented processing, will be impor- tant for many years to come.
Looking at the table of contents, you will find a forbidding number of chapters (16), but they are organized into seven subject areas, which can be read more or less independently, and in different order.
The first topic is an overview of transaction processing in general (Chapter 1). It pre- sents a global system view. It introduces the basic transaction propertles:atom,c,ty (all-or- nothing), consistency (a correct transformation of state), isolatton (without concurrency innmilii) and du "litv (committed chan es surwve any system fadures)---ACID, for short. The nontechnical reader can end there and stall gaan a broad understanding of the field.
Chapter 2 is meant for readers vaguely familiar with the basic tertmnology of computer science. The chapter introduces the most important terms and concepts of hardware, soft- ware, protocol standards, and so on--all the terminology needed for the techmcal discus- sions later in the book.
Chapter 3 explains why systems fall and gwes design advice on how to avoid such fad- ures. It reviews hardware and software fault-tolerance concepts and tech.niques (fail-fast, re- dundancy, modularization, and repair). If you want to learn how to build a module with a mean-time-to-failure of 10,000 years, using normal, faulty, off-the-shelf co.mponents, this.is where to look. Chapter 3 explains the significance of transactions in building highly avail- able software.
Chapters 4 through 6 present the theory and use of transactions. Chapter 4 gives a detailed discussion of what it means to structure apphcauons as transactions. Particular attention is paid to types of computations not well-supported by cu.rrent flat transacuons. These applications require extension and generalization of the transacuon concept. Chapter 5 explains what transaction-oriented computation means for the.operatmg system.and other low-level component.s by descrtbing the role of the TP monitor. It also explains how a transaction program interacts with the system services. Chapter 6 is for programmers. It contains lots of control blocks and code fragments to explain how transactional remote procedure calls work, how request scheduling is done, and other such subtleties. Readers not interested in bit-level events should skim the first half of that chapter and start reading at Section 6.4 about transactional queues.
Chapters 7 and 8 present the theory and practice of concurrency. Transaction processing systems hide all aspects of parallel execution from the application, thereby giving the isola- tion of the ACID properties. Chapter 7 presents the theory behind these techniques, and Chapter 8 demonstrates how to implement this theory with locking.
Chapters 9 through 12 present transaction management and recovery, that is, everything related to making transactions atomic and durable. Chapter 9 explains how logging and archiving are done. Chapter 10 explains how to write a transactional resource manger like a database system or a queue manager. It explains how the resource manger joins the transaction, how it writes log records, gets locks, and participates in transaction commit or rollback. A simple resource manger (the one-bit resource manger) is used to demonstrate the techniques. Chapter 11 takes the transaction manager perspective; it must always reliably know the state of a transaction and which resource managers are working on the transaction. The implementation of a simple transaction manager is laid out in Chapter 11---again, something to be skipped by those who do not need to know all the secrets. Chapter 12 is a catalog of advanced concepts and techniques used by transaction managers.
Chapters 13 through 15 deal with yet another self-contained topic: the implementation of a very important resource manager, a transactional file system. Starting from the bare metal (disks), space management is sketched, and the role of the buffer manager in the system is explained in some detail. Next comes the abstraction of varying-length tuples from fixed-length pages, and all the file organizations that support tuple-oriented access. Finally, Chapter 15 talks about associative access, focusing primarily on B-trees and how to implement them in a highly parallel environment. All this is done in a way that provides the ACID properties: the resulting files, tuples, and access paths are transactional objects.
Chapter 16 gives an overview of many commercially available systems in the transac- tion processing arena. We have tried to highlight the features of each system. This is not a competitive comparison; rather it is a positive description of the strengths of each system.
At the end, there is an extended glossary of transaction processing terminology. Having such a large glossary is a bit unusual in a textbook like this. However, as the motto of Chapter 5 indicates, terminology in the field of transaction processing is all but well-estab- lished. So the glossary has to serve two purposes: First, if you are uncertain about a term, you can look it up and find our interpretation. Second, by being used this way, the glossary rmght actually help to promote a more homogeneous terminology in the field.
Chapters 1 through 15 contain historical notes that explain how things were developed, where certain ideas appeared first, and so on. In contrast to many other areas in computer science, transaction processing developed primarily in industrial research and development labs. Some ideas conceived and implemented in commercial products were rediscovered years later and published as scientific results. In the historical notes we try givi credit to both contributions, to the best of our knowledge.
The purpose of this book is to give you an understanding of how large, distributed, hetero- geneous computer systems can be made to work reliably. In contrast to the often complex methods of distributed computing, it presents a distributed system application development approach that can be used by mere mortals. Why then doesn't the title use a term like dis- tributed systems, high reliability, interoperability, or client-server? Why use something as prosaic as transaction processing, a term that for many people denotes old-fashioned, batch- oriented, mainframe-minded data processing? .
The point is---and that's what makes the book so long---that the design, implementation, and operation of large application systems, with thousands of terminals, employing hundreds of computers, providing service with absolutely no downtime, cannot be done from a single perspective. An integrated (and integrating) perspective and methodology is needed to ap- proach the distributed systems problem. Our goal is to demonstrate that transactions provide this integrative conceptual framework, and that distributed transaction-oriented operating systems are the enabling technology. The client-server paradigm provides a good way of structuring the system and of developing applications, but it still needs transactions to con- trol the client-server interactions. In a nutshell: without transactions, distributed systems cannot be made to work for typical real-life applications.
This is not an outrageous claim; rather it is a lesson many people--system implemen- tors, system owners, and application developers--have learned the hard way. Of course, the concepts for building large systems have been evolving for a long time. In fact, some of the key ideas were developed way back when batch processing was in full swing, but they are far from being obsolete. Transaction processing concepts were conceived to master the com- plexity in single-processor online applications. If anything, these concepts are even more critical now for the successful implementation of massively distributed systems that work and fail in much more complex ways. This book shows how transaction concepts apply to distributed systems and how they allow us to build high-performance, high-availability applications with finite budgets and risks. We've tried to provide a sense of this development by discussing some of the "lessons from history" with which we're familiar. Many of these demonstrate the problems that transactions help to avoid, as well as where they hide the complexity of distributed systems.
There are many books on database systems, both conventional and distributed" on op- erating systems; on computer communications; on application development--you name it. The partitioning of interests manifest in these terms has become deeply rooted in the syllabi of computer science education all over the world. Education and expertise are organized and compartmentalized. The available books typically take their readers through the ideas in the technical literature over the past decades in an enumerative style. Such presentations offer many options and alternatives, but rarely give a sense of which are the good ideas and which are the not-so-good ones, and why. More specifically, were you ever to design or build a real system, these algorithm overviews would rarely tell you how or where to start.
Our intent is to help you solve real problems. The book is focused in that we present only one or two viable approaches to problems, together with explanations; but there are many other proposals which we do not mention, and the presentation is not encyclopedic. However, the presentation is broad in the sense that it presents transaction processing from a systems perspective. To make large systems work, one must adopt a genuine end-to-end atti- tude, starting at the point where a request comes in, going through all the system layers and components, and not letting go until the final result is safely delivered. This necessarily in- volves presentation management in the terminals, the communication subsystem, the operat- ing system, the database, the programming language run-time systems, and the application development environment. Designing a system with that sort of Integration in mind requires an altogether different set of criteria than designing an algorithm within the narrow confines of its functional specification. This holistic approach is not one that we've found in other presentations of distributed systems and databases. However, since the beginning of this project in 1986, we've been convinced that such an approach is necessary.
Topic Selection and Organization
Since the end-to-end perspective forced us to cover lots of ground, we focused on the basic ideas of transaction processing: simple TP-systems structuring issues, simple transaction models, simple locking, simple logging, simple recovery, and so on. When we looked at the texts and reference books available, we noticed that they are vague on the basics. For exam- ple, we haven't found an actual implementation of B-trees in any textbook. Given that B- trees are the access path structure in databases, file systems, information retrieval systems, and who knows where, that is really basic. This presentation is like a compiler course text- book or like Tanenbaum's operating system book. It is full of code fragments showing the basic algorithms and data structures.
The book is pragmatic, covering basic transaction issues in considerable detail. Writing the book has convinced us that this is a good approach, but the presentation and style may seem foreign. Our motive is to document this more pragmatic perspective. There is no theory of structuring complex systems; rather, the key decisions depend on educated judgment and adherence to good engineering principles---pragmatic criteria. We believe that these principles, derived from the basic concept of transaction-oriented processing, will be impor- tant for many years to come.
Looking at the table of contents, you will find a forbidding number of chapters (16), but they are organized into seven subject areas, which can be read more or less independently, and in different order.
The first topic is an overview of transaction processing in general (Chapter 1). It pre- sents a global system view. It introduces the basic transaction propertles:atom,c,ty (all-or- nothing), consistency (a correct transformation of state), isolatton (without concurrency innmilii) and du "litv (committed chan es surwve any system fadures)---ACID, for short. The nontechnical reader can end there and stall gaan a broad understanding of the field.
Chapter 2 is meant for readers vaguely familiar with the basic tertmnology of computer science. The chapter introduces the most important terms and concepts of hardware, soft- ware, protocol standards, and so on--all the terminology needed for the techmcal discus- sions later in the book.
Chapter 3 explains why systems fall and gwes design advice on how to avoid such fad- ures. It reviews hardware and software fault-tolerance concepts and tech.niques (fail-fast, re- dundancy, modularization, and repair). If you want to learn how to build a module with a mean-time-to-failure of 10,000 years, using normal, faulty, off-the-shelf co.mponents, this.is where to look. Chapter 3 explains the significance of transactions in building highly avail- able software.
Chapters 4 through 6 present the theory and use of transactions. Chapter 4 gives a detailed discussion of what it means to structure apphcauons as transactions. Particular attention is paid to types of computations not well-supported by cu.rrent flat transacuons. These applications require extension and generalization of the transacuon concept. Chapter 5 explains what transaction-oriented computation means for the.operatmg system.and other low-level component.s by descrtbing the role of the TP monitor. It also explains how a transaction program interacts with the system services. Chapter 6 is for programmers. It contains lots of control blocks and code fragments to explain how transactional remote procedure calls work, how request scheduling is done, and other such subtleties. Readers not interested in bit-level events should skim the first half of that chapter and start reading at Section 6.4 about transactional queues.
Chapters 7 and 8 present the theory and practice of concurrency. Transaction processing systems hide all aspects of parallel execution from the application, thereby giving the isola- tion of the ACID properties. Chapter 7 presents the theory behind these techniques, and Chapter 8 demonstrates how to implement this theory with locking.
Chapters 9 through 12 present transaction management and recovery, that is, everything related to making transactions atomic and durable. Chapter 9 explains how logging and archiving are done. Chapter 10 explains how to write a transactional resource manger like a database system or a queue manager. It explains how the resource manger joins the transaction, how it writes log records, gets locks, and participates in transaction commit or rollback. A simple resource manger (the one-bit resource manger) is used to demonstrate the techniques. Chapter 11 takes the transaction manager perspective; it must always reliably know the state of a transaction and which resource managers are working on the transaction. The implementation of a simple transaction manager is laid out in Chapter 11---again, something to be skipped by those who do not need to know all the secrets. Chapter 12 is a catalog of advanced concepts and techniques used by transaction managers.
Chapters 13 through 15 deal with yet another self-contained topic: the implementation of a very important resource manager, a transactional file system. Starting from the bare metal (disks), space management is sketched, and the role of the buffer manager in the system is explained in some detail. Next comes the abstraction of varying-length tuples from fixed-length pages, and all the file organizations that support tuple-oriented access. Finally, Chapter 15 talks about associative access, focusing primarily on B-trees and how to implement them in a highly parallel environment. All this is done in a way that provides the ACID properties: the resulting files, tuples, and access paths are transactional objects.
Chapter 16 gives an overview of many commercially available systems in the transac- tion processing arena. We have tried to highlight the features of each system. This is not a competitive comparison; rather it is a positive description of the strengths of each system.
At the end, there is an extended glossary of transaction processing terminology. Having such a large glossary is a bit unusual in a textbook like this. However, as the motto of Chapter 5 indicates, terminology in the field of transaction processing is all but well-estab- lished. So the glossary has to serve two purposes: First, if you are uncertain about a term, you can look it up and find our interpretation. Second, by being used this way, the glossary rmght actually help to promote a more homogeneous terminology in the field.
Chapters 1 through 15 contain historical notes that explain how things were developed, where certain ideas appeared first, and so on. In contrast to many other areas in computer science, transaction processing developed primarily in industrial research and development labs. Some ideas conceived and implemented in commercial products were rediscovered years later and published as scientific results. In the historical notes we try givi credit to both contributions, to the best of our knowledge.
序言回到顶部↑
Bruce Lindsay
IBM Almaden Research Center
San Jose, California
Commercial, governmental, scientific, and cultural activities are becoming increasingly dependent on computer-based information resources. As increasing amounts and varieties of information are captured and maintained by computer systems, the techniques for exploiting, managing, and protecting this information become critical to the well-being, and indeed the very survival, of modem industrialized societies. .
Transaction processing technology is the key to the coherent management and reliable exploitation of computer-based information resources.
Transaction processing encompasses techniques for managing both the stored information itself and the application programs which interpret and manipulate that information. From database recovery and concurrency control to transaction monitors that initiate and control the execution of applications, transaction processing technology provides mechanisms and facilities needed to protect and manage the critical information resources which underlie many (if not most) commercial, scientific, and cultural activities.
In order for the increasingly vast quantity of computer-based information to be useful, it must accurately reflect the real world and be available to the application programs that interpret and exploit the information. In general, exploiting stored information involves accessing and modifying related data items which collectively describe or model the status and evolution of real-world phenomena and activities. Because multiple data items must usually be accessed or updated together to correctly reflect the real world, great care must be taken to keep related data items mutually consistent. Any interruption of updates to related items, or the interleaving of updates and accesses, can make the data inconsistent.
The key to maintaining data consistency is to identify the sequences of accesses and updates that represent the interrogation and modification of related data items. Such sequences axe called transactions. Transaction processing technology ensures that each transaction is either executed to completion or not at all, and that concurrently executed transactions behave as though each transaction executes in isolation. The significance of this technology is magnified by the fact that these guarantees are upheld despite failures of computer components, distribution of data across multiple computers, and overlapped or parallel execution of different transactions.
Twenty-five years of intense effort in commercial and university laboratories, has led totransaction processing technologies capable of all-or-nothing execuUon and Isolation of con-current transactions. This book presents, for the first time, a comprehensive description ofthe techniques and methods used by transaction processing systems to control and protectthe valuable information resources they manage. The authors describe, in detail, the state-of-the-art techniques used in the best-of-breed commercial and experimental transaction pro- cessing systems. They concentrate on proven techniques that are effective and efficient. Detailed explanations of why various problems must be solved and how they can be ad- dressed make this book useful to both the serious student and to system developers. ..
The authors, Dr. James Gray and Professor Andreas Reuter, have between them five decades of direct experience with the implementations of both commercial and experimental transaction processing systems. They have both made significant contributions to the art of transaction processing and are famous for their scientific publications and their ability to explain the fruits of their research. This book is a distillation of their deep understanding of transaction processing issues and their hard-won appreciation of the most effectix, e tech- niques for implementing transaction processing methods. The authors' ability to distinguish between fundamental concepts and speculative approaches gives the reader a firm and prac- tical basis for understanding the issues and techniques of transaction processing systems.
This book covers all aspects of transaction processing technology. The introductory chapters give the reader a basic understanding of transaction concepts and the computing en- vironment in which transactions must execute, including important assumptions about the component failures which the transaction processing system must tolerate. The explanation of the role of transaction processing monitors, which control the activation and execution of application programs and the facilities they provide, sets the stage for the presentation of concurrency control and recovery techniques. The discussion of transaction isolation covers concurrency control issues from the hardware level to the isolation semantics for records andindexes. The important and complex technology of transaction recovery in the face of fail-ures is covered in great detail. From record management to distributed commit protocols, therecovery techniques needed to ensure all-or-nothing execution and data persistence are pre-sented and explained. The transaction recovery and isolation techniques are then applied tothe design and implementation of record-oriented storage and associative indexes. Studentsand developers of database systems will find much useful information in these chapters. Thebook concludes with a survey of transaction processing systems from both the commercialand the academic worlds.
Throughout the book, the authors provide in-depth discussions of the underlying issues,and detailed descriptions of proven techniques. The concepts are illustrated with numerouscarefully designed figures. In addition, the techniques are accompanied by code fragmentsthat increase the reader's appreciation of the implementation issues.
Transaction Processing: Concepts and Techniques is both comprehensive in its cover-age of transaction processing technology and detailed in its descriptions of the issues and al-gorithms. In-depth presentations of the techniques are enlightening to the student and a re-source for the professional. The importance of transaction processing technology to the in-formation management needs of industrialized societies makes it essential that this technol-ogy be well understood and widely applied. This book will serve as a guide and a referencefor the many individuals who will apply and extend transaction processing concepts and techniques in the years ahead. ...
IBM Almaden Research Center
San Jose, California
Commercial, governmental, scientific, and cultural activities are becoming increasingly dependent on computer-based information resources. As increasing amounts and varieties of information are captured and maintained by computer systems, the techniques for exploiting, managing, and protecting this information become critical to the well-being, and indeed the very survival, of modem industrialized societies. .
Transaction processing technology is the key to the coherent management and reliable exploitation of computer-based information resources.
Transaction processing encompasses techniques for managing both the stored information itself and the application programs which interpret and manipulate that information. From database recovery and concurrency control to transaction monitors that initiate and control the execution of applications, transaction processing technology provides mechanisms and facilities needed to protect and manage the critical information resources which underlie many (if not most) commercial, scientific, and cultural activities.
In order for the increasingly vast quantity of computer-based information to be useful, it must accurately reflect the real world and be available to the application programs that interpret and exploit the information. In general, exploiting stored information involves accessing and modifying related data items which collectively describe or model the status and evolution of real-world phenomena and activities. Because multiple data items must usually be accessed or updated together to correctly reflect the real world, great care must be taken to keep related data items mutually consistent. Any interruption of updates to related items, or the interleaving of updates and accesses, can make the data inconsistent.
The key to maintaining data consistency is to identify the sequences of accesses and updates that represent the interrogation and modification of related data items. Such sequences axe called transactions. Transaction processing technology ensures that each transaction is either executed to completion or not at all, and that concurrently executed transactions behave as though each transaction executes in isolation. The significance of this technology is magnified by the fact that these guarantees are upheld despite failures of computer components, distribution of data across multiple computers, and overlapped or parallel execution of different transactions.
Twenty-five years of intense effort in commercial and university laboratories, has led totransaction processing technologies capable of all-or-nothing execuUon and Isolation of con-current transactions. This book presents, for the first time, a comprehensive description ofthe techniques and methods used by transaction processing systems to control and protectthe valuable information resources they manage. The authors describe, in detail, the state-of-the-art techniques used in the best-of-breed commercial and experimental transaction pro- cessing systems. They concentrate on proven techniques that are effective and efficient. Detailed explanations of why various problems must be solved and how they can be ad- dressed make this book useful to both the serious student and to system developers. ..
The authors, Dr. James Gray and Professor Andreas Reuter, have between them five decades of direct experience with the implementations of both commercial and experimental transaction processing systems. They have both made significant contributions to the art of transaction processing and are famous for their scientific publications and their ability to explain the fruits of their research. This book is a distillation of their deep understanding of transaction processing issues and their hard-won appreciation of the most effectix, e tech- niques for implementing transaction processing methods. The authors' ability to distinguish between fundamental concepts and speculative approaches gives the reader a firm and prac- tical basis for understanding the issues and techniques of transaction processing systems.
This book covers all aspects of transaction processing technology. The introductory chapters give the reader a basic understanding of transaction concepts and the computing en- vironment in which transactions must execute, including important assumptions about the component failures which the transaction processing system must tolerate. The explanation of the role of transaction processing monitors, which control the activation and execution of application programs and the facilities they provide, sets the stage for the presentation of concurrency control and recovery techniques. The discussion of transaction isolation covers concurrency control issues from the hardware level to the isolation semantics for records andindexes. The important and complex technology of transaction recovery in the face of fail-ures is covered in great detail. From record management to distributed commit protocols, therecovery techniques needed to ensure all-or-nothing execution and data persistence are pre-sented and explained. The transaction recovery and isolation techniques are then applied tothe design and implementation of record-oriented storage and associative indexes. Studentsand developers of database systems will find much useful information in these chapters. Thebook concludes with a survey of transaction processing systems from both the commercialand the academic worlds.
Throughout the book, the authors provide in-depth discussions of the underlying issues,and detailed descriptions of proven techniques. The concepts are illustrated with numerouscarefully designed figures. In addition, the techniques are accompanied by code fragmentsthat increase the reader's appreciation of the implementation issues.
Transaction Processing: Concepts and Techniques is both comprehensive in its cover-age of transaction processing technology and detailed in its descriptions of the issues and al-gorithms. In-depth presentations of the techniques are enlightening to the student and a re-source for the professional. The importance of transaction processing technology to the in-formation management needs of industrialized societies makes it essential that this technol-ogy be well understood and widely applied. This book will serve as a guide and a referencefor the many individuals who will apply and extend transaction processing concepts and techniques in the years ahead. ...
评论交流
共有16人开贴评论 19人参与评论 8人参与打分 查看
评价等级:







发表于:2010-6-20 10:12:00
关于事务处理的顶级力作。想要了解事务处理的内部细节必看。实际上关于事务处理的资料本身就很有限,网上能看到的比较好的入门材料就是Dr.Subrahmanyam Allamaraju的事务处理的1篇文章《Nuts and Bolts of Transaction Processing》(国内有翻译,翻译质量很不错),但这篇文章只能算是入门级的,若要深入内部则是远远不够的。此外就是OMG Transaction Service和OpenGroup的XA事务处理规范了,但这些规范更多的是编程模型或者跨系统协议。其余就是Oracle或者SQL Server等商业开源实现的,太多零散。
| 我要写评论 |
| 查看所有评论交流(共16条) |








点击看大图






加载中...

