CN115766655A - 数据处理方法、装置、电子设备和可读存储介质 - Google Patents
数据处理方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN115766655A CN115766655A CN202211437188.7A CN202211437188A CN115766655A CN 115766655 A CN115766655 A CN 115766655A CN 202211437188 A CN202211437188 A CN 202211437188A CN 115766655 A CN115766655 A CN 115766655A
- Authority
- CN
- China
- Prior art keywords
- request
- sub
- requests
- target
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理方法,应用于云计算技术领域和互联网技术领域,该方法包括:按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求;将N个初始操作子请求各自封装为操作报文,以便于云服务平台基于操作报文执行操作,生成与操作报文相对应的返回报文;根据来自云服务平台的返回报文,更新初始操作子请求的操作执行状态;响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求;以及基于预设重传策略处理M个目标操作子请求,生成目标操作报文。本公开还提供了一种数据处理装置、电子设备、可读存储介质和计算机程序产品。
Description
技术领域
本公开涉及云计算技术领域和互联网技术领域,更具体地,涉及一种数据处理方法、装置、电子设备、可读存储介质和计算机程序产品。
背景技术
随着云计算技术的快速发展,越来越多的用户选择借助云计算产品来满足实际的需求,例如用户可以通过操作计算机等电子设备,向智能网卡等网络设备发送操作请求(例如IO数据),相关网络设备可以将操作请求转换成网络报文,并向云服务平台发送网络报文,以便于云服务平台可以基于接收到的网络报文进行相关数据处理过程。云服务平台可以将数据处理结果发送至智能网卡等网络设备,以便于网络设备将数据处理结果返回至用户一端。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:云服务平台在向用户提供云计算、云存储等数据云处理服务的过程中,数据处理的效率较低,尤其在网络通信异常等异常情况下,数据处理的时效性较差,难以满足用户的实际需求。
发明内容
有鉴于此,本公开提供了一种数据处理方法、装置、电子设备、可读存储介质和计算机程序产品。
本公开的一个方面提供了一种数据处理方法,包括:
按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数;
将N个上述初始操作子请求各自封装为操作报文,以便于云服务平台基于上述操作报文执行操作,生成与上述操作报文相对应的返回报文;
根据来自上述云服务平台的返回报文,更新上述初始操作子请求的操作执行状态;
响应于针对上述操作请求的重传命令,根据上述初始操作子请求各自的操作执行状态,从N个上述初始操作子请求中确定M个目标操作子请求,其中,上述目标操作子请求的操作执行状态为执行未完成;以及
基于预设重传策略处理M个上述目标操作子请求,生成目标操作报文,以便于上述云服务平台基于上述目标操作报文执行操作,生成与上述目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
根据本公开的实施例,上述操作请求具有操作类型信息,以及用于表征上述操作请求执行位置的第一操作位置信息;
其中,上述按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求包括:
按照上述预设容量规则表征的数据容量,对上述操作请求进行切分,得到顺序排列的N个第一操作子请求,其中,上述第一操作子请求具有表征排列顺序的子请求标识;
按照N个上述第一操作子请求各自的数据容量和子请求标识,以及上述操作请求的第一操作位置信息,确定N个上述第一操作子请求各自的第二操作位置信息;以及
在上述第一操作子请求中添加上述操作类型信息和与上述第一操作子请求相对应的第二操作位置信息,得到上述初始操作子请求。
根据本公开的实施例,N个上述初始操作子请求各自具有子请求标识;
在按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求之后,上述数据处理方法还包括:
对N个上述初始操作子请求,分别设置与上述初始操作子请求相对应地第一执行状态标识,其中,上述第一执行状态标识表征上述初始操作子请求的操作执行状态为执行未完成,上述第一执行状态标识与上述子请求标识关联;
其中,上述根据来自上述云服务平台的返回报文,更新上述初始操作子请求的操作执行状态包括:
解析上述返回报文,得到上述返回报文中的子请求标识;
将与上述返回报文中的子请求标识关联的第一执行状态标识,更新为第二执行状态标识,以便将具有上述返回报文中的子请求标识的初始操作子请求的操作执行状态更新为执行完成。
根据本公开的实施例,上述响应于针对上述操作请求的重传命令,根据上述初始操作子请求各自的操作执行状态,从N个上述初始操作子请求中确定M个目标操作子请求包括:
响应于针对上述操作请求的重传命令,根据N个上述初始操作子请求各自的操作执行状态,确定上述操作请求的操作执行状态;
在上述操作请求的操作执行状态表征未执行完成的情况下,将N个上述初始操作子请求中,关联有第一执行状态标识的M个初始操作子请求确定为M个上述目标操作子请求。
根据本公开的实施例,基于预设重传策略处理M个上述目标操作子请求,生成目标操作报文包括:
分别封装M个上述目标操作子请求,得到M个上述目标操作子请求各自对应的目标操作报文;或者
将M个上述目标操作子请求封装为上述目标操作报文。
根据本公开的实施例,上述数据处理方法还包括:
向上述云服务平台并行发送M个上述目标操作报文;或者
根据预设发送顺序向上述云服务平台发送M个上述目标操作报文。
根据本公开的实施例,上述操作请求包括以下任意一项:
读取操作请求、写入操作请求、刷新操作请求和查询操作请求。
根据本公开的实施例,上述操作请求包括顺序连接的请求头数据包和L个请求体数据包,L为正整数;
上述数据处理方法还包括:
获取来自上述用户端的操作请求;以及
解析上述操作请求的请求头数据包,得到上述操作请求的操作类型信息和上述第一操作位置信息。
根据本公开的实施例,按照上述预设容量规则表征的数据容量,对上述操作请求进行切分,得到顺序排列的N个第一操作子请求包括:
按照上述预设容量规则表征的数据容量,对顺序连接的L个上述请求体数据包进行切分,得到顺序排列的N个上述第一操作子请求。
本公开的另一个方面提供了一种数据处理装置,包括:
划分模块,用于按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数;
封装模块,用于将N个上述初始操作子请求各自封装为操作报文,以便于云服务平台基于上述操作报文执行操作,生成与上述操作报文相对应的返回报文;
更新模块,用于根据来自上述云服务平台的返回报文,更新上述初始操作子请求的操作执行状态;
第一确定模块,用于响应于针对上述操作请求的重传命令,根据上述初始操作子请求各自的操作执行状态,从N个上述初始操作子请求中确定M个目标操作子请求,其中,上述目标操作子请求的操作执行状态为执行未完成;以及
报文生成模块,用于基于预设重传策略处理M个上述目标操作子请求,生成目标操作报文,以便于上述云服务平台基于上述目标操作报文执行操作,生成与上述目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
本公开的另一个方面提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的数据处理方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的数据处理方法。
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的数据处理方法。
根据本公开的实施例,因为采用了将操作请求切分为N个初始操作子请求,并将初始操作子请求分别各自封装为操作报文的技术手段,进而可以向云服务平台分别发送操作报文来实现完成操作请求对应的操作,同时根据云服务平台的返回报文来实时更新N个所述初始操作子请求各自的操作执行状态,这样可以在检测到重传命令的情况下,根据N个所述初始操作子请求各自实时的操作执行状态,确定没有完成执行操作的目标操作子请求,然后只需要再次处理M个目标操作子请求,得到目标操作报文,至少部分解决了相关技术中智能网卡等网络设备在异常情况后对操作请求的整体进行封装,导致操作请求处理时长过长的技术问题,且在N>M的情况下,还可以节省重传时目标操作报文占用的网络带宽,进而实现提升针对操作请求的处理效率,以及提升云服务平台的整体服务效率的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1A示意性示出了根据本公开实施例的智能网卡的应用场景图;
图1B示意性示出了根据本公开实施例的操作请求的数据结构的示意图;
图2示意性示出了根据本公开实施例的可以应用数据处理方法、装置的示例性系统架构;
图3示意性示出了根据本公开实施例的数据处理方法的流程图;
图4示意性示出了根据本公开实施例的按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求的流程图;
图5示意性示出了根据本公开实施例的数据处理方法的应用场景图;
图6示意性示出了根据本公开实施例的响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求的流程图;
图7示意性示出了根据本公开另一实施例的数据处理方法的应用场景图;
图8示意性示出了根据本公开的实施例的数据处理装置的框图;
图9示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
随着云计算技术的快速发展,云服务平台通常可以采用分布式存储的方式来存储用户端上传至云服务平台的数据,同时将云服务平台的计算节点与存储节点解耦。计算节点上用户的磁盘读写操作(也称IO操作)通过网络发送到云服务平台的存储节点上进行磁盘的读写操作。为了提升存储的性能以及释放计算节点上CPU资源,相关技术中通常使用智能网卡等网络设备来进行存储功能的卸载,即由智能网卡来将用户端的发送IO数据转换为网络报文在网络上传输,实现将网络报文传输至云服务端进行存储,而不需要用户端将IO转成网络报文,以节省用户端或其他计算节点的计算资源。
图1A示意性示出了根据本公开实施例的智能网卡的应用场景图。
图1B示意性示出了根据本公开实施例的操作请求的数据结构的示意图。
结合图1A和图1B所示,用户端110可以向智能网卡120发送读/写请求,智能网卡120可以将读/写请求转换为相应格式的以太网报文,并将以太网报文发送至云服务平台130。云服务平台130根据接收到的以太网报文执行与读/写请求对应的读/写操作,从而实现将读取与读/写请求对应的数据,或者将与读/写请求对应的数据写入云服务平台130的存储装置中。
云服务平台130在执行完读/写操作后,会向智能网卡120返回报文,以通知智能网卡120已经执行完成与读/写请求对应的操作,智能网卡120将返回报文转换为读/写返回消息,并发送至用户端110,从而完成上述云存储过程。
读/写请求例如可以具有图1B中操作请求Q100的数据结构。操作请求Q100具有请求头Q111、请求体Q112、Q113、Q114和请求尾Q115。
请求头Q111可以存储有操作请求的操作类型,例如读取、写入、刷新等操作类型。还可以存储有操作请求在云服务平台中磁盘的起始位置。
请求体Q112、Q113、Q114可以分别存储有进行操作的数据。
请求尾Q115可以存储有请求的返回状态。
智能网卡120在接收到操作请求Q100时,可以基于以下处理步骤进行数据处理:
步骤(1),解析出操作请求Q100的操作类型。
步骤(2),如果是读操作则根据操作请求头Q11中的起始位置将数据从云服务平台中读回来的数据写入至请求体Q112、Q113、Q114所指向的用户端的内存中。如果是写操作则将数据从请求体Q112、Q113、Q114所指向的用户端的内存中读出来并封装成相应的以太网报文,然后发送到云服务平台的存储节点上的起始位置。
步骤(3),当操作请求Q100中的数据读/写完成后,智能网卡120会向用户端110返回完成状态,表示这笔磁盘读/写操作是正常完成。
在读/写操作没有完成之前,如果出现异常情况,例如存储管理软件异常重启时,智能网卡120会接收到重传命令,需要向云服务平台130重新发送以太网报文,例如可以从智能网卡120的缓存中提取出操作请求Q100中全部的请求体中的数据,按照步骤(1)至步骤(3)重新执行一遍。
而当异常情况发生前,请求体Q112、Q113已经在云服务平台130中完成读/写操作的情况下,智能网卡还需要再次将操作请求Q100全部的请求体再发送一遍,这将导致冗余的网络数据占用网络带宽,同时智能网卡120需要重新处理请求体Q112、Q113、Q114,生成以太网报文,这会影响智能网卡的数据处理速度,进而导致用户端110的延时效果,严重影响用户的使用体验。
本公开的实施例提供了一种数据处理方法、装置、电子设备、可读存储介质和计算机程序产品。该数据处理方法包括:按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数;将N个初始操作子请求各自封装为操作报文,以便于云服务平台基于操作报文执行操作,生成与操作报文相对应的返回报文;根据来自云服务平台的返回报文,更新初始操作子请求的操作执行状态;响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求,其中,目标操作子请求的操作执行状态为执行未完成;以及基于预设重传策略处理M个目标操作子请求,生成目标操作报文,以便于云服务平台基于目标操作报文执行操作,生成与目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
根据本公开的实施例,通过将操作请求切分为N个初始操作子请求,并将初始操作子请求分别各自封装为操作报文,进而可以向云服务平台分别发送操作报文来实现完成操作请求对应的操作,同时根据云服务平台的返回报文来实时更新N个所述初始操作子请求各自的操作执行状态,这样可以在检测到重传命令的情况下,根据N个所述初始操作子请求各自实时的操作执行状态,确定没有完成执行操作的目标操作子请求,然后只需要再次处理M个目标操作子请求,得到目标操作报文,即可实现对云服务端的操作请求重传,节省了智能网卡等网络设备在异常情况后的报文封装时长,且在N>M的情况下,还可以节省重传时目标操作报文占用的网络带宽,提升针对操作请求的处理效率的同时,提升云服务平台的整体服务效率。
图2示意性示出了根据本公开实施例的可以应用数据处理方法、装置的示例性系统架构。需要注意的是,图2所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图2所示,根据该实施例的系统架构200可以包括终端设备201、202、203、网络设备204、网络205和云服务平台206。网络205用以在网络设备204和云服务平台206之间提供通信链路的介质。网络205可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备201、202、203通过网络设备204和网络205与云服务平台206交互,以发送操作请求、接收返回消息等。终端设备201、202、203上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
终端设备201、202、203可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
网络设备204可以是用于在终端设备201、202、203和云服务平台206之间提供请求数据传输功能的设备,例如智能网卡等。
云服务平台206可以是提供各种云服务的服务器,例如可以是用于为用户提供云存储服务的云服务器。
需要说明的是,本公开实施例所提供的数据处理方法一般可以由网络设备204执行。相应地,本公开实施例所提供的数据处理装置一般可以设置于网络设备204中。本公开实施例所提供的数据处理方法也可以由不同于网络设备204且能够与终端设备201、202、203和/或云服务平台206通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据处理装置也可以设置于不同于网络设备204且能够与终端设备201、202、203和/或云服务平台206通信的服务器或服务器集群中。或者,本公开实施例所提供的数据处理方法也可以由终端设备201、202、或203执行,或者也可以由不同于终端设备201、202、或203的其他终端设备执行。相应地,本公开实施例所提供的数据处理装置也可以设置于终端设备201、202、或203中,或设置于不同于终端设备201、202、或203的其他终端设备中。
应该理解,图2中的终端设备、网络、网络设备和云服务平台的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、网络设备和云服务平台。
图3示意性示出了根据本公开实施例的数据处理方法的流程图。
如图3所示,该方法包括操作S310~S350。
在操作S310,按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数。
在操作S320,将N个初始操作子请求各自封装为操作报文,以便于云服务平台基于操作报文执行操作,生成与操作报文相对应的返回报文。
根据本公开的实施例,操作请求可以包括用于相关技术中基于任意的通讯协议构建的请求数据包,操作请求可以在封装为网络报文后发送至云服务平台,从而使云服务平台根据网络报文执行与操作请求对应的操作,例如可以执行读取数据操作或写入数据操作。
需要说明的是,本公开的实施例对操作请求的具体数据结构不做限定,可以是上述实施例中的通过顺序连接的请求体构建操作请求,或者操作请求还可以具有其他的数据结构类型,本领域技术人员可以根据实际需求进行设计。
在操作S330,根据来自云服务平台的返回报文,更新初始操作子请求的操作执行状态。
根据本公开的实施例,N个初始操作子请求中的每个可以包含有与操作请求对应的操作类型等操作属性信息,以便于在初始操作子请求各自封装为操作报文后,云服务平台可以分别执行多个操作报文,并在操作报文执行完成后,生成与该操作报文对应的返回报文,以通知对应的初始操作子请求已经执行完成。
在操作S340,响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求,其中,目标操作子请求的操作执行状态为执行未完成。
在操作S350,基于预设重传策略处理M个目标操作子请求,生成目标操作报文,以便于云服务平台基于目标操作报文执行操作,生成与目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
根据本公开的实施例,在检测到重传指令的情况下,且在N个初始操作子请求中存在执行未完成的目标操作子请求的情况下,可以通过重新处理目标操作子请求,生成与目标操作子请求对应的目标操作报文,从而避免冗余地处理操作请求的全部数据。云服务平台可以根据重新传送的目标操作报文来执行与操作请求对应的尚未执行完成的操作,例如可以写入操作报文中尚未写入完成的数据,进而可以使云服务平台完成针对操作请求的操作。
根据本公开的实施例,通过将操作请求切分为N个初始操作子请求,并将初始操作子请求分别各自封装为操作报文,进而可以向云服务平台分别发送操作报文来实现完成操作请求对应的操作,同时根据云服务平台的返回报文来实时更新N个所述初始操作子请求各自的操作执行状态,这样可以在检测到重传命令的情况下,根据N个所述初始操作子请求各自实时的操作执行状态,确定没有完成执行操作的目标操作子请求,然后只需要再次处理M个目标操作子请求,得到目标操作报文,即可实现对云服务端的操作请求重传,节省了智能网卡等网络设备在异常情况后的报文封装时长,且在N>M的情况下,还可以节省重传时目标操作报文占用的网络带宽,提升针对操作请求的处理效率的同时,提升云服务平台的整体服务效率。
根据本公开的实施例,操作请求包括以下任意一项:
读取操作请求、写入操作请求、刷新操作请求和查询操作请求。
根据本公开的实施例,操作请求具有操作类型信息,以及用于表征操作请求执行位置的第一操作位置信息;
图4示意性示出了根据本公开实施例的按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求的流程图。
如图4所示,操作S310,按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求可以包括操作S410~操作S430。
在操作S410,按照预设容量规则表征的数据容量,对操作请求进行切分,得到顺序排列的N个第一操作子请求,其中,第一操作子请求具有表征排列顺序的子请求标识。
在操作S420,按照N个第一操作子请求各自的数据容量和子请求标识,以及操作请求的第一操作位置信息,确定N个第一操作子请求各自的第二操作位置信息。
在操作S430,在第一操作子请求中添加操作类型信息和与第一操作子请求相对应的第二操作位置信息,得到初始操作子请求。
根据本公开的实施例,预设容量规则表征的数据容量,可以用于指示第一操作子请求各自的数据容量。例如在预设容量规则表征的数据容量为128kb的情况下,可以按照每128kb对操作请求进行一次切分,得到切分后的第一操作子请求,直至对操作请求切分完成,得到N个第一操作子请求。
根据本公开的实施例,操作请求的第一操作位置信息可以用于表征该操作请求中的数据在云服务平台中的进行操作的位置,操作类型信息用于表征该操作请求和/或操作子请求的操作类型,例如在操作请求的操作类型信息为写入操作的情况下,第一操作位置可以是操作请求中的数据写入云服务平台中的存储扇区的起始位置。因此云服务平台可以在解析得到该操作请求对应的第一操作位置的情况下,利用第一操作位置信息来完成写入数据。
根据本公开的实施例,第一操作子请求相对应的第二操作位置信息,同样可以用于表征该第一操作子请求中的数据在云服务平台中的进行操作的位置。对N个第一操作子请求各自添加对应的第二操作位置信息和操作类型信息后,得到的初始操作子请求可以被后续封装为操作报文并发送至云服务平台后,可以基于相同的方法操作报文各自的操作类型信息和第二操作位置信息,并行地或依次地执行操作初始子请求对应的数据操作,以提升云服务平台的操作处理速度。
根据本公开的实施例,操作请求包括顺序连接的请求头数据包和L个请求体数据包,L为正整数。
数据处理方法还可以包括如下操作:
获取来自用户端的操作请求;以及解析操作请求的请求头数据包,得到操作请求的操作类型信息和第一操作位置信息。
根据本公开的实施例,通过解析请求头数据包,快速获取到操作类型信息和第一操作位置信息,可以提升后续生成操作报文的计算效率,从而提升云服务的整体服务效率。
根据本公开的实施例,操作S310,按照预设容量规则表征的数据容量,对操作请求进行切分,得到顺序排列的N个第一操作子请求可以包括如下操作:
按照预设容量规则表征的数据容量,对顺序连接的L个请求体数据包进行切分,得到顺序排列的N个第一操作子请求。
图5示意性示出了根据本公开实施例的数据处理方法的应用场景图。
如图5所示,在该应用场景中,可以包括操作请求510、520和530。每个操作请求均可以由请求头、顺序连接的请求体和请求尾组成。请求510可以包括请求头511、请求体512、513、514和请求尾515。请求520可以包括请求头521、请求体522、523、524和请求尾525。请求530可以包括请求头531、请求体532、533和请求尾534。
预设容量规则表征的数据容量可以是128kb,由于操作请求510、520和530各自需要执行操作的数据存储于请求体中,因此可以针对操作请求的请求体进行切分,从而得到相应的初始操作子请求。
针对操作请求510,按照每128kb的数据容量对操作请求510进行切分,可以得到顺序排列的初始操作子请求Z511和Z512。需要说明的是,初始操作子请求Z511和Z512各自可以具有子请求标识、第二操作位置信息等子请求属性信息。
针对操作请求520,按照每128kb的数据容量对操作请求520进行切分,可以得到顺序排列的初始操作子请求Z521和Z522。需要说明的是,初始操作子请求Z521和Z522各自可以具有子请求标识、第二操作位置信息等子请求属性信息。
针对操作请求530,按照每128kb的数据容量对操作请求530进行切分,可以得到顺序排列的初始操作子请求Z531、Z532和Z533。且由于请求体533的数据容量较大,可以将请求体533切分为三部分,以便于生成对应的初始操作子请求。
需要说明的是,初始操作子请求Z531、Z532和Z533各自可以具有子请求标识、第二操作位置信息等子请求属性信息。
根据本公开的实施例,N个初始操作子请求各自具有子请求标识。
在按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求之后,数据处理方法还可以包括如下操作:
对N个初始操作子请求,分别设置与初始操作子请求相对应地第一执行状态标识,其中,第一执行状态标识表征初始操作子请求的操作执行状态为执行未完成,第一执行状态标识与子请求标识关联。
操作S330,根据来自云服务平台的返回报文,更新初始操作子请求的操作执行状态可以包括如下操作:
解析返回报文,得到返回报文中的子请求标识;将与返回报文中的子请求标识关联的第一执行状态标识,更新为第二执行状态标识,以便将具有返回报文中的子请求标识的初始操作子请求的操作执行状态更新为执行完成。
根据本公开的实施例,云服务平台可以在执行完成与初始操作子请求对应的操作报文后,发送返回报文以提示该初始操作子请求已经执行完成。通过将返回报文中的子请求标识管理的第一执行状态标识更新为第二状态标识,可以有效地记录N个初始操作子请求中已经完成操作的初始操作子请求,为后续异常情况下确定目标操作子请求奠定基础。
需要说明的是,本公开的实施例对第一执行状态标识的具体存储格式不做限定,例如可以基于相关技术中的数据表将操作请求的标识、子请求标识和第一执行状态标识进行关联存储。或者还可以基于其他的存储格式存储第一执行状态标识,本领域技术人员可以根据实际情况进行选择。
根据本公开的实施例,在N个初始操作子请求具有顺序排列的子请求标识的情况下,可以将N个初始操作子请求各自的第一执行状态标识设置为0,并按照子请求标识的顺序排列N个第一执行状态标识,从而形成“执行状态标识地图”,并将操作请求的操作请求标识与顺序排列的N个第一执行状态标识进行关联存储。在解析返回报文后,可以根据返回报文中的操作请求标识和子请求标识,将对应的第一执行状态标识更新为1,从而表征该初始操作子请求已经执行完成。
根据本公开的实施例,通过构建“执行状态标识地图”来更新执行状态标识,可以提升执行状态标识的更新速度,且有利于后续提升目标操作子请求的查询速度。
图6示意性示出了根据本公开实施例的响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求的流程图。
如图6所示,,操作S340,响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求可以包括操作S610~操作S620。
在操作S610,响应于针对操作请求的重传命令,根据N个初始操作子请求各自的操作执行状态,确定操作请求的操作执行状态。
在操作S620,在操作请求的操作执行状态表征未执行完成的情况下,将N个初始操作子请求中,关联有第一执行状态标识的M个初始操作子请求确定为M个目标操作子请求。
根据本公开的实施例,针对操作请求的重传命令可以在该操作请求向云服务平台传输出现异常的情况下生成。通过查询到该操作请求是否存在具有第一操作执行状态标识的初始操作子请求,可以确定该操作请求的操作执行状态。
根据本公开的实施例,在操作请求已经执行完成的情况下,相关技术中网络设备可以释放该操作请求的操作请求标识。因此,还可以查询操作请求的操作请求标识是否已经被释放,来确定该操作请求是否执行完成,即可以在该操作请求标识未被释放的情况下,确定该操作请求的操作执行状态表征未执行完成。
根据本公开的实施例,在操作请求包括多个的情况下,首先确定未执行完成的操作请求,然后再根据该未执行完成的操作请求来确定目标操作子请求,相对于遍历所有初始操作子请求的操作执行状态,可以提升查询到目标操作子请求的计算速度,从而提升异常情况下针对操作请求进行重新传输的整体效率。
根据本公开的实施例,操作S350,基于预设重传策略处理M个目标操作子请求,生成目标操作报文可以包括如下操作:
分别封装M个目标操作子请求,得到M个目标操作子请求各自对应的目标操作报文。
根据本公开的实施例,操作S350,基于预设重传策略处理M个目标操作子请求,生成目标操作报文可以包括如下操作:
将M个目标操作子请求封装为目标操作报文。
根据本公开的实施例,可以根据云服务平台的数据处理能力、数据处理特性等服务属性信息,灵活地将M个目标操作子请求封装为M个目标操作报文,或者将M个目标操作子请求封装成一个目标操作报文,从而可以提升后续云服务平台处理目标操作报文的处理效率,提升云服务系统的整体运行效率。
根据本公开的实施例,上述数据处理方法还可以包括如下操作:
向云服务平台并行发送M个目标操作报文;或者根据预设发送顺序向云服务平台发送M个目标操作报文。
根据本公开的实施例,可以根据实际的网络带宽情况、云服务平台的工作线程数量等属性信息,动态地调整发送方式,以便于提升云服务平台的操作执行效率。
图7示意性示出了根据本公开另一实施例的数据处理方法的应用场景图。
如图7所示,该应用场景中可以包括用户端710、智能网卡720和云服务平台730。用户端710与智能网卡720间通常采用virtio驱动协议进行通信。云服务平台730可以是用于存储用户端710的数据的云存储服务系统。用户端710与云服务平台730之间的读写操作采用virtio_blk协议与智能网卡进行交互。
在Virtio_blk协议中对于一笔操作请求(IO数据)可以包含有请求头、请求体和请求尾。其中,请求头、请求体和请求尾都是virtio协议所定义的数据描述符(desc_buf)进行描述。每个描述符所指向的用户端中的内存地址是不连续的,智能网卡根据desc_buf中的信息,通过PCIE接口从用户端所在的主机上对应的内存中取出数据。然后根据所取的数据是请求头、请求体还是请求尾来解析对应的数据。每个描述符(desc_buf)所指向的用户端中的内存地址是不连续的,智能网卡根据desc_buf中的信息,通过PCIE接口从用户端所在的主机上对应的内存中取出数据。然后根据所取的数据是请求头、请求体还是请求尾来解析对应的数据。
需要说明的是,请求头、请求体和请求尾可以分别对应相关技术术语中的链头、链身和链尾。
描述符,其结构体如下:
数据在用户端中的内存地址;
数据长度;
读/写标志,以及是否链到下一个desc_buf上;
下一个desc_buf的位置。
请求头可以包含有操作类型信息、操作请求在云服务平台730中的操作起始位置。每个请求体可以包含有该操作请求需要进行读/写操作的数据。请求尾可以包含有操作请求的返回状态。
图7中所示为智能网卡720基于fpga(现场可编程逻辑门阵列,FieldProgrammable Gate Array)实现的vblk的架构。缓存723中会存放两张数据表,分别为vblk_buf_tbl和vblk_rsp_tbl。其中vblk_buf_tbl存放的是切分为第一操作子请求后,每个操作子请求中的数据信息。在检测到重传命令时,可以根据vblk_buf_tbl来重新传送该笔IO数据(即操作请求)。vblk_rsp_tbl中存放该IO数据的请求尾以及该笔IO数据其他的数据信息。
数据表vblk_buf_tbl和vblk_rsp_tbl的具体表项结构可以参考如下数据结构形式:
Vblk_buf_tbl结构:
//智能网卡标识;
//操作请求id(操作请求标识);
//IO操作类型,例如可以是读/写/刷新;
//该笔zbs_buf操作对应在磁盘中的位置,即第二操作位置信息;
//切分后的第一操作子请求中请求体的编号,可以从0开始递增;
//切分后子第一操作子请求的子请求标识;
//第一操作子请求的开始标志;
//第一操作子请求的结尾标志;
//第一操作子请求中的请求体zbs_buf在用户端110主机中内存的位置;
//第一操作子请求中的请求体zbs_buf的大小。
Vblk_rsp_tbl结构:
//智能网卡标识;
//操作请求id;
//IO操作类型,例如可以是读/写/刷新;
//执行该笔IO数据在云服务平台中磁盘的起始位置;
//该笔IO一共切分为多少个第一操作子请求;
//当前执行完成了几笔第一操作子请求;
//当前完成子IO的bitmap(执行状态标识地图)。
智能网卡设备720(Vblk设备)收到一笔IO操作请求时为该IO操作请求分配一个操作请求标识,记为req_id(单个vblk设备支持128个IO),当IO操作请求执行完成时会释放该req_id。接收模块721根据请求头deac_buf信息通过DMA从主机上读取请求头数据发送给拆分模块722,后续的请求体和请求尾desc_buf信息直接送给拆分模块722。
拆分模块722从请求头数据中获取该笔IO操作请求的操作类型是读/写操作以及该笔IO操作请求在云服务平台730的磁盘中的起始位置。然后将后续的请求体按128KB的边界切成多个子IO(即初始操作子请求),并且每个初始操作子请求中的zbs_buf(子请求中子请求体描述符)送给报文处理模块725处理。
由于单个请求体有可能被切成多个zbs_buf,因此可以对每个初始操作子请求添加新的第二操作位置信息和操作类型信息、子请求标识等等信息(如vblk_buf_tbl所示)后送给报文处理模块725,同时也在网卡缓存723中备份存一份。在处理至请求尾时,可以计算出该IO操作请求一共被拆成多少个初始操作子请求,并记录初始操作子请求的数量(need_rsp_subio_num),一共生成了多少个zbs_buf,记录子请求体描述符的数量(zbs_buf_num)等信息。然后将请求尾的信息添加至网卡缓存723中的vblk_rsp_tbl表中。
需要说明的是,由于请求体各自的容量可能较小,例如可以是512B,1024B,而在报文处理模块725每次最多处理128kb数据的情况下,可以按照128kb的预设数据容量切分IO操作请求,以提升报文处理模块725的处理效率。
汇聚模块724模块将正常发送的IO操作请求和需要重传的IO操作请求汇聚后发送到后续的报文处理模块725。
在的IO操作请求是写入操作请求的情况下,报文处理模块725完成后会返回一个控制信息以通知这笔IO操作请求对应的已经完成了;如果是读操作,则zbs在返回读回来的数据之后再返回一个控制信息告诉vblk模块这笔读操作子IO已经完成。Vblk_rsp_rd模块在收到zbs返回的读数据或者控制信息时,查询相应的vblk_buf_tbl和vblk_rsp_tbl表,并将查表结果和读回来的数据/控制信息一起送给执行状态记录模块729模块。
执行状态记录模块729在收到读回来的数据时根据vblk_buf_tb1中返回地址和长度信息,将读回来的数据写到用户端710主机对应的内存中。执行状态记录模块729模块在收到控制信息时,则根据控制信息里的操作请求标识、子请求标识等字段来更新vblk_rsp_tbl表,记录当前IO操作请求的执行完成情况。每收到一个控制信息rsp_subio_num(执行操作完成的初始操作子请求的数量)就进行加1操作,对应的bitmap中subio_id的bit会被置位1,即实现将该初始操作子请求的第一执行状态标识0更新为第二执行状态标识1。
当rsp_subio_num值和need_rsp_subio_num(IO操作请求被切分得到的初始操作子请求的数量)相等时,并且bitmap的对应执行状态标识均为第二执行状态标识1时,表明该笔IO操作请求所有子IO都已经执行完成了,此时会根据vblk_rsp_tbl中的数据尾存储的desc_buf的地址和长度信息将用户端710主机对应的内存中写一个IO完成状态,然后释放操作请求标识,同时向用户端710发送一个中断通知,以通知用户端710该笔IO操作请求已经执行完成。
当出现异常情况,相关管理软件可以向重传检测模块726模块发送重传命令,重传响应模块727接收到重传命令时,根据该设备下的操作请求标识的bitmap找出所有未完成的IO操作请求(即未释放的操作请求标识)。然后通过未执行完成的操作请求标识先读取vblk_rsp_tbl表,获取当前IO操作请求的哪些初始操作子请求已经完成了,哪些初始操作子请求还未完成。
然后遍历vblk_buf_tbl下该操作请求标识的所有的zbs_buf,并将未完成的目标操作子请求的zbs_buf请求重新发送给报文处理模块725进行重传,由报文处理模块725将目标操作子请求封装为操作报文,以便于发送至云服务平台730。
以上是智能网卡720对于IO操作请求的正常处理及重传处理的处理过程,其中拆分模块722按128kb对操作请求进行切分,并将切分后的各个初始操作子请求的数据存放到网卡缓存723中。
执行状态记录模块729根据报文处理模块725返回的控制信息更新vblk_rsp_tbl表,记录当前IO操作请求的各个初始操作子请求各自的执行完成情况。
重传响应模块727收到重传命令时根据vblk_rsp_tbl中初始操作子请求各自的执行完成情况,将执行未完成的目标操作子请求进行重传处理。
例如,执行状态记录模块729可以通过以下过程进行数据处理。
执行状态记录模块729模块的功能是处理报文处理模块725返回的数据。对于操作请求为读取操作请求的情况,报文处理模块725返回读取回来的数据和该初始操作子请求的控制信息。
执行状态记录模块729模块将从云服务平台730返回的数据写到用户端710所属主机的内存中,并根据返回的控制信息来更新vblk_rsp_tbl,并判断该笔操作请求是否执行完成。若执行完成了则向用户端710发送IO完成状态并向用户端710发送中断,通知用户端710该操作请求已经执行完成。
对于操作请求为写入操作请求的情况,报文处理模块725只返回该初始操作子请求的控制信息。
由于报文处理模块725返回的初始操作子请求的执行完成状态有可能会乱序,例如初始操作子请求的子请求标识可以顺序排列为A、B、C、D,报文处理模块725接收到的已经执行完成的初始操作子请求的子请求标识可以是按照A、D、C、B。因此可以通过bitmap来记录是哪些初始操作子请求已经执行完成了。
例如操作请求的bitmap为4’b0101,表示子请求标识为A和C的初始操作子请求已经执行完成,子请求标识为为B和D的初始操作子请求还未完成。
但报文处理模块725返回的初始操作子请求的控制信息的顺序可能为A、D、C、B。因此只有初始操作子请求执行完成状态的数量还不够,还需要bitmap来记录是哪些初始操作子请求已经完成了,这样在重传时根据bitmap就可以将未执行完成的初始操作子请求,即目标操作子请求进行重传。
执行状态记录模块729读取报文处理模块725返回的数据,若操作请求为读取操作,该操作请求的初始操作子请求返回的数据需要查询vblk_buf_tbl中返回地址和长度信息,将读取回来的数据写到用户端710主机对应的内存中。若返回的是控制信息时,则根据控制信息里的设备标识、操作请求标识、子请求标识等字段来更新vblk_rsp_tbl表。
此处每收到一个控制信息rsp_subio_num(返回子请求的数量)就进行加1操作,bitmap中对应的子请求标识中的执行状态标识会将0更新为1。当返回子请求的数量和该操作请求被切分的初始操作子请求的数量相等时,并且bitmap的对应执行状态标识都为1时,表明该笔操作请求执行完成。此时再根据vblk_rsp_tbl中的请求尾的数据描述符的地址和长度信息向用户端710主机对应的内存中写一个操作请求完成状态,然后释放该操作请求的操作请求标识,同时发送一个中断给用户端710的主机驱动,告诉用户系统该笔操作请求已经完成。
重传响应模块727模块主要实现操作请求的重传功能,根据收到某个设备的重传命令将该设备下所有未完成的操作请求进行重传操作,其状态机实现的流程图如下:
在智能网卡720可以包含有记录操作请求的执行完成状态的操作请求执行状态地图,即bitmap。通过操作请求执行状态地图来记录操作请求的执行完成状态。操作请求执行状态地图中的操作请求执行状态标识为1表示该操作请求标识尚未被释放,即该操作请求尚未执行完成。
因此重传响应模块727模块遍历操作请求执行状态地图便知道哪些操作请求执行完成了。
当重传响应模块727收到重传命令时,从操作请求执行状态地图的操作请求标识进行遍历,直至操作请求标识遍历至第127个操作请求标识为止。
若该操作请求标识已经被释放则读取下一个操作请求标识,若该操作请求标识没有释放则读取vblk_rsp_tbl中对应的IO数据信息,该笔IO操作请求被切分为多少个初始操作子请求,子请求数据描述符,
已经执行完成多少初始操作子请求和分别是执行完成多少初始操作子请求的子请求标识。
然后遍历缓存723中vblk_buf_tbl表中该操作请求标识所有数据描述符,数据描述符里有子请求标识表明这个数据描述符属于哪个初始操作子请求。
根据bitmap来判断该的初始操作子请求是否执行完成,若执行完成了则该初始操作子请求不进行重传。若初始操作子请求未执行完成则将该目标操作子请求发送至报文处理模块725,以此循环,直到该设备下的所有操作请求标识被遍历完成,则该设备重传完成。
图8示意性示出了根据本公开的实施例的数据处理装置的框图。
如图8所示,数据处理装置800可以包括划分模块810、封装模块820、更新模块830、第一确定模块840和报文生成模块850。
划分模块810用于按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数。
封装模块820用于将N个初始操作子请求各自封装为操作报文,以便于云服务平台基于操作报文执行操作,生成与操作报文相对应的返回报文。
更新模块830用于根据来自云服务平台的返回报文,更新初始操作子请求的操作执行状态。
第一确定模块840用于响应于针对操作请求的重传命令,根据初始操作子请求各自的操作执行状态,从N个初始操作子请求中确定M个目标操作子请求,其中,目标操作子请求的操作执行状态为执行未完成。
报文生成模块850用于基于预设重传策略处理M个目标操作子请求,生成目标操作报文,以便于云服务平台基于目标操作报文执行操作,生成与目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
根据本公开的实施例,操作请求具有操作类型信息,以及用于表征操作请求执行位置的第一操作位置信息。
划分模块包括:第一切分单元、第一确定单元和操作类型信息添加单元。
第一切分单元,用于按照预设容量规则表征的数据容量,对操作请求进行切分,得到顺序排列的N个第一操作子请求,其中,第一操作子请求具有表征排列顺序的子请求标识。
第一确定单元,用于按照N个第一操作子请求各自的数据容量和子请求标识,以及操作请求的第一操作位置信息,确定N个第一操作子请求各自的第二操作位置信息。
操作类型信息添加单元,用于在第一操作子请求中添加操作类型信息和与第一操作子请求相对应的第二操作位置信息,得到初始操作子请求。
根据本公开的实施例,N个初始操作子请求各自具有子请求标识。
数据处理装置还包括:执行状态标识设置模块。
执行状态标识设置模块用于对N个初始操作子请求,分别设置与初始操作子请求相对应地第一执行状态标识,其中,第一执行状态标识表征初始操作子请求的操作执行状态为执行未完成,第一执行状态标识与子请求标识关联。
更新模块包括:解析单元和第一更新单元。
解析单元用于解析返回报文,得到返回报文中的子请求标识。
第一更新单元用于将与返回报文中的子请求标识关联的第一执行状态标识,更新为第二执行状态标识,以便将具有返回报文中的子请求标识的初始操作子请求的操作执行状态更新为执行完成。
根据本公开的实施例,第一确定模块包括:第一确定单元和第二确定单元。
第一确定单元用于响应于针对操作请求的重传命令,根据N个初始操作子请求各自的操作执行状态,确定操作请求的操作执行状态。
第二确定单元用于在操作请求的操作执行状态表征未执行完成的情况下,将N个初始操作子请求中,关联有第一执行状态标识的M个初始操作子请求确定为M个目标操作子请求。
根据本公开的实施例,报文生成模块文包括:第一封装单元或者第二封装单元。
第一封装单元用于分别封装M个目标操作子请求,得到M个目标操作子请求各自对应目标操作报文。
第二封装单元用于将M个目标操作子请求封装为目标操作报文。
根据本公开的实施例,数据处理装置还包括:第一发送模块或第二发送模块。
第一发送模块用于向云服务平台并行发送M个目标操作报文。
第二发送模块用于根据预设发送顺序向云服务平台发送N个初始操作子请求。
根据本公开的实施例,操作请求包括以下任意一项:
读取操作请求、写入操作请求、刷新操作请求和查询操作请求。
根据本公开的实施例,操作请求包括顺序连接的请求头数据包和L个请求体数据包,L为正整数。
数据处理装置还包括获取模块和第二解析模块。
获取模块用于获取来自用户端的操作请求。
第二解析模块用于解析操作请求的请求头数据包,得到操作请求的操作类型信息和第一操作位置信息。
根据本公开的实施例,划分模块包括第二切分单元。
第二切分单元用于按照预设容量规则表征的数据容量,对顺序连接的L个请求体数据包进行切分,得到顺序排列的N个第一操作子请求。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块和单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块和单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,划分模块810、封装模块820、更新模块830、第一确定模块840和报文生成模块850中的任意多个可以合并在一个模块/单元中实现,或者其中的任意一个模块/单元可以被拆分成多个模块/单元。或者,这些模块/单元中的一个或多个模块/单元的至少部分功能可以与其他模块/单元的至少部分功能相结合,并在一个模块/单元中实现。根据本公开的实施例,划分模块810、封装模块820、更新模块830、第一确定模块840和报文生成模块850中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,划分模块810、封装模块820、更新模块830、第一确定模块840和报文生成模块850中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中数据处理装置部分与本公开的实施例中数据处理方法部分是相对应的,数据处理装置部分的描述具体参考数据处理方法部分,在此不再赘述。
图9示意性示出了根据本公开实施例的适于实现数据处理方法的电子设备的框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。系统900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的数据处理方法。
在该计算机程序被处理器901执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (13)
1.一种数据处理方法,包括:
按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数;
将N个所述初始操作子请求各自封装为操作报文,以便于云服务平台基于所述操作报文执行操作,生成与所述操作报文相对应的返回报文;
根据来自所述云服务平台的返回报文,更新所述初始操作子请求的操作执行状态;
响应于针对所述操作请求的重传命令,根据所述初始操作子请求各自的操作执行状态,从N个所述初始操作子请求中确定M个目标操作子请求,其中,所述目标操作子请求的操作执行状态为执行未完成;以及
基于预设重传策略处理M个所述目标操作子请求,生成目标操作报文,以便于所述云服务平台基于所述目标操作报文执行操作,生成与所述目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
2.根据权利要求1所述的方法,其中,所述操作请求具有操作类型信息,以及用于表征所述操作请求执行位置的第一操作位置信息;
其中,所述按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求包括:
按照所述预设容量规则表征的数据容量,对所述操作请求进行切分,得到顺序排列的N个第一操作子请求,其中,所述第一操作子请求具有表征排列顺序的子请求标识;
按照N个所述第一操作子请求各自的数据容量和子请求标识,以及所述操作请求的第一操作位置信息,确定N个所述第一操作子请求各自的第二操作位置信息;以及
在所述第一操作子请求中添加所述操作类型信息和与所述第一操作子请求相对应的第二操作位置信息,得到所述初始操作子请求。
3.根据权利要求2所述的方法,其中,N个所述初始操作子请求各自具有子请求标识;
在按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求之后,所述数据处理方法还包括:
对N个所述初始操作子请求,分别设置与所述初始操作子请求相对应地第一执行状态标识,其中,所述第一执行状态标识表征所述初始操作子请求的操作执行状态为执行未完成,所述第一执行状态标识与所述子请求标识关联;
其中,所述根据来自所述云服务平台的返回报文,更新所述初始操作子请求的操作执行状态包括:
解析所述返回报文,得到所述返回报文中的子请求标识;
将与所述返回报文中的子请求标识关联的第一执行状态标识,更新为第二执行状态标识,以便将具有所述返回报文中的子请求标识的初始操作子请求的操作执行状态更新为执行完成。
4.根据权利要求3所述的方法,其中,所述响应于针对所述操作请求的重传命令,根据所述初始操作子请求各自的操作执行状态,从N个所述初始操作子请求中确定M个目标操作子请求包括:
响应于针对所述操作请求的重传命令,根据N个所述初始操作子请求各自的操作执行状态,确定所述操作请求的操作执行状态;
在所述操作请求的操作执行状态表征未执行完成的情况下,将N个所述初始操作子请求中,关联有第一执行状态标识的M个初始操作子请求确定为M个所述目标操作子请求。
5.根据权利要求1所述的方法,其中,基于预设重传策略处理M个所述目标操作子请求,生成目标操作报文包括:
分别封装M个所述目标操作子请求,得到M个所述目标操作子请求各自对应的目标操作报文;或者
将M个所述目标操作子请求封装为所述目标操作报文。
6.根据权利要求1至5中任一项所述的方法,还包括:
向所述云服务平台并行发送M个所述目标操作报文;或者
根据预设发送顺序向所述云服务平台发送M个所述目标操作报文。
7.根据权利要求1至5中任一项所述的方法,其中,所述操作请求包括以下任意一项:
读取操作请求、写入操作请求、刷新操作请求和查询操作请求。
8.根据权利要求2所述的方法,其中,所述操作请求包括顺序连接的请求头数据包和L个请求体数据包,L为正整数;
所述数据处理方法还包括:
获取来自所述用户端的操作请求;以及
解析所述操作请求的请求头数据包,得到所述操作请求的操作类型信息和所述第一操作位置信息。
9.根据权利要求8所述的方法,其中,按照所述预设容量规则表征的数据容量,对所述操作请求进行切分,得到顺序排列的N个第一操作子请求包括:
按照所述预设容量规则表征的数据容量,对顺序连接的L个所述请求体数据包进行切分,得到顺序排列的N个所述第一操作子请求。
10.一种数据处理装置,包括:
划分模块,用于按照预设容量规则切分来自用户端的操作请求,得到N个初始操作子请求,N为大于1的正整数;
封装模块,用于将N个所述初始操作子请求各自封装为操作报文,以便于云服务平台基于所述操作报文执行操作,生成与所述操作报文相对应的返回报文;
更新模块,用于根据来自所述云服务平台的返回报文,更新所述初始操作子请求的操作执行状态;
第一确定模块,用于响应于针对所述操作请求的重传命令,根据所述初始操作子请求各自的操作执行状态,从N个所述初始操作子请求中确定M个目标操作子请求,其中,所述目标操作子请求的操作执行状态为执行未完成;以及
报文生成模块,用于基于预设重传策略处理M个所述目标操作子请求,生成目标操作报文,以便于所述云服务平台基于所述目标操作报文执行操作,生成与所述目标操作报文相对应的目标返回报文,N≥M>1,M为正整数。
11.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至9中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211437188.7A CN115766655A (zh) | 2022-11-16 | 2022-11-16 | 数据处理方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211437188.7A CN115766655A (zh) | 2022-11-16 | 2022-11-16 | 数据处理方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766655A true CN115766655A (zh) | 2023-03-07 |
Family
ID=85372251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211437188.7A Pending CN115766655A (zh) | 2022-11-16 | 2022-11-16 | 数据处理方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766655A (zh) |
-
2022
- 2022-11-16 CN CN202211437188.7A patent/CN115766655A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9641413B2 (en) | Methods and computer program products for collecting storage resource performance data using file system hooks | |
AU2014235793B2 (en) | Automatic tuning of virtual data center resource utilization policies | |
US11977516B2 (en) | Systems and methods for data storage | |
US10067741B1 (en) | Systems and methods for I/O device logging | |
CN111367687A (zh) | 进程间数据通信方法和装置 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
CN112433920A (zh) | 一种埋点数据上报方法、装置、设备及介质 | |
US10747675B2 (en) | Method and device for managing caches | |
US10198378B2 (en) | Faster data transfer with simultaneous alternative remote direct memory access communications | |
CN111522706A (zh) | 前端应用的页面异常的监控方法及其装置 | |
CN114416470A (zh) | 一种云端监控方法、系统、设备及计算机存储介质 | |
CN111435323B (zh) | 信息的传输方法、装置、终端、服务器及存储介质 | |
CN115766655A (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
CN113852610B (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN115934378A (zh) | 业务数据处理方法、装置、电子设备和存储介质 | |
CN113779021B (zh) | 数据处理方法、装置、计算机系统及可读存储介质 | |
CN110798366A (zh) | 任务逻辑的处理方法、装置及设备 | |
WO2021073413A1 (zh) | 系统性能参数的发送方法、装置、管理设备和存储介质 | |
CN114510398A (zh) | 异常监测方法、装置、设备、系统和介质 | |
CN113971158A (zh) | 基于网卡的内存访问方法、内存访问方法、设备及系统 | |
US10783245B2 (en) | Feedback-directed static analysis | |
CN113760986A (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN113419952A (zh) | 云服务管理场景测试装置与方法 | |
CN114448976B (zh) | 网络报文的组装方法、装置、设备、介质和程序产品 | |
CN110908886A (zh) | 一种数据发送方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |