注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计程序设计综合事务处理:概念与技术

事务处理:概念与技术

事务处理:概念与技术

定 价:¥96.00

作 者: (美)Jim Gray,(美)Andreas Reuter著;孟小峰,于戈等译;孟小峰译
出版社: 机械工业出版社
丛编项: 计算机科学丛书
标 签: 暂缺

ISBN: 9787111126416 出版时间: 2004-01-01 包装: 平装
开本: 26cm 页数: 825 字数:  

内容简介

  事务处理广泛地应用于数据库和操作系统领域,并在现代计算机系统中监控、控制和更新信息。本书向读者展示了大型的、分布的、异构的计算机系统是如何进行可靠工作的。作者使用事务作为基本概念,说明了在有限的资金和风险下如何构建高性能的高可用性应用。书中还详细阐述了各种可能发生的问题,以及解决这些问题的实际可用的技术。本书列举了大量成功的商业和研究系统的实例,此外,列出了许多事务处理算法的可编译的C代码片段。本书对于那些对实现分布式系统或客户-服务器结构感兴趣的人来说,是值得一读的。本书适合作为高校的教科书,也可作为计算机专业人员的参考书。没有事务,分布式系统就不能满足典型应用的需要——这是许多系统实现人员和应用开发人员从实践中得到的经验。本书主要阐述事务概念是如何用于解决分布式系统问题的,以及这些概念如何使我们能够在有限的资金和风险范围内建立高性能、高可用性的应用系统。本书内容广泛,从系统的角度全面阐述事务处理的概念和技术,涉及终端上的表示管理、通信子系统、操作系统。数据库、程序设计语言的运行时系统以及应用开发环境等。

作者简介

  Jim Gray由于在事务处理领域的突出贡献,他于1998年获得“图灵奖”。目前在微软研究院工作,从事微软Back Office产品的改进研究。他的研究兴趣主要集中在可扩展系统和容错系统方面。20世纪80年代,他在Tandem工作,参与开发了系统字典,FastSort和NonStop SQL。20世纪70年代在IBM研究中心,他参与开发的项目有System R、SQL/DSDB2和MS-Fast Path。此前他还在贝尔实验室工作过,并在加州大学伯克利分校获得博士学位。他在商业系统开发上卓有成效,同时在研究上也取得了诸多被大家广泛认可的成果。

图书目录

出版者的话
专家指导委员会
中文版序
译者序
译者简介

