事务信息系统 并发控制和恢复的理论 算法和实践 计.docVIP

事务信息系统 并发控制和恢复的理论 算法和实践 计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务信息系统 并发控制和恢复的理论 算法和实践 计

事务信息系统 并发控制与恢复的理论 算法与实践 计 作者:riccc发表于2010-09-15 22:51原文链接阅读:24评论:0 事务信息系统-并发控制与恢复的理论,算法与实践 页的存储结构 图:数据库页的存储布局页是磁盘与主存间传输数据的最小单元,也是内存中进行缓存的单元 页头(page header)包含页内空间管理的一些信息,比如空闲空间字节数、最大空闲区域大小等 页槽Slot Array的作用: varchar等变长类型字段的更新操作等,可能导致记录在页内移动,如果外部直接以数据记录的物理地址进行引用,记录移动时处理非常复杂,所以在中间添加一个隔离层Slot Array。Slot Array中存放页内数据的实际地址,以页号+槽号形成RID,外部均以RID引用数据记录 数据在页内移动时只需要更新Slot Array中的实际地址即可,页间移动可以使用一个Forwarding RID实现,例如上图中的示例 对于包含BLOB等长字段类型的记录,简单技巧可以将列的实际数据存储在其他多个页中,而在记录实际数据位置存储页号列表 一次磁盘IO可以读取一个或多个连续的页,可以一次读取的固定数目的页称作块(block),在数据库理论中块和页等同对待 数据库系统通常以区间(extent)为单位预先分配磁盘空间(一次预先分配一个或多个区间),区间是多个连续页。注意区间和块的区别 存储层需要保存必要的元数据,例如将页号转换成物理磁盘地址、空闲空间管理等。通常使用区间表(extent table)来完成页号与物理磁盘地址的转换 计算模型Computational Models 页模型page model 也称作读写模型read/write model,是一种简单模型。例如事务t使用页模型定义类似如下:t=r(x)w(x)r(y)r(u)w(y),其中r表示读取数据页,w表示写数据页,对于存储层而言一个事务就是这样一个读写序列或偏序 页模型通过简明优雅的方式抓住并发控制与恢复的实质,可以描述很多系统实现中的重要问题,局限在于仅以低层页的读写操为元素,没有表达数据访问操作的语义 对象模型object model 对象模型在页模型的基础上考虑高层操作,在对象模型中事务由ADT(abstract data type)操作构成,最终仍归于低层页的读写 下面是一个对象模型示例图: 图:对象模型示例示例场景说明如下: *事务t1中先执行一个select语句,找出住在城市Austin的人员,然后执行一条insert语句,插入一条住在城市Austin的人员信息 *假设表中只有一个索引,位于城市这个字段,使用的B+tree结构,索引结构只有2层 ADT操作以及页的读写说明如下: 1.Search(Austin):select语句使用城市的索引查找符合Austin的索引项,得到RID列表 *r(r):读取B+tree索引根节点页 *r(l):读取B+tree索引叶节点页 2.Fetch(x),Fetch(y):根据RID列表加载数据x、y所在的数据页,得到数据记录x、y *r(p),r(q):分别读取RID x和y所在的数据页p和q 3.Store(z):插入记录z *r(f):读取存储层的元数据页f,其中记录了空闲空间信息 *r(p):从页f上得到页p具有足够空间插入记录z,这里读取这个页p *w(p):把记录z写入页p,并将页p写回磁盘 *r(r),r(l),w(l):更新城市字段的索引,读取索引根节点页r、叶节点页l,更新叶节点页l并写回磁盘 对象模型事务t是一棵树,用事务标识符标记根节点,用被调用的操作名称、参数标记非叶节点,用页模型的读写操作标记叶节点 如果将事务的操作序列看成全序,则这个事务只能串行执行;如果将其看作偏序,则其中某些操作可以并行执行 经典并发问题 脏读dirty-read、不一致读inconsistent-read、幻象读phantom-read参考Transaction,Lock,Isolation Level 更新丢失lost-update: 图:丢失更新问题 页模型上的并发控制-调度协议 页模型的可串行性理论有终态可串行性、视图可串行性、冲突可串行性等,由于判定终态可串行性和视图可串行性的复杂度太高,因此商业数据库基本都采用冲突可串行性CSR类进行判定 概念: 历史history:指一个完整、已经结束的事务,即事务要么使用commit提交了,要么使用abort终止了 调度schedule:指未完成的事务,即历史的一个前缀 图:Transaction Scheduler图:事物调度器Transaction Scheduler client 1、client 2等代表不同事物的操作序列 事务管理器TM主要任务是事物登记,管理trans

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档