当前课程知识点:高级数据库系统 >  第十讲 分布式数据库的事务管理及恢复机制 >  5. 并发控制的时标技术 >  5. 并发控制的时标技术

返回《高级数据库系统》慕课在线视频课程列表

5. 并发控制的时标技术在线视频

5. 并发控制的时标技术

下一节:html

返回《高级数据库系统》慕课在线视频列表

5. 并发控制的时标技术课程教案、知识点、字幕

下面我们来介绍分布式并发控制的另外一种方式,时标技术

我们在集中式数据库并发控制里面介绍过,大家有一定的印象

分布式并发控制采用的时标技术是集中式并发控制的一种扩展

时标也就是只要一个事务启动,我们就给它一些标志

这个时间标志我们说它的构成在分布式事务里面

它是由本地计数器和站点标识构成的

它要有一个全局的标识,所以必须有站点

时标的创建是当一个事务在初始化的时候

事务管理器就给它分配一个时标

如果一个事务是Ti,它的时标就是ts(Ti)来表示

那么实际上基于时标法的这个规则,它和集中式事务的处理是一样的

也就是说如果两个事务Ti和Tj,它有两个操作

比如说Qi和Qj是冲突操作,那么我们用时标法来进行的两个事务的这样一种操作的序列

实际上的冲突操作一定是按照时标顺序来执行

也就是说如果Ti如果比Tj年老的话,那么Qi一定在Qj之前执行

它的时标决定事务的重要操作,或者冲突操作的执行顺序

时标技术有基本时标法和保守时标法

基本时标法,它有以下这样一些规则

比如第一个,每个事务启动的时候必须要赋有一个全局的唯一性的时标

然后每个事务的读或写操作,都是使用的这个事务的时标

也就是说它去读一个数据项的时候,被这个数据项赋予的时标就是这个事务的时标

如果这个事务被重新启动的话,它需要赋予新的时标

再一个规则就是在事务结束之前,我们不能对数据库进行物理操作,也就是不能进行数据更新

再有就是对于数据库的每一个数据对象X

记录对它进行读操作和写操作的最大时标,这个是需要记录的

比如我们用RTM(x)来记录对X的最大的读时标,也就是来读它的最年轻的事务的时标

WTM(x)是记录对X进行写的最大事务的时标,这个是需要记录的

有了这样一些规则,基本时标法它的规则和集中式并发控制基本上是完全一样的

比如说我用ts来表示对数据对象x进行读操作的一个事务Ti当前的时标

那么我这个读操作能否执行呢,我们就按照下面这个规则

如果这个ts小于x目前最年轻的,也就是最大的写时标的话

相当于我这个事务比较年老,而现在对于x已经有更年轻的事务来写它了

这个时候我这个事务就不应该去读了,读一个比我更年轻的事务对它的一个修改

这样我就要拒绝这个事务的操作,让这个事务进行回滚

然后给它重新启动,重新赋予时标

如果说它不是小于它,这样的话我们就可以进行读操作

而且要把对x的读操作的时标进行一个重新的赋予

我们用目前X的时标和目前对x进行读的事务的时标找出一个最大的来赋予给RTM(x)

如果有一个事务,它的时标是ts,它现在对数据对象进行写操作

它要对数据项x上的读和写进行比较

如果说目前这个事务的时标ts小于x的最大读时标和它最大写时标的话

说明我现在这个事务比较老,也就是已经有了年轻的事务读了、写了x

那现在的事务肯定不行了,所以必须要回滚然后给他重新赋予时标

否则的话,我就可以继续执行,而且去修改x的读时标和写时标

这就是基本时标法的执行过程,至于我们在集中式并发控制处理的时候

采用的时标法实际上是一致的,接下来是保守时标法

保守时标法是这么考虑的,它就是说在基本时标法中我动不动就对事务进行回滚

如果总是进行回滚的话,代价就会太高了

又会消耗很多资源,但实际执行的事务没有几个,我的效益也很低

所以就要想一个办法,我能不能采用缓冲区,缓冲更年轻的一些操作

然后以便尽量地消除拒绝,尽量地避免事务回滚和重新启动

它是这样的一种方式,所以它实际上是利用缓冲区开辟一块空间把年轻的事务缓存在里面

然后我再根据时间戳依次地执行事务

所以它的规则就是每个事务只在一个站点执行

不激活远程程序,只能向远程站点发出读和写的请求

每个站点必须按照时标的时间顺序发送读、写数据的请求

对于每个事务的更新操作,必须做到对于同一数据对象先读后写

它有这样的一些规定,接下来还有一个规定

它说每个站点都开辟一些缓冲区,用于保存其他站点发来的读写操作

当然这个读写操作就带有这个事务的时标

它的执行过程我们大概可以用下面的一个图来表示

比如说有这么两个站点,站点1和站点2,或者还有一些其他的站点

每一个站点我都要开辟缓冲区,这个缓冲区用来缓存这个站点上对一些数据项

它读的队列和写的队列,在站点1上读的队列有R11、R12、R13,有写队列W11

在站点2上有R21、R22等等,也有写队列W21、W22

只要这个缓冲队列不空的话,每个站点上至少向某一个站点发送一个读写请求

也就是说只要这个队列不空的话,我就可以停止接收了

然后转入处理缓冲区队列上的一些操作

这个操作基本上是按照时间戳的一种顺序来进行

如果说我们这个缓冲区队列是空的话

我就会把这个数据项的读和写的时间戳赋予0

否则的话,我就会在这个缓冲区里面把所有读数据的时间戳进行一个排列

