数据处理系统及方法
文献发布时间:2023-06-19 12:19:35
技术领域
本说明书涉及计算机技术领域,特别涉及数据处理系统及方法。
背景技术
数据中心网络越来越多的使用RDMA(Remote Direct Memory Access,远程直接数据存取),来实现分布式计算和分布式存储的高性能网络传输服务,数据中心分布式计算和存储通常在集群中使用全互联网通信模型,每个服务节点之间均会建立RDMA网络连接。而在大规模集群中,全互联网模型会在每个服务器节点上产生海量的RDMA网络连接,且RDMA网卡处理网络连接请求时需要将RDMA网络连接元信息加载到很小的网卡硬件缓存上,最终在处理海量连接的请求时,由于频繁的加载和换出数据,很容易造成RDMA网卡的数据收发性能急剧下降,造成网络性能瓶颈,因此亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本说明书实施例提供了数据处理系统。本说明书同时涉及数据处理方法,数据处理装置,计算设备,以及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理系统,包括:
第一服务端和第二服务端;
所述第一服务端,被配置为接收携带待处理数据的初始数据处理请求;通过向所述初始数据处理请求中添加虚拟队列标识获得中间数据处理请求;将所述中间数据处理请求封装为第一目标数据处理请求,并发送至所述第二服务端;
所述第二服务端,被配置为接收第二目标数据处理请求,并将所述第二目标数据处理请求添加至共享队列;在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列,其中,所述第二目标数据处理请求为所述第一目标数据请求之一。
可选地,所述第二服务端,还被配置为:
接收队列创建请求,根据所述队列创建请求创建所述共享队列,并建立至少一个第一服务端与所述共享队列的关联关系;所述至少一个第一服务端包含所述第一服务端。
可选地,所述发送方服务端,还被配置为:
接收虚拟队列创建请求,根据所述虚拟队列创建请求创建发送虚拟队列,并针对所述发送虚拟队列分配发送虚拟队列标识;将所述发送虚拟队列关联所述共享队列和发送物理队列,并向所述第二服务端发送携带有所述发送虚拟队列标识的建连请求。
可选地,所述第二服务端,还被配置为:
接收携带有所述发送虚拟队列标识的所述建连请求,根据所述建连请求创建所述虚拟队列,并针对所述虚拟队列分配所述虚拟队列标识;将所述虚拟队列关联所述共享队列和接收物理队列,以及建立所述虚拟队列标识和所述发送虚拟队列标识的第一标识对应关系;在所述虚拟队列中记录所述第一标识对应关系,并向所述第一服务端发送携带有所述虚拟队列标识的响应请求。
可选地,所述发送方服务端,还被配置为:
接收携带有所述虚拟队列标识的所述响应请求,建立所述发送虚拟队列标识和所述虚拟队列标识的第二标识对应关系;在所述发送虚拟队列中记录所述第二标识对应关系。
可选地,所述第一服务端,进一步被配置为:
根据所述发送虚拟队列中记录的所述第一标识对应关系,向所述初始数据处理请求中添加与所述发送虚拟队列标识对应的所述虚拟队列标识,获得所述中间数据处理请求。
可选地,所述第一服务端包括发送处理模块和发送传输模块;
所述发送处理模块,被配置为将所述中间数据处理请求提交到所述发送物理队列;
所述发送传输模块,被配置为在处理所述中间数据处理请求时刻,在所述发送物理队列中提取所述中间数据处理请求,并对所述中间数据处理请求进行封装,获得所述第一目标数据处理请求;向所述第二服务端发送所述第一目标数据处理请求。
可选地,所述第二服务端包括接收处理模块和接收传输模块;
所述接收传输模块,被配置为接收所述第二目标处理请求,并将所述第二目标数据处理请求提交至所述共享队列;
所述接收处理模块,被配置为在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求,并对所述第二目标数据处理请求进行解析,获得所述虚拟队列标识和所述待处理数据。
可选地,所述接收处理模块,进一步被配置为:
将所述待处理数据提交至所述虚拟队列标识对应的所述虚拟队列,并通过所述虚拟队列将所述待处理数据写入存储空间。
根据本说明书实施例的第二方面,提供了一种数据处理方法,包括:
第一服务端和第二服务端;
所述第一服务端接收携带待处理数据的初始数据处理请求;通过向所述初始数据处理请求中添加虚拟队列标识获得中间数据处理请求;将所述中间数据处理请求封装为第一目标数据处理请求,并发送至所述第二服务端;
所述第二服务端接收第二目标数据处理请求,并将所述第二目标数据处理请求添加至共享队列;在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列,其中,所述第二目标数据处理请求为所述第一目标数据请求之一。
根据本说明书实施例的第三方面,提供了另一种数据处理方法,应用于第二服务端,包括:
接收目标数据处理请求,并将所述目标数据处理请求添加至共享队列;
在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;
将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列。
根据本说明书实施例的第四方面,提供了一种数据处理装置,包括:
接收模块,被配置为接收目标数据处理请求,并将所述目标数据处理请求添加至共享队列;
解析模块,被配置为在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;
提交模块,被配置为将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列。
根据本说明书实施例的第五方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现所述数据处理方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
本说明书提供的数据处理系统,在所述第一服务端接收到携带待处理数据的处理数据处理请求后,将向初始数据处理请求中添加序列队列标识,获得中间数据处理请求,之后再将中间数据处理请求封装为第一目标数据处理请求,并发送至第二服务端,所述第二服务端接收到第一目标数据处理请求中的第二目标数据处理请求的情况下,将临时添加至共享队列,当到达处理第二目标数据处理请求时刻,将对第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据,之后将待处理数据提交至虚拟队列标识对应的虚拟队列,由虚拟队列针对待处理数据完成后续的处理过程,有效的降低了第二服务端在处理请求时频繁进行数据换出的操作,并且通过虚拟队列和共享队列结合实现对待处理数据的处理,可以保证第二服务端处理请求的有序性,进一步避免出现丢包或重传的问题发生。
附图说明
图1是本说明书一实施例提供的一种数据处理系统的结构示意图;
图2是本说明书一实施例提供的一种数据处理系统中的第一服务端的结构示意图;
图3是本说明书一实施例提供的一种数据处理系统中的第二服务端的结构示意图;
图4是本说明书一实施例提供的一种数据处理方法的处理流程图;
图5是本说明书一实施例提供的另一种数据处理方法的处理流程图;
图6是本说明书一实施例提供的一种数据处理装置的结构示意图;
图7是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
RDMA:(Remote Direct Memory Access,远程直接数据存取)为了解决网络传输中服务器端数据处理的延迟而产生;RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能;RDMA支持三种队列,发送队列(SQ,Send Queue)和接收队列(RQ,Receive Queue),完成队列(CQ,Completion Queue)。其中,发送队列和接收队列通常成对创建,被称为Queue Pairs(QP)。
协议栈:(Protocol Stack),又称协议堆叠,是计算机网络协议套件的一个具体的软件实现。
在本说明书中,提供了一种数据处理系统,本说明书同时涉及两种数据处理方法,一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
实际应用中,RDMA向应用提供QP作为网络连接实体,将网络协议栈和请求处理卸载到网卡硬件中,以此实现高性能网络数据的处理。应用在将网络请求提交到QP中后,网卡会将QP的元信息和请求信息加载到网卡缓存中,通过解析请求中包含的数据信息来处理请求和发送/接收数据。通常网卡加载过一次的QP信息(已经加载过),在缓存有剩余空间时会一直保存在缓存上,仅当当前缓存溢出时,网卡就需要根据替换算法来为新的请求对应的新的QP信息清理出一部分可用空间,并将对应空间上的内容写回到内存中。
基于此,在处理大量RDMA网络连接的请求时,QP的信息无法完全缓存在网卡缓存上,因此需要频繁的在网卡硬件缓存QP信息和请求信息,同时也需要在网卡硬件缓存和内存之间进行数据的换入换出,造成大部分时间都消耗在缓存加载和替换上,网卡无法及时地发送应用的数据或接收网络上反馈的数据,从而造成网卡丢包和/或重传的问题发生,对使用RDMA的应用造成很大的性能损失。
本说明书提供的数据处理系统,在所述第一服务端接收到携带待处理数据的处理数据处理请求后,将向初始数据处理请求中添加序列队列标识,获得中间数据处理请求,之后再将中间数据处理请求封装为第一目标数据处理请求,并发送至第二服务端,所述第二服务端接收到第一目标数据处理请求中的第二目标数据处理请求的情况下,将临时添加至共享队列,当到达处理第二目标数据处理请求时刻,将对第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据,之后将待处理数据提交至虚拟队列标识对应的虚拟队列,由虚拟队列针对待处理数据完成后续的处理过程,有效的降低了第二服务端在处理请求时频繁进行数据换出的操作,并且通过虚拟队列和共享队列结合实现对待处理数据的处理,可以保证第二服务端处理请求的有序性,进一步避免出现丢包或重传的问题发生。
图1示出了根据本说明书一实施例提供的一种数据处理系统100的结构示意图,包括第一服务端110和第二服务端120。
第一服务端110,被配置为接收携带待处理数据的初始数据处理请求;通过向所述初始数据处理请求中添加虚拟队列标识获得中间数据处理请求;将所述中间数据处理请求封装为第一目标数据处理请求,并发送至所述第二服务端120;
第二服务端120,被配置为接收第二目标数据处理请求,并将所述第二目标数据处理请求添加至共享队列;在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列,其中,所述第二目标数据处理请求为所述第一目标数据请求之一。
具体的,所述第一服务端110具体是指分布式系统中的任意服务器,相应的,所述第二服务端120具体是指与所述第一服务端110具有网络传输关系的服务器,所述第一服务端110和所述第二服务端120建立RDMA网络连接,实现提高网络传输性能;所述待处理数据具体是指需要交由第二服务端120进行处理的数据,相应的,所述初始数据处理请求具体是指告知第一服务端110将待处理数据发送至第二服务端120的请求;所述虚拟队列标识具体是指所述第二服务端120创建的虚拟队列对应的唯一标识;所述中间数据处理请求具体是指向所述初始数据处理请求中添加虚拟队列标识后生成的数据处理请求;所述第一目标数据处理请求具体是指经由第一服务端110的封装协议对中间数据处理请求封装后得到的数据处理请求。
基于此,在第一服务端110接收到携带有所述待处理数据的初始数据处理请求的情况下,为了能够提高第一服务端110和第二服务端120的网络传输效率,将向所述初始数据处理请求中添加所述第二服务端120侧的虚拟队列的虚拟队列标识,根据添加结果获得所述中间数据处理请求,由于所述第一服务端110和所述第二服务端120不处于一个分布式节点,因此为了能够保证二者可以进行网络传输,需要在请求传输前,对所述中间数据处理请求进行封装,以得到所述第二服务端120可以识别的所述第一目标数据处理请求,即在得到所述中间数据处理请求之后,将按照第一服务端110和所述第二服务端120的网络传输协议对其进行封装,得到所述第一目标数据处理请求,并发送至所述第二服务端120,由所述接收服务器120对该请求中的待处理数据进行后续的处理过程。
进一步,由于所述第一服务端110和所述第二服务端120建立RDMA网络连接后,会频繁的进行请求传输,在此过程中,第一服务端110发送出的目标处理请求将是连续的,而第二服务端120接收到的目标数据处理请求也将是连续的,本实施例为了方便描述,将以所述第二服务端120对任意一个目标数据处理请求(第二目标数据处理请求)进行处理的过程进行描述,其他处理过程均可参见本实施例相应的描述内容,在此不作过多赘述。
基于此,所述第二目标数据处理请求具体是指所述第一目标数据处理请求中的任意一个目标数据处理请求,所述共享队列具体是指所述第二服务端120创建的共享接收队列(SRQ,Shared receive queue),所述共享队列在接收到所述第一服务端110发送的目标数据处理请求后,将临时存储至所述共享队列中,当需要对该队列中的目标数据处理请求进行处理时,再从共享队列中提取出需要处理的目标数据处理请求进行处理即可,实现通过该队列提高第二服务端120处理请求时的有序性,以此提高第二服务端120处理目标数据处理请求的性能。
更进一步的,所述虚拟队列具体是指所述第二服务端120创建的虚拟QP,通过创建所述虚拟队列来减轻物理队列的处理压力,以此解决第二服务端120的缓存负载,从而提高第二服务端120的处理性能。
例如,第一服务端分布于分布式系统中的分布式节点1,第二服务端分布于分布式系统中的分布式节点2,当分布式节点1中的第一服务端接收到将待处理数据写入分布式节点2中的第二服务端的存储区的处理请求后,根据预先记录的虚拟队列标识ID2,将向携带待处理数据的处理请求中添加虚拟队列标识ID2,之后对携带虚拟队列标识ID2和待处理数据的处理请求进行封装,得到目标数据处理请求R1并发送至分布式节点2中的第二服务端。
第二服务端接收到携带虚拟队列标识ID2和待处理数据的目标数据处理请求R1后,临时将目标数据处理请求R1写入到共享接收队列SRQ中;当第二服务端到达处理目标数据处理请求R1的时刻,将从共享接收队列SRQ中提取目标数据处理请求R1,并对目标数据处理请求R1进行解析,获得待处理数据和虚拟队列标识ID2,此时根据虚拟队列标识ID2确定处理待处理数据的虚拟队列为QP2,则将待处理数据提交到虚拟队列QP2中,通过虚拟队列QP2将待处理数据存储到第二服务端的存储区。
综上,通过在第二服务端创建共享队列和虚拟队列,实现在处理数据处理请求时,可以保证处理过程的有序性,并且通过虚拟队列可以有效的减轻第二服务端的缓存压力,进一步提高了数据处理效率。
具体实施时,所述第二服务端120为了能够通过虚拟队列和共享队列减轻缓存压力,需要在与第一服务端110建立RDMA网络连接时,就预先创建虚拟队列和共享队列,从而实现在使用网络传输服务时可以直接复用虚拟队列和共享队列,本实施例中,第二服务端120创建所述共享队列的过程如下所述:
所述第二服务端120,还被配置为接收队列创建请求,根据所述队列创建请求创建所述共享队列,并建立至少一个第一服务端与所述共享队列的关联关系;所述至少一个第一服务端包含所述第一服务端110。
具体的,所述队列创建请求具体是指在第二服务端120启动时接收到的针对共享接收队列SRQ创建的请求,需要说明的是,在所述共享队列创建完成之后,为了能够在使用网络传输服务时可以进行使用,将建立共享队列与至少一个第一服务端的关联关系,实现第一服务端在与第二服务端进行网络传输时,可以将传输的目标数据处理请求写到所述共享队列中,由第二服务端120再进行后续的处理过程。
例如,分布式系统中包含分布式节点1,分布式节点2和分布式节点3,其中,第二服务端Rs分布于分布式节点2,而分布式节点1和分布式节点2中均包含与分布式节点2中的第二服务端Rs具有网络传输关系的第一服务端Ss1和第一服务端Ss2;基于此,当分布式节点2中的第二服务端Rs启动时,此时第二服务端Rs将接收到共享接收队列SRQ的队列创建请求,基于该请求创建共享接收队列SRQ,同时为了能够从第一服务端Ss1和第一服务端Ss2上接收流量,将建立共享接收队列SRQ与分布式节点1中的第一服务端Ss1的关联关系,以及建立共享接收队列SRQ与分布式节点3中的第一服务端Ss2的关联关系;即建立共享接收队列SRQ与第一服务端Ss1中的QP和第一服务端Ss2中的QP的关系,实现第二服务端Rs中的共享接收队列SRQ可以同时从第一服务端Ss1中的QP和第一服务端Ss2中的QP上接收流量。
综上,通过在所述第二服务端创建所述共享队列,实现通过所述共享队列可以同时从多个远端RDMAQP上接收流量,有效的提高了所述第二服务端的处理效率。
进一步的,由于所述第一服务端110和所述第二服务端120可以相互进行网络传输,因此为了减轻第二服务端120的缓存压力的同时,也能够对第一服务端的缓存压力进行改善,可以在第一服务端110也创建虚拟队列,本实施例中,创建所述虚拟队列的过程如下所述:
所述发送方服务端110,还被配置为接收虚拟队列创建请求,根据所述虚拟队列创建请求创建发送虚拟队列,并针对所述发送虚拟队列分配发送虚拟队列标识;将所述发送虚拟队列关联所述共享队列和发送物理队列,并向所述第二服务端120发送携带有所述发送虚拟队列标识的建连请求。
所述第二服务端120,还被配置为接收携带有所述发送虚拟队列标识的所述建连请求,根据所述建连请求创建所述虚拟队列,并针对所述虚拟队列分配所述虚拟队列标识;将所述虚拟队列关联所述共享队列和接收物理队列,以及建立所述虚拟队列标识和所述发送虚拟队列标识的第一标识对应关系;在所述虚拟队列中记录所述第一标识对应关系,并向所述第一服务端110发送携带有所述虚拟队列标识的响应请求。
所述发送方服务端110,还被配置为接收携带有所述虚拟队列标识的所述响应请求,建立所述发送虚拟队列标识和所述虚拟队列标识的第二标识对应关系;在所述发送虚拟队列中记录所述第二标识对应关系。
具体的,所述虚拟队列创建请求具体是指告知所述第一服务端110创建发送虚拟队列的请求,所述发送虚拟队列具体是指所述第一服务端创建的虚拟QP,通过创建所述虚拟队列来减轻物理队列的处理压力,以此解决第一服务端110的缓存负载,从而提高第一服务端110的处理性能;相应的,所述发送虚拟队列标识具体是指所述发送虚拟队列具有的唯一标识,所述发送物理队列具体是指所述第一服务端110具有的网络连接实体;所述建连请求具体是指建立第一服务端110中的虚拟队列和第二服务端120中的虚拟队列的请求,所述接收物理队列具体是指所述第二服务端120具有的网络连接实体,所述第一标识对应关系具体是指在所述第二服务端120的虚拟队列中,记录的发送虚拟队列标识和虚拟队列标识的对应关系,通过该对应关系可以确定接收到的数据处理请求所应该由那个虚拟队列进行处理。
基于此,所述第一服务端110在接收到所述虚拟队列创建请求的情况下,将根据所述虚拟队列创建请求创建所述第一服务端110对应的至少一个发送虚拟队列,并针对各个发送虚拟队列配置发送虚拟队列标识,同时为了能够对发送虚拟队列进行复用,会将所述发送虚拟队列与共享队列和发送物理队列进行关联,实现在使用网络传输服务时,可以通过所述发送虚拟队列从共享队列中获取数据处理请求进行处理;进一步的,当所述发送虚拟队列建立完成之后,将向所述第二服务端120发送虚拟队列建连请求,即建立第一服务端110和第二服务端120中的虚拟队列之间的传输通道,从而确定各个虚拟队列所应该处理的数据处理请求。
更进一步的,所述第二服务端120在接收到携带发送虚拟队列标识的建连请求的情况下,将根据所述建连请求创建所述虚拟队列,同时针对所述虚拟队列分配所述虚拟队列标识,此时完成第二服务端120的虚拟队列的创建,之后为了能够与第一服务端110建立稳定连接,也会将所述虚拟队列关联所述共享队列和接收物理队列;进一步的,当所述虚拟队列建立完成之后,为了确定与虚拟队列具有传输关系的发送虚拟队列,将基于所述建连请求中的发送虚拟队列标识和虚拟队列对应的虚拟队列标识生成第一标识对应关系,并将所述第一标识对应关系记录到所述虚拟队列中,从而实现当第一服务端110向第二服务端120传输数据处理请求时,可以根据第一标识对应关系选择虚拟队列标识对应的虚拟队列进行处理,从而保证第二服务端120处理数据处理请求时的有序性。
当所述第一标识对应关系记录至所述虚拟队列中后,将向所述第一服务端110发送携带有虚拟队列标识的响应请求,告知所述第一服务端110已经完成虚拟队列的创建,同时等待与第一服务端110中的发送虚拟队列关联;所述第一服务端接收携带有所述虚拟队列标识的响应请求之后,将建立所述虚拟队列标识与所述发送虚拟队列标识的第二标识对应关系,并将所述第二标识对应关系记录在所述发送虚拟队列中,实现当第二服务端120向第一服务端110传输数据处理请求时,可以根据第二标识对应关系选择发送虚拟队列标识对应的发送虚拟队列进行处理,从而进一步保证第一服务端110处理数据处理请求时的有序性。
例如,分布式节点1中的第一服务端Ss1在与分布式节点2中的第二服务端Rs建立RDMA网络连接时,第一服务端Ss1将生成一个发送虚拟队列QP1,同时针对该发送虚拟队列QP1分配发送虚拟队列标识ID1;之后为了能够与第二服务端Rs进行网络传输,以及可以有序的对第一服务端Ss1的数据处理请求进行处理,将发送虚拟队列QP1与第一服务端Ss1的发送物理队列RDMAQPA和共享接收队列SRQ进行关联,之后向第二服务端Ss1发送携带有发送虚拟队列标识ID1的建连请求。
分布式节点2中的第二服务端Rs在接收到携带有发送虚拟队列标识ID1的建连请求的情况下,将根据该建连请求创建虚拟队列QP2,并针对虚拟队列QP2分配虚拟队列标识ID2,同时也将虚拟队列QP2与共享接收队列SRQ和接收物理队列RDMAQPB进行关联,此时将建立发送虚拟队列标识ID1和虚拟队列标识ID2的第一标识对应关系
分布式节点1中的第一服务端Ss1在接收到携带有虚拟队列标识ID2的响应请求的情况下,说明第二服务端Rs已经完成了虚拟队列的创建,此时则需要在第一服务端Ss1中也建立虚拟队列标识ID2和发送虚拟队列标识ID1的对应关系,即根据虚拟队列标识ID2和发送虚拟队列标识ID1建立第二标识对应关系
需要说明的是,所述第一标识对应关系用于记录在所述第二服务端120的虚拟队列中,所述第二标识对应关系用于记录在所述发送虚拟队列110的发送虚拟队列中;所述第一标识对应关系和第二标识对应关系的表达形式可以形同,也可以不同,只需要能够表达虚拟队列标识和发送虚拟队列标识的对应关系即可,实现第一服务端或第二服务端可以根据该对应关系将收到的数据处理请求提交至相应的虚拟队列进行处理即可,具体表达形式可以根据实际应用场景进行设定,本实施例在此不作任何限定。
此外,在所述第一服务端创建发送虚拟队列,或者在所述第二服务端创建所述虚拟队列的过程中,所述发送虚拟队列或所述虚拟队列的创建个数可以是一个,两个或多个,具体创建数量可以根据实际应用场景中的网络传输需求量进行设定,本实施例在此不作任何限定。
更进一步的,当第一服务端110和第二服务端120在建立RDMA过程中实现虚拟队列和共享队列的创建之后,即可在使用网络传输服务时通过虚拟队列和共享队列完成待处理数据的处理过程,本实施例中,具体实现方式如下所述:
所述第一服务端110,进一步被配置为根据所述发送虚拟队列中记录的所述第一标识对应关系,向所述初始数据处理请求中添加与所述发送虚拟队列标识对应的所述虚拟队列标识,获得所述中间数据处理请求。
参见图2所示的第一服务端的结构示意图,所述第一服务端110还包括发送处理模块1102和发送传输模块1104;
所述发送处理模块1102,被配置为将所述中间数据处理请求提交到所述发送物理队列;
所述发送传输模块1104,被配置为在处理所述中间数据处理请求时刻,在所述发送物理队列中提取所述中间数据处理请求,并对所述中间数据处理请求进行封装,获得所述第一目标数据处理请求;向所述第二服务端120发送所述第一目标数据处理请求。
参见图3所示的第二服务端的结构示意图,所述第二服务端120还包括接收处理模块1202和接收传输模块1204;
所述接收传输模块1204,被配置为接收所述第二目标处理请求,并将所述第二目标数据处理请求提交至所述共享队列;
所述接收处理模块1202,被配置为在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求,并对所述第二目标数据处理请求进行解析,获得所述虚拟队列标识和所述待处理数据。
所述接收处理模块1202,进一步被配置为将所述待处理数据提交至所述虚拟队列标识对应的所述虚拟队列,并通过所述虚拟队列将所述待处理数据写入存储空间。
具体的,所述发送处理模块1102具体是指所述第一服务端110中的发送方应用,所述发送处理模块为软件模块,相应的,所述发送传输模块1104具体是指所述第一服务端110中的发送方网卡,所述发送传输模块为硬件模块。
基于此,当接收到携带有待处理数据的初始数据处理请求的情况下,此时可以根据第一标识对应关系将与发送虚拟队列标识具有对应关系的所述虚拟队列标识添加至所述初始数据处理请求中,得到携带有所述待处理数据和虚拟队列标识的中间数据处理请求;之后由发送处理模块1102将所述中间数据处理请求提交至所述第一服务端110中的发送物理队列,当发送传输模块1104开始处理发送物理队列中的数据处理请求时,将在发送物理队列中提取携带有待处理数据和虚拟队列标识的中间数据处理请求,之后对该请求按照预设的封装协议进行封装,得到携带有待处理数据和虚拟队列标识的第一目标数据处理请求,并将其发送至第二服务端120,即发送至第二服务端中的接收处理模块1204。
具体的,所述接收处理模块1202具体是指所述第二服务端120中的接收方应用,所述接收处理模块为软件模块,相应的,所述接收传输模块1204具体是指所述第二服务端120中的接收方网卡,所述接收传输模块为硬件模块。
基于此,当所述接收传输模块1204接收到所述第二目标数据处理请求的情况下,将临时提交到所述共享队列,同时所述接收传输模块1204将通知接收处理模块1202收取共享队列中的第二目标数据处理请求,所述接收处理模块1202当轮询到处理所述第二目标数据处理请求时刻,将从所述共享队列中提取所述第二目标数据处理请求,并对所述第二目标数据处理请求进行解析,得到所述虚拟队列标识和所述待处理数据,之后所述接收处理模块1202将进一步的按照所述虚拟队列标识,将所述待处理数据提交到虚拟队列中,最后由所述虚拟队列将所述待处理数据写入到上层应用中的存储空间,完成所述第二服务端120和第一服务端110之间的网络传输服务。
沿用上例,当分布式节点1中的第一服务端Ss1需要向分布式节点2中的第二服务端Rs进行数据传输时,第一服务端Ss1中的发送方应用将根据发送虚拟队列QP1中记录的第一标识对应关系
进一步的,第二服务端Rs中的接收方网卡在接收到携带有发送虚拟队列标识ID2和待处理数据的情况下,接收方网卡会临时将目标数据处理请求提交到共享接收队列SRQ中,同时接收方网卡将通知第二服务端Rs中的接收方应用收取SRQ中的请求;当接收方应用轮询到处理目标数据处理请求时刻,将从共享接收队列中提取目标数据处理请求,并对该数据处理请求进行解析得到虚拟队列标识ID2和待处理数据,此时接收方应用会将待处理数据提交到虚拟队列QP2中,并通过虚拟队列QP2将待处理数据写到存储空间,完成分布式节点1和分布式节点2的网络传输服务。
本说明书提供的数据处理系统,在所述第一服务端接收到携带待处理数据的处理数据处理请求后,将向初始数据处理请求中添加序列队列标识,获得中间数据处理请求,之后再将中间数据处理请求封装为第一目标数据处理请求,并发送至第二服务端,所述第二服务端接收到第一目标数据处理请求中的第二目标数据处理请求的情况下,将临时添加至共享队列,当到达处理第二目标数据处理请求时刻,将对第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据,之后将待处理数据提交至虚拟队列标识对应的虚拟队列,由虚拟队列针对待处理数据完成后续的处理过程,有效的降低了第二服务端在处理请求时频繁进行数据换出的操作,并且通过虚拟队列和共享队列结合实现对待处理数据的处理,可以保证第二服务端处理请求的有序性,进一步避免出现丢包或重传的问题发生。
图4示出了根据本说明书一实施例提供的一种数据处理方法的处理流程图,具体包括以下步骤:
步骤S402,第一服务端接收携带待处理数据的初始数据处理请求;通过向所述初始数据处理请求中添加虚拟队列标识获得中间数据处理请求;将所述中间数据处理请求封装为第一目标数据处理请求,并发送至所述第二服务端;
步骤S404,第二服务端接收第二目标数据处理请求,并将所述第二目标数据处理请求添加至共享队列;在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列,其中,所述第二目标数据处理请求为所述第一目标数据请求之一。
一个可选的实施例中,所述第二服务端,还包括:
接收队列创建请求,根据所述队列创建请求创建所述共享队列,并建立至少一个第一服务端与所述共享队列的关联关系;所述至少一个第一服务端包含所述第一服务端。
一个可选的实施例中,所述发送方服务端,还包括:
接收虚拟队列创建请求,根据所述虚拟队列创建请求创建发送虚拟队列,并针对所述发送虚拟队列分配发送虚拟队列标识;将所述发送虚拟队列关联所述共享队列和发送物理队列,并向所述第二服务端发送携带有所述发送虚拟队列标识的建连请求。
一个可选的实施例中,所述第二服务端,还包括:
接收携带有所述发送虚拟队列标识的所述建连请求,根据所述建连请求创建所述虚拟队列,并针对所述虚拟队列分配所述虚拟队列标识;将所述虚拟队列关联所述共享队列和接收物理队列,以及建立所述虚拟队列标识和所述发送虚拟队列标识的第一标识对应关系;在所述虚拟队列中记录所述第一标识对应关系,并向所述第一服务端发送携带有所述虚拟队列标识的响应请求。
一个可选的实施例中,所述发送方服务端,还包括:
接收携带有所述虚拟队列标识的所述响应请求,建立所述发送虚拟队列标识和所述虚拟队列标识的第二标识对应关系;在所述发送虚拟队列中记录所述第二标识对应关系。
一个可选的实施例中,所述第一服务端,包括:
根据所述发送虚拟队列中记录的所述第一标识对应关系,向所述初始数据处理请求中添加与所述发送虚拟队列标识对应的所述虚拟队列标识,获得所述中间数据处理请求。
一个可选的实施例中,所述第一服务端还包括发送处理模块和发送传输模块;
所述发送处理模块将所述中间数据处理请求提交到所述发送物理队列;
所述发送传输模块在处理所述中间数据处理请求时刻,在所述发送物理队列中提取所述中间数据处理请求,并对所述中间数据处理请求进行封装,获得所述第一目标数据处理请求;向所述第二服务端发送所述第一目标数据处理请求。
一个可选的实施例中,所述第二服务端还包括接收处理模块和接收传输模块;
所述接收传输模块接收所述第二目标处理请求,并将所述第二目标数据处理请求提交至所述共享队列;
所述接收处理模块在处理所述第二目标数据处理请求时刻,在所述共享队列中提取所述第二目标数据处理请求,并对所述第二目标数据处理请求进行解析,获得所述虚拟队列标识和所述待处理数据。
一个可选的实施例中,所述接收处理模块,包括:
将所述待处理数据提交至所述虚拟队列标识对应的所述虚拟队列,并通过所述虚拟队列将所述待处理数据写入存储空间。
需要说明的是,该数据处理方法的技术方案与上述数据处理系统的技术方案属于同一构思,数据处理方法的技术方案未详细描述的细节内容,均可以参见上述数据处理系统的技术方案的描述。
本实施例提供的数据处理方法,在所述第一服务端接收到携带待处理数据的处理数据处理请求后,将向初始数据处理请求中添加序列队列标识,获得中间数据处理请求,之后再将中间数据处理请求封装为第一目标数据处理请求,并发送至第二服务端,所述第二服务端接收到第一目标数据处理请求中的第二目标数据处理请求的情况下,将临时添加至共享队列,当到达处理第二目标数据处理请求时刻,将对第二目标数据处理请求进行解析,获得虚拟队列标识和待处理数据,之后将待处理数据提交至虚拟队列标识对应的虚拟队列,由虚拟队列针对待处理数据完成后续的处理过程,有效的降低了第二服务端在处理请求时频繁进行数据换出的操作,并且通过虚拟队列和共享队列结合实现对待处理数据的处理,可以保证第二服务端处理请求的有序性,进一步避免出现丢包或重传的问题发生。
图5示出了根据本说明书一实施例提供的另一种数据处理方法的处理流程图,应用于第二服务端,具体包括以下步骤:
步骤S502,接收目标数据处理请求,并将所述目标数据处理请求添加至共享队列;
步骤S504,在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;
步骤S506,将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列。
一个可选的实施例中,所述共享队列通过如下方式创建:
接收队列创建请求,根据所述队列创建请求创建所述共享队列,并建立至少一个第一服务端与所述共享队列的关联关系。
一个可选的实施例中,所述数据处理方法,还包括:
接收携带有发送虚拟队列标识的建连请求,根据所述建连请求创建所述虚拟队列,并针对所述虚拟队列分配所述虚拟队列标识;
将所述虚拟队列关联所述共享队列和接收物理队列,以及建立所述虚拟队列标识和所述发送虚拟队列标识的第一标识对应关系;
在所述虚拟队列中记录所述第一标识对应关系,并向所述第一服务端发送携带有所述虚拟队列标识的响应请求。
一个可选的实施例中,所述数据处理方法,还包括:
接收所述目标处理请求,并将所述目标数据处理请求提交至所述共享队列;
在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求,并对所述目标数据处理请求进行解析,获得所述虚拟队列标识和所述待处理数据。
一个可选的实施例中,所述数据处理方法,还包括:
将所述待处理数据提交至所述虚拟队列标识对应的所述虚拟队列,并通过所述虚拟队列将所述待处理数据写入存储空间。
本实施例提供另一种数据处理方法,通过将待处理数据提交至虚拟队列标识对应的虚拟队列,由虚拟队列针对待处理数据完成后续的处理过程,有效的降低了第二服务端在处理请求时频繁进行数据换出的操作,并且通过虚拟队列和共享队列结合实现对待处理数据的处理,可以保证第二服务端处理请求的有序性,进一步避免出现丢包或重传的问题发生。
上述为本实施例的另一种数据处理方法的示意性方案。需要说明的是,该数据处理方法的技术方案与上述的数据处理系统的技术方案属于同一构思,数据处理方法的技术方案未详细描述的细节内容,均可以参见上述数据处理系统的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图6示出了本说明书一实施例提供的一种数据处理装置的结构示意图。如图6所示,应用于第二服务端,该装置包括:
接收模块602,被配置为接收目标数据处理请求,并将所述目标数据处理请求添加至共享队列;
解析模块604,被配置为在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;
提交模块606,被配置为将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列。
一个可选的实施例中,所述共享队列通过如下方式创建:
接收队列创建请求,根据所述队列创建请求创建所述共享队列,并建立至少一个第一服务端与所述共享队列的关联关系。
一个可选的实施例中,所述数据处理装置,还包括:
建连模块,被配置为接收携带有发送虚拟队列标识的建连请求,根据所述建连请求创建所述虚拟队列,并针对所述虚拟队列分配所述虚拟队列标识;将所述虚拟队列关联所述共享队列和接收物理队列,以及建立所述虚拟队列标识和所述发送虚拟队列标识的第一标识对应关系;在所述虚拟队列中记录所述第一标识对应关系,并向所述第一服务端发送携带有所述虚拟队列标识的响应请求。
一个可选的实施例中,所述提交模块606,还被配置为:
接收所述目标处理请求,并将所述目标数据处理请求提交至所述共享队列;在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求,并对所述目标数据处理请求进行解析,获得所述虚拟队列标识和所述待处理数据。
一个可选的实施例中,所述提交模块606,还被配置为:
将所述待处理数据提交至所述虚拟队列标识对应的所述虚拟队列,并通过所述虚拟队列将所述待处理数据写入存储空间。
本实施例提供的数据处理装置,通过将待处理数据提交至虚拟队列标识对应的虚拟队列,由虚拟队列针对待处理数据完成后续的处理过程,有效的降低了第二服务端在处理请求时频繁进行数据换出的操作,并且通过虚拟队列和共享队列结合实现对待处理数据的处理,可以保证第二服务端处理请求的有序性,进一步避免出现丢包或重传的问题发生。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图7示出了根据本说明书一实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行计算机可执行指令所述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
接收目标数据处理请求,并将所述目标数据处理请求添加至共享队列;
在处理所述目标数据处理请求时刻,在所述共享队列中提取所述目标数据处理请求进行解析,获得虚拟队列标识和待处理数据;
将所述待处理数据提交至所述虚拟队列标识对应的虚拟队列。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
- 数据处理系统和操作数据处理系统的方法
- 数据处理系统以及配置和操作数据处理系统的方法