当前位置: 首页 > 专利查询>清华大学专利>正文

一种基于持久性内存的远程数据传输方法技术

技术编号:24862907 阅读:109 留言:0更新日期:2020-07-10 19:13
本发明专利技术涉及持久性内存的远程数据传输技术领域,具体涉及一种基于持久性内存的远程数据传输方法,包括RDMA连接的客户端和配置有持久性内存的服务端,客户端向服务端发送远程数据传输请求,当接收到返回结果,提供返回消息池地址和回调函数的方式对返回结果进行操作;客户端通过负载均衡策略连接到服务端,客户端提供远程过程调用操作远端持久性内存和远程直接读写内存的数据传输方式,该远程直接读写内存支持远程持久化写内存;服务端接收远程数据传输请求并发送返回结果;服务端管理持久性内存与消息池,并支持不同服务端之间调用嵌套远程过程调用。该方法具备高效的多客户端并发远程数据操作性能、服务端可扩展能力和持久性内存友好性。

【技术实现步骤摘要】
一种基于持久性内存的远程数据传输方法
本专利技术涉及持久性内存的远程数据传输
,具体涉及一种基于持久性内存的远程数据传输方法。
技术介绍
持久性内存技术(PersistentMemory,PM)是一种新型、不断发展的存储技术,具有低延迟、高吞吐、成本低的特点。持久性内存的吞吐和延迟都优于固态硬盘存储,并且持久性内存可以直接当作内存访问;相对于动态随机存取存储器,持久性内存存储是非易失的。远程内存直接访问技术(RemoteDirectMemoryAccess,RDMA)是一种新型的网络技术,它可以绕过系统内核,避免了复杂传统协议栈的开销,只使用远程网卡而不涉及远程CPU来执行远程内存访问,所以它具有低延迟和高吞吐的特点,为存储节点之间的通信提供了高效的方案。远程数据传输是一种重要的网络存储操作,分布式网络存储的数据存储在不同的节点上,节点之间通过远程数据传输完成数据操作。在持久性内存未出现之前,存储节点数据存放在磁盘中,远程数据传输操作需要通过内存与磁盘的数据传输,低吞吐高延迟的特点无法发挥RDMA网络的高效性能。那么,如何利用高性能的新型存储硬件和高效的网络通信技术,构建能够充分发挥两者低延迟、高吞吐特点的高效远程数据传输方法,就是本领域技术人员的亟待解决的问题现有的一些在持久性内存上设计的远程数据传输方法,将持久性内存作为内存,利用RDMA的网络完成远程数据传输,单纯利用持久性内存和RDMA网络新硬件低延迟、高吞吐的特性构建远程数据传输方法。然而,单纯用RDMA完成远程数据传输存在问题,频繁数据拷贝无法发挥持久性内存低延迟高吞吐的特点,持久性内存的持久化操作需要远端CPU参与,同时新硬件的使用会使软件层的开销变得更加明显。所以,直接地将原有针对内存磁盘的远程数据传输方法移植到持久性内存上来,无法发挥持久性内存低延迟、高吞吐、可持久化的特点,需要根据新硬件的特点重新设计软件。
技术实现思路
本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于持久性内存的远程数据传输方法,具备高效的多客户端并发远程数据操作性能、服务端可扩展能力和持久性内存友好性。为达此目的,本专利技术实施例提出了一种基于持久性内存的远程数据传输方法,包括:所述客户端向所述服务端发送远程数据传输请求,当接收到所述服务端根据所述远程数据传输请求发出的返回结果,提供返回消息池地址和回调函数的方式对所述返回结果进行操作;其中,所述客户端和所述服务端的连接方式为RDMA连接,所述客户端通过负载均衡策略连接到所述服务端,所述客户端提供远程过程调用操作远端持久性内存的数据传输方式和远程直接读写内存的数据传输方式,所述远程直接读写内存支持远程持久化写内存;所述服务端接收所述客户端发送的所述远程数据传输请求并处理所述远程数据传输请求得到返回结果,将所述返回结果发送至所述客户端;其中,所述服务端配置有持久性内存且与所述客户端RDMA连接,所述服务端管理所述持久性内存与消息池,并支持不同服务端之间调用嵌套远程过程调用。本专利技术实施例的一种基于持久性内存的远程数据传输方法,结合RDMA技术的优势和限制,设计更适合于持久性内存的远程数据传输方法,能够同时提供具备高效的多客户端并发远程数据操作性能、服务端可扩展能力和持久性内存友好性的完善全面的远程数据传输方式。另外,根据本专利技术上述实施例的一种持久性内存键值存储系统还可以具有以下附加的技术特征:进一步地,所述RDMA连接的建立过程中,所述客户端通过中心化的管理节点获取唯一的客户端ID,所述服务端根据所述客户端ID分配负载均衡的连接线程;所述远程过程调用与所述远程持久化写内存的操作采用RDMA的WRITE_WITH_IMM原语进行数据通信,所述远程直接读写通过RDMA的WRITE原语与RDMA的READ原语通信。进一步地,所述负载均衡策略连接包括若干个所述客户端均匀地与所述服务端的多个线程连接,不同的服务端之间线程均匀连接。进一步地,所述远程过程调用的接口包括同步、异步和嵌套调用接口,所述接口支持变长和不定个数参数;所述远程过程调用操作为所述客户端调用远程的函数执行远程数据传输,所述调用远程的函数为所述客户端指定调用信息的处理方式;其中,所述调用信息包括调用函数的服务端唯一编号,调用的函数名称,可变长可多参数的参数列表和返回值处理方式;所述远程过程调用操作远端持久性内存,包括:所述客户端将指定的所述调用信息填入所述客户端的客户端消息池,并通过RDMA连接直接写入到所述服务端的服务端消息池,以供所述服务端根据所述调用信息执行调用函数,并将执行后的返回结果通过RDMA连接直接写入到所述客户端消息池,所述客户端处理所述返回结果。进一步地,所述远程直接读写的接口包括直接读写接口和持久化写接口,所述远程直接读写内存包括所述客户端通过RDMA的WRITE原语与RDMA的READ原语读写所述服务端的持久性内存;所述远程直接读写内存的持久化写内存,包括:通过RDMA的WRITE原语写数据,通过远程过程调用将持久化操作发送给所述服务端;或;通过远程过程调用的方式将数据与持久化操作同时发送给所述服务端,以便所述服务端将所述数据从服务端消息池拷贝到对应写区域,完成持久化操作;其中,所述持久化操作为调用CPU的持久化指令将数据从CPU缓存中刷写至所述持久性内存中。进一步地,所述提供返回消息池地址和回调函数的方式对所述返回结果进行操作,包括:根据所述返回结果的消息池地址直接操作消息池,拷贝消息池返回信息到指定地址,或利用回调函数直接在消息池内存中完成对于返回结果的处理;其中,所述回调函数为在进行调用远程过程调用或远程直接读写操作时,指定当所述客户端获取所述服务端的返回结果时执行的操作,同时指定执行函数需要的上下文信息。进一步地,所述处理所述远程数据传输请求,包括:当所述远程数据传输请求为远程过程调用请求,所述服务端反序列化所述客户端远程过程调用的请求信息,执行调用函数完成操作;当所述远程数据传输请求为嵌套远程过程调用请求,所述服务端处理嵌套远程过程调用,向其他服务端发出远程过程调用的请求;当所述远程数据传输请求为远程直接读写请求,所述服务端的网卡处理读写请求;当所述远程数据传输请求为远程持久化写请求,所述服务端的网卡处理写请求,所述服务端完成持久化过程。进一步地,所述服务端管理所述持久性内存包括所述服务端进行内存注册和注册自定义调用函数,所述内存注册为将所述服务端的内存注册到网卡,允许所述网卡通过RDMA读写所述持久性内存的区域,以便减少持久性内存的内存拷贝次数;所述注册自定义调用函数为维护调用名称与调用函数的映射。进一步地,所述以便减少持久性内存的内存拷贝次数,包括:通过所述网卡直接访问内存以便减少直接读写的内存拷贝次数,执行直接操作内存池的消息池的请求信息以便减少远程过程调用的内存拷贝次数和远程调用结果直接写入消息池以便减少远程过程调用的内存拷贝次数。...