写数据的时间戳也进行一个排列,然后按着时间戳的顺序从小到大进行执行

每一个执行完的这样的事务,读操作或者写操作直接就从缓冲区里消除掉

缓冲区如果空了,我就又开始接收下一轮的读写操作,它是按照这样的一种方式

在这样一种方式下我们基本上就不会出现哪一个事务被拒绝操作

然后回滚,回滚要释放很多资源,也会浪费一些计算的时间和空间

这就是保守时标法对于基本时标法的一种改进

我们前面介绍的是悲观的一种关于并发控制的方法

但实际上在这种并发控制方法当中也有一些乐观的方法

这些乐观的方法我们在这里就不给大家做仔细的介绍了

在PPT里面我们给大家介绍了一个类似于有效性检验的乐观方法

有兴趣的同学可以阅读PPT上的这样一些字段

结合《高级数据库技术》这本教材里面的相关内容来进行学习

到此为止我们把关于分布式数据库并发控制的相关内容就给大家介绍这么多

在这个里面大家要理解分布式数据库里面的一些并发控制的基本概念

与集中式数据库并发控制的不同的地方

以及分布式数据库基本加锁的方法,它的一些基本思路

和分布式数据库并发控制的一些基本时标方法、保守时标方法的执行过程

高级数据库系统课程列表:

第一讲 数据文件的组织与索引技术

-1. 数据文件的组织

--1-1 数据文件的组织

-2. 索引的概念与分类

--1-2 索引的概念与分类

-3. B+树索引

--1-3 B+树索引(1)

--1-3 B+树索引(2)

-4. 散列索引

--1-4 散列索引

-5. 小结

--html

-6.练习--作业

第二讲 查询处理及优化

-1. 查询代价的测量及查询处理过程概述

--2-1 查询代价的测量及查询处理过程概述

-2. 关系操作的基础算法

--2-2. 关系操作的基础算法(1)

--2-2. 关系操作的基础算法(2)

-3. 查询表达式的运算

--2-3 查询表达式的运算

-4.查询优化机制

--2-4 查询优化机制

-5.小结

--html

-6.练习--作业

第三讲 数据管理与恢复技术

-1. 数据库的故障及可恢复模型

--3-1. 数据库的故障及可恢复模型

-2. 事务及日志的相关概念

--3-2. 事务及日志的相关概念

-3. 基于undo日志的恢复机制

--3-3. 基于undo日志的恢复机制

-4. 基于redo日志的恢复机制

--3-4. 基于redo日志的恢复机制

-5. 小结

--html

-6. 练习--作业

第四讲 事务并发调度的相关概念

-1. 并发调度及相关概念

--4-1. 并发调度及相关概念

-2. 可串行化调度

--4-2. 可串行化调度

-3. 冲突可串行化调度

--4-3. 冲突可串行化调度

-4. 小结

--html

-5. 练习--作业

第五讲 基于封锁的并发控制机制

-1. 锁的概念及封锁的原理

--5-1. 锁的概念及封锁的原理

-2. 两阶段锁协议

--5-2. 两阶段锁协议

-3. 多粒度锁及意向锁

--5-3. 多粒度锁及意向锁

-4. 死锁的处理

--5-4. 死锁的处理

-5. 小结

--html

-6. 练习--作业

第六讲 并发控制的其它机制

-1. 基于时间戳的调度

--6-1. 基于有效性检验的调度

-2. 基于有效性检验的调度

--6-2. 基于时间戳的调度

-3. 小结

--html

-4. 练习--作业

第七讲 分布式数据库基本概念

-1. 分布式数据库系统的产生及定义

--7-1. 分布式数据库系统的产生及定义(1)

--7-1. 分布式数据库系统的产生及定义(2)

-2. 分布式数据库系统的模式结构与功能结构

--7-2. 分布式数据库系统的模式结构与功能结构

-3. 分布式数据库系统中存在的技术问题

--7-3. 分布式数据库系统中存在的技术问题

-4. 小结

--html

-5. 练习--作业

第八讲 分布式数据库的设计

-1. 分布式数据库的设计方法、内容和目标

--8-1. 分布式数据库的设计方法、内容和目标

-2. 自顶向下方法构建数据库

--8-2 . 自顶向下方法构建数据库

-3. 数据的分片和分布设计

--8-3. 数据的分片和分布设计(1)

--8-3. 数据的分片和分布设计(2)

-4. 分布式数据库设计案例讲解

--8-4. 分布式数据库设计案例讲解(1)

--8-4. 分布式数据库设计案例讲解(2)

--8-4. 分布式数据库设计案例讲解(3)

-5. 小结

--html

-6. 练习--作业

第九讲 分布式数据库查询机制

-1. 分布式查询处理的步骤和代价

--1. 分布式查询处理的步骤和代价

-2. 基于等价变换的查询优化

--2. 基于等价变换的查询优化

-3. 基于半连接算法的查询优化

--3. 基于半连接算法的查询优化

-4. 基于直接连接算法的查询优化

--4. 基于直接连接算法的查询优化

-5. 小结

--html

-6. 练习--作业

第十讲 分布式数据库的事务管理及恢复机制

-1. 分布式事务概述

--1. 分布式事务概述

-2. 分布式事务的两阶段提交协议

--2. 分布式事务的两阶段提交协议

-3.分布式并发控制概述

--3.分布式并发控制概述

-4. 并发控制的加锁机制

--4. 并发控制的加锁机制

-5. 并发控制的时标技术

--5. 并发控制的时标技术

-6. 小结

--html

-7.练习--作业

高级数据库技术期末试题

-试题--作业

5. 并发控制的时标技术笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。