一种基于混合RDMA操作的分布式并发控制方法及系统技术方案

技术编号:19263423 阅读:31 留言:0更新日期:2018-10-27 02:21
本发明专利技术提供了一种基于混合RDMA操作的分布式并发控制方法及系统,在读取远端地址已被缓存的数据、远端数据时间戳以及向远端写入事务日志时,使用RDMA的单边操作;在读取远端地址未被缓存的数据、申请远端数据锁、提交远端事务、释放远端数据锁时,使用RDMA的双边操作。与现有技术相比,本发明专利技术根据分布式并发控制协议中不同步骤的特征,针对性地使用适合的RDMA操作完成对于远程数据的访问,通过混合使用RDMA操作优化分布式并发控制过程中网络硬件和处理器硬件的使用效率。

A distributed concurrency control method and system based on hybrid RDMA operation

The invention provides a distributed concurrency control method and system based on hybrid RDMA operation, which uses RDMA unilateral operation when reading data whose remote address has been cached, remote data timestamp and writing transaction log to the remote end, reads data whose remote address is not cached, applies for remote data lock and submits remote data. The bilateral operation of RDMA is used when the transaction is finished and the remote data lock is released. Compared with the prior art, according to the characteristics of asynchronous steps in distributed concurrency control protocol, the present invention uses suitable RDMA operations to access remote data, and optimizes the utilization efficiency of network hardware and processor hardware in the process of distributed concurrency control by mixing RDMA operations.

