机器学习和RDMA加速的键值存储读访问方法及系统技术方案

技术编号:25270177 阅读:27 留言:0更新日期:2020-08-14 23:03
本发明专利技术提供了一种机器学习和RDMA加速的键值存储读访问方法及系统,包括:步骤S1:采用机器学习模型来预测服务器端键值存储的位置,令客户端通过远程过程调用获取服务器端的学习完的模型;步骤S2:在客户端处理用户的键值请求时,令客户端首先通过获取的机器学习模型来预测键值请求的键所对应的地址,最后通过RDMA单向操作来读回请求的键所对应的值。本发明专利技术采用RDMA单向(one‑sided)操作来绕过服务器端CPU处理键值请求,有效的减少服务器端处理器的利用。

【技术实现步骤摘要】
机器学习和RDMA加速的键值存储读访问方法及系统
本专利技术涉及网络
,具体地,涉及机器学习和RDMA加速的键值存储读访问方法及系统。尤其地,涉及使用机器学习和RDMA来实现高吞吐,低延迟,低CPU利用率的基于网络的内存键值存储读访问的方法和系统。
技术介绍
基于网络的内存键值存储访问对现代网络应用非常重要,比如加速传统数据库的访问性能。由于针对键值存储的访问都在这些应用的关键路径上,因此对键值存储访问的性能十分重要。同时,这些键值存储系统需要有低的处理器利用率;以降低系统的能耗并减少其他应用对键值存储系统的性能影响。随着RemoteDirectMemoryAccess(RDMA),一种新兴的网络技术在数据中心的普及,人们开始利用RDMA来实现低CPU利用率的键值存储系统。特别的,RDMA提供了新的原语(one-sided),使得客户端可以利用单向(one-sided)操作绕过服务器端的CPU来读写服务器端的内存。这样,利用单向(one-sided)原语来实现键值存储访问,客户端便能够完全绕过服务器端的处理器,达到低CPU利用率。然而,尽管RDMA具有高吞吐和低延迟的特性,利用RDMA的键值存储通常没有完全利用RDMA的高性能。这是由于RDMA单向(one-sided)操作只提供了有限的语义,使得基于RDMA单向(one-sided)的键值存储操作需要多个RDMA操作来完成。这是由于传统的键值存储的索引(Index)比如B+Tree的操作无法使用一次RDMA操作完成。这样,即使单个RDMA操作具有非常高的性能,使用多个RDMA请求来完成一个键值请求也有非常大的开销。本专利技术基于一个观察:基于机器学习(machinelearning)的模型可以根据键值对(key-valuepair)的键(key)来预测值所存贮的位置。这样,我们可以利用机器学习模型来简化键值存储的的索引操作;这样使得我们可以用更少的RDMA操作来索引存储。虽然有使用机器学习模型来加速单机的键值存储,如何高效的利用RDMAone-sided操作来加速基于网络的键值存储依旧是一个需要解决的问题。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种机器学习和RDMA加速的键值存储读访问方法及系统。根据本专利技术提供的一种机器学习和RDMA加速的键值存储读访问方法,包括:步骤S1:采用机器学习模型来预测服务器端键值存储的位置,令客户端通过远程过程调用获取服务器端的学习完的模型;步骤S2:在客户端处理用户的键值请求时,令客户端首先通过获取的机器学习模型来预测键值请求的键所对应的地址,最后通过RDMA单向操作来读回请求的键所对应的值。优选地,所述步骤S2包括:步骤S201:客户端判断是否已接收到服务器端的的机器学习模型:如果没有接收到,则执行步骤S206;否则,则执行步骤S202;步骤S202:令客户端使用机器学习模型预测键值读请求的键所对应值在服务器端的位置的范围,执行步骤S203;步骤S203:令客户端根据步骤S202预测的范围,使用一次RDMA单向读操作将对应范围的键以及其所对应的值的地址取回,执行步骤S204;步骤S204:令客户端在取回的键中搜索用户请求所需要的键:如果找到需要的键,则执行步骤S205;否则执行步骤S207;步骤S205:令客户端使用一次RDMA单向读操作将找到的键的值地址对应的值取回,并将这个值返回给用户;步骤S206:令客户端向服务器端发送请求获取其构建的用来预测键值位置的机器学习模型;随后执行步骤S207;步骤S207:令客户端向服务器端发送请求执行用户的键值请求,并将服务器返回的值返回给用户。优选地,所述的步骤S201中服务器端的机器学习模型为神经网络模型或线性回归模型。优选地,所述步骤S202中通过将用户的键传入机器学习模型,将机器学习模型的输出作为预测结果。优选地,所述步骤S202中服务器端使用有序数组来存储所有键值数据。优选地,所述步骤S202中键和键对应的值的地址存储在有序数组中。优选地,所述的步骤S202中的位置的范围指的是服务器端有序数组的下标范围。优选地,所述步骤S204中所取回的键指的是服务器的有序数组在所述步骤S202中的下标范围中所对应的键。优选地,所述的步骤S206中客户端使用远程过程调用向服务器发送请求。优选地,所述的步骤S207中客户端使用远程过程调用向服务器发送请求。根据本专利技术提供的一种利用机器学习和RDMA加速的键值存储读访问系统,包括:模块S1:采用机器学习模型来预测服务器端键值存储的位置,令客户端通过远程过程调用获取服务器端的学习完的模型;模块S2:在客户端处理用户的键值请求时,令客户端首先通过获取的机器学习模型来预测键值请求的键所对应的地址,最后通过RDMA单向操作来读回请求的键所对应的值;所述模块S2包括:模块S201:客户端判断是否已接收到服务器端的的机器学习模型:如果没有接收到,则执行模块S206;否则,则执行模块S202;模块S202:令客户端使用机器学习模型预测键值读请求的键所对应值在服务器端的位置的范围,调用模块S203;模块S203:令客户端根据模块S202预测的范围,使用一次RDMA单向读操作将对应范围的键以及其所对应的值的地址取回,调用模块S204;模块S204:令客户端在取回的键中搜索用户请求所需要的键:如果找到需要的键,则调用模块S205;否则调用模块S207;模块S205:令客户端使用一次RDMA单向读操作将找到的键的值地址对应的值取回,并将这个值返回给用户;模块S206:令客户端向服务器端发送请求获取其构建的用来预测键值位置的机器学习模型,随后调用模块S207;模块S207:令客户端向服务器端发送请求执行用户的键值请求,并将服务器返回的值返回给用户;所述的模块S201中服务器端的机器学习模型为神经网络模型或线性回归模型;所述模块S202中通过将用户的键传入机器学习模型,将机器学习模型的输出作为预测结果;所述模块S202中服务器端使用有序数组来存储所有键值数据;所述模块S202中键和键对应的值的地址存储在有序数组中;所述的模块S202中的位置的范围指的是服务器端有序数组的下标范围;所述模块S204中所取回的键指的是服务器的有序数组在所述模块S202中的下标范围中所对应的键;所述的模块S206中客户端使用远程过程调用向服务器发送请求;所述的模块S207中客户端使用远程过程调用向服务器发送请求。与现有技术相比,本专利技术具有如下的有益效果:1.本专利技术采用RDMA单向(one-sided)操作来绕过服务器端CPU处理键值请求,有效的减少服务器端处理器的利用。2.本专利技术客户端只使用两次RDMA操作来执行一个键值请求,具有很好的性能。...

