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处理请求,双边操作性能会比单边操作略低,但双边操作采用数据报的形式发送消息,因此可以建立一对多的连接,避免了单台服务器上的连接数过多的问题,因而拥有更好的可扩展性。目前,许多分布式事务处 ...
【技术保护点】
1.一种基于混合RDMA操作的分布式并发控制方法,先在不同服务器间建立起RDMA通讯连接,预先分配并管理RDMA使用的内存区域,然后执行分布式事务,在分布式并发控制中,不同步骤采用的RDMA操作不同,其特征在于,包括:数据读取步骤:事务在本地读取远端数据,若本地已经缓存了远端数据在远端服务器的地址,则执行单边操作读取步骤;若本地没有缓存远端数据在远端服务器的地址,则执行双边操作读取步骤;单边操作读取步骤:根据本地服务器缓存的远端数据的地址,使用单边操作直接读取远端服务器中的数据,执行事务执行步骤;双边操作读取步骤:使用基于双边操作的RPC读取远端数据,执行事务执行步骤;事务执行步骤:在本地服务器执行事务,若没有需要读取的数据,则执行锁申请步骤;若有需要读取的数据,执行数据读取步骤;锁申请步骤:使用基于双边操作的RPC申请远端被更新数据的锁,若成功申请所有远端被更新数据的锁,则执行时间戳校验步骤;反之执行数据锁释放步骤;时间戳校验步骤:本地服务器通过单边操作直接读取远端数据的时间戳,并将该时间戳与数据被第一次读取的时间戳比对。如果所有数据的时间戳校验都成功,则代表在事务执行期间该数据没有 ...
【技术特征摘要】
1.一种基于混合RDMA操作的分布式并发控制方法,先在不同服务器间建立起RDMA通讯连接,预先分配并管理RDMA使用的内存区域,然后执行分布式事务,在分布式并发控制中,不同步骤采用的RDMA操作不同,其特征在于,包括:数据读取步骤:事务在本地读取远端数据,若本地已经缓存了远端数据在远端服务器的地址,则执行单边操作读取步骤;若本地没有缓存远端数据在远端服务器的地址,则执行双边操作读取步骤;单边操作读取步骤:根据本地服务器缓存的远端数据的地址,使用单边操作直接读取远端服务器中的数据,执行事务执行步骤;双边操作读取步骤:使用基于双边操作的RPC读取远端数据,执行事务执行步骤;事务执行步骤:在本地服务器执行事务,若没有需要读取的数据,则执行锁申请步骤;若有需要读取的数据,执行数据读取步骤;锁申请步骤:使用基于双边操作的RPC申请远端被更新数据的锁,若成功申请所有远端被更新数据的锁,则执行时间戳校验步骤;反之执行数据锁释放步骤;时间戳校验步骤:本地服务器通过单边操作直接读取远端数据的时间戳,并将该时间戳与数据被第一次读取的时间戳比对。如果所有数据的时间戳校验都成功,则代表在事务执行期间该数据没有被更新,数据是一致的,执行日志备份步骤;如果不成功,则执行数据锁释放步骤;日志备份步骤:使用单边操作直接将事务的日志写在备份服务器内存中,如果写日志成功,执行远端数据更新步骤;如果不成功,则执行数据锁释放步骤;远端数据更新步骤:本地服务器向被更新数据所在的远端服务器发起提交请求,所述提交请求使用基于双边操作的RPC的方式执行远端数据的更新,执行结束步骤;数据锁释放步骤:本地服务器使用基于双边操作的RPC的方式执行将所申请的数据锁释放,执行结束步骤;结束步骤:结束事务操作。2.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,本地服务器批量地将所有请求发送出去,等收集到所有远端服务器的返回后再执行后续逻辑。3.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,数据读取步骤读取的远端数据包括后续执行中被读取或被更新的数据,还有数据对应的时间戳。4.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,所述双边操作读取步骤、所述锁申请步骤以及所述远端数据更新步骤中,本地服务器一次性将对于同一远端服务器上不同数据的操作合并为一个请求,再发送给远端服务器。5.根据权利要求1所述的基于混合RDMA操作的分布式并发控制方法,其特征在于,所述日志备份步骤使用环形缓冲管理日志,需要备份服务器不间断地将内存中的日志持久化入磁盘。...
【专利技术属性】
技术研发人员:陈榕,董致远,陈海波,臧斌宇,管海兵,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。