ARIES

ARIES是一个恢复算法,由一系列的论文组成

 

主论文

ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging

 

索引方面

ARIES/KVL : A Key-Value Locking Method for Concurrency Control of Multiaction Transactions Operating on B-Tree Indexes

 

ARIES/IM An Efficient and High Concurrency index Management Method Using Write-Ahead Logging

 

IBM research report 60多页

 

一篇不错的综述

Repeating History Beyond ARIES

 

下面主要是ARIES/IM 一些注意的地方

 

1。Latch类度是页面级

2。补偿日志CLR(compensation log record)是在rollback时写入的,别的时候不写,在restart recovery时是redo-only日志,不undo,为了快速恢复,undoNxtLSN指向在restart recovery时,需要undo的下一条日志,跳过补偿日志;logical undo就是undo的元组已经不在原来的页面了

 3。对于LATCH,最多同时获得两个;按顺序获得,当有unconditional情况时;避免在持有LATCH时,unconditional来申请lock

4。SMO(Structure Modification Operation) 通过对树加全局排它tree latch,来实现操作的串行化;新增叶面在原叶面的右边;所有的SMO操作的日志类型为nonCLR,当SMO成功完成时,在后面写入dummy CLR,保证在undo时跳过,如果没成功,则在undo时,全部rollback;SMO操作是NTP(nested top action);insert 时,先SMO后insert ,delete时,先delete后smo

5。BTREE在nonleft页面中的每个high key指向一个child页面,high key大于等于child页面的最大项,最右面的没有high key表示无穷大

6。insert 要对next key 加排它 instant duration lock; delete 要对 next key 加排它commit duration lock;fetch 和fetch next 要查找的key 不存在时,要对next key 加共享 commit duration lock

 

 

 

在论文最后,DB2版本的实现中,比论文中的封锁和LATCH要严格一些,性能下降一些,但保证了正确性。不清楚之后的版本中,是否有改进。

 

存在的问题

 

1。一次最多只能Latch两个页面,当释放又得到后,要重新判断,比较适用于短事务

2。SMO只能串行化,

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值