没有合适的资源?快使用搜索试试~ 我知道了~
3TS--分布式事务并发访问控制算法详解--腾讯TDSQL1
需积分: 0 0 下载量 3 浏览量
2022-08-03
19:34:44
上传
评论
收藏 6.42MB PDF 举报
温馨提示
试读
137页
每个事务的执行是否按照事先规定的顺序执行的什么时候检验:包括读写操作时、验证时多种方式检测什么:检验三种冲突操作、或检验三种依赖检验失败之后:回滚、等待等。定序
资源详情
资源评论
资源推荐
目录
• 并发控制算法基本思想
• 2PL及其变种算法(2PL [2] :No-Wait [2,3] ,Wait-Die [3] )
• OCC及其变种算法(OCC [5] 、FOCC [6] 、BOCC [6] )
• TO及MVCC+TO算法(T/O [2] 、MVCC [4] )
• SI及其变种算法(SSI [12,13] 、WSI [14] )
• 优化后的OCC算法(Maat [7] 、Sundial [8] 、Silo [9] )
• Calvin算法(Calvin [10] )
并发控制算法
• 并发控制技术的主要思想:先定序、后检验
• 步骤1:定序。为这些事务规定一个执行顺序(全序)
• 顺序如何确定:
• 静态规定顺序
• 动态规定顺序
• 步骤2:检验。每个事务的执行是否按照事先规定的顺序执行的
• 什么时候检验:包括读写操作时、验证时多种方式
• 检测什么:检验三种冲突操作、或检验三种依赖
• 检验失败之后:回滚、等待等。
定序-静态规定顺序
• 以T/O为例,事先静态的规定以事务开始时间排序
P1
P2
W0(x0)
实际执行
C0
T0
W1(x1)
C1
T1
R2(x0)
C2
T2
等价于
T0.start
T1.start
T2.start
T/O排序
T0
T1
T2
全局时间
W0(x0)
C0
T0
W1(x1)
C1
T1
R2(x0)
C2
T2
• 左图T/O排出的顺序明
显是不可串行化的。
• 因此需要第二部操作-
检验
定序-动态规定顺序
• 动态定序意为在事务开始执行前,并没有像T/O等算法确定规定一个顺序。而
是在执行过程中,根据操作情况动态的对事务的顺序进行调整。
• 动态规定顺序的依据:数据依赖。
• 为什么数据依赖可以确定顺序?
• 读写依赖:如R1(x0)→W2(x1)
• 即读操作读了一个旧版本,写操作写了一个新版本。
• R1(x0)→W2(x1)例子中,事务T1必然要排在事务T2之前。否则读操作应该读取到x1。
• 写读依赖:如W1(x1)→R2(x1)
• 即写操作写了一个新版本,读操作读到了这个新版本
• W1(x1)→R2(x1)例子中,事务T1必然要排在事务T2之前。否则读操作应该读取到x0。
• 写写依赖:如W1(x0)→W2(x1)
• 即第一个写操作写了一个版本,第二个写操作再此基础上又写了一个版本
• 该依赖没有明显的先后关系
• 因此读写、写读依赖天然就存在事务的先后关系。
剩余136页未读,继续阅读
以墨健康道
- 粉丝: 25
- 资源: 307
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0