【技术实现步骤摘要】
一种基于混合RDMA操作的分布式并发控制方法及系统
本专利技术涉及分布式控制领域,具体地,涉及一种基于混合RDMA操作的分布式并发控制方法及系统。
技术介绍
当下,服务器内存的价格已经足够支持将数据库中的数据全部存储在内存中,以达到数据高效存取的目的。与此同时,远程直接内存存取RDMA(RemoteDirectMemoryAccess,远程直接内存访问)成为了数据库内部服务器间通信的主要协议。相比于传统的TCP/IP协议,RDMA可以绕过TCP/IP协议繁复的软件栈,避免多次内存拷贝并且无需占用远端中央处理器CPU(CentralProcessingUnit)处理资源,将网络处理工作交由网卡硬件处理,因而拥有延迟低,吞吐量高的特点。RDMA的操作根据语义可以分为两类。第一类是单边操作(One-Sided),第二类是双边操作(Two-Sided)。单边操作可以让本地服务器直接读写远端服务器的内存,并且无需远端服务器的CPU的处理,因而性能非常高。由于单边操作需要在服务器间建立一对一的连接,在大规模分布式系统中,每一台服务器都需要建立多个连接,而网卡能够同时缓存的连接数是有限的,那么过多的连接就有可能造成较差的可扩展性;双边操作与TCP的Send/Recv接口类似,需要远端服务器的CPU处理相关请求,服务器间的数据传输也仍然能够享受RDMA的高性能特性。由于需要远端服务器CPU处理请求,双边操作性能会比单边操作略低,但双边操作采用数据报的形式发送消息,因此可以建立一对多的连接,避免了单台服务器上的连接数过多的问题,因而拥有更好的可扩展性。目前,许多分布式事务处理系统采用乐观并发控制(OptimisticConcurrencyControl)的方式来保证事务间的一致性。这么做的假设是,乐观地认为事务间不会频繁发生读写冲突,在实际更新某个值时再申请互斥锁,对于读请求则不加锁,可以进一步提高事务间的并行性,从而提升性能。在乐观并发控制中,每个步骤的场景都略有不同,在不同步骤下也会有不同的实现,应该使用RDMA的单边操作还是双边操作来实现乐观并发控制是一个非常重要的问题。以读取远端数据为例,在分布式系统中数据一般会存储在数据结构如哈希表或树状结构中,使得找到一个数据的读取操作总是大于等于一次的。在这种情况下,使用单边操作虽然能够节省远端CPU资源,但是会加大网络的往返次数。而且,一次单边操作只能操作一段连续的内存区域,对于内存中不连续的多个数据,就需要发起多次单边操作来读取;而使用双边操作,以远程过程调用RPC(RemoteProcedureCall)的方式来发送读数据请求,只要将对不同数据的读操作合并在一个请求中,就仅会有一次网络往返,用于发送请求和回复结果,而读取数据的工作会交由远端服务器CPU来处理,降低了网络层的延迟。现如今,还没有一个统一的定论阐述——并发控制的不同步骤应该用何种RDMA操作。先前基于远程直接内存存取的分布式事务处理系统工作,它们的并发控制或是在所有步骤全部采用单边操作,或是全部采用双边操作。这两种单一的RMDA实现都不能做到:根据并发控制的不同阶段场景,有针对性地选取合适的RDMA操作。因此,先前的工作对基于远程直接内存存取的分布式事务处理系统的并发控制实现研究并不深入,还有一定的空白。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于混合RDMA操作的分布式并发控制方法及系统。根据本专利技术提供的一种基于混合RDMA操作的分布式并发控制方法,先在不同服务器间建立起RDMA通讯连接,预先分配并管理RDMA使用的内存区域,然后执行分布式事务,在分布式并发控制中,不同步骤采用的RDMA操作不同,包括:数据读取步骤:事务在本地读取远端数据,若本地已经缓存了远端数据在远端服务器的地址,则执行单边操作读取步骤;若本地没有缓存远端数据在远端服务器的地址,则执行双边操作读取步骤;单边操作读取步骤:根据本地服务器缓存的远端数据的地址,使用单边操作直接读取远端服务器中的数据,执行事务执行步骤;双边操作读取步骤:使用基于双边操作的RPC读取远端数据,执行事务执行步骤;事务执行步骤:在本地服务器执行事务,若没有需要读取的数据,则执行锁申请步骤;若有需要读取的数据,执行数据读取步骤;锁申请步骤:使用基于双边操作的RPC申请远端被更新数据的锁,若成功申请所有远端被更新数据的锁,则执行时间戳校验步骤;反之执行数据锁释放步骤;时间戳校验步骤:本地服务器通过单边操作直接读取远端数据的时间戳,并将该时间戳与数据被第一次读取的时间戳比对。如果所有数据的时间戳校验都成功,则代表在事务执行期间该数据没有被更新,数据是一致的,执行日志备份步骤;如果不成功,则执行数据锁释放步骤;日志备份步骤:使用单边操作直接将事务的日志写在备份服务器内存中,如果写日志成功,执行远端数据更新步骤;如果不成功,则执行数据锁释放步骤;远端数据更新步骤:本地服务器向被更新数据所在的远端服务器发起提交请求,所述提交请求使用基于双边操作的RPC的方式执行远端数据的更新,执行结束步骤;数据锁释放步骤:本地服务器使用基于双边操作的RPC的方式执行将所申请的数据锁释放,执行结束步骤;结束步骤:结束事务操作。较佳的,本地服务器批量地将所有请求发送出去,等收集到所有远端服务器的返回后再执行后续逻辑。较佳的,数据读取步骤读取的远端数据包括后续执行中被读取或被更新的数据,还有数据对应的时间戳。较佳的,所述双边操作读取步骤、所述锁申请步骤以及所述远端数据更新步骤中,本地服务器一次性将对于同一远端服务器上不同数据的操作合并为一个请求,再发送给远端服务器。较佳的,所述日志备份步骤使用环形缓冲管理日志,需要备份服务器不间断地将内存中的日志持久化入磁盘。根据本专利技术提供的一种基于混合RDMA操作的分布式并发控制系统,先在不同服务器间建立起RDMA通讯连接,预先分配并管理RDMA使用的内存区域,然后执行分布式事务,在分布式并发控制中,不同模块采用的RDMA操作不同,包括:数据读取模块:事务在本地读取远端数据,若本地已经缓存了远端数据在远端服务器的地址,则执行单边操作读取模块;若本地没有缓存远端数据在远端服务器的地址,则执行双边操作读取模块;单边操作读取模块:根据本地服务器缓存的远端数据的地址,使用单边操作直接读取远端服务器中的数据,执行事务执行模块;双边操作读取模块:使用基于双边操作的RPC读取远端数据,执行事务执行模块;事务执行模块:在本地服务器执行事务,若没有需要读取的数据,则执行锁申请模块;若有需要读取的数据,执行数据读取模块;锁申请模块:使用基于双边操作的RPC申请远端被更新数据的锁,若成功申请所有远端被更新数据的锁,则执行时间戳校验模块;反之执行数据锁释放模块;时间戳校验模块:本地服务器通过单边操作直接读取远端数据的时间戳,并将该时间戳与数据被第一次读取的时间戳比对。如果所有数据的时间戳校验都成功,则代表在事务执行期间该数据没有被更新,数据是一致的,执行日志备份模块;如果不成功,则执行数据锁释放模块;日志备份模块:使用单边操作直接将事务的日志写在备份服务器内存中,如果写日志成功,执行远端数据更新模块;如果不成功,则执行数据锁释放模块;远端数据更新模块:本地服本文档来自技高网
...