【技术保护点】
1.一种基于持久性内存的远程数据传输方法,其特征在于,包括:/n所述客户端向所述服务端发送远程数据传输请求,当接收到所述服务端根据所述远程数据传输请求发出的返回结果,提供返回消息池地址和回调函数的方式对所述返回结果进行操作;其中,所述客户端和所述服务端的连接方式为RDMA连接,所述客户端通过负载均衡策略连接到所述服务端,所述客户端提供远程过程调用操作远端持久性内存的数据传输方式和远程直接读写内存的数据传输方式,所述远程直接读写内存支持远程持久化写内存;/n所述服务端接收所述客户端发送的所述远程数据传输请求并处理所述远程数据传输请求得到返回结果,将所述返回结果发送至所述客户端;其中,所述服务端配置有持久性内存且与所述客户端RDMA连接,所述服务端管理所述持久性内存与消息池,并支持不同服务端之间调用嵌套远程过程调用。/n

【技术特征摘要】
1.一种基于持久性内存的远程数据传输方法,其特征在于,包括:
所述客户端向所述服务端发送远程数据传输请求,当接收到所述服务端根据所述远程数据传输请求发出的返回结果,提供返回消息池地址和回调函数的方式对所述返回结果进行操作;其中,所述客户端和所述服务端的连接方式为RDMA连接,所述客户端通过负载均衡策略连接到所述服务端,所述客户端提供远程过程调用操作远端持久性内存的数据传输方式和远程直接读写内存的数据传输方式,所述远程直接读写内存支持远程持久化写内存;
所述服务端接收所述客户端发送的所述远程数据传输请求并处理所述远程数据传输请求得到返回结果,将所述返回结果发送至所述客户端;其中,所述服务端配置有持久性内存且与所述客户端RDMA连接,所述服务端管理所述持久性内存与消息池,并支持不同服务端之间调用嵌套远程过程调用。


