读写请求处理方法、装置、电子设备以及存储介质制造方法及图纸

技术编号:21377816 阅读:51 留言:0更新日期:2019-06-15 13:26
本发明专利技术公开了一种读写请求处理方法、装置、电子设备以及存储介质,属于数据处理领域。本方法通过对各个终端进行分组,并为每个终端组分配不同的服务时长,使得服务器在任一服务时长内,仅能处理与该服务时长对应的终端组中的终端的发送的读写请求,从而基于该终端组中的终端发送的读写请求所生成的QP和WQE有限,可以使得服务器的网卡的缓存区只存储有限的QP和WQE,进而可以避免出现网卡的缓存区出现资源分布不均的问题。

【技术实现步骤摘要】
读写请求处理方法、装置、电子设备以及存储介质
本专利技术涉及数据处理
,特别涉及一种读写请求处理方法、装置、电子设备以及存储介质。
技术介绍
远程直接数据存取(remotedirectmemoryaccess,RDMA)可以通过网络将数据从一个系统快速移动到远程系统的存储器中,而不对操作系统造成任何影响,由于RDMA的低延迟和高带宽特性,使得RDMA被广泛地应用于分布式系统中,在该分布式系统中服务端的通过RDMA网卡可以处理客户端的读写请求,使得服务端可以直接将读写请求中的数据写入服务端的内存中,或者将服务端内存中的数据直接发送给客户端。目前,服务端处理读写请求可以通过下述过程来实现:将服务端的RDMA网卡的缓存区划分为多个子缓存区;客户端与服务端建立通信连接后,服务端在自己的RDMA网卡的对应的子缓存区上创建并初始化队列对(queuepairs,QP),每对QP包括发送队列(sendqueue,SQ)和接收队列(receivequeue,RQ),且在该QP的RQ中注册工作队列单元(workqueueelement,WQE),该WQE用于指示该服务端内存中的一个存储位置;当该客户端向该服务端的RDMA网卡发送读写请求时,服务端根据QP中的与该客户端对应的SQ,可以确定与该SQ对应的RQ,从而在该RQ中可以确定WQE,进而当该读写请求为读请求时,该服务端可以直接将该WQE指示的存储位置上的数据发送给该客户端,当该读写请求为写请求时,该服务端可以直接在该WQE指示的存储位置上写入该写请求中待写入的数据。在上述服务端处理读写请求的过程中,服务端的RDMA网卡的子缓存区可以存储SQ和WQE,当子缓存区负责的客户端增加时,该子缓存区将需要存储大量的SQ和WQE,当该子缓存区的内存较小时,该子缓存区可能无法同时存储大量的SQ和WQE,当该子缓存区的内存较大时,该子缓存区在存储完所有的SQ和WQE后,可能还会有空置的内存没有用到,就会造成子缓存区资源的浪费,所以,通过给服务端的RDMA网卡划分缓存区,会导致RDMA网卡缓存区资源分布不均的问题。
技术实现思路
本专利技术实施例提供了一种读写请求处理方法、装置、电子设备以及存储介质,能够解决网卡缓存区资源分布不均的问题。该技术方案如下:第一方面,提供了一种读写请求处理方法,该方法由服务器执行,包括:对多个终端进行分组,得到多个终端组,每个终端组包括至少一个终端,该多个终端与该服务器相连接;为该每个终端组分配对应的服务时长;在任一个服务时长内,处理与该服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求。在一种可能实现方式中,该对多个终端进行分组,包括:确定多个终端的优先级;将优先级相同的终端分配至一个终端组中,每个终端组对应一个优先级。在一种可能实现方式中,该确定多个终端的优先级,包括:获取多个终端在预设时间内的吞吐量以及每个终端的读写请求的平均数据量大小;根据该每个终端的吞吐量以及该每个终端的读写请求的平均数据量大小,确定该每个终端的优先级。在一种可能实现方式中,该根据该每个终端的吞吐量以及读写请求的平均数据量大小,确定该每个终端的优先级,包括:根据该每个终端的权重参数、该每个终端的吞吐量以及该每个终端的读写请求的平数据量均大小,确定该每个终端的优先级。基于上述可能的实现方式,可以为各个终端分配优先级,加入了权重参数,使得承担重要业务的终端的优先级更高,从而使得服务器可以重点处理承担重要业务的终端。在一种可能实现方式中,将优先级相同的终端分配至一个终端组中之后,该方法还包括:根据该每个终端组的优先级,确定该每个终端组的最大终端数;当一个终端组内的终端的数目大于该终端组的预设终端数时,将该终端组拆分成多个终端组;当一个终端组内的终端的数目小于该终端组的预设终端数时,将至少一个第一终端组与该终端组合并,得到第二终端组,该第二终端组中的终端的数目不大于该第二终端组的预设终端数,该第二终端组的优先级由该第二终端组中的多数终端的优先级来决定,该第一终端组的优先级与该终端组的优先级相同或优先级之差小于预设数值。在一种可能实现方式中,将优先级相同的终端分配至一个终端组中之后,该方法还包括:根据该服务器的处理能力以及每个终端的优先级,确定每个终端组的最大终端数;当一个终端组内的终端的数目大于该终端组的最大终端数时,将该终端组拆分成多个终端组;当一个终端组内的终端的数目小于该终端组的最大终端数时,将至少一个第三终端组与该终端组合并,得到第四终端组,该第四终端组中的终端的数目不大于该第四终端组的最大预设终端数,该第四终端组的优先级由该第四终端组中的多数终端的优先级来决定,该第三终端组的优先级与该终端组的优先级相同或优先级之差小于预设数值。基于上述可能的实现方式,基于服务器的网卡的缓存区资源、CPU资源以及终端组的优先级,来调整每个终端组中终端的数目,可以使得服务器的网卡的缓存区资源和CPU资源可以充分利用。在一种可能实现方式中,以第一预设服务时长为基准时长,根据该每个终端组的优先级,为该每个终端组分配不同的服务时长,所分配的服务时长在该第一预设服务时长的预设范围内。在一种可能实现方式中,在一个服务时长内,处理与该服务时长对应的组中的终端发送的读写请求,包括:根据等待队列中的存储顺序,从该等待队列中获取待处理的终端组,该等待队列用于存储终端组;每获取到一个终端组,在与该终端组对应的服务时长内,处理该终端组中的终端发送的读写请求;当经过与该终端组对应的服务时长后,停止处理该终端组中的终端发送的读写请求,将该终端组存储至该等待队列的队尾。基于上述可能的实现方式,可以使得该服务器只能接收一个终端组的终端发送的读写请求,进而可以避免服务器接收大量的发送读写请求,进而可以避免大量的读写请求在该服务器处等待处理,进而达到了限流的目的。在一种可能实现方式中,该等待队列用于根据该每个终端组的优先级存储该每个终端组。基于上述可能的实现方式,可以使得优先级较高的终端组中的终端发送的读写请求可以被优先处理在一种可能实现方式中,该方法还包括:当该终端组对应的服务时长能够满足该终端组中的终端的业务处理需求,且还有剩余时长时,减少与该终端组对应的服务时长;当该终端组对应的服务时长不能够满足该终端组中的终端的业务处理需求,增加与该终端组对应的服务时长。基于上述可能的实现方式,随着服务器对各个终端组对应的服务时长的调整,可以使得该服务器在各个终端组对应的调整后的时长内,可以正好完成对各个终端组中的终端所发送读写请求的处理,进而服务器不会出现空闲的情况,从而进一步提高了服务器的利用率。在一种可能实现方式中,在一个服务时长内,处理与该服务时长对应的终端组中的终端发送的读写请求之前,该方法还包括:向与该服务时长对应的终端组中的终端发送响应,该响应用于通知终端向该服务器发送读写请求。基于上述可能的实现方式,可以使得只有接收响应的终端才能向该服务器发送读写请求,进而使得该服务器只能接收该终端组的终端发送的读写请求,可以避免服务器接收大量的发送读写请求,进而可以避免大量的读写请求在该服务器处等待处理,进而达到了限流的目的,另外还可以使得其他终端组中终端发送无用的读写请求,降低本文档来自技高网
...

