CN106657365B - 一种基于rdma的高并发数据传输方法 - Google Patents
一种基于rdma的高并发数据传输方法 Download PDFInfo
- Publication number
- CN106657365B CN106657365B CN201611261723.2A CN201611261723A CN106657365B CN 106657365 B CN106657365 B CN 106657365B CN 201611261723 A CN201611261723 A CN 201611261723A CN 106657365 B CN106657365 B CN 106657365B
- Authority
- CN
- China
- Prior art keywords
- data
- lock
- client
- rdma
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 title claims description 72
- 238000012546 transfer Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 8
- 239000003999 initiator Substances 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于RDMA的高并发数据传输方法,包括:在客户端接入数据传输系统前,构建分级缓冲区;实施远程数据读写时,由所述客户端主动执行用户缓冲区、所述分级缓冲区和远端存储区之间的数据转移;服务端在所述远程存储区的每个独立数据块的首部设置锁字段,用于并发控制,当多客户端并发读写数据时,通过服务端本地加锁、客户端远程解锁的分布式锁协议进行并发控制。本发明具有如下优点:减少文件在读写时的数据复制、降低服务端处理压力,并提供高效的并发控制。
Description
技术领域
本发明涉及分布式存储系统领域,特别涉及一种基于RDMA的高并发数据传输方法。
背景技术
远程直接内存访问(Remote Direct Memory Access,RDMA)是指在没有双方主机操作系统直接参与下,直接访问远端内存,从而提供高带宽、低延迟的特性。
分布式环境下的数据传输决定了系统整体的I/O性能,这类技术被广泛的应用在分布式文件系统和数据库系统中。传统的分布式系统大多以磁盘作为存储介质,并通过基于TCP/IP的远程过程调用模块进行数据传输,由于磁盘带宽低,延迟高,因此网络传输模块本身不会成为瓶颈,近年来,内存日益廉价,将存储和计算转移到内存的内存计算已经成为一种趋势,存储介质性能提升的同时,网络传输也面临极大的挑战。
目前,尚不存在通用的数据传输模块,用于高效处理不同的网络I/O特性,同时,在并发控制上,仍采用集中式的同步模型,严重影响系统的可扩展性。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的目的在于提出一种减少文件在读写时的数据复制、降低服务端处理压力,并提供高效的并发控制的基于RDMA的高并发数据传输方法。
为了实现上述目的,本发明的实施例公开了一种基于RDMA的高并发数据传输方法,在所述高并发数据传输方法中,数据存储在所述数据传输系统的各节点内存中,所述数据传输系统的各节点通过RDMA进行网络互联,所述数据传输系统包括客户端和服务端,所述客户端是数据远程读写请求的发起者,所述服务端用于存储和管理共享数据,并发控制依赖于分布式锁协议,所述分布式锁包含共享式读锁和独享式写锁,该方法包括以下步骤:S1:在所述客户端接入所述数据传输系统前,构建分级缓冲区,其中,所述分级缓冲区用于远程数据收发时进行数据的临时存放;S2:实施远程数据读写时,由所述客户端主动执行用户缓冲区、所述分级缓冲区和远端存储区之间的数据转移;S3:所述服务端在所述远程存储区的每个独立数据块的首部设置锁字段,用于并发控制,当多客户端并发读写数据时,通过所述分布式锁协议进行并发控制。
根据本发明实施例的基于RDMA的高并发数据传输方法,减少文件在读写时的数据复制、降低服务端处理压力,并提供高效的并发控制。
另外,根据本发明上述实施例的基于RDMA的高并发数据传输方法,还可以具有如下附加的技术特征:
进一步地,所述分级缓冲区注册到网卡,用于数据中转,在执行远程数据传输时,由缓冲区调度器进行管理。
进一步地,所述分级缓冲区被切分为不同大小的多个内存块,所述多个内存块由系统配置文件统一设置;其中,用空闲块元数据对所述分级缓冲区内的所有内存块的使用情况进行统一描述,当所述客户端线程申请内存块时,更新所述空闲块元数据描述占用信息,当所述客户端完成数据传输后,释放相应的内存块。
进一步地,所述缓冲区调度器用于:当所述缓冲区调度器收到所述客户端的线程申请内存块请求之后,通过匹配算法获取适合大小的内存块;所述缓冲区调度器通过全局锁对空闲块元数据加锁,并查询对应大小内存块的使用情况,以占用最先查询到的空闲内存块;所述缓冲区调度器返回占用的所述空闲内存块的地址。
进一步地,所述匹配算法为:根据传输数据的大小选择相应大小的内存块。
进一步地,所述锁字段位于对应独立数据块的首部,所述锁字段包括独享锁标识和共享锁标识,所述独享锁包括用于存放当前占用客户端ID和时间戳。
进一步地,所述数据转移的过程包括:从远端读取数据时,所述客户端首先通过缓冲区调度器申请适当大小的内存块,然后将数据读请求发送到所述服务端;所述服务端接收到请求之后,将所读数据块加锁,然后将所述数据块的地址返回给所述客户端;所述客户端收到所述数据块的地址之后,使用RDMA_READ原语将所述所读数据块读取到申请的内存块中;读取完毕之后,所述客户端将所述申请的内存块内数据拷贝到所述用户缓冲区中,并远程地将共享锁释放;将数据写入所述服务端时,客户端先将数据拷贝到用户缓冲区,然后使用RDMA_WRITE将数据写到所述服务端。
进一步地,所述共享锁的抢占与释放过程包括:在抢占所述共享锁时,所述服务端通过GCC提供的原子操作fetch_and_add对共享字段进行加一操作;然后判断所述独享锁字段当前是否为零,如果为零,则成功返回,否则循环等待直到所述独享锁归零;在释放所述共享锁时,所述客户端远程调用RDMA_FETCH_AND_ADD原语对所述共享锁字段减一,并返回。
进一步地,所述独享锁的抢占与释放过程包括:在抢占所述独享锁时,所述服务端通过GCC提供的原子操作compare_and_swap将完整锁字段进行比较替换;在释放所述独享锁时,所述客户端通过RDMA_COMPARE_AND_SWAP原语将锁字段归零,并释放所述独享锁。
进一步地,在释放所述独享锁时还包括:当所述客户端释放所述独享锁失败后,所述客户端对所述共享加一等待,并重复替换原语,通过修正比较值直到替换成功。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的基于RDMA的高并发数据传输方法的流程图;
图2是本发明一个实施例的分级缓冲区布局图;
图3是本发明一个实施例的锁字段示意图;
图4是本发明一个实施例的服务端发送模型和客户端读写模型对比图;
图5是本发明一个实施例的共享锁抢占和释放示意图;
图6是本发明一个实施例的互斥锁抢占和释放示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
以下结合附图描述本发明。
直接内存访问(Direct Memory Access,DMA)允许某些硬件装置独立地直接读写内存,而不需要CPU的大量的参与,该技术用于缓解CPU对外设的处理压力,整个数据传输过程只需CPU在最开始进行初始化传输操作,然后将整个传输动作交给DMA控制器来执行完成。
远程直接内存访问(Remote Direct Memory Access,RDMA)是一种新型的网络通讯技术,它能实现在双方操作系统不直接参与的情况下直接访问远端内存,并实现高吞吐、低延迟的特性。RDMA通过让网络适配器将数据直接传输到对方的内存实现数据传输的零拷贝,从而消除了CPU和Cache的直接参与,并减少了冗余的现场切换。目前支持RDMA技术的网络协议栈包括Infiniband、RoCE(RDMA over Converged Ethernet)和iWARP,前两者由Mellanox提供硬件技术支持,特别地,后两者由于采用了普通以太网的数据链路层,因此均可与以太网完全兼容。RDMA通信的具体流程包括:首先由本地CPU以MMIO的方式向网卡发起通信命令,本地网卡检测到新的命令之后,以DMA的方式从内存中读取待传输的数据,将数据打包,并在RDMA网络进行数据传输,对方网卡接收到数据之后,将数据以DMA的方式直接写入到内存对应的地址区域,并将相应的完成信息写入到完成队列,整个过程不涉及对方CPU参与,并绕过了双方的内核,实现了数据传输的零拷贝。通讯双方在建立通讯之前需要经过一下步骤:打开网卡设备;创建保护域,该保护域会与在后面阶段创建的对象绑定,以保障数据传输安全,任何跨域的操作将会引发通讯错误;注册内存,该阶段将通讯的内存进行注册,具体方法是建立该段内存用户态地址和内存地址的映射,并将映射表存到网卡缓存,同时生成该内存段的密钥对(lkey和rkey),网卡在本地或远程访问内存时需携带相应的密钥进行身份确认;创建CQ(Completion Queue),发送方在消息发送成功后或者接收方接收消息成功后均会将相应的完成信息放入完成队列,用户可以反复检测完成队列来验证消息发送是否完成;创建QP(Queue Pair),QP可以对等到TCP/IP的socket,QP由Send Queue和Receive Queue构成,发送方把要发送的消息放入发送队列,同时接收方将接收请求放入接收队列,双方通过这种方式进行网络通信;QP状态初始化,通讯双方创建一一对应的QP之后,需要进行一系列的握手状态转换,直到成功建立起通讯链路。QP可以建立不同的连接类型,包括RC(Reliable Connection)、UC(Unreliable Connection)和UD(UnreliableDatagram),RC模式下,QP只能进行一对一可靠传输,数据包发送成功后会有相应的确认信息反馈,UC模式下,QP进行一对一传输,无确认信息反馈,UD模式则无一对一的界定,也没有确认信息反馈,以上三种传输模式具有不同的特点,同时对通信原语的支持程度也各不相同。
分布式锁用于对分布式环境中并发多任务进行同步控制,一般实现方法可大致分为三类:
集中式调度,将访问共享资源的请求交给一个主节点进行集中调控,这类方法易于实现,但单节点的处理能力成为了系统瓶颈,扩展性较差;
基于分布式一致性协调器的实现方法,这类方法往往依赖于第三方实现的现有系统,他们能处理在分布式环境下的并发请求,并保证一致性,例如ZooKeeper和Redis,ZooKeeper借助Paxos算法,构建了一个轻量级的分布式树结构,用户可以通过在ZooKeeper上创建一条特定路径来表征对某一临界资源的占用,Redis是一个分布式的内存级Key-Value数据库系统,一样可以被用来提供分布式锁服务。这类系统因为借助复杂的一致性算法,在提供锁服务时代价较高,整体性能不好;
基于RDMA远程原子操作的分布式锁服务,通过原子地修改内存数据来实现对共享资源的抢占效果。
图1是本发明实施例的一种基于RDMA的高并发数据传输方法的流程图。如图1所示,根据本发明实施例的基于RDMA的高并发数据传输方法,包括数据传输系统,数据存储在数据传输系统的各节点内存中,数据传输系统的各节点通过RDMA进行网络互联,数据传输系统包括客户端和服务端,客户端是数据远程读写请求的发起者,服务端用于存储和管理共享数据,并发控制依赖于分布式锁协议,分布式锁包含共享式读锁和独享式写锁,该方法包括以下步骤:
S1:在客户端接入数据传输系统前,构建分级缓冲区,其中,分级缓冲区用于远程数据收发时进行数据的临时存放。
在本发明的一个实施例中,分级缓冲区由客户端在接入系统之前分配,并注册到网卡,用于数据中转,在执行远程数据传输时,由缓冲区调度器对其进行管理。
需要注意的是,不引入分级缓冲区也能实现数据传输,具体做法是,当用户发起数据读写请求时,直接在用户提供的数据块和远端数据块之间进行数据交换,但是,用户提供的内存区域需要临时注册,这一过程时间代价较高,同时需要临时交换注册生成的密钥,引入了新的数据往返次数,增加了延迟。
图2是本发明一个实施例的分级缓冲区布局图。如图2所示,在本发明的一个实施例中,分级缓冲区还包括:分级缓冲区被切分为不同大小的内存块,且每种内存块具有特定的数量,可由系统配置文件统一设置;用空闲块元数据对分级缓冲区内的所有内存块进行统一管理,空闲块元数据用于描述内存块的当前占用情况,当客户端线程申请内存块时,更新空闲块元数据,当客户端完成数据传输后,更新空闲块元数据以释放该内存块。
在本发明的一个实施例中,缓冲区调度器用于:
当缓冲区调度器收到客户端的线程申请内存块请求之后,通过匹配算法获取适合大小的内存块。在本发明的一个实施例中,匹配算法为:根据传输数据的大小选择相应大小的内存块,即匹配算法要求最匹配内存块大小具有如下选取规则:
其中,S为返回内存块大小,Sdata为当前需要传输数据大小,Si代表大小为i的内存块,Smax代表最大内存块,d代表最大容忍往返次数,系统默认为3,借此,在数据转移时,更加合适的内存块大小有助于减少数据远程传输的次数,降低响应延迟。例如,用户需要读写的数据大小为3MB,则申请1MB的内存块,分3次往返完成数据传输,而当读写数据变为4MB时,则需申请较大的内存块,一次完成数据传输。
缓冲区调度器通过全局锁对空闲块元数据加锁,并查询对应大小内存块的使用情况,以占用最先查询到的空闲内存块。在本发明的一个实施例中,锁字段包含8个字节(如图3),位于对应独立数据块的首部,该锁字段被划分为两部分,前4个字节代表独享锁标识,后4字节代表共享锁标识,其中独享锁的前2字节用于存放当前占用客户端ID,后2字节用于存放时间戳,其作用在于,当同一客户端内部多个线程并发抢锁时,这些线程共用一个客户端ID,会导致身份重叠而出现匹配紊乱的现象,因此引入时间戳,将各线程的操作区分开。
缓冲区调度器返回占用的空闲内存块的地址。
S2:实施远程数据读写时,由客户端主动执行用户缓冲区、分级缓冲区和远端存储区之间的数据转移,以提升数据传输效率。
在本发明的一个实施例中,数据转移方法包括:从远端读取数据时,客户端首先通过缓冲区调度器申请适当大小的内存块,然后将数据读请求发送到服务端;服务端接收到请求之后,首先将所读数据块加锁,然后将数据块地址返回;客户端收到远端地址之后,直接使用RDMA_READ原语把远端地址所读数据块读取到申请的内存块中;读取完毕之后,将申请的内存块内数据拷贝到用户缓冲区中,并远程地将共享锁释放;将数据写入远端时,与远程读操作不同的是,数据流刚好方向相反,客户端先将数据拷贝到缓冲区,然后使用RDMA_WRITE将数据写到远端。
通过客户端执行数据传输具有如下优势:
服务端在单线程响应单个客户端数据请求时,假设总体时间开销为Ts,那么,该服务端线程能够实现的吞吐量为:
其中NetIOPS为网卡能够提供的最大吞吐量,显然,减少Ts有助于提升服务端的整体处理能力。在本发明的数据传输模型中,将数据传输的执行者从服务端转交给客户端(如图4),极大的减少了服务端的数据请求处理时间,提升了系统性能。
S3:服务端在远程存储区的每个独立数据块的首部设置锁字段,用于并发控制,当多客户端并发读写数据时,通过分布式锁协议进行并发控制。
在本发明的一个实施例中,共享锁包括对共享锁的抢占与释放;具体方法是:在抢占共享锁时,服务端通过GCC提供的原子操作fetch_and_add对共享字段进行加一操作;然后判断独享锁字段当前是否为零,如果为零,则成功返回,否则循环等待直到独享锁归零;在释放共享锁时,客户端远程调用RDMA_FETCH_AND_ADD原语对共享锁字段减一,并成功返回。图5给出了一个共享锁抢占与释放示例。
在本发明的一个实施例中,独享锁包括对独享锁的抢占与释放;具体方法是:在抢占独享锁时,服务端通过GCC提供的原子操作compare_and_swap将8字节完整锁字段进行比较替换,其中,比较值为{0,0,0},替换值为{CID,Ts,0},三个值分别代表客户端ID,时间戳,共享锁占有者数量,该原子操作首先用比较值和锁字段原本的数值进行对比,如果相等,则将替换值换入,否则不替换,最后将锁字段原本的数值返回,整个过程原子进行;如果替换失败,代表当前有其他用户已经抢占该锁,因此循环操作直到替换成功;在释放独享锁时,客户端通过RDMA_COMPARE_AND_SWAP原语将锁字段归零,并成功释放独享锁。图6给出了一个互斥锁抢占与释放示例。
在本发明的一个实施例中,独享锁释放时,存在替换失败的可能,即释放独享锁失败后,客户端对抢占该共享锁的客户端会直接对其加一并等待,因此需要重复执行替换原语,并修正比较值直到替换成功。
另外,本发明实施例的基于RDMA的高并发数据传输方法的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
Claims (9)
1.一种基于RDMA的高并发数据传输方法,其特征在于,包括数据传输系统,数据存储在所述数据传输系统的各节点内存中,所述数据传输系统的各节点通过RDMA进行网络互联,所述数据传输系统包括客户端和服务端,所述客户端是数据远程读写请求的发起者,所述服务端用于存储和管理共享数据,并发控制依赖于分布式锁协议,所述分布式锁包含共享式读锁和独享式写锁,该方法包括以下步骤:
S1:在所述客户端接入所述数据传输系统前,构建分级缓冲区,其中,所述分级缓冲区用于远程数据收发时进行数据的临时存放;
S2:实施远程数据读写时,由所述客户端主动执行用户缓冲区、所述分级缓冲区和远端存储区之间的数据转移,其中,所述数据转移的过程包括:从远端读取数据时,所述客户端首先通过缓冲区调度器申请适当大小的内存块,然后将数据读请求发送到所述服务端;所述服务端接收到请求之后,将所读数据块加锁,然后将所述数据块的地址返回给所述客户端;所述客户端收到所述数据块的地址之后,使用RDMA_READ原语将所述所读数据块读取到所述申请的内存块中;读取完毕之后,所述客户端将所述申请的内存块内的数据拷贝到所述用户缓冲区中,并远程地将共享锁释放;将数据写入所述服务端时,客户端先将数据拷贝到用户缓冲区,然后使用RDMA_WRITE将数据写到所述服务端;
S3:所述服务端在所述远端存储区的每个独立数据块的首部设置锁字段,用于并发控制,当多客户端并发读写数据时,通过所述分布式锁协议进行并发控制。
2.根据权利要求1所述的基于RDMA的高并发数据传输方法,其特征在于,所述分级缓冲区注册到网卡,用于数据中转,在执行远程数据传输时,由缓冲区调度器进行管理。
3.根据权利要求2所述的基于RDMA的高并发数据传输方法,其特征在于,所述分级缓冲区被切分为不同大小的多个内存块,所述多个内存块由系统配置文件统一设置;
其中,用空闲块元数据对所述分级缓冲区内的所有内存块的使用情况进行统一描述,当所述客户端线程申请内存块时,更新所述空闲块元数据描述占用信息,当所述客户端完成数据传输后,释放相应的内存块。
4.根据权利要求2所述的基于RDMA的高并发数据传输方法,其特征在于,所述缓冲区调度器用于:
当所述缓冲区调度器收到所述客户端的线程申请内存块请求之后,通过匹配算法获取适合大小的内存块;
所述缓冲区调度器通过全局锁对空闲块元数据加锁,并查询对应大小内存块的使用情况,以占用最先查询到的空闲内存块;
所述缓冲区调度器返回占用的所述空闲内存块的地址。
5.根据权利要求4所述的基于RDMA的高并发数据传输方法,其特征在于,所述匹配算法为:根据传输数据的大小选择相应大小的内存块。
6.根据权利要求1所述的基于RDMA的高并发数据传输方法,其特征在于,所述锁字段位于对应独立数据块的首部,所述锁字段包括独享锁标识和共享锁标识,所述独享锁包括用于存放当前占用客户端ID和时间戳。
7.根据权利要求6所述的基于RDMA的高并发数据传输方法,其特征在于,所述共享锁的抢占与释放过程包括:
在抢占所述共享锁时,所述服务端通过GCC提供的原子操作fetch_and_add对共享字段进行加一操作;然后判断所述独享锁字段当前是否为零,如果为零,则成功返回,否则循环等待直到所述独享锁归零;
在释放所述共享锁时,所述客户端远程调用RDMA_FETCH_AND_ADD原语对所述共享锁字段减一,并返回。
8.根据权利要求6所述的基于RDMA的高并发数据传输方法,其特征在于,所述独享锁的抢占与释放过程包括:
在抢占所述独享锁时,所述服务端通过GCC提供的原子操作compare_and_swap将完整锁字段进行比较替换;
在释放所述独享锁时,所述客户端通过RDMA_COMPARE_AND_SWAP原语将锁字段归零,并释放所述独享锁。
9.根据权利要求8所述的基于RDMA的高并发数据传输方法,其特征在于,在释放所述独享锁时还包括:
当所述客户端释放所述独享锁失败后,所述客户端对所述共享锁加一等待,并重复执行替换原语,通过修正比较值直到替换成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611261723.2A CN106657365B (zh) | 2016-12-30 | 2016-12-30 | 一种基于rdma的高并发数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611261723.2A CN106657365B (zh) | 2016-12-30 | 2016-12-30 | 一种基于rdma的高并发数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106657365A CN106657365A (zh) | 2017-05-10 |
CN106657365B true CN106657365B (zh) | 2019-12-17 |
Family
ID=58838721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611261723.2A Active CN106657365B (zh) | 2016-12-30 | 2016-12-30 | 一种基于rdma的高并发数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106657365B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547623B (zh) * | 2017-06-28 | 2021-02-05 | 新华三云计算技术有限公司 | 应用数据传输方法、装置、应用服务器和应用代理服务器 |
CN107632788A (zh) * | 2017-09-26 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种多控存储系统io调度的方法及多控存储系统 |
CN107844579B (zh) * | 2017-11-10 | 2021-10-26 | 顺丰科技有限公司 | 优化用于分布式数据库中间件取数的方法、系统及设备 |
CN109981471B (zh) * | 2017-12-27 | 2023-04-18 | 华为技术有限公司 | 一种缓解拥塞的方法、设备和系统 |
CN108182281B (zh) * | 2018-01-26 | 2022-02-01 | 创新先进技术有限公司 | 基于流式计算的数据处理控制方法、装置、服务器及介质 |
CN108710638B (zh) * | 2018-04-13 | 2020-06-12 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
CN110535811B (zh) * | 2018-05-25 | 2022-03-04 | 中兴通讯股份有限公司 | 远端内存管理方法及系统、服务端、客户端、存储介质 |
CN113220226A (zh) * | 2018-06-02 | 2021-08-06 | 王梅 | 分布式大数据存储系统内的数据传输方法及系统 |
CN111277616B (zh) * | 2018-12-04 | 2023-11-03 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN111858418B (zh) * | 2019-04-30 | 2023-04-07 | 华为技术有限公司 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
CN110162532B (zh) * | 2019-05-09 | 2021-06-04 | 中国银行股份有限公司 | 交易数据处理方法和设备 |
CN110177118B (zh) * | 2019-06-13 | 2022-03-29 | 上海海事大学 | 一种基于rdma的rpc通信方法 |
CN110471779B (zh) * | 2019-07-22 | 2023-11-14 | 创新先进技术有限公司 | 用于实现锁资源处理的方法和装置 |
CN112433980B (zh) * | 2019-08-26 | 2022-07-12 | 无锡江南计算技术研究所 | 基于迭代逼近的rdma缓冲区动态分配方法 |
CN111131081B (zh) * | 2019-12-31 | 2022-12-23 | 武汉绿色网络信息服务有限责任公司 | 一种支持多进程的高性能单向传输的方法和装置 |
CN111314731A (zh) * | 2020-02-20 | 2020-06-19 | 上海交通大学 | 面向视频文件大数据的rdma混合传输方法、系统及介质 |
CN112596669A (zh) * | 2020-11-25 | 2021-04-02 | 新华三云计算技术有限公司 | 一种基于分布式存储的数据处理方法及装置 |
CN112711483A (zh) * | 2020-12-10 | 2021-04-27 | 广州广电运通金融电子股份有限公司 | 一种处理大数据标注服务高并发方法、系统及设备 |
CN114691382A (zh) * | 2020-12-31 | 2022-07-01 | 中兴通讯股份有限公司 | 基于rdma的通信方法、节点、系统及介质 |
CN112835982B (zh) * | 2021-02-26 | 2023-03-24 | 浪潮云信息技术股份公司 | 一种基于分布式数据库的表锁实现方法 |
CN113127390B (zh) * | 2021-05-13 | 2023-03-14 | 西安微电子技术研究所 | 一种多协议数据总线适配器引擎架构设计方法 |
CN113641604B (zh) * | 2021-07-16 | 2024-02-02 | 济南浪潮数据技术有限公司 | 一种数据传输方法及系统 |
US20230229525A1 (en) * | 2022-01-20 | 2023-07-20 | Dell Products L.P. | High-performance remote atomic synchronization |
CN114610506B (zh) * | 2022-03-09 | 2023-03-24 | 奥特酷智能科技(南京)有限公司 | 基于分离式数据分发服务的域内共享内存传输架构及机制 |
CN117351406A (zh) * | 2023-12-06 | 2024-01-05 | 武汉蓝海科创技术有限公司 | 基于图像识别技术的专家远程视觉辅助赋能系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304373A (zh) * | 2008-06-25 | 2008-11-12 | 中兴通讯股份有限公司 | 一种实现局域网内高效传输大块数据的方法及系统 |
CN101577716A (zh) * | 2009-06-10 | 2009-11-11 | 中国科学院计算技术研究所 | 基于InfiniBand网络的分布式存储方法和系统 |
CN105408880A (zh) * | 2013-07-31 | 2016-03-16 | 甲骨文国际公司 | 对共享存储装置的持久存储器的直接访问 |
CN105978985A (zh) * | 2016-06-07 | 2016-09-28 | 华中科技大学 | 一种用户态RPC over RDMA的内存管理方法 |
-
2016
- 2016-12-30 CN CN201611261723.2A patent/CN106657365B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304373A (zh) * | 2008-06-25 | 2008-11-12 | 中兴通讯股份有限公司 | 一种实现局域网内高效传输大块数据的方法及系统 |
CN101577716A (zh) * | 2009-06-10 | 2009-11-11 | 中国科学院计算技术研究所 | 基于InfiniBand网络的分布式存储方法和系统 |
CN105408880A (zh) * | 2013-07-31 | 2016-03-16 | 甲骨文国际公司 | 对共享存储装置的持久存储器的直接访问 |
CN105978985A (zh) * | 2016-06-07 | 2016-09-28 | 华中科技大学 | 一种用户态RPC over RDMA的内存管理方法 |
Non-Patent Citations (1)
Title |
---|
RDMA Capable iWARP over Datagrams;Ryan E. Grant .et al;《IEEE》;20111231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106657365A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657365B (zh) | 一种基于rdma的高并发数据传输方法 | |
CN108268208B (zh) | 一种基于rdma的分布式内存文件系统 | |
CN111277616B (zh) | 一种基于rdma的数据传输方法和分布式共享内存系统 | |
US11340672B2 (en) | Persistent reservations for virtual disk using multiple targets | |
US10341196B2 (en) | Reliably updating a messaging system | |
US8117156B2 (en) | Replication for common availability substrate | |
US20030182464A1 (en) | Management of message queues | |
CN111966446B (zh) | 一种容器环境下rdma虚拟化方法 | |
US11025564B2 (en) | RDMA transport with hardware integration and out of order placement | |
US20100205502A1 (en) | Enabling memory transactions across a lossy network | |
US11068412B2 (en) | RDMA transport with hardware integration | |
CN114756388B (zh) | 一种基于rdma的集群系统节点间按需共享内存的方法 | |
CN111400307A (zh) | 支持远程并发访问的持久哈希表访问系统 | |
US10154079B2 (en) | Pre-boot file transfer system | |
US11030220B2 (en) | Global table management operations for multi-region replicated tables | |
CN114726929A (zh) | 网络适配器中的连接管理 | |
CN108462737B (zh) | 基于批处理和流水线的分层数据一致性协议优化方法 | |
JP5945543B2 (ja) | ミドルウェアマシン環境を含むシステム | |
CN101827088A (zh) | 基于cpu总线互联的底层通信协议实现方法 | |
US20220407824A1 (en) | Connection management in a network adapter | |
CN110445580A (zh) | 数据发送方法及装置、存储介质、电子装置 | |
JP3628514B2 (ja) | 計算機間データ送受信方法 | |
CN114885007A (zh) | 用于实时的强一致性会话同步的方法和电子设备 | |
US10681145B1 (en) | Replication in a protocol offload network interface controller | |
CN116760504B (zh) | 会话同步方法、装置、服务节点、终端及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |