[发明专利]一种自适应乐观并发控制方法有效
申请号: | 200910025686.9 | 申请日: | 2009-03-06 |
公开(公告)号: | CN101556597A | 公开(公告)日: | 2009-10-14 |
发明(设计)人: | 秦小麟;孙杰;戴华 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京经纬专利商标代理有限公司 | 代理人: | 魏学成 |
地址: | 210016江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种自适应乐观并发控制方法,主要应用在基于主存的多用户并发环境中,该方法包括由乐观并发控制转换为悲观并发控制、由悲观并发控制转换为乐观并发控制两种并发控制转换方法;当系统处在冲突率高的环境中,并发控制策略由乐观并发控制转换为悲观并发控制;当系统处在冲突率低的环境中,并发控制策略由悲观并发控制转换为乐观并发控制,依照本发明的自适应乐观并发控制方法,与单纯的乐观并发控制或悲观并发控制方法相比,避免了在冲突率较高的环境下导致并发性能下降的缺点或在冲突率较低时加锁的开销,可大大提高系统的并发性能。 | ||
搜索关键词: | 一种 自适应 乐观 并发 控制 方法 | ||
【主权项】:
1、一种自适应乐观并发控制方法,其特征在于该方法包括由乐观并发控制转换为悲观并发控制、由悲观并发控制转换为乐观并发控制两种并发控制转换方法;系统默认执行的是乐观并发控制方法,当系统处在冲突率高的环境中,并发控制策略由乐观并发控制转换为悲观并发控制;当系统处在冲突率低的环境中,并发控制策略又由悲观并发控制转换为乐观并发控制,具体步骤如下:(1)乐观并发控制转换为悲观并发控制方法,包括如下步骤:第一步,为系统中的每一个事务Tj分配一个进程;第二步,对共享验证区里的事务结点进行初始化;第三步,进入读阶段,在自己的私有空间内执行事务;第四步,对共享验证区中的事务结点记录时间戳并添加读写集;第五步,申请信号量对共享验证区加锁,当加锁成功则继续下一步骤;否则,进入睡眠状态,等待其他进程唤醒;第六步,对于事务Tj的冲突范围集中的每一个事务Ti,执行第七步至第十一步,当事务Tj的冲突范围集中的每一个事务Ti都执行完毕后转到第十二步;第七步,判断事务Tj的写集与事务Tj的冲突范围集中的每一个事务Ti的写集的交集是否为空,当结果为是,则直接进入第十四步;当结果为否则继续下一步骤;第八步,判断事务Tj的冲突范围集中的事务Ti的完成时间戳是否大于事务Tj的验证时间戳,当结果为是,则直接进入第十四步;当结果为否则继续下一步骤;第九步,将事务Tj的读集与事务Tj的冲突范围集中的事务Ti的写集的交集赋给集合β;第十步,对于集合β中的每个元素α,执行第十一步;当集合β中的每个元素α都遍历完毕,则进入第十二步;第十一步,判断事务Tj在事务Tj的冲突范围集中的事务Ti结束之前是否对集合β中的每个元素α执行了读写操作,当结果为是,则进入第十四步,当结果为否则返回第十步;第十二步,释放信号量,完成对共享验证区的互斥访问;第十三步,进入写阶段并提交事务,成功退出;第十四步,累加系统的冲突量;第十五步,判断累计冲突量是否小于系统的阈值,当结果为是,直接进入第十八步;当结果为否,则进入下一步;第十六步,判断当前的并发策略是否是乐观并发控制方法,当结果为是,则将并发策略转换为悲观并发控制方法;当结果为否,则进入下一步;第十七步,将累计冲突量设为系统阈值;第十八步,释放信号量,返回第二步;(2)悲观并发控制转换为乐观并发控制方法,包括如下步骤:A、使CPU睡眠t秒,0<t<3;B、申请信号量对共享验证区加锁,当加锁成功继续下一步骤;当加锁失败则进入睡眠状态,等待其他进程唤醒;C、依照系统提交速度,减少系统的累计冲突量;D、判断累计冲突量是否大于0,当结果为是,则返回A步骤;当结果为否,则进入下一步骤;E、判断当前的并发策略是否是乐观并发控制,当结果为是,直接进入G步;当结果为否,则将并发策略转换为乐观并发控制,进入下一步骤;F、将累计冲突量设为0;G、释放信号量;H、返回A步骤。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910025686.9/,转载请声明来源钻瓜专利网。