【技术保护点】
1.一种读写请求处理方法,其特征在于,所述方法由服务器执行,包括:对多个终端进行分组,得到多个终端组,每个终端组包括至少一个终端,所述多个终端与所述服务器相连接;为所述每个终端组分配对应的服务时长;在任一个服务时长内,处理与所述服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求。

【技术特征摘要】
1.一种读写请求处理方法,其特征在于,所述方法由服务器执行,包括:对多个终端进行分组,得到多个终端组,每个终端组包括至少一个终端,所述多个终端与所述服务器相连接;为所述每个终端组分配对应的服务时长;在任一个服务时长内,处理与所述服务时长对应的终端组中的终端所发送的读写请求,不处理与其他服务时长对应的终端组中终端所发送的读写请求。2.根据权利要求1所述的方法,其特征在于,所述对多个终端进行分组,包括:确定多个终端的优先级;将优先级相同的终端分配至一个终端组中,每个终端组对应一个优先级。3.根据权利要求2所述的方法,其特征在于,所述确定多个终端的优先级,包括:获取多个终端在预设时间内的吞吐量以及每个终端的读写请求的平均数据量大小;根据所述每个终端的吞吐量以及所述每个终端的读写请求的平均数据量大小,确定所述每个终端的优先级。4.根据权利要求3所述的方法,其特征在于,所述根据所述每个终端的吞吐量以及读写请求的平均数据量大小,确定所述每个终端的优先级,包括:根据所述每个终端的权重参数、所述每个终端的吞吐量以及所述每个终端的读写请求的平数据量均大小,确定所述每个终端的优先级。5.根据权利要求2所述的方法,其特征在于,所述将优先级相同的终端分配至一个终端组中之后,所述方法还包括:根据所述每个终端组的优先级,确定所述每个终端组的预设终端数;当一个终端组内的终端的数目大于所述终端组的预设终端数时,将所述终端组拆分成多个终端组;当一个终端组内的终端的数目小于所述终端组的预设终端数时,将至少一个第一终端组与所述终端组合并,得到第二终端组,所述第二终端组中的终端的数目不大于所述第二终端组的预设终端数,所述第二终端组的优先级由所述第二终端组中的多数终端的优先级来决定,所述第一终端组的优先级与所述终端组的优先级相同或优先级之差小于预设数值。6.根据权利要求2所述的方法,其特征在于,所述将优先级相同的终端分配至一个终端组中之后,所述方法还包括:根据所述服务器的处理能力以及所述每个终端组的优先级,确定所述每个终端组的最大终端数;当一个终端组内的终端的数目大于所述终端组的最大终端数时,将所述终端组拆分成多个终端组;当一个终端组内的终端的数目小于所述终端组的最大终端数时,将至少一个第三终端组与所述终端组合并,得到第四终端组,所述第四终端组中的终端的数目不大于所述第四终端组的最大预设终端数,所述第四终端组的优先级由所述第四终端组中的多数终端的优先级来决定,所述第三终端组的优先级与所述终端组的优先级相同或优先级之差小于预设数值。7.根据权利要求2所述的方法,其特征在于,所述方法还包括:以第一预设服务时长为基准时长,根据所述每个终端组的优先级,为所述每个终端组分配不同的服务时长,所分配的服务时长在所述第一预设服务时长的预设范围内。8.根据权利要求1所述的方法,其特征在于,所述在一个服务时长内,处理与所述服务时长对应的组中的终端发送的读写请求,包括:根据等待队列中的存储顺序,从所述等待队列中获取待处理的终端组,所述等待队列用于存储终端组;每获取到一个终端组,在与所述终端组对应的服务时长内,处理所述终端组中的终端发送的读写请求;当经过与所述终端组对应的服务时长后,停止处理所述终端组中的终端发送的读写请求,将所述终端组存储至所述等待队列的...

【专利技术属性】
技术研发人员:舒继武陈游旻陆游游崔文林
申请(专利权)人:华为技术有限公司清华大学
类型:发明
国别省市:广东,44

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

1