【技术保护点】
1.一种基于混合RDMA操作的分布式并发控制方法,先在不同服务器间建立起RDMA通讯连接,预先分配并管理RDMA使用的内存区域,然后执行分布式事务,在分布式并发控制中,不同步骤采用的RDMA操作不同,其特征在于,包括:数据读取步骤:事务在本地读取远端数据,若本地已经缓存了远端数据在远端服务器的地址,则执行单边操作读取步骤;若本地没有缓存远端数据在远端服务器的地址,则执行双边操作读取步骤;单边操作读取步骤:根据本地服务器缓存的远端数据的地址,使用单边操作直接读取远端服务器中的数据,执行事务执行步骤;双边操作读取步骤:使用基于双边操作的RPC读取远端数据,执行事务执行步骤;事务执行步骤:在本地服务器执行事务,若没有需要读取的数据,则执行锁申请步骤;若有需要读取的数据,执行数据读取步骤;锁申请步骤:使用基于双边操作的RPC申请远端被更新数据的锁,若成功申请所有远端被更新数据的锁,则执行时间戳校验步骤;反之执行数据锁释放步骤;时间戳校验步骤:本地服务器通过单边操作直接读取远端数据的时间戳,并将该时间戳与数据被第一次读取的时间戳比对。如果所有数据的时间戳校验都成功,则代表在事务执行期间该数据没有被更新,数据是一致的,执行日志备份步骤;如果不成功,则执行数据锁释放步骤;日志备份步骤:使用单边操作直接将事务的日志写在备份服务器内存中,如果写日志成功,执行远端数据更新步骤;如果不成功,则执行数据锁释放步骤;远端数据更新步骤:本地服务器向被更新数据所在的远端服务器发起提交请求,所述提交请求使用基于双边操作的RPC的方式执行远端数据的更新,执行结束步骤;数据锁释放步骤:本地服务器使用基于双边操作的RPC的方式执行将所申请的数据锁释放,执行结束步骤;结束步骤:结束事务操作。...

【技术特征摘要】
1.一种基于混合RDMA操作的分布式并发控制方法,先在不同服务器间建立起RDMA通讯连接,预先分配并管理RDMA使用的内存区域,然后执行分布式事务,在分布式并发控制中,不同步骤采用的RDMA操作不同,其特征在于,包括:数据读取步骤:事务在本地读取远端数据,若本地已经缓存了远端数据在远端服务器的地址,则执行单边操作读取步骤;若本地没有缓存远端数据在远端服务器的地址,则执行双边操作读取步骤;单边操作读取步骤:根据本地服务器缓存的远端数据的地址,使用单边操作直接读取远端服务器中的数据,执行事务执行步骤;双边操作读取步骤:使用基于双边操作的RPC读取远端数据,执行事务执行步骤;事务执行步骤:在本地服务器执行事务,若没有需要读取的数据,则执行锁申请步骤;若有需要读取的数据,执行数据读取步骤;锁申请步骤:使用基于双边操作的RPC申请远端被更新数据的锁,若成功申请所有远端被更新数据的锁,则执行时间戳校验步骤;反之执行数据锁释放步骤;时间戳校验步骤:本地服务器通过单边操作直接读取远端数据的时间戳,并将该时间戳与数据被第一次读取的时间戳比对。如果所有数据的时间戳校验都成功,则代表在事务执行期间该数据没有被更新,数据是一致的,执行日志备份步骤;如果不成功,则执行数据锁释放步骤;日志备份步骤:使用单边操作直接将事务的日志写在备份服务器内存中,如果写日志成功,执行远端数据更新步骤;如果不成功,则执行数据锁释放步骤;远端数据更新步骤:本地服务器向被更新数据所在的远端服务器发起提交请求,所述提交请求使用基于双边操作的RPC的方式执行远端数据的更新,执行结束步骤;数据锁释放步骤:本地服务器使用基于双边操作的RPC的方式执行将所申请的数据锁释放,执行结束步骤;结束步骤:结束事务操作。2.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,本地服务器批量地将所有请求发送出去,等收集到所有远端服务器的返回后再执行后续逻辑。3.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,数据读取步骤读取的远端数据包括后续执行中被读取或被更新的数据,还有数据对应的时间戳。4.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,所述双边操作读取步骤、所述锁申请步骤以及所述远端数据更新步骤中,本地服务器一次性将对于同一远端服务器上不同数据的操作合并为一个请求,再发送给远端服务器。5.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,所述日志备份步骤使用环形缓冲管理日志,需要备份服务器不间断地将内存中的日志持久化入磁盘。...

【专利技术属性】
技术研发人员:陈榕董致远陈海波臧斌宇管海兵
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1