2.根据权利要求1所述的一种基于持久性内存的远程数据传输方法,其特征在于,所述RDMA连接的建立过程中,所述客户端通过中心化的管理节点获取唯一的客户端ID,所述服务端根据所述客户端ID分配负载均衡的连接线程;
所述远程过程调用与所述远程持久化写内存的操作采用RDMA的WRITE_WITH_IMM原语进行数据通信,所述远程直接读写通过RDMA的WRITE原语与RDMA的READ原语通信。


3.根据权利要求1所述的一种基于持久性内存的远程数据传输方法,其特征在于,所述负载均衡策略连接包括若干个所述客户端均匀地与所述服务端的多个线程连接,不同的服务端之间线程均匀连接。


4.根据权利要求2所述的一种基于持久性内存的远程数据传输方法,其特征在于,所述远程过程调用的接口包括同步、异步和嵌套调用接口,所述接口支持变长和不定个数参数;所述远程过程调用操作为所述客户端调用远程的函数执行远程数据传输,所述调用远程的函数为所述客户端指定调用信息的处理方式;其中,所述调用信息包括调用函数的服务端唯一编号,调用的函数名称,可变长可多参数的参数列表和返回值处理方式;
所述远程过程调用操作远端持久性内存,包括:所述客户端将指定的所述调用信息填入所述客户端的客户端消息池,并通过RDMA连接直接写入到所述服务端的服务端消息池,以供所述服务端根据所述调用信息执行调用函数,并将执行后的返回结果通过RDMA连接直接写入到所述客户端消息池,所述客户端处理所述返回结果。


5.根据权利要求2所述的一种基于持久性内存的远程数据传输方法,其特征在于,所述远程直接读写的接口包括直接读写接口和持久化写接口,所述远程直接读写内存包括所述客户端通过RDMA的WRITE原语与RDMA的READ原语读写所述服务端的持久性内存;
所述远程直接读写内存的持久化写内存,包括:
通过RDMA的...

【专利技术属性】
技术研发人员:舒继武陆游游李俊儒汪庆
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

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

1