【技术保护点】
1.一种机器学习和RDMA加速的键值存储读访问方法,其特征在于,包括:/n步骤S1:采用机器学习模型来预测服务器端键值存储的位置,令客户端通过远程过程调用获取服务器端的学习完的模型;/n步骤S2:在客户端处理用户的键值请求时,令客户端首先通过获取的机器学习模型来预测键值请求的键所对应的地址,最后通过RDMA单向操作来读回请求的键所对应的值。/n

【技术特征摘要】
1.一种机器学习和RDMA加速的键值存储读访问方法,其特征在于,包括:
步骤S1:采用机器学习模型来预测服务器端键值存储的位置,令客户端通过远程过程调用获取服务器端的学习完的模型;
步骤S2:在客户端处理用户的键值请求时,令客户端首先通过获取的机器学习模型来预测键值请求的键所对应的地址,最后通过RDMA单向操作来读回请求的键所对应的值。


2.根据权利要求1所述的机器学习和RDMA加速的键值存储读访问方法,其特征在于,所述步骤S2包括:
步骤S201:客户端判断是否已接收到服务器端的的机器学习模型:如果没有接收到,则执行步骤S206;否则,则执行步骤S202;
步骤S202:令客户端使用机器学习模型预测键值读请求的键所对应值在服务器端的位置的范围,执行步骤S203;
步骤S203:令客户端根据步骤S202预测的范围,使用一次RDMA单向读操作将对应范围的键以及其所对应的值的地址取回,执行步骤S204;
步骤S204:令客户端在取回的键中搜索用户请求所需要的键:如果找到需要的键,则执行步骤S205;否则执行步骤S207;
步骤S205:令客户端使用一次RDMA单向读操作将找到的键的值地址对应的值取回,并将这个值返回给用户;
步骤S206:令客户端向服务器端发送请求获取其构建的用来预测键值位置的机器学习模型;随后执行步骤S207;
步骤S207:令客户端向服务器端发送请求执行用户的键值请求,并将服务器返回的值返回给用户。


3.根据权利要求2所述的机器学习和RDMA加速的键值存储读访问方法,其特征在于,所述的步骤S201中服务器端的机器学习模型为神经网络模型或线性回归模型。


4.根据权利要求2所述的机器学习和RDMA加速的键值存储读访问方法,其特征在于,所述步骤S202中通过将用户的键传入机器学习模型,将机器学习模型的输出作为预测结果。


5.根据权利要求2所述的机器学习和RDMA加速的键值存储读访问方法,其特征在于,所述步骤S202中服务器端使用有序数组来存储所有键值数据。


6.根据权利要求2所述的机器学习和RDMA加速的键值存储读访问方法,其特征在于,所述步骤S202中键和键对应的值的地址存储在有序数组中;
所述的步骤S202中的位置的范围指的是服务器端有序数组的下标范围。


7.根据权利要求6所述的机器学习和RDMA加速的键值存储读访问方法,其特征在于,所述步骤S204中所取回的键指的是服务器的有序数组在...

【专利技术属性】
技术研发人员:陈榕魏星达陈海波臧斌宇
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1