[发明专利]一种基于RDMA和HTM的分布式乐观并发控制方法有效
申请号: | 201510969282.0 | 申请日: | 2015-12-21 |
公开(公告)号: | CN105955801B | 公开(公告)日: | 2018-12-18 |
发明(设计)人: | 陈榕;陈海波;臧斌宇;陈彦哲 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中;刘翠 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种基于RDMA和HTM的分布式乐观并发控制方法,不需要预先获取事务访问的数据集,不需要预先对事务进行切分。该控制方法将事务的运行划分为两个阶段:执行阶段和提交阶段。采用乐观并发控制与锁保护相结合的方法,在事务的执行阶段动态维护读写集合,从而不需要预先获知事务的数据集;在事务的提交阶段进行先验证再提交,从而不需要预先对事务进行切分。本发明使用RDMA和HTM两种最新的硬件简化并发控制方法的设计,去中心化的分布式设计使得本发明具有良好的扩展性,可以方便地根据需求调整机器的数量,为高效处理超大规模的并发事务提供了通用可行的解决方案。 | ||
搜索关键词: | 一种 基于 rdma htm 分布式 乐观 并发 控制 方法 | ||
【主权项】:
1.一种基于RDMA和HTM的分布式乐观并发控制方法,其特征在于,不需要预先获取事务访问的数据集,不需要预先对事务进行切分,采用乐观并发控制与锁保护相混合的机制,将事务的运行分为事务的执行阶段和事务的提交阶段,分别包括以下步骤:a.事务的执行阶段步骤S1:获取事务需要读取的本地数据并保证数据的一致性;步骤S2:获取事务需要读取的远端数据并保证数据的一致性;步骤S3:动态维护事务的读写集合,所述事务的读写集合包括本地读集合、远端读集合、本地写集合和远端写集合;b.事务的提交阶段步骤A1:对事务涉及的远端数据进行锁保护,对远端读集合的数据进行验证;步骤A2:采用乐观并发控制对事务涉及的本地数据进行验证和提交;步骤A3:对事务涉及的远端数据进行提交并解除锁保护;在事务的执行阶段,所述步骤S3,包括如下步骤:对于本地读集合的维护发生于步骤S1的开始和结束,在步骤S1开始前检查本地读集合,如果需要读取的内容已经出现在本地读集合内,则直接返回本地读集合中的内容,否则在完成步骤S1后,将读取的内容加入到本地读集合;对于远端读集合的维护发生于步骤S2的开始和结束,在步骤S2开始前检查远端读集合,如果需要读取的内容已经出现在远端读集合内,则直接返回远端读集合中的内容,否则在完成步骤S2后,将读取的内容加入到远端读集合;对于本地写集合的维护发生于事务本地数据的写操作中,写操作直接将内容写入到本地写集合中,对于所写内容在本地写集合中已经存在的情形,采用直接覆盖的策略,即新写的内容覆盖已有的内容;在事务的提交阶段,所述步骤A1,包括如下步骤:对远端读集合和远端写集合中的数据进行锁保护,该锁保护过程中,作为执行事务的机器通过分布式内存键值数据库找到事务的远端数据在其他机器的内存位置,并使用RDMA的原子指令将数据的状态修改为锁保护状态;对于已经处于锁保护状态的数据,该锁保护过程会一直重试直至数据的锁保护状态解除;与此同时需要对远端读集合的数据进行验证,验证的内容包括检查各数据值上的序列号是否发生变化,如果检查到有数据值的序列号发生变化,则立即进行整个事务的回滚,包括解除远端数据的锁保护并清空事务的读写集合;在事务的提交阶段,所述步骤A2,包括如下步骤:通过HTM硬件的保护以保证原子性,整体保护过程分为两步:首先是验证,然后是提交;验证包括对本地读集合的验证和本地写集合的验证,本地读集合的验证内容包括检查各数据值上的序列号是否发生变化,如果检查到有数据值的序列号发生变化,则立即进行整个事务的回滚;本地写集合的验证内容包括检查各数据值是否处于锁保护的状态,如果检查到数据值处于锁保护的状态,则立即进行整个事务的回滚;提交包括对本地写集合的提交,本地写集合的提交内容包括更新各数据值的序列号,以及各数据值在缓存行粒度上的版本号;所有的提交均为对数据值的直接修改,由HTM的硬件保护机制保证该过程的原子性和隔离性;在事务的提交阶段,所述步骤A3,包括如下步骤:首先对远端写集合中的数据进行提交,该提交过程中,作为执行事务的机器通过分布式内存键值数据库找到事务的远端数据在其他机器的内存位置,并使用RDMA的写指令将数据的最新内容写回,其中提交的内容包括各数据的序列号,以及各数据在缓存行粒度上的版本号;然后解除对远端读写集合数据的锁保护,此解除锁保护过程中,作为执行事务的机器通过分布式内存键值数据库找到事务的远端数据在其他机器的内存位置,并使用RDMA的原子指令解除数据的锁保护状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510969282.0/,转载请声明来源钻瓜专利网。