前言
第一部分  事务处理基础
第1章  概述  1
1.1  历史回顾  1
1.2  什么是事务处理系统  2
1.2.1  最终用户对事务处理系统的认识  4
1.2.2  管理员/操作员对事务处理系统
的认识  6
1.2.3  应用设计者对事务处理系统的认识  8
1.2.4  从资源管理器角度对事务处理系统
的认识  12
1.2.5  TP系统的核心服务  15
1.3  事务处理系统特征列表  16
1.3.1  应用开发特征  16
1.3.2  中心库特征  16
1.3.3  TP监控器的特征  20
1.3.4  数据通信特征  21
1.3.5  数据库特征  24
1.3.6  操作特征  29
1.3.7  教育和测试特征  29
1.3.8  特征小结  29
1.4  小结  30
1.5  历史评注  30
习题  32
答案  32
第2章  计算机系统基本术语  33
2.1  引言  33
2.2  基本硬件  33
2.2.1  存储器  35
2.2.2  处理器  41
2.2.3  通信硬件  42
2.2.4  硬件结构  43
2.3  基本软件—地址空间. 进程. 会话  45
2.3.1  地址空间  45
2.3.2  进程. 保护域和线程  46
2.3.3  消息和会话  47
2.4  一般系统问题  48
2.4.1  客户和服务器  49
2.4.2  命名  50
2.4.3  认证  51
2.4.4  授权  52
2.4.5  调度和性能  52
2.4.6  小结  54
2.5  文件  54
2.5.1  文件操作  54
2.5.2  文件组织  55
2.5.3  分布式文件系统  56
2.5.4  SQL  56
2.6  软件性能  57
2.7  事务处理标准  58
2.7.1  可移植性标准和互操作性标准  58
2.7.2  API和 FAP  58
2.7.3  LU6.2, 一个事实标准  60
2.7.4  具有X/Open DTP的OSI-TP—
正式标准  60
2.8  小结  62
习题  62
答案  64
第二部分  容错基础知识
第3章  容错  67
3.1  引言  67
3.1.1  简单概率概述  67
3.1.2  容错的外部观点  68
3.2  定义  71
3.2.1  故障. 失败. 可用性. 可靠性  71
3.2.2  故障避免和容错的分类  72
3.2.3  修复. 失败即停. 模块性.
递归设计  72
3.3  实验研究  72
3.3.1  断供是非常少见的事件  73
3.3.2  传统系统研究  73
3.3.3  容错系统研究  74
3.4  典型模块失败率  76
3.5  容错的硬件措施  79
3.5.1  n工基本思想:怎样建立失败
即停的模块  79
3.5.2  n工中的失败即停表决器与失败
表决型表决器  80
3.5.3  n工与修复产生高可用性  81
3.5.4  表决器问题  83
3.5.5  小结  84
3.6  软件问题  85
3.6.1  N版本程序设计和软件容错  85
3.6.2  事务和软件容错  86
3.6.3  小结  87
3.7  故障模型和软件故障屏蔽  87
3.7.1  模型概览  88
3.7.2  建立高可用的存储  89
3.7.3  高可用的进程  94
3.7.4  基于会话和进程对的可靠消息  102
3.7.5  进程-消息-存储模型的小结  109
3.8  一般原理  110
3.9  一个警戒性的故事—系统错觉  110
3.10  小结  112
3.11  历史评注  112
习题  113
答案  115
第三部分  面向事务的计算
第4章  事务模型  117
4.1  引言  117
4.2  原子操作和扁平事务  118
4.2.1  将写磁盘作为原子操作  118
4.2.2  操作类型分类  120
4.2.3  扁平事务  121
4.2.4  扁平事务的局限性  125
4.3  控制区域  127
4.3.1  控制区域的定义  128
4.3.2  控制区域的动态行为  129
4.3.3  小结  131
4.4  一种解释事务模型的符号表示法  132
4.4.1  描述事务模型哪些是必需的  132
4.4.2  符号表示法的构成元素  134
4.4.3  用一套简单的规则定义事务模型  135
4.5  带保存点的扁平事务  136
4.5.1  关于保存点  137
4.5.2  开发保存点模型下的规则  138
4.5.3  持久性保存点  139
4.6  链事务  140
4.7  嵌套事务  142
4.7.1  嵌套结构的定义  142
4.7.2  嵌套事务的使用  145
4.7.3  通过保存点模仿嵌套事务  146
4.8  分布事务  147
4.9  多级别事务  148
4.9.1  补偿事务的角色  149
4.9.2  多级别事务的使用  150
4.10  开放嵌套事务  153
4.11  长事务  153
4.11.1  事务处理上下文  154
4.11.2  小批量  157
4.11.3  saga  158
4.12  特殊事务模型  159
4.13  小结  161
4.14  历史评注  161
习题  164
答案  167
第5章  事务处理监控器:概述  172
5.1  引言  172
5.2  事务系统中的TP监控器的角色  172
5.2.1  面向事务的计算方式  173
5.2.2  事务处理服务  178
5.2.3  事务处理系统进程结构  180
5.2.4  小结  184
5.3  TP监控器的结构  185
5.3.1  TP监控器组件  185
5.3.2  事务服务的组件  188
5.3.3  TP监控器对于资源管理器接口
的支持  190
5.4  事务型远程过程调用:基本思想  191
5.4.1  远程过程调用中的参与者  191
5.4.2  远程过程调用句柄的地址空间结构  192
5.4.3  远程过程调用的动态过程  193
5.4.4  小结  195
5.5  事务编程风格的例子  196
5.5.1  基本的处理循环逻辑  196
5.5.2  与事务有关的资源管理器:
一个简单的例子  197
5.5.3  与事务有关的资源管理器:
一个复杂的例子  202
5.5.4  使用持久保存点  203
5.6  专门术语的介绍  204
5.7  历史评注  205
习题  206
答案  207
第6章  事务处理监控器  209
6.1  介绍  209
6.2  事务型远程过程调用  211
6.2.1  资源管理器的接口  212
6.2.2  资源管理器对事务的支持  213
6.2.3  资源管理器和TP监控器之间
的接口  215
6.2.4  资源管理器调用与资源管理器
会话  217
6.2.5  小结  223
6.3  TP监控器的功能原理  223
6.3.1  TPOS的中心数据结构  224
6.3.2  TP监控器拥有的数据结构  228
6.3.3  TRPC路径的概览  233
6.3.4  中止竞争的TRPC  238
6.3.5  小结  238
6.4  管理请求和响应队列  239
6.4.1  映射资源管理器调用的短期队列  240
6.4.2  用于异步事务处理的永久性
请求队列  242
6.4.3  小结  249
6.5  TP监控器的其他任务  250
6.5.1  负载平衡  250
6.5.2  认证和授权  255
6.5.3  重启处理  259
6.6  小结  261
6.7  历史评注  262
习题  264
答案  265
第四部分  并发控制
第7章  隔离性的概念  269
7.1  引言  269
7.2  隔离性的引入  269
7.3  隔离性的依赖模型  271
7.3.1  静态分配与动态分配  272
7.3.2  事务依赖  272
7.3.3  三种有害的依赖  273
7.3.4  隔离性的形式化模型  274
7.4  隔离性:应用程序员的观点  274
7.5  隔离性定理  275
7.5.1  操作与事务  276
7.5.2  规范事务和两阶段事务  276
7.5.3  事务的调度  277
7.5.4  合法的调度和锁的相容性  277
7.5.5  版本. 依赖. 依赖图  278
7.5.6  等价的和隔离的调度:BEFORE.
AFTER和虫洞  279
7.5.7  虫洞事务不具有隔离性  280
7.5.8  定义小结  281
7.5.9  隔离定理的小结  285
7.6  隔离性的级别  286
7.6.1  隔离性级别的定理  286
7.6.2  SQL与隔离级别  287
7.6.3  低隔离级别的优缺点  288
7.6.4  特殊的SQL隔离—跳读锁
和通知锁  290
7.7  幻像和谓词锁  291
7.8  粒度锁  292
7.8.1  基于树的封锁和意向锁类型  293
7.8.2  更新型锁  295
7.8.3  粒度锁小结  296
7.8.4  码区间封锁  296
7.8.5  动态码区间锁:前码和后码封锁  297
7.8.6  码区间锁需要DAG封锁  299
7.8.7  DAG封锁协议    300
7.8.8  基于DAG的粒度封锁的形式化
定义  301
7.9  封锁的启发式算法  302
7.10  嵌套事务封锁  304
7.11  调度与死锁  305
7.11.1  护卫现象  305
7.11.2  死锁避免与检测  306
7.11.3  等待图和死锁检测  307
7.11.4  分布式死锁  308
7.11.5  死锁的概率  309
7.12  奇特方法  310
7.12.1  字段调用  310
7.12.2  契约封锁和其他字段调用改进  312
7.12.3  乐观和时间戳封锁  314
7.12.4  时间域寻址  314
7.13  小结  316
7.14  历史评注  317
习题  318
答案  320
第8章  锁的实现  323
8.1  引言  323
8.1.1  关于本章  323
8.1.2  锁管理程序中并行的必要性  323
8.1.3  资源管理器和锁管理程序的
地址空间  324
8.2  原子机指令  325
8.3  信号量  326
8.3.1  排他型信号量  327
8.3.2  蟹行:遍历共享数据结构  329
8.3.3  共享信号量  329
8.3.4  分配共享存储  332
8.3.5  信号量和异常  333
8.4  锁管理程序  334
8.4.1  锁名  334
8.4.2  锁队列和调度  335
8.4.3  锁长度和锁计数  337
8.4.4  锁管理程序接口和数据结构  338
8.4.5  锁管理程序的内部逻辑  339
8.4.6  锁升级和类属解锁. 通知锁  344
8.4.7  事务保存点. 提交和回滚  345
8.4.8  系统重启时的封锁  346
8.4.9  长生事务  347
8.4.10  锁管理程序配置和复杂性  347
8.4.11  锁管理程序小结  347
8.5  死锁检测  347
8.6  并行事务和并行嵌套事务封锁  349
8.7  小结  350
8.8  历史评注  350
习题  351
答案  353
第五部分  恢   复
第9章  日志管理程序  357
9.1  引言  357
9.1.1  日志的使用  357
9.1.2  日志管理程序概述  357
9.1.3  日志管理程序和其他服务的关系  358
9.1.4  为什么需要日志管理程序  359
9.2  日志表  360
9.2.1  映射日志表到文件  360
9.2.2  日志序号  361
9.3  日志的公共接口  362
9.3.1  日志表的存取授权  362
9.3.2  读日志表  363
9.3.3  写日志表  364
9.3.4  小结  364
9.4  日志读写的实现细节  365
9.4.1  读日志  366
9.4.2  日志锚点  366
9.4.3  与事务相关的锚点  367
9.4.4  日志插入  367
9.4.5  分配和刷新日志的守护进程  368
9.4.6  谨慎写:串行写和乒乓写  369
9.4.7  成组提交. 批量式. 集装式  370
9.4.8  WADS写入  370
9.4.9  多日志的事务管理器  371
9.4.10  小结  371
9.5  日志重启逻辑  371
9.5.1  保存事务管理器的锚点  372
9.5.2  准备重启:日志锚点的谨慎写  372
9.5.3  在重启时找到锚点和日志尾  373
9.6  日志归档  374
9.6.1  应当有多少联机日志表  374
9.6.2  用于回滚. 重启. 归档的底线  374
9.6.3  动态日志:副拷贝和正向拷贝  375
9.6.4  不影响并发事务的日志归档  376
9.6.5  电子转存和变化累积  376
9.6.6  处理日志管理程序—归档环路  377
9.7  客户-服务器体系结构的日志系统  378
9.8  小结  378
9.9  历史评注  379
习题  379
答案  381
第10章  事务管理器概念  384
10.1  引言  384
10.2  事务管理器的接口  384
10.2.1  事务的应用接口  385
10.2.2  事务的资源管理器接口  388
10.2.3  事务管理器的功能  389
10.3  事务型资源管理器概念  391
10.3.1  DO-UNDO-REDO协议  391
10.3.2  日志表和日志记录  392
10.3.3  通信会话恢复  393
10.3.4  值日志  396
10.3.5  逻辑日志  397
10.3.6  物理-逻辑日志  399
10.3.7  物理-逻辑日志规则:FIX. WAL
和Force-Log-at-Commit  400
10.3.8  补偿日志记录  407
10.3.9  物理-逻辑REDO的幂等性  408
10.3.10  小结  409
10.4  两阶段提交:使计算具有原子性  409
10.4.1  集中式系统中的两阶段提交  410
10.4.2  分布式事务和两阶段提交  414
10.5  小结  418
10.6  历史评注  419
习题  420
答案  422
第11章  事务管理器结构  426
11.1  引言  426
11.2  正常处理  426
11.2.1  事务标识符  426
11.2.2  事务管理器的数据结构  427
11.2.3  MyTrid(). Status_Transaction().
Leave_Transaction()和Resume_Transaction()  430
11.2.4  保存点日志记录  431
11. 2.5  Begin_Work()  432
11.2.6  局部Commit_Work()  432
11.2.7  远程Commit_Work():
Prepare()和Commit()  435
11.2.8  Save_Work()和
Read_Context()  437
11.2.9  Rollback_Work()  438
11.3  检查点  440
11.3.1  清晰检查点  441
11.3.2  模糊检查点  442
11.3.3  事务管理器检查点  443
11.4  系统重启  444
11.4.1  重启时的事务状态  445
11.4.2  事务管理器的重启逻辑  445
11.4.3  资源管理器重启逻辑, Identify()  448
11.4.4  重启设计小结  450
11.4.5  独立的资源管理器  450
11.4.6  两检查点方法:一种不同的策略  450
11.4.7  重启为什么能奏效  452
11.4.8  分布式事务解决方法:重启时
两阶段提交  453
11.4.9  加速重启  453
11.4.10  其他重启问题  454
11.5  资源管理器的失败与重启  454
11.6  归档恢复  455
11.7  配置事务管理器  456
11.8  小结  457
习题  457
答案  458
第12章  高级事务管理器主题  460
12.1  引言  460
12.2  异构型提交协调者  460
12.2.1  封闭式与开放式事务管理器  460
12.2.2  封闭式事务管理器的互操作性  461
12.2.3  编写开放式事务管理器的网关  463
12.2.4  事务网关小结  465
12.3  高可用性(非阻塞型)提交协调者  465
12.4  提交转移  467
12.5  两阶段提交的优化  469
12.5.1  只读提交优化  470
12.5.2  惰性提交优化  471
12.5.3  线性提交优化  471
12.6  远程场地的灾难恢复  471
12.6.1  系统对接管  473
12.6.2  接管时的会话切换  474
12.6.3  配置选项:一级安全. 二级安全和
极其安全  475
12.6.4  失败后的追赶处理  477
12.6.5  系统对设计小结  477
12.7  小结  478
12.8  历史评注  478
习题  479
答案  480
第六部分  事务型文件系统:
一个资源管理器实例
第13章  文件和缓冲区管理  483
13.1  引言  483
13.2  文件系统作为事务永久存储的基础  484
13.2.1  外存与主存  484
13.2.2  本书使用的外部存储模型  488
13.2.3  事务型文件和数据库管理器中的
抽象层次  490
13.3  介质和文件管理  492
13.3.1  基本文件系统的对象和操作  492
13.3.2  磁盘空间管理  495
13.3.3  低层文件系统的目录管理  502
13.4  缓冲区管理  504
13.4.1  数据库缓冲区的工作原理  504
13.4.2  缓冲区管理器的实现问题  511
13.4.3  从缓冲区角度的写日志和恢复  519
13.4.4  缓冲区管理器性能优化  524
13.5  特殊问题  530
13.5.1  副文件  531
13.5.2  单级存储器  537
13.6  小结  541
13.7  历史评注  542
习题  544
答案  546
第14章  面向元组的文件系统  549
14.1  引言  549
14.2  元组到页面的映射  549
14.2.1  页面的内部组织  550
14.2.2  文件中空闲区的管理  554
14.2.3  元组标识  556
14.3  物理元组管理  562
14.3.1  属性值的物理表示  562
14.3.2  短元组的物理表示  564
14.3.3  元组属性值表示的特殊问题  573
14.3.4  长元组的物理表示  575
14.3.5  复杂元组和超长属性的物理
表示  578
14.4  文件组织  581
14.4.1  管理型操作  582
14.4.2  扫描操作在不同文件组织上
的抽象视图  584
14.4.3  顺序存取文件  589
14.4.4  系统顺序文件  594
14.4.5  相对文件  596
14.4.6  码顺序文件和散列文件  598
14.4.7  小结  598
14.5  特殊问题  599
14.5.1  聚簇文件  599
14.5.2  划分文件  600
14.5.3  使用事务来维护文件系统  601
14.5.4  目前数据库系统中的面向元组
的文件系统  601
14.6  小结  602
习题  602
答案  604
第15章  存取路径  606
15.1  引言  606
15.2  实现关联存取路径的技术  607
15.3  通过散列文件进行关联存取  609
15.3.1  将码值折叠成数值型数据类型  610
15.3.2  评价散列函数的准则  611
15.3.3  散列文件的溢出处理  616
15.3.4  散列文件中页面的局部管理  618
15.3.5  散列关联存取的小结  619
15.4  B树  620
15.4.1  B树:基本思想  621
15.4.2  B树的性能方面  628
15.4.3  对B树的同步:面向页的观点  632
15.4.4  对B树的同步:面向元组的观点  634
15.4.5  B树的恢复操作  636
15.5  B树某些操作的实现样例  639
15.5.1  声明所有程序用到的数据结构  639
15.5.2  B树readkey()操作的实现  641
15.5.3  B树上的码区间封锁  642
15.5.4  B树插入操作的实现:简单实例  644
15.5.5  B树插入操作的实现:分裂实例  645
15.5.6  小结  647
15.6  特殊问题  647
15.6.1  可扩展散列  648
15.6.2  网格文件  652
15.6.3  hB树  656
15.7  小结  661
15.8  历史评注  661
习题  664
答案  666
第七部分  系 统 概 览
第16章  TP系统概览  669
16.1  引言  669
16.2  IMS   669
16.2.1  硬件和操作系统环境  670
16.2.2  工作流模型  671
16.2.3  程序隔离  674
16.2.4  主存数据库和字段调用  674
16.2.5  数据共享  675
16.2.6  改善的可用性与双工系统  675
16.2.7  DB2  677
16.2.8  IMS的最新演进  677
16.3  CICS和LU6.2  677
16.3.1  CICS概述  678
16.3.2  CICS服务  679
16.3.3  CICS工作流  680
16.3.4  CICS分布式事务处理  681
16.3.5  LU6.2  682
16.4  Guardian 90  684
16.4.1  Guardian:操作系统及硬件  685
16.4.2  Pathway. 终端上下文和服务器
类管理  686
16.4.3  事务管理  687
16.4.4  其他有意义的特性  692
16.5  DECdta  693
16.5.1  ACMS事务处理的三球工作流
模型  693
16.5.2  ACMS服务  696
16.5.3  ACMS小结  697
16.5.4  VMS 的事务管理支持  698
16.5.5  DECdta小结  701
16.5.6  可靠的事务路由器  701
16.6  X/Open DTP. OSI-TP. CCR  703
16.6.1  局部情况  704
16.6.2  分布式情况:服务和服务器  705
16.6.3  小结  706
16.7  其他系统  706
16.7.1  通用事务管理器  706
16.7.2  ADABAS TPF  707
16.7.3  Encina  708
16.7.4  Tuxedo  710
16.8  小结  711
第八部分  附   录
附录A  参考文献  713
附录B  数据结构和接口  731
附录C  词汇表  738
索引  774

本目录推荐