CN114996200A - 基于rdma的数据传输方法、装置、设备及存储介质 - Google Patents
基于rdma的数据传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114996200A CN114996200A CN202210583102.5A CN202210583102A CN114996200A CN 114996200 A CN114996200 A CN 114996200A CN 202210583102 A CN202210583102 A CN 202210583102A CN 114996200 A CN114996200 A CN 114996200A
- Authority
- CN
- China
- Prior art keywords
- node
- queue
- lease
- ring
- connection
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000005540 biological transmission Effects 0.000 title claims abstract description 57
- 230000002159 abnormal effect Effects 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000006378 damage Effects 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供一种基于RDMA的数据传输方法、装置、设备及存储介质。该方法包括:在第一节点与第二节点的连接出现异常时,第一节点获取第一队列标识对应的租约,第一节点设置有用于第二节点远程写入的第一环形队列,第二节点设置有用于第一节点远程写入的第二环形队列;第一节点开启对租约的计时,并在连接未恢复正常时,持续判断租约是否超时;若租约超时连接未恢复正常,则第一节点销毁第一环形队列;若租约未超时连接恢复正常,则继续第一节点与第二节点基于RDAM的数据传输。本申请的方法利用环形队列在RDMA技术基础上实现数据的远程传输,避免频繁创建网络连接并销毁用于存储的环形队列,降低了软件的性能损耗。
Description
技术领域
本申请涉及通信技术,尤其涉及一种基于RDMA的数据传输方法、装置、设备及存储介质。
背景技术
随着网络技术与生活的深度绑定,常需要通过网络传输各种信息,传统的TCP/IP软硬件架构及应用在传输方面存在网络传输和数据处理延迟过大、多次数据拷贝和中断处理、复杂的TCP/IP协议处理等问题。
远程直接内存访问(Remote Direct Memory Access,RDMA)是一种为了解决网络传输中服务器端数据处理延迟而产生的技术。RDMA将用户应用中的数据直接传入服务器的存储区,通过网络将数据从一个系统快速传输到远程系统的存储器中,消除了传输过程中多次数据复制和文本交换的操作,降低了CPU的负载。RDMA技术的应用,一定程度上缓解了上述问题,但在RDMA上继续采用原本面向TCP/IP的软件框架并不能很好的发挥RDMA高吞吐、低延迟的特性。
在实践过程中,网络抖动时有发生,若简单得认为网络连接已经断开,则会频繁创建连接,增大软件性能损耗。
发明内容
本申请提供一种基于RDMA的数据传输方法、装置、设备及存储介质,用以解决在RDMA上传输数据时,避免频繁创建网络连接并销毁用于存储的环形队列,降低了软件的性能损耗。
本申请实施例的第一方面提供一种基于RDMA的数据传输方法,所述方法应用于通信系统,所述通信系统包括第一节点和第二节点,所述第一节点设置有用于所述第二节点远程写入的第一环形队列,所述第二节点设置有用于所述第一节点远程写入的第二环形队列。所述方法包括:在所述第一节点与所述第二节点的连接出现异常时,所述第一节点获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;
所述第一节点开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;
若所述租约超时所述连接未恢复正常,则所述第一节点销毁所述第一环形队列;
若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输;
其中,在所述连接出现异常时,所述第二节点与所述第一节点的操作相同,以销毁所述第二环形队列或继续基于RDAM的数据传输。
可选的,所述第一节点获取第一队列标识对应的租约之前,所述方法还包括:
所述第一节点根据所述第一节点的属性信息,生成所述第一队列标识,其中,所述属性信息包括所述第一节点的全局标识、所述第一节点的处理器序号、自增序列号中的至少一个;
所述第一节点向所述第二节点发送所述第一队列标识。
可选的,所述第一环形队列和所述第二环形队列包括数量相同、大小相等的内存块;所述方法还包括:
所述第一节点向所述第二节点发送第一地址信息,所述第一地址信息包括所述第一环形队列中每个内存块的远程秘钥、远程地址,以及所述第一队列标识和所述第一队列标识对应的租约,以使得所述第二环形队列共享所述第一队列标识;
所述第一节点接收所述第二节点发送的第二地址信息,所述第二地址信息包括所述第二环形队列中每个内存块的远程密钥和远程地址。
可选的,在所述第一节点与所述第二节点的连接出现异常时,所述方法还包括:
所述第一节点接收所述第二节点发送的第二队列标识;
所述第一节点在本地检索是否存在所述第二队列标识;
若本地不存在所述第二队列标识,则所述第一节点重新设置与所述第二队列标识对应的环形队列,并共享所述第二队列标识及向所述第二节点发送所述第二队列标识对应的租约。
可选的,若所述第二队列标识与所述第一队列标识相同,则所述方法还包括:
所述第一节点判断所述第一环形队列中的内存块是否缺失;
若否,则在所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输;
若是,则在所述第一环形队列中创建新的内存块,并将所述内存块的远程秘钥和远程地址发送至所述第二节点,以在所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输。
可选的,在所述第一环形队列中创建新的内存块之后,所述方法还包括:
所述第一节点为所述第一环形队列中的每个内存块分配新的版本号,且每个内存块的新的版本号一致;
在所述第一环形队列中的内存块存在缺失时,所述方法还包括:
在所述缺失的内存块的生命周期结束后,将所述缺失的内存块回收至所述第一环形队列;
根据所述第一环形队列中的每个内存块的版本号,将旧的版本号对应的所述缺失的内存块销毁。
可选的,所述数据传输装置应用于通信系统,所述通信系统包括第一节点和第二节点,所述数据传输装置为所述第一节点,所述第一节点设置有用于所述第二节点远程写入的第一环形队列,所述第二节点设置有用于所述第一节点远程写入的第二环形队列,所述数据传输装置,包括:
获取模块,用于在所述第一节点与所述第二节点的连接出现异常时,获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;
处理模块,用于开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;
所述处理模块,还用于若所述租约超时所述连接未恢复正常,则销毁所述第一环形队列;
若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输。
本申请实施例的第三方面提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如本发明实施例第一方面中所述的基于RDAM的数据传输方法。
本申请实施例的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本发明实施例第一方面中所述的基于RDAM的数据传输方法。
本申请提供的基于RDMA的数据传输方法、装置、设备及存储介质,所述方法应用于通信系统,所述通信系统包括第一节点和第二节点,所述第一节点设置有用于所述第二节点写入的第一环形队列,所述第二节点设置有用于所述第一节点写入的第二环形队列。该方法包括:在所述第一节点与所述第二节点的连接出现异常时,所述第一节点获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;若所述租约超时所述连接未恢复正常,则所述第一节点销毁所述第一环形队列;若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输;避免频繁创建网络连接并销毁用于存储的环形队列,降低了软件的性能损耗,从而实现在RDMA网络上传输数据时满足低延迟、高吞吐、内存安全的需求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的基于RDMA的数据传输的通信系统示意图;
图2是本申请一实施例提供的基于RDMA的数据传输方法的流程示意图;
图3是本申请一实施例提供的基于RDAM的数据传输方法的信令流程图;
图4是本申请另一实施例提供的基于RDMA的数据传输方法的流程示意图;
图5是本申请实施例提供的基于RDMA的数据传输装置示意图;
图6是本申请实施例提供的电子设备示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请应用于数据传输场景。目前,传统的TCP/IP软硬件架构及应用在传输方面存在网络传输和数据处理延迟过大、多次数据拷贝和中断处理、复杂的TCP/IP协议处理等问题。区别于现有技术方案,本申请提供了一种基于RDMA的数据传输方法、装置、设备及存储介质,通过在通信系统两端同时建立环形队列,并在环形队列的基础上引入租约lease机制,并在租约到期后销毁环形队列,避免频繁创建网络连接并销毁用于存储的环形队列,降低了软件的性能损耗,从而解决在RDMA上传输数据延迟高、吞吐量小、内存安全性低的问题,提升数据传输效率及安全性。下面结合图1对本申请的应用场景进行介绍。
图1是本申请实施例提供的基于RDMA的数据传输的通信系统示意图,本实施例提供的通信系统包括第一节点和第二节点,如图1所示,第一节点设置有用于第二节点远程写入的第一环形队列#1,第二节点设置有用于第一节点远程写入的第二环形队列#2。
其中,第一环形队列#1位于第一节点的存储区域,第二环形队列#2位于第二节点的存储区域中,两个环形队列拥有相同个数的块,用来承担数据传输任务,相同编号的块与块之间相互关联,通过第一节点在第一环形队列的块上输入的信息会传输给相关联的第二节点的第二环形队列的块;相应的,第二节点上的第二环形队列的块用于第一节点远程写入数据。同理,通过第二节点在第二环形队列的块上输入的信息会传输给相关联的第一节点的第一环形队列的块;相应地,第一节点上的第一环形队列的块用于第二节点远程写入数据。也即,第一环形队列可以存储第一节点待写入第二节点的数据,还同时存储第二节点写入第一节点的数据,第二环形队列类似。
根据需要传输的数据的多少等特征选择调用不同数量的块。上述提到的第一节点可以是客户端和服务端,该第二节点也可以是客户端或服务端。例如,第一节点为客户端,则第二节点为服务端,或者第一节点为服务端,则第二节点为客户端,本实施例此处不做特别限制。
至此本申请的设备可以利用环形队列上的块,在RDMA技术基础上实现数据的远程传输。第一节点将数据通过网络直接写入第二节点的第二环形队列中,第二节点将数据通过网络直接写入第一节点的第一环形队列中,消除了传输过程中多次数据复制和文本交换的操作,由此达到低延迟、高吞吐、内存安全的在RDMA网络上传输数据的需求。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请一实施例提供的基于RDMA的数据传输方法流程图,该方法的执行主体可以是上述的数据传输设备。如图2所示,所述方法应用于图1所示的通信系统,该方法包括:
S201、在所述第一节点与所述第二节点的连接出现异常时,所述第一节点获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;
具体地,在第一节点的存储区域建立第一环形队列#1,第二节点的存储区域建立第二环形队列#2。该第一环形队列和第二环形队列对应相同的租约,可以通过协商等方式,预先设置该租约。通过租约的形式规定当前节点在网络断开的情况下对彼此的约束时间。
其中,租约为系统设置的一种机制,用于在发现第一节点与第二节点之间连接异常的时候,根据租约对应的时间来确定是否对第一节点及第二节点上的环形队列进行销毁等处置。
当发生网络波动、断电及系统错误等情况时,第一节点与第二节点的连接可能发生异常。
当发现两节点连接异常时,第一节点获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识。也就是说第一环形队列和第二环形队列的标识相同,从而二者具有相同的租约,由此,不仅第一节点根据该租约来确定是否对第一环形队列进行处置,第二节点也会根据该相同的租约来确定是否对第二环形队列进行处置,从而保证用于交互数据的第一环形队列和第二环形队列能够在相同的时间段存在,以保证第一节点和第二节点的数据传输。
S202、所述第一节点开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;若是,执行S203,若否,执行S204。
具体地,第一节点与第二节点连接异常时,第一节点开启对租约的计时;对第一节点与第二节点的连接情况进行追踪,并在连接断开的情况下持续判断租约是否到期、超时。
S203、若所述租约超时所述连接未恢复正常,则所述第一节点销毁所述第一环形队列;
具体地,当发现租约超时且连接未恢复正常时,第一节点销毁第一环形队列,即释放第一环形队列占用的内存,并将调用的块回收。
也就是说,当超过一定的时间时,第一节点才销毁第一环形队列,而不是在连接异常时就销毁第一环形队列,避免了频繁销毁第一环形队列。
S204、若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输;
具体地,当租约期限内连接恢复,不用进行销毁队列操作,数据传输也相应恢复。
其中,在所述连接出现异常时,所述第二节点与所述第一节点的操作相同。当发现租约超时且连接未恢复正常时,第二节点销毁第二环形队列,即释放第二环形队列占用的内存,并将调用的块回收。当租约期限内连接恢复,不用进行销毁队列操作,基于RDAM的数据传输也相应恢复。
由此,第一环形队列和第二环形队列可以同时销毁,从而节省了存储空间,第一环形队列和第二环形队列同时保存,从而保证了数据传输的可靠性。
本申请提供的实施例,在第一节点与第二节点的连接出现异常时,第一节点获取第一队列标识对应的租约,其中,第一队列标识为第一环形队列和第二环形队列共享的标识;开启对租约的计时,并在连接未恢复正常时,持续判断租约是否超时;若租约超时连接未恢复正常,则第一节点销毁第一环形队列;若租约未超时连接恢复正常,则继续第一节点与第二节点基于RDAM的数据传输;其中,在连接出现异常时,第二节点与第一节点的操作相同,以销毁第二环形队列或继续基于RDAM的数据传据,避免频繁创建网络连接并销毁用于存储的环形队列,降低了软件的性能损耗,从而实现在RDMA网络上传输数据时满足低延迟、高吞吐、内存安全的需求。
图3为本申请一实施例提供的基于RDAM的数据传输方法的信令流程图,本实施例对第一节点与第二节点建立连接以及两个环形队列共享租约的过程进行描述,如图3所示,该方法如下:
S301、根据所述第一节点的属性信息,生成所述第一环形队列标识,其中,所述属性信息包括所述第一节点的全局标识、所述第一节点的处理器序号、自增序列号中的至少一个;
具体地,在第一节点的存储空间中存在不止一个环形队列,调用块构成环形队列时,环形队列之间各不相同,因此赋予环形队列独有的环形队列标识。对第一节点的全局标识、第一节点的处理器序号和自增序列号中的至少一个进行处理,可以得到该第一环形队列的标识。
该处理可以为哈希算法,也可以为其它算法,本实施例对具体的算法不做特别限制。例如,将第一节点的全局标识、第一节点的处理器序号、自增序列号共同取哈希得到一个64位哈希值,将该64位哈希值作为第一环形队列的标识。
S302、第一节点向所述第二节点发送第一地址信息,所述第一地址信息包括所述第一环形队列中每个内存块的远程秘钥、远程地址,以及所述第一队列标识和所述第一队列标识对应的租约,以使得所述第二环形队列共享所述第一队列标识;
具体地,通过RDMA Send/Receive,第一节点将第一环形队列中的块的远程密钥、远程地址以及所述第一队列标识和标识对应的租约发送给第二节点。
S303、所述第一节点接收所述第二节点发送的第二地址信息,所述第二地址信息包括所述第二环形队列中每个内存块的远程密钥和远程地址。
第二节点在获取到该第一队列标识后,第二节点共享该第一队列标识。即第二节点基于该第一环形队列的相关信息,创建与该第一环形队列关联的第二环形队列,以使得二者具有相同数量和大小的内存块,并且该创建的第二环形队列具有与该第一环形队列相同的队列标识,以使得二者可以同时保存或销毁环形队列。
在第二节点创建好第二环形队列后,该第二节点向第一节点发送第二地址信息。由此,第一节点和第二节点可以建立网络连接,并将第一环形队列和第二环形队列关联,并且该第一环形队列和第二环形队列共享相同的租约。
本申请提供的实施例,通过交换地址信息,实现第一节点与第二节点之间的连接,并且在交互地址信息的同时,传输了第一队列标识,避免了多次传输消息,提高了传输效率。
图4为本申请一实施例提供的另一基于RDAM的数据传输方法流程图,进一步地,在图2实施例的基础上,当第一节点与第二节点的连接出现异常时,第一节点和第二节点会尝试重新连接,下面结合图4对第一节点和第二节点的重连过程进行详细说明。如图4所示,在上述图2实施例的基础上,本申请实施例的具体实现方式如下:
S401、在所述第一节点与所述第二节点的连接出现异常时,所述第一节点接收所述第二节点发送的第二队列标识,并在本地检索是否存在所述第二队列标识;若是,执行S403,若否,执行S402。
当发现连接异常时,第一节点接收来自第二节点的第二环形队列标识,并对此标识进行检索,以确定第一节点中是否存在与该第二环形队列标识对应的第一环形队列。
由上述论述可知,第一环形队列和第二环形队列具有相同的队列标识,通过检索该第二环形队列标识,可以知道本地是否有与该第二环形队列关联的第一环形队列。
S402、若本地不存在所述第二队列标识,则所述第一节点重新设置与所述第二队列标识对应的环形队列,并共享所述第二队列标识及向所述第二节点发送所述第二队列标识对应的租约。
具体地,当第一节点无法检索到该第二队列标识时,即说明第一节点的存储空间中并没有该第二队列标识对应的第一环形队列。针对此种情况,则第一节点重新创建一个新的第一环形队列,并按照正常的流程关联第二节点上的第二环形队列并建立新的租约并发送至第二节点,例如可以参见图3所示的方式来关联两个环形队列。
进一步地,基于时钟漂移的原因,第一环形队列和第二环形队列租约未同时到期,此时,重置租约并向第二节点同步该租约。
S403、若所述第二队列标识与所述第一队列标识相同,判断所述第一环形队列中的内存块是否缺失;若是,执行S404,若否,执行S405。
具体地,第一节点检索到第二队列标识时,即第一节点中存在与该第一环形队列关联的第二环形队列,但该第一环形队列中的内存块缺失,需要在第一环形队列中补充新的内存块。
S404、所述第一节点在所述第一环形队列中创建新的内存块,并将所述内存块的远程密钥和远程地址发送至所述第二节点,以在所述租约未超时且所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输。
具体地,当可以在第一节点存储空间内检索到第一环形队列,且第一环形队列中的块均处于队列中时,直接进行重连,继续在块上使用RDMA Write传输数据。
具体地,第一节点检测发现第一环形队列中的块有缺失,由于第一环形队列中的块与第二环形队列中的块一一对应,因此需要将第一环形队列中缺失的块补齐,并将新创建的块的远程密钥及远程地址同步至第二节点。在租约未到期的情况下恢复连接,继续数据传输。
重连后不在队列中的块,即重连前掉出队列的块,在其生命周期结束后将被回收至队列中并被销毁。
具体地,在第一环形队列中创建新的内存块之后,第一节点为第一环形队列中的每个内存块分配新的版本号,且每个内存块的新的版本号一致;在缺失的内存块的生命周期结束后,将缺失的内存块回收至所述第一环形队列;根据第一环形队列中的每个内存块的版本号,将旧的版本号对应的所述缺失的内存块销毁。
例如,第一环形队列的Chunk1、Chunk3掉出队列,此时需要重新创建新的Chunk1、Chunk3,在创建完成Chunk1、Chunk3后,为Chunk0、Chunk1、Chunk2和Chunk3分配新的版本号,且该四个内存块的版本号一致,例如可以为版本号自增一,第一节点并将新的版本号同步到第二节点。与此同时,第一环形队列的其他信息也同步给第二节点。
在缺失的内存块的生命周期结束后,将缺失的内存块回收至第一环形队列中,该部分缺失的内存块的版本号并没有进行更新,由此旧的Chunk1、Chunk3与第一环形队列中的所有内存块的版本号均不同,以此为标志识别旧的Chunk1、Chunk3,并销毁该Chunk1、Chunk3。
S405、在所述租约未超时所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输;
具体地,第一环形队列的块完整且租约未到期,重新连接并继续传输数据。
本实施例提供的基于RDMA的数据传输方法,在网络出现异常时进行重新连接,在重新连接时,通过队列标识来确定是否需要重新建立环形队列或重新创建内存块,实现了内存创建的精准化,避免了不必要的内存创建,同时,通过版本号实现了对无用内存块的回收,避免出现冗余内存。
图5为本申请实施例提供的基于RDMA的数据传输装置的结构示意图。该装置可以集成在第一节点中,如图5所示,基于RDMA的数据传输装置包括:
获取模块10,用于在所述第一节点与所述第二节点的连接出现异常时,所述第一节点获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;
处理模块20,用于开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;
所述处理模块20,还用于若所述租约超时所述连接未恢复正常,则销毁所述第一环形队列;
若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输。
在一种可能的实现方式中,获取模块10还包括发送模块,获取模块10具体用于:在获取第一队列标识对应的租约之前,根据所述第一节点的属性信息,生成所述第一队列标识,其中,所述属性信息包括所述第一节点的全局标识、所述第一节点的处理器序号、自增序列号中的至少一个;
所述发送模块,用于向所述第二节点发送所述第一队列标识。
在一种可能的实现方式中,所述第一环形队列和所述第二环形队列包括数量相同、大小相等的内存块;所述发送模块还用于,向所述第二节点发送第一地址信息,所述第一地址信息包括所述第一环形队列中每个内存块的远程秘钥、远程地址,以及所述第一队列标识和所述第一队列标识对应的租约,以使得所述第二环形队列共享所述第一队列标识;
所述获取模块10,还用于接收所述第二节点发送的第二地址信息,所述第二地址信息包括所述第二环形队列中每个内存块的远程密钥和远程地址。
在一种可能的实现方式中,所述获取模块10具体还用于,在所述第一节点与所述第二节点的连接出现异常时,接收所述第二节点发送的第二队列标识;
处理模块20具体用于,在本地检索是否存在所述第二队列标识;
若本地不存在所述第二队列标识,则所述第一节点重新设置与所述第二队列标识对应的环形队列,并共享所述第二队列标识及向所述第二节点发送所述第二队列标识对应的租约。
在一种可能的实现方式中,处理模块20具体还用于,若所述第二队列标识与所述第一队列标识相同,
判断所述第一环形队列中的内存块是否缺失;
若否,则在所述租约未超时所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输;
若是,则在所述第一环形队列中创建新的内存块,并将所述内存块的远程秘钥和远程地址发送至所述第二节点,以在所述租约未超时所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输。
在一种可能的实现方式中,所述处理模块20具体还用于,在所述第一环形队列中创建新的内存块之后,为所述第一环形队列中的每个内存块分配新的版本号,且每个内存块的新的版本号一致;
在所述第一环形队列中的内存块存在缺失时,在所述缺失的内存块的生命周期结束后,将所述缺失的内存块回收至所述第一环形队列;
根据所述第一环形队列中的每个内存块的版本号,将旧的版本号对应的所述缺失的内存块销毁。
在一种可能的实现方式中,所述处理模块20具体还用于,所述第一节点将所述第一环形队列中的每个内存块的版本号自增1,得到每个内存块的新的版本号。
本申请提供的数据处理装置,用于执行前述数据处理方法实施例,其实现原理与技术效果类似,对此不再赘述。
图6为本申请提供的电子设备的结构示意图,如图6所示,该电子设备包括:
处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器294中的逻辑指令,以执行上述实施例的方法。
此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述实施例提供的方法。
本申请实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例提供的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种基于RDMA的数据传输方法,其特征在于,所述方法应用于通信系统,所述通信系统包括第一节点和第二节点,所述第一节点设置有用于所述第二节点远程写入的第一环形队列,所述第二节点设置有用于所述第一节点远程写入的第二环形队列,所述方法包括:
在所述第一节点与所述第二节点的连接出现异常时,所述第一节点获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;
所述第一节点开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;
若所述租约超时所述连接未恢复正常,则所述第一节点销毁所述第一环形队列;
若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输。
2.根据权利要求1所述的方法,其特征在于,所述第一节点获取第一队列标识对应的租约之前,所述方法还包括:
所述第一节点根据所述第一节点的属性信息,生成所述第一队列标识,其中,所述属性信息包括所述第一节点的全局标识、所述第一节点的处理器序号、自增序列号中的至少一个;
所述第一节点向所述第二节点发送所述第一队列标识。
3.根据权利要求2所述的方法,其特征在于,所述第一环形队列和所述第二环形队列包括数量相同、大小相等的内存块;所述方法还包括:
所述第一节点向所述第二节点发送第一地址信息,所述第一地址信息包括所述第一环形队列中每个内存块的远程秘钥、远程地址,以及所述第一队列标识和所述第一队列标识对应的租约,以使得所述第二环形队列共享所述第一队列标识;
所述第一节点接收所述第二节点发送的第二地址信息,所述第二地址信息包括所述第二环形队列中每个内存块的远程密钥和远程地址。
4.根据权利要求1所述的方法,其特征在于,在所述第一节点与所述第二节点的连接出现异常时,所述方法还包括:
所述第一节点接收所述第二节点发送的第二队列标识;
所述第一节点在本地检索是否存在所述第二队列标识;
若本地不存在所述第二队列标识,则所述第一节点重新设置与所述第二队列标识对应的环形队列,并共享所述第二队列标识及向所述第二节点发送所述第二队列标识对应的租约。
5.根据权利要求4所述的方法,其特征在于,若所述第二队列标识与所述第一队列标识相同,则所述方法还包括:
所述第一节点判断所述第一环形队列中的内存块是否缺失;
若否,则在所述租约未超时所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输;
若是,则所述第一节点在所述第一环形队列中创建新的内存块,并将所述内存块的远程秘钥和远程地址发送至所述第二节点,以在所述租约未超时所述连接恢复正常时,继续所述第一节点与所述第二节点基于RDAM的数据传输。
6.根据权利要求5所述的方法,其特征在于,在所述第一环形队列中创建新的内存块之后,所述方法还包括:
所述第一节点为所述第一环形队列中的每个内存块分配新的版本号,且每个内存块的新的版本号一致;
在所述第一环形队列中的内存块存在缺失时,所述方法还包括:
在所述缺失的内存块的生命周期结束后,将所述缺失的内存块回收至所述第一环形队列;
根据所述第一环形队列中的每个内存块的版本号,将旧的版本号对应的所述缺失的内存块销毁。
7.根据权利要求6所述的方法,其特征在于,所述第一节点为所述第一环形队列中的每个内存块分配新的版本号,包括:
所述第一节点将所述第一环形队列中的每个内存块的版本号自增1,得到每个内存块的新的版本号。
8.一种基于RDMA的数据传输装置,其特征在于,所述数据传输装置应用于通信系统,所述通信系统包括第一节点和第二节点,所述数据传输设备为所述第一节点,所述第一节点设置有用于所述第二节点远程写入的第一环形队列,所述第二节点设置有用于所述第一节点远程写入的第二环形队列,所述数据传输装置,包括:
获取模块,用于在所述第一节点与所述第二节点的连接出现异常时,获取第一队列标识对应的租约,其中,所述第一队列标识为所述第一环形队列和所述第二环形队列共享的标识;
处理模块,用于开启对所述租约的计时,并在所述连接未恢复正常时,持续判断所述租约是否超时;
处理模块,还用于若所述租约超时所述连接未恢复正常,则销毁所述第一环形队列;
若所述租约未超时所述连接恢复正常,则继续所述第一节点与所述第二节点基于RDAM的数据传输。
9.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583102.5A CN114996200B (zh) | 2022-05-26 | 2022-05-26 | 基于rdma的数据传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210583102.5A CN114996200B (zh) | 2022-05-26 | 2022-05-26 | 基于rdma的数据传输方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114996200A true CN114996200A (zh) | 2022-09-02 |
CN114996200B CN114996200B (zh) | 2024-05-07 |
Family
ID=83028799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210583102.5A Active CN114996200B (zh) | 2022-05-26 | 2022-05-26 | 基于rdma的数据传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114996200B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131170A1 (en) * | 2009-08-21 | 2012-05-24 | William John Spat | System and method for fulfilling requests using a mobile device |
CN105978985A (zh) * | 2016-06-07 | 2016-09-28 | 华中科技大学 | 一种用户态RPC over RDMA的内存管理方法 |
CN110058933A (zh) * | 2019-04-25 | 2019-07-26 | 国网山东省电力公司 | 一种Linux系统下实现百微秒级遥信SOE的方法及系统 |
CN113342863A (zh) * | 2021-05-12 | 2021-09-03 | 微民保险代理有限公司 | 业务单据处理方法、装置、计算机设备和存储介质 |
CN113867993A (zh) * | 2021-12-03 | 2021-12-31 | 维塔科技(北京)有限公司 | 虚拟化的rdma方法、系统、存储介质及电子设备 |
CN114201317A (zh) * | 2021-12-16 | 2022-03-18 | 北京有竹居网络技术有限公司 | 数据传输方法、装置、存储介质及电子设备 |
CN114281484A (zh) * | 2021-12-29 | 2022-04-05 | 元心信息科技集团有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114417373A (zh) * | 2021-12-28 | 2022-04-29 | 联想(北京)有限公司 | 一种NVMe-oF用户态客户端的数据访问方法和装置 |
-
2022
- 2022-05-26 CN CN202210583102.5A patent/CN114996200B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120131170A1 (en) * | 2009-08-21 | 2012-05-24 | William John Spat | System and method for fulfilling requests using a mobile device |
CN105978985A (zh) * | 2016-06-07 | 2016-09-28 | 华中科技大学 | 一种用户态RPC over RDMA的内存管理方法 |
CN110058933A (zh) * | 2019-04-25 | 2019-07-26 | 国网山东省电力公司 | 一种Linux系统下实现百微秒级遥信SOE的方法及系统 |
CN113342863A (zh) * | 2021-05-12 | 2021-09-03 | 微民保险代理有限公司 | 业务单据处理方法、装置、计算机设备和存储介质 |
CN113867993A (zh) * | 2021-12-03 | 2021-12-31 | 维塔科技(北京)有限公司 | 虚拟化的rdma方法、系统、存储介质及电子设备 |
CN114201317A (zh) * | 2021-12-16 | 2022-03-18 | 北京有竹居网络技术有限公司 | 数据传输方法、装置、存储介质及电子设备 |
CN114417373A (zh) * | 2021-12-28 | 2022-04-29 | 联想(北京)有限公司 | 一种NVMe-oF用户态客户端的数据访问方法和装置 |
CN114281484A (zh) * | 2021-12-29 | 2022-04-05 | 元心信息科技集团有限公司 | 数据传输方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
ZUBAIR MD. FADLULAH: ""A dynamic trajectory control algorithm for improving the communication throughput and delay in UAV-aided networks"", 《IEEE NETWORK》, vol. 30, no. 1, 25 January 2016 (2016-01-25), pages 100 - 105, XP011596922, DOI: 10.1109/MNET.2016.7389838 * |
张同光: ""RDMA在数据中心的可靠传输"", Retrieved from the Internet <URL:《https://www.cnblogs.com/ztguang/15149320.html》> * |
李博杰: ""基于可编程网卡的高性能数据中心系统"", 《中国博士学位论文全文数据库 信息科技辑》, no. 2019, 15 August 2019 (2019-08-15), pages 137 - 4 * |
Also Published As
Publication number | Publication date |
---|---|
CN114996200B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9916113B2 (en) | System and method for mirroring data | |
US7518983B2 (en) | Proxy response apparatus | |
CN105208124A (zh) | 管理锁的方法及装置、确定锁管理服务器的方法及装置 | |
CN108667635B (zh) | 一种容灾处理的方法、设备及系统 | |
CN111130879A (zh) | 一种基于pbft算法的集群异常恢复方法 | |
CN105472024A (zh) | 一种基于消息推送模式的跨地域数据同步方法 | |
WO2017101731A1 (zh) | 数据库的服务提供方法和系统 | |
JP5039975B2 (ja) | ゲートウェイ装置 | |
CN111355569A (zh) | 时间同步方法、装置、系统、节点及可读存储介质 | |
CN112492030B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
JP2008103952A (ja) | 通信管理装置および通信管理方法 | |
CN105790985B (zh) | 数据倒换的方法、第一设备、第二设备及系统 | |
CN114996200B (zh) | 基于rdma的数据传输方法、装置、设备及存储介质 | |
CN116048538B (zh) | 用于dpu的服务网格部署方法及装置 | |
JP4566148B2 (ja) | ネットワーク疎通監視システム、ネットワーク疎通監視方法、中央装置、中継装置及びコンピュータプログラム | |
KR20040016137A (ko) | 에스지에스엔과 지지에스엔간의 시각 동기화 시스템 및 방법 | |
CN106230747B (zh) | 恢复tcp连接序列号的方法、装置及系统 | |
US10320663B2 (en) | Communication device, communication system, and computer program product for performing interactive communication via relay servers | |
EP2012492A1 (en) | Communication system, IPsec tunnel termination device, and IPsec tunnel communication continuation method used for them | |
CN102301337A (zh) | 在高度可用的环境中保存服务的方法 | |
CN110890989A (zh) | 一种通道连接方法及装置 | |
KR102000162B1 (ko) | 저사양 기기의 소프트웨어 업데이트 지원 장치 및 방법 | |
JP2006230023A (ja) | 暗号化通信方法 | |
CN115134220B (zh) | 主备服务器切换方法及装置、计算设备和存储介质 | |
CN115643237B (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 |