[发明专利]基于RDMA和HTM的分布式并发控制方法在审
申请号: | 201510761788.2 | 申请日: | 2015-11-10 |
公开(公告)号: | CN105404546A | 公开(公告)日: | 2016-03-16 |
发明(设计)人: | 陈海波;陈榕;臧斌宇;魏星达 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F13/28 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 rdma htm 分布式 并发 控制 方法 | ||
技术领域
本发明涉及分布式计算和多核计算技术领域,具体地,涉及分布式多核内存计算中对于共享内存数据的并发控制方法。
背景技术
分布式多核的并发内存计算的并发控制是现代计算机的重要特质,可以方便开发人员推算程序的正确性,并且直接关系到应用的执行效率。现有的解决方案主要有软件的方法,比如二阶段锁和乐观并发控制。然而这些方法在多核内存计算下和分布式计算下有比较大的开销。二阶段锁对每个数据的操作有很大的开销,而乐观并发控制在分布式环境下有多轮网络通信的开销。
硬件事务性内存HTM(HardwareTransactionalMemory)是新的硬件技术,直接由处理器提供执行程序时对共享内存数据的并发控制,具有非常低的开销。然而硬件事务性内存只能在单机中使用。HTM提供XBEGIN操作让处理器进入HTM模式,使用XABORT中断这次执行,并且将内存状态退回到调用XBEGIN前的状态后再次进入HTM模式在此执行之后的程序,使用XEND退出HTM执行模式。
远程内存直接访问RDMA(RemoteDirectMemoryAccess)是新的网络通信技术,直接由网卡来对远端机器的内存进行操作,拥有非常高的吞吐量和低延迟的特性。然而RDMA提供的对远端机器内存操作的方法十分有限,主要有读,写和原子比较再替换操作。这对如何利用RDMA操作来进行分布式并发控制带来了挑战。
因此,如何利用新的硬件技术如HTM何RDMA,合理的设计软件协议,减少分布式内存计算中并发控制的开销,提升应用程序的性能和系统机器的资源利用率,实已成为本领域技术人员亟待解决的技术难题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于RDMA和HTM的分布式并发控制方法。
根据本发明提供的基于RDMA和HTM的分布式并发控制方法,包括如下步骤:
步骤1:根据程序需要访问的数据选择执行服务器;
步骤2:通过选定的执行服务器获取程序需要访问的数据,并对数据进行保护;
步骤3:读取全部数据并缓存至执行服务器后,在HTM中执行程序。
优选地,所述步骤1包括:根据程序需要访问的数据集合得出哪些服务器中包含需要访问的数据,并根据这些服务器分别拥有的事务数据的的条目数量,选择包含事务所要访问的条目的服务器作为执行服务器来执行程序。
优选地,所述步骤2包括:
步骤2.1:获取程序需要访问的远端数据,并对远端数据进行保护,即使得远端数据在程序结束前不会被其他有冲突的程序访问到;
步骤2.2:在程序开始执行前,执行服务器通过分布式内存键值数据库找到程序的远端数据在其他服务器的内存位置,若远端数据是需要修改的数据则使用RDMA原子指令将远端数据所在的其它服务器的服务器状态设置为上锁状态,否则将所述执行服务器的数据设一个机器时间来作为时间戳,用于表明所有执行服务器在这个时间戳前无法修改数据;
步骤2.3:在修改完所有远端数据在其所在的其他服务器上的状态后,使用RDMA读操作将所有的数据读到执行服务器的本地缓存中,其中,将只读的远端数据的时间戳也记录到执行服务器的本地。
优选地,所述步骤3包括:
步骤3.1:在将程序所需要的所有远端数据读回到执行服务器的本地缓存后,调用硬件提供的HTM指令进入硬件事务性内存模式;
步骤3.2:根据所访问的数据是本地数据还是远端数据执行不同的操作;
若数据的访问为本地数据的读写操作,则,具体地,
当为读操作,检查本地数据是否处于上锁状态,若处于上锁状态则调用硬件提供的中断HTM指令中断该次程序执行,并将程序的修改进行回滚;否则进行读操作;
当为写操作,检查本地数据是否处于上锁状态,若本地数据上有时间戳,则判断该时间戳是否比当前执行服务器的时间晚;若检查得到本地数据处于上锁状态或者本地数据上的时间戳晚于执行服务器的时间,则调用硬件提供的中断HTM指令中断这次程序执行并回滚程序的修改;否则进行在本地数据上进行写操作;
若数据的访问为远端数据的读写操作,则在所述远端数据在执行服务器的本地缓存中进行读写操作,具体地,
当程序全部执行完成后,对所有的远端只读数据进行时间戳检查,若有一个远端只读数据的时间戳比当前执行服务器的时间早,则调用硬件提供的中断HTM指令中断该程序的执行,重新对远端只读数据设置比当前机器时间戳要大的时间戳后,再一次执行步骤3;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510761788.2/2.html,转载请声明来源钻瓜专利网。