1 .一种RDMA服务的实现方法,其特征在于,RDMA服务的verbs接口之上封装着用于提供
socket接口语义功能的抽象层,所述方法包括数据接收阶段和数据发送阶段,其中,所述数
据接收阶段包括:
通过所述抽象层中的socket接口语义功能,调用所述verbs接口将从发送方处接收到
的数据缓存到RDMA内存区;
直接读取RDMA内存区中的数据进行序列化,将序列化后的数据存储到预设数据库中,
其中,所述预设数据库为使用socket接口的数据库。
2 .根据权利要求1所述的方法,其特征在于,所述数据发送阶段包括:
通过所述抽象层中的socket接口语义功能,调用所述verbs接口将预设数据库中的数
据缓存到RDMA内存区;
直接读取RDMA内存区中的数据进行反序列化,将反序列化后的数据发送到接收方,其
中,所述预设数据库为使用socket接口的数据库。
3 .根据权利要求2所述的方法,其特征在于,在所述数据接收阶段和所述数据发送阶段
之前,所述方法包括:
基于信用的流量控制方式,建立发送方与接收方之间的RDMA链接,以避免通过所述
RDMA链接传输的数据超出所述接收方的处理极限。
4 .根据权利要求3所述的方法,其特征在于,基于信用的流量控制方式,建立发送方与
接收方之间的RDMA链接包括:
建立发送方与接收方之间的RDMA链接,在连接建立过程中所述发送方与所述接收方交
换credit信息,其中,所述credit信息与RDMA内存区的大小对应;
在通过所述RDMA链接进行数据传输的过程中,所述发送方根据所述接收方的credit信
息来控制发送的数据量,以避免所述数据量超出所述接收方的RDMA内存区的大小。
5 .根据权利要求2所述的方法,其特征在于,所述数据接收阶段和所述数据发送阶段的
网络事件处理框架为多线程run‑to‑complete的网络事件处理框架。
6 .根据权利要求5所述的方法,其特征在于,所述方法包括:
在所述数据接收阶段和所述数据发送阶段中,对于数据传输请求中每个网络包处理和
对应的业务逻辑处理,皆由同一个事件循环线程执行,即多个事件循环线程分别单独执行
不同的网络包处理和对应的业务逻辑处理。
7 .根据权利要求2所述的方法,其特征在于,所有RDMA链接都由一个中心化的多版本链
接管理机制维护。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述预设数据库为DolphinDB数
据库。
9 .一种RDMA服务的实现系统,其特征在于,所述系统用于执行上述权利要求1至8任一
项所述的方法,所述系统包括发送方和接收方;
所述接收方,用于通过所述抽象层中的socket接口语义功能,调用所述verbs接口将从
发送方处接收到的数据缓存到RDMA内存区;
所述接收方,用于直接读取RDMA内存区中的数据进行序列化,将序列化后的数据存储
到预设数据库中,其中,所述预设数据库为使用socket接口的数据库;
所述发送方,用于通过所述抽象层中的socket接口语义功能,调用所述verbs接口将预
权 利 要 求 书
1/2 页
2
评论