CN114595080A - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114595080A CN114595080A CN202210206443.0A CN202210206443A CN114595080A CN 114595080 A CN114595080 A CN 114595080A CN 202210206443 A CN202210206443 A CN 202210206443A CN 114595080 A CN114595080 A CN 114595080A
- Authority
- CN
- China
- Prior art keywords
- operating system
- data
- sending
- receiving
- cache region
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 104
- 230000006854 communication Effects 0.000 claims abstract description 91
- 230000005540 biological transmission Effects 0.000 claims abstract description 88
- 238000004891 communication Methods 0.000 claims abstract description 84
- 239000000872 buffer Substances 0.000 claims description 81
- 238000012545 processing Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 17
- 238000013467 fragmentation Methods 0.000 claims description 11
- 238000006062 fragmentation reaction Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,涉及计算机软件技术领域。该方法包括:获取发送缓存区中的待发送数据;通过第一传输接口将待发送数据写入第二操作***的接收缓存区;其中,第一传输接口支持远程过程调用框架的通信协议;基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。本申请实施例基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,实现了基于消息队列的远程过程调用,提升了网络通信的效率和可靠性。
Description
技术领域
本申请涉及计算机软件技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。
背景技术
进程间通信(IPC,Inter-process communication)是在多任务操作***或联网的计算机之间运行的程序和进程所用的通信技术。RPC(Remote Procedure Call,远程过程调用)通常建立在IPC机制之上,可以提供针对处在不同***中的进程间的远程通信服务。
在基于RPC架构实现两个操作***间应用层的通信时,通常采用网卡基于TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议实现远程调用通信,在此过程中,传输数据在操作***的用户态和内核态之间进行拷贝,且TCP/IP协议栈的计算需要消耗大量CPU(central processing unit,中央处理器)资源,增加了数据通信的网络延时。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机可读存储介质,可以解决数据通信的网络延时问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种数据处理方法,应用于第一操作***,该方法包括:
获取发送缓存区中的待发送数据;
通过第一传输接口将待发送数据写入第二操作***的接收缓存区;其中,第一传输接口支持远程过程调用框架的通信协议;
基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。
可选的,上述通过第一传输接口将待发送数据写入第二操作***的接收缓存区,包括:
在待发送数据符合预设发送条件的情况下,通过第一传输接口将待发送数据写入第二操作***的接收缓存区;
其中,预设发送条件为基于第二操作***的接收窗口信息和第一操作***的发送窗口信息确定的;发送窗口信息指示第一操作***的发送缓存区中数据的已发送数量,接收窗口信息指示第二操作***的目标接收地址。
可选的,上述待发送数据符合预设发送条件,包括:
当已发送数量小于发送窗口信息的发送阈值,且目标接收地址为可接收状态,则待发送数据符合预设发送条件。
可选的,上述方法还包括:
从第一完成队列中获取发送完成事件;
将待发送数据从第一操作***的发送缓存区中移除,并更新发送窗口信息对应的已发送数量。
可选的,上述通过第一传输接口将待发送数据写入第二操作***的接收缓存区,包括:
通过第一传输接口根据预设格式将待发送数据转化为目标接收数据;
将目标接收数据保存到接收缓存区中。
根据本申请实施例的另一个方面,提供了一种数据处理方法,应用于第二操作***,该方法包括:
确定第二操作***的接收缓存区中的目标接收数据;其中,目标接收数据是通过第二传输接口接收的;第二传输接口支持远程过程调用框架的通信协议;
将目标接收数据复制到预设分片缓存区;
基于第二网卡生成接收完成事件,并将接收完成事件添加到第二操作***的第二完成队列中;其中,第二网卡支持与远程过程调用框架对应的通信协议。
可选的,上述方法还包括:
基于接收完成事件,更新第二操作***的接收窗口信息;其中,接收窗口信息指示第二操作***的目标接收地址。
可选的,上述分片缓存区包括第一缓存区和第二缓存区;第二操作***的接收缓存区中的数据依次存满第一缓存区后,再存入第二缓存区;
更新第二操作***的接收窗口信息,包括:
当接收窗口信息对应第一缓存区,且第一缓存区无存储空间,则将第二缓存区作为目标接收地址。
根据本申请实施例的另一个方面,提供了一种数据处理装置,应用于第一操作***,该装置包括:
获取模块,用于获取发送缓存区中的待发送数据;
写入模块,用于通过第一传输接口将待发送数据写入第二操作***的接收缓存区;其中,第一传输接口支持远程过程调用框架的通信协议;
第一添加模块,用于基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。
可选的,上述写入模块,用于:
在待发送数据符合预设发送条件的情况下,通过第一传输接口将待发送数据写入第二操作***的接收缓存区;
其中,预设发送条件为基于第二操作***的接收窗口信息和第一操作***的发送窗口信息确定的;发送窗口信息指示第一操作***的发送缓存区中数据的已发送数量,接收窗口信息指示第二操作***的目标接收地址。
可选的,上述待发送数据符合预设发送条件,包括:
当已发送数量小于发送窗口信息的发送阈值,且目标接收地址为可接收状态,则待发送数据符合预设发送条件。
可选的,上述装置还包括第一更新模块,用于:
从第一完成队列中获取发送完成事件;
将待发送数据从第一操作***的发送缓存区中移除,并更新发送窗口信息对应的已发送数量。
可选的,上述写入模块,还用于:
通过第一传输接口根据预设格式将待发送数据转化为目标接收数据;
将目标接收数据保存到接收缓存区中。
根据本申请实施例的另一个方面,提供了一种数据处理装置,应用于第二操作***,该装置包括:
确定模块,用于确定第二操作***的接收缓存区中的目标接收数据;其中,目标接收数据是通过第二传输接口接收的;第二传输接口支持远程过程调用框架的通信协议;
复制模块,用于将目标接收数据复制到预设分片缓存区;
第二添加模块,用于基于第二网卡生成接收完成事件,并将接收完成事件添加到第二操作***的第二完成队列中;其中,第二网卡支持与远程过程调用框架对应的通信协议。
可选的,上述装置还包括第二更新模块,用于:
基于接收完成事件,更新第二操作***的接收窗口信息;其中,接收窗口信息指示第二操作***的目标接收地址。
可选的,上述分片缓存区包括第一缓存区和第二缓存区;第二操作***的接收缓存区中的数据依次存满第一缓存区后,再存入第二缓存区;
上述第二更新模块,用于:
当接收窗口信息对应第一缓存区,且第一缓存区无存储空间,则将第二缓存区作为目标接收地址。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,上述处理器执行计算机程序以实现本申请实施例第一方面和第二方面所示方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面和第二方面所示方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所示方法和第二方面的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例通过第一传输接口,将第一操作***的发送缓存区中的待发送数据直接写入第二操作***的接收缓存区,接着基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中,实现了基于消息队列的远程过程调用,为操作***提供了远程直接内存访问的通信能力。相比现有技术中基于TCP/IP协议进行远程调用通信,本申请基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,无需消耗大量CPU资源来计算TCP/IP协议栈,节省了网络传输数据在操作***的用户态和内核态之间复制、移动和上下文切换的资源开销。
同时,本申请实施例基于发送缓存区和接收缓存区实现远程直接内存访问,无需占用大量CPU资源和内存总线带宽,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据处理方法的流程示意图;
图2为本申请实施例提供的另一种数据处理方法的流程示意图;
图3为本申请实施例提供的一个示例的数据处理方法的流程示意图;
图4为本申请实施例提供的一种数据处理方法中操作***的结构示意图;
图5为本申请实施例提供的一种数据处理装置的结构示意图;
图6为本申请实施例提供的另一种数据处理装置的结构示意图;
图7为本申请实施例提供的一种数据处理电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
分布式计算是一种计算方法,和集中式计算是相对的。随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
远程过程调用是一个可用于分布式计算的通信技术。RPC架构允许运行于一台计算机的程序调用另一个地址空间(通常为接入开放网络的计算机)的子程序,而程序员无需额外地为这个交互作用编程。RPC是一种服务器/客户端(Client/Server)模式,现今大部分RPC架构都基于传统操作***的TCP/IP通信模式实现高效可靠的数据传输。
目前基于传统TCP/IP通信模式的RPC架构中仍然存在一些问题:
1、传输数据需要在操作***的用户态和内核态之间进行拷贝,占用了大量的内存总线带宽;
2、操作***复杂的TCP/IP网络栈处理耗费了大量CPU计算资源,增加了网络延迟。
本申请提供的数据处理方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题。
本申请实施例提供了一种数据处理方法,该方法可以应用于第一操作***,该第一操作***可以运行于终端或服务器中。本申请实施例涉及的终端或服务器,通过第一传输接口,将第一操作***的发送缓存区中的待发送数据直接写入第二操作***的接收缓存区,接着基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中。本申请实现了基于消息队列的通信方案,为操作***提供了远程直接内存访问的能力,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本技术领域技术人员可以理解,这里所使用的“终端”可以是手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、MID(Mobile Internet Device,移动互联网设备)等;“服务器”可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本申请实施例中提供了一种数据处理方法,如图1所示,应用于第一操作***,该方法包括:
S101,获取发送缓存区中的待发送数据。
其中,上述发送缓存区用于存放第一操作***与远端(如第二操作***)的交互消息,即待发送数据。
S102,通过第一传输接口将待发送数据写入第二操作***的接收缓存区;其中,第一传输接口支持远程过程调用框架的通信协议。
其中,远程过程调用框架可以是gRPC(一种开源的RPC框架)框架。上述支持远程过程调用框架的通信协议可以是基于RDMA(Remote Direct Memory Access,远程直接内存访问)技术的RoCE v2(RDMA over Converged Ethernet,基于以太网的RDMA)协议。
在本申请实施例中,RDMA通过网络把待发送数据直接传入计算机的存储区,将待发送数据从一个操作***快速移动到远程操作***的存储器中,而不对操作***造成任何影响,这样不需要占用过多CPU的处理功能,消除了外部存储器复制和上下文切换的开销,因而能减少内存带宽和CPU周期的占用,进而改进应用***性能。RoCE是基于以太网的RDMA技术,支持相应的RDMA接口,RoCE协议存在RoCEv1和RoCEv2两个版本,RoCEv1是基于以太网链路层实现的RDMA协议,而RoCEv2是以太网TCP/IP协议中UDP层实现,本申请实施例以RoCEv2为例进行具体说明。
具体的,第一操作***的发送缓存区和第二操作***的接收缓存区可以是协议缓冲区,用于对结构化数据进行序列化操作。gRPC是一种实现远程过程调用通信的技术,该gRPC框架使用协议缓冲区在第一操作***和第二操作***之间序列化数据,并采用额外的协议语法来定义操作***应用层之间的通信。其中,第一传输接口由gRPC框架的I/O接口层提供,用于实现数据的传输。
S103,基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。
其中,第一网卡同样也支持RoCE v2协议。基于第一网卡可以实现基于消息队列的通信,具体的消息队列的数据处理过程将在下文详细介绍。
本申请实施例通过第一传输接口,将第一操作***的发送缓存区中的待发送数据直接写入第二操作***的接收缓存区,接着基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中,实现了基于消息队列的远程过程调用,为操作***提供了远程直接内存访问的能力。相比现有技术中基于TCP/IP协议进行远程调用通信,本申请基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,无需消耗大量CPU资源来计算TCP/IP协议栈,节省了网络传输数据在操作***的用户态和内核态之间复制、移动和上下文切换的资源开销。本申请实施例基于发送缓存区和接收缓存区实现远程直接内存访问,无需占用大量CPU资源和内存总线带宽,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
在本申请实施例中,在上述步骤S101之前,基于RoCE v2协议建立第一操作***与第二操作***的通信连接的过程,包括针对第一操作***,对gRPC框架的I/O接口层进行如下操作:
(1)将RDMA_CM(RDMA原生编程接口)的fd(file descriptor,文件描述符,是进程独有的文件描述符表的索引)变更为非阻塞状态;其中,RDMA_CM的fd用于监测建立连接相关的事件。
(2)将连接事件源fd放入事件源池子,并为事件源fd注册回调函数,回调函数用于响应fd的可读事件。
(3)基于回调函数执行推动状态机转变为可双向通信的状态,从而完成连接的建立。
在本申请实施例中,可以基于RDMA_CM接口采用IO复用技术(poll、epoll等)来实现事件通知机制,进而建立第一操作***和第二操作***的RDMA连接;当直接对RDMA_CMfd进行poll/epoll监听时,此时只要监听到POLLIN事件,就意味着有建立连接相关的事件发生,有效提升了第一操作***和第二操作***连接的可信度。
本申请实施例中提供了一种可能的实现方式,上述步骤S102中的通过第一传输接口将待发送数据写入第二操作***的接收缓存区,包括:
在待发送数据符合预设发送条件的情况下,通过第一传输接口将待发送数据写入第二操作***的接收缓存区;
其中,预设发送条件为基于第二操作***的接收窗口信息和第一操作***的发送窗口信息确定的;发送窗口信息指示第一操作***的发送缓存区中数据的已发送数量,接收窗口信息指示第二操作***的目标接收地址。
其中,上述第一传输接口可以是verbs(RDMA原生编程接口)接口,verbs用于数据传输;在第一操作***与第二操作***建立通信连接之后,第一操作***可以基于第一传输接口实现与第二操作***的数据传输。
具体的,第一操作***可以基于第一传输接口与第一操作***的第一完成队列,实现数据的传输。上述预设发送条件包括第一操作***的发送状态,和第二操作***的接收状态,其中,上述发送状态由第一操作***的发送窗口信息确定,上述接收状态由第二操作***的接收窗口信息确定。
本申请实施例中提供了一种可能的实现方式,上述待发送数据符合预设发送条件,包括:
当已发送数量小于发送窗口信息的发送阈值,且目标接收地址为可接收状态,则待发送数据符合预设发送条件。
其中,第一操作***的发送窗口信息还包括第一操作***的发送阈值,该发送阈值表征第一操作***的发送能力,可以用于对待发送数据的数量进行控制。
在本申请实施例中,通过第一操作***的发送窗口信息和第二操作***的接收窗口信息,可以保证发送缓存区中的待发送数据对于第一操作***是可发送状态,且对于第二操作***是可接收的状态;本申请从数据的发送端和接收端多维度进行数据处理,避免数据传输的网络延时,提升了传输效率。
本申请实施例中提供了一种可能的实现方式,上述步骤S102中通过第一传输接口将待发送数据写入第二操作***的接收缓存区,还包括:
通过第一传输接口根据预设格式将待发送数据转化为目标接收数据;将目标接收数据保存到接收缓存区中。
其中,上述目标接收数据的格式可以与第二操作***的gRPC框架相匹配,以便第二操作***直接从接收缓存区中直接识别并使用该目标接收数据。
本申请实施例中提供了一种可能的实现方式,上述方法还包括:
从第一完成队列中获取发送完成事件;将待发送数据从第一操作***的发送缓存区中移除,并更新发送窗口信息对应的已发送数量。
具体的,可以基于第一传输接口对第一完成队列中的消息进行监听,当监测得到发送完成事件,将待发送数据从发送缓存区中移除,并基于该发送完成事件对发送窗口信息进行更新。
在本申请实施例中,以发送窗口信息表征的已发送数量为3条消息为例进行具体说明。第一操作***基于第一传输接口对第一完成队列中的消息进行监听,当监测得到发送完成时间,则表征第一操作***已经完成发送操作,将待发送数据从发送缓存区中移除,并更新发送窗口信息,将已发送数量变更为4条消息。如果发送窗口消息的发送阈值为5条消息,则表示第一操作***还可发送1条消息,为可发送状态。
本申请实施例通过对消息队列即第一完成队列进行监测,来实时更新发送窗口信息,实现了基于滑动窗口算法的操作***应用层流量控制,进一步提升了传输效率。
本申请实施例中提供了一种数据处理方法,如图2所示,应用于第二操作***,该方法包括:
S201,确定第二操作***的接收缓存区中的目标接收数据;其中,目标接收数据是通过第二传输接口接收的;第二传输接口支持远程过程调用框架的通信协议。
其中,目标接收数据可以是由第一操作***的发送缓存区中的待发送数据转化得到的。目标接收数据的格式与第二操作***的远程过程调用框架相匹配。上述接收缓存区用于存放第二操作***与远端(如第一操作***)的交互消息,即目标接收数据。
同时,远程过程调用框架可以是gRPC框架。上述支持远程过程调用框架的通信协议可以是基于RDMA技术的RoCE v2协议。
在本申请实施例中,RDMA通过网络把待发送数据直接传入计算机的存储区,将待发送数据从一个操作***快速移动到远程操作***的存储器中,而不对操作***造成任何影响,这样不需要占用过多CPU的处理功能,消除了外部存储器复制和上下文切换的开销,因而能接触内存带宽和CPU周期的占用,进而改进应用***性能。RoCE是基于以太网的RDMA技术,支持相应的RDMA接口,RoCE协议存在RoCEv1和RoCEv2两个版本,RoCEv1是基于以太网链路层实现的RDMA协议,而RoCEv2是以太网TCP/IP协议中UDP层实现,本申请实施例以RoCEv2为例进行具体说明。
具体的,第一操作***的发送缓存区和第二操作***的接收缓存区可以是协议缓冲区,用于对结构化数据进行序列化操作。gRPC是一种实现远程过程调用通信的技术,该gRPC框架使用协议缓冲区在第一操作***和第二操作***之间序列化数据,并采用额外的协议语法来定义操作***应用层之间的通信。其中,第二传输接口由gRPC框架的I/O接口层提供,用于实现数据的传输。
S202,将目标接收数据复制到预设分片缓存区。
其中,上述分片缓存区是第二操作***用于数据处理的缓存区。
S203,基于第二网卡生成接收完成事件,并将接收完成事件添加到第二操作***的第二完成队列中;其中,第二网卡支持与远程过程调用框架对应的通信协议。
其中,第二网卡同样也支持RoCE v2协议。基于第二网卡可以实现基于消息队列的通信,具体的消息队列的数据处理过程将在下文详细介绍。
本申请实施例通过第二传输接口接收目标接收数据,并将目标接收数据复制到预设分片缓存区,进而基于第二网卡生成接收完成事件,并将接收完成事件添加到第二操作***的第二完成队列中;同时,目标接收数据可以是由第一操作***的发送缓存区中的待发送数据转化得到的,本申请实现了基于消息队列的远程过程调用,为操作***提供了远程直接内存访问的能力。相比现有技术中基于TCP/IP协议进行远程调用通信,本申请基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,无需消耗大量CPU资源来计算TCP/IP协议栈,节省了网络传输数据在操作***的用户态和内核态之间复制、移动和上下文切换的资源开销。本申请实施例基于发送缓存区和接收缓存区实现远程直接内存访问,无需占用大量CPU资源和内存总线带宽,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
在本申请实施例中,在上述步骤S201之前,基于RoCE v2协议建立第一操作***与第二操作***的通信连接的过程,包括针对第二操作***,对gRPC框架的I/O接口层进行如下操作:
(1)将RDMA_CM的fd变更为非阻塞状态;其中,RDMA_CM的fd用于监测建立连接相关的事件。
(2)将连接事件源fd放入事件源池子,并为事件源fd注册回调函数,回调函数用于相应fd的可读事件。
(3)基于回调函数执行推动状态机转变为可双向通信的状态,从而完成连接的建立。
其中,上述第二传输接口可以是verbs接口,verbs用于数据传输;在第一操作***与第二操作***建立通信连接之后,第二操作***可以基于第二传输接口实现与第一操作***的数据传输。
在本申请实施例中,可以基于RDMA_CM接口采用IO复用技术(poll、epoll等)来实现事件通知机制,进而建立第二操作***和第一操作***的RDMA连接;当直接对RDMA_CMfd进行poll/epoll监听时,此时只要监听到POLLIN事件,就意味着有建立连接相关的事件发生,有效提升了第二操作***和第一操作***连接的可信度。
本申请实施例中提供了一种可能的实现方式,上述方法还包括:
基于接收完成事件,更新第二操作***的接收窗口信息;其中,接收窗口信息指示第二操作***的目标接收地址。
其中,上述目标接收地址可以指示分片缓存区的地址信息。
本申请实施例通过对消息队列即第二完成队列进行监测,来实时更新第二操作***的接收窗口信息,实现了基于滑动窗口算法的操作***应用层流量控制,进一步提升了传输效率。具体的接收窗口信息的更新方式将在下文详细介绍。
本申请实施例中提供了一种可能的实现方式,上述分片缓存区包括第一缓存区和第二缓存区;第二操作***的接收缓存区中的数据依次存满第一缓存区后,再存入第二缓存区;
更新第二操作***的接收窗口信息,包括:
当接收窗口信息对应第一缓存区,且第一缓存区无存储空间,则将第二缓存区作为目标接收地址。
其中,上述分片缓存区包括至少两个缓存区。
具体的,当查询得到第二操作***的接收缓存区中,当前的接收地址对应第一缓存区,且该第一缓存区已经存满,则将第二缓存区作为实时的目标接收地址;当查询得到第二操作***的接收缓存区中,当前的接收地址对应第一缓存区,且该第一缓存区还存在相应的存储空间,则目标接收地址保持为第一缓存区不变,即不更新第二操作***的接收窗口信息。
在本申请实施例是以第二操作***作为接收端进行说明,与此同时,第二操作***也可作为发送端与第一操作***进行数据传输;当第二操作***作为发送端进行数据传输的步骤,可以参考本申请实施例的第一方面应用于第一操作***的数据处理方法,同样,第一操作***作为接收端的数据处理步骤与本申请实施例提供的应用于第二操作***的数据方法相同,在此不再赘述。
为了更好的理解上述数据处理方法,下面结合图3和图4详细阐述一个本申请的数据处理方法的示例,该方法可以应用于第一操作***与第二操作***的消息交互;其中,上述第一操作***和第二操作***可以运行于不同的终端或服务器中。该方法包括如下步骤:
S301,第一操作***确定发送缓存区中的待发送数据。
其中,上述发送缓存区用于存放第一操作***与远端(如第二操作***)的交互消息,即待发送数据。
S302,确定第二操作***的接收窗口信息和第一操作***的发送窗口信息。
其中,发送窗口信息指示第一操作***的发送缓存区中数据的已发送数量,接收窗口信息指示第二操作***的目标接收地址。第一操作***的发送窗口信息还包括第一操作***的发送阈值,该发送阈值表征第一操作***的发送能力,可以用于对待发送数据的数量进行控制。
在本申请实施例中,第一操作***和第二操作***均支持gRPC框架;gRPC是一组实现远程过程调用通信的技术,该gRPC框架使用协议缓冲区在第一操作***和第二操作***之间序列化数据,并采用额外的协议语法来定义操作***应用层之间的通信。
S303,当上述已发送数量和目标接收地址满足预设发送条件,第一操作***根据预设格式将待发送数据转化为目标接收数据。
其中,预设发送条件可以包括:已发送数量小于发送窗口信息的发送阈值,且目标接收地址为可接收状态。
S304,第一操作***通过第一传输接口将目标接收数据写入第二操作***的接收缓存区。其中,第一传输接口支持远程过程调用框架的通信协议。
其中,上述支持远程过程调用框架的通信协议可以是基于RDMA技术的RoCE v2协议。第一传输接口由gRPC框架的I/O接口层提供,用于实现数据的传输。
S305,第一操作***基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。
其中,第一网卡同样也支持RoCE v2协议。基于第一网卡可以实现基于消息队列的通信。
S306,当第一操作***从第一完成队列中监听到上述发送完成事件,将待发送数据从发送缓存区中移除,并更新发送窗口信息对应的已发送数量。
具体的,可以基于第一传输接口对第一完成队列中的消息进行监听,当监测得到发送完成事件,将待发送数据从发送缓存区中移除,并基于该发送完成事件对发送窗口信息进行更新。
在本申请实施例中,以发送窗口信息表征的已发送数量为3条消息为例进行具体说明。第一操作***基于第一传输接口对第一完成队列中的消息进行监听,当监测得到发送完成时间,则表征第一操作***已经完成发送操作,将待发送数据从发送缓存区中移除,并更新发送窗口信息,将已发送数量变更为4条消息。如果发送窗口消息的发送阈值为5条消息,则表示第一操作***还可发送1条消息,为可发送状态。
S307,第二操作***将目标接收数据从接收缓存区复制到预设分片缓存区。
其中,上述分片缓存区是第二操作***用于数据处理的缓存区。
S308,基于第二网卡生成接收完成事件,并将接收完成事件添加到第二操作***的第二完成队列中。
其中,第二网卡同样也支持RoCE v2协议。基于第二网卡可以实现基于消息队列的通信。
S309,当第二操作***从第二完成队列中监听到上述接收完成事件,更新第二操作***的接收窗口信息;其中,上述分片缓存区包括第一缓存区和第二缓存区;第二操作***的接收缓存区中的数据依次存满第一缓存区后,再存入第二缓存区。
具体的,更新第二操作***的接收窗口信息,包括:
当接收窗口信息对应第一缓存区,且第一缓存区无存储空间,则将第二缓存区作为目标接收地址。
具体的,当查询得到第二操作***的接收缓存区中,当前的接收地址对应第一缓存区,且该第一缓存区已经存满,则将第二缓存区作为实时的目标接收地址;当查询得到第二操作***的接收缓存区中,当前的接收地址对应第一缓存区,且该第一缓存区还有相应的存储空间,则目标接收地址保持为第一缓存区不变,即不更新第二操作***的接收窗口信息。
在本申请实施例是以第二操作***作为接收端进行说明,与此同时,第二操作***也可作为发送端与第一操作***进行数据传输;当第二操作***作为发送端进行数据传输的步骤,可以参考本申请实施例的第一方面应用于第一操作***的数据处理方法,同样,第一操作***作为接收端的数据处理步骤与本申请实施例提供的应用于第二操作***的数据方法相同,在此不再赘述。
本申请实施例通过第一传输接口,将第一操作***的发送缓存区中的待发送数据直接写入第二操作***的接收缓存区,接着基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中,实现了基于消息队列的远程过程调用,为操作***提供了远程直接内存访问的能力。相比现有技术中基于TCP/IP协议进行远程调用通信,本申请基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,无需消耗大量CPU资源来计算TCP/IP协议栈,节省了网络传输数据在操作***的用户态和内核态之间复制、移动和上下文切换的资源开销。本申请实施例基于发送缓存区和接收缓存区实现远程直接内存访问,无需占用大量CPU资源和内存总线带宽,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
本申请实施例提供了一种数据处理装置,如图5所示,该数据处理装置50应用于第一操作***,可以包括:获取模块501、写入模块502和第一添加模块;
其中,获取模块501,用于获取发送缓存区中的待发送数据;
写入模块502,用于通过第一传输接口将待发送数据写入第二操作***的接收缓存区;其中,第一传输接口支持远程过程调用框架的通信协议;
第一添加模块503,用于基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。
本申请实施例中提供了一种可能的实现方式,上述写入模块502,用于:
在待发送数据符合预设发送条件的情况下,通过第一传输接口将待发送数据写入第二操作***的接收缓存区;
其中,预设发送条件为基于第二操作***的接收窗口信息和第一操作***的发送窗口信息确定的;发送窗口信息指示第一操作***的发送缓存区中数据的已发送数量,接收窗口信息指示第二操作***的目标接收地址。
本申请实施例中提供了一种可能的实现方式,上述待发送数据符合预设发送条件,包括:
当已发送数量小于发送窗口信息的发送阈值,且目标接收地址为可接收状态,则待发送数据符合预设发送条件。
本申请实施例中提供了一种可能的实现方式,上述装置还包括第一更新模块,用于:
从第一完成队列中获取发送完成事件;
将待发送数据从第一操作***的发送缓存区中移除,并更新发送窗口信息对应的已发送数量。
本申请实施例中提供了一种可能的实现方式,上述写入模块502,还用于:
通过第一传输接口根据预设格式将待发送数据转化为目标接收数据;
将目标接收数据保存到接收缓存区中。
本申请实施例提供了一种数据处理装置,如图6所示,该数据处理装置60应用于第二操作***,可以包括:确定模块601、复制模块602和第二添加模块603;
其中,确定模块601,用于确定第二操作***的接收缓存区中的目标接收数据;其中,目标接收数据是通过第二传输接口接收的;第二传输接口支持远程过程调用框架的通信协议;
复制模块602,用于将目标接收数据复制到预设分片缓存区;
第二添加模块603,用于基于第二网卡生成接收完成事件,并将接收完成事件添加到第二操作***的第二完成队列中;其中,第二网卡支持与远程过程调用框架对应的通信协议。
可选的,上述装置还包括第二更新模块,用于:
基于接收完成事件,更新第二操作***的接收窗口信息;其中,接收窗口信息指示第二操作***的目标接收地址。
可选的,上述分片缓存区包括第一缓存区和第二缓存区;第二操作***的接收缓存区中的数据依次存满第一缓存区后,再存入第二缓存区;
上述第二更新模块603,用于:
当接收窗口信息对应第一缓存区,且第一缓存区无存储空间,则将第二缓存区作为目标接收地址。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例通过第一传输接口,将第一操作***的发送缓存区中的待发送数据直接写入第二操作***的接收缓存区,接着基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中,实现了基于消息队列的远程过程调用,为操作***提供了远程直接内存访问的通信能力。相比现有技术中基于TCP/IP协议进行远程调用通信,本申请基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,无需消耗大量CPU资源来计算TCP/IP协议栈,节省了网络传输数据在操作***的用户态和内核态之间复制、移动和上下文切换的资源开销。本申请实施例基于发送缓存区和接收缓存区实现远程直接内存访问,无需占用大量CPU资源和内存总线带宽,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与相关技术相比可实现:本申请实施例通过第一传输接口,将第一操作***的发送缓存区中的待发送数据直接写入第二操作***的接收缓存区,接着基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中,实现了基于消息队列的远程过程调用,为操作***提供了远程直接内存访问的通信能力。相比现有技术中基于TCP/IP协议进行远程调用通信,本申请基于支持远程过程调用框架的通信协议,将数据从第一操作***的指定内存传输到第二操作***的指定内存中,无需消耗大量CPU资源来计算TCP/IP协议栈,节省了网络传输数据在操作***的用户态和内核态之间复制、移动和上下文切换的资源开销。本申请实施例基于发送缓存区和接收缓存区实现远程直接内存访问,无需占用大量CPU资源和内存总线带宽,避免通信过程中产生网络延时,提升了网络通信的效率和可靠性。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备700包括:处理器701和存储器703。其中,处理器701和存储器703相连,如通过总线702相连。可选地,电子设备700还可以包括收发器704,收发器704可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器704不限于一个,该电子设备700的结构并不构成对本申请实施例的限定。
处理器701可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器701也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线702可包括一通路,在上述组件之间传送信息。总线702可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器703用于存储执行本申请实施例的计算机程序,并由处理器701来控制执行。处理器701用于执行存储器703中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:诸如移动电话、笔记本电脑、PAD等等移动终端以及诸如数字TV、台式计算机等等固定终端。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现如下情况:
获取发送缓存区中的待发送数据;
通过第一传输接口将待发送数据写入第二操作***的接收缓存区;其中,第一传输接口支持远程过程调用框架的通信协议;
基于第一网卡生成发送完成事件,并将发送完成事件添加到第一操作***的第一完成队列中;其中,第一网卡支持与远程过程调用框架对应的通信协议。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (12)
1.一种数据处理方法,应用于第一操作***,其特征在于,包括:
获取发送缓存区中的待发送数据;
通过第一传输接口将所述待发送数据写入第二操作***的接收缓存区;其中,所述第一传输接口支持远程过程调用框架的通信协议;
基于第一网卡生成发送完成事件,并将所述发送完成事件添加到所述第一操作***的第一完成队列中;其中,所述第一网卡支持与所述远程过程调用框架对应的通信协议。
2.根据权利要求1所述的方法,其特征在于,所述通过第一传输接口将所述待发送数据写入第二操作***的接收缓存区,包括:
在所述待发送数据符合预设发送条件的情况下,通过所述第一传输接口将所述待发送数据写入所述第二操作***的接收缓存区;
其中,所述预设发送条件为基于所述第二操作***的接收窗口信息和所述第一操作***的发送窗口信息确定的;所述发送窗口信息指示所述第一操作***的发送缓存区中数据的已发送数量,所述接收窗口信息指示所述第二操作***的目标接收地址。
3.根据权利要求2所述的方法,其特征在于,所述待发送数据符合预设发送条件,包括:
当所述已发送数量小于所述发送窗口信息的发送阈值,且所述目标接收地址为可接收状态,则所述待发送数据符合所述预设发送条件。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
从所述第一完成队列中获取发送完成事件;
将所述待发送数据从所述第一操作***的发送缓存区中移除,并更新所述发送窗口信息对应的已发送数量。
5.根据权利要求1所述的方法,其特征在于,所述通过第一传输接口将所述待发送数据写入第二操作***的接收缓存区,包括:
通过所述第一传输接口根据预设格式将所述待发送数据转化为目标接收数据;
将所述目标接收数据保存到所述接收缓存区中。
6.一种数据处理方法,应用于第二操作***,其特征在于,包括:
确定所述第二操作***的接收缓存区中的目标接收数据;其中,所述目标接收数据是通过第二传输接口接收的;所述第二传输接口支持远程过程调用框架的通信协议;
将所述目标接收数据复制到预设分片缓存区;
基于第二网卡生成接收完成事件,并将所述接收完成事件添加到所述第二操作***的第二完成队列中;其中,所述第二网卡支持与所述远程过程调用框架对应的通信协议。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于所述接收完成事件,更新所述第二操作***的接收窗口信息;其中,所述接收窗口信息指示所述第二操作***的目标接收地址。
8.根据权利要求7所述的方法,其特征在于,所述分片缓存区包括第一缓存区和第二缓存区;所述第二操作***的接收缓存区中的数据依次存满所述第一缓存区后,再存入所述第二缓存区;
所述更新所述第二操作***的接收窗口信息,包括:
当所述接收窗口信息对应所述第一缓存区,且所述第一缓存区无存储空间,则将所述第二缓存区作为所述目标接收地址。
9.一种数据处理装置,应用于第一操作***,其特征在于,包括:
获取模块,用于获取发送缓存区中的待发送数据;
写入模块,用于通过第一传输接口将所述待发送数据写入第二操作***的接收缓存区;其中,所述第一传输接口支持远程过程调用框架的通信协议;
第一添加模块,用于基于第一网卡生成发送完成事件,并将所述发送完成事件添加到所述第一操作***的第一完成队列中;其中,所述第一网卡支持与所述远程过程调用框架对应的通信协议。
10.一种数据处理装置,应用于第二操作***,其特征在于,包括:
确定模块,用于确定所述第二操作***的接收缓存区中的目标接收数据;其中,所述目标接收数据是通过第二传输接口接收的;所述第二传输接口支持远程过程调用框架的通信协议;
复制模块,用于将所述目标接收数据复制到预设分片缓存区;
第二添加模块,用于基于第二网卡生成接收完成事件,并将所述接收完成事件添加到所述第二操作***的第二完成队列中;其中,所述第二网卡支持与所述远程过程调用框架对应的通信协议。
11.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210206443.0A CN114595080A (zh) | 2022-03-02 | 2022-03-02 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210206443.0A CN114595080A (zh) | 2022-03-02 | 2022-03-02 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114595080A true CN114595080A (zh) | 2022-06-07 |
Family
ID=81815685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210206443.0A Pending CN114595080A (zh) | 2022-03-02 | 2022-03-02 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114595080A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116841929A (zh) * | 2023-08-29 | 2023-10-03 | 北京紫光芯能科技有限公司 | 用于传输数据的方法及装置、电子设备、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107257329A (zh) * | 2017-05-31 | 2017-10-17 | 中国人民解放军国防科学技术大学 | 一种数据分段卸载发送方法 |
US20200226009A1 (en) * | 2019-04-02 | 2020-07-16 | Intel Corporation | Scalable and accelerated function as a service calling architecture |
CN113032492A (zh) * | 2021-04-21 | 2021-06-25 | 新奥数能科技有限公司 | 一种边缘端数据传输与存储的方法以及装置 |
US20210243247A1 (en) * | 2021-04-23 | 2021-08-05 | Intel Corporation | Service mesh offload to network devices |
CN114021715A (zh) * | 2021-09-30 | 2022-02-08 | 浪潮电子信息产业股份有限公司 | 基于Tensorflow框架的深度学习训练方法 |
CN114090366A (zh) * | 2020-09-01 | 2022-02-25 | 北京沃东天骏信息技术有限公司 | 一种监控数据的方法、装置和*** |
-
2022
- 2022-03-02 CN CN202210206443.0A patent/CN114595080A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107257329A (zh) * | 2017-05-31 | 2017-10-17 | 中国人民解放军国防科学技术大学 | 一种数据分段卸载发送方法 |
US20200226009A1 (en) * | 2019-04-02 | 2020-07-16 | Intel Corporation | Scalable and accelerated function as a service calling architecture |
CN114090366A (zh) * | 2020-09-01 | 2022-02-25 | 北京沃东天骏信息技术有限公司 | 一种监控数据的方法、装置和*** |
CN113032492A (zh) * | 2021-04-21 | 2021-06-25 | 新奥数能科技有限公司 | 一种边缘端数据传输与存储的方法以及装置 |
US20210243247A1 (en) * | 2021-04-23 | 2021-08-05 | Intel Corporation | Service mesh offload to network devices |
CN114021715A (zh) * | 2021-09-30 | 2022-02-08 | 浪潮电子信息产业股份有限公司 | 基于Tensorflow框架的深度学习训练方法 |
Non-Patent Citations (2)
Title |
---|
周华平: "基于远程直接内存访问的零拷贝远程过程调用框架的设计与实现", 中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2021, 15 April 2021 (2021-04-15), pages 137 - 34 * |
郏乘帆: "面向大规模神经网络数据并行训练的运行时***优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2020, 15 February 2020 (2020-02-15), pages 140 - 113 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116841929A (zh) * | 2023-08-29 | 2023-10-03 | 北京紫光芯能科技有限公司 | 用于传输数据的方法及装置、电子设备、存储介质 |
CN116841929B (zh) * | 2023-08-29 | 2024-01-02 | 北京紫光芯能科技有限公司 | 用于传输数据的方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220409999A1 (en) | Rendering method and apparatus | |
CN110377369B (zh) | 一种运行小程序的方法、设备和计算机存储介质 | |
CN110933075B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
US11784946B2 (en) | Method for improving data flow and access for a neural network processor | |
CN114089920A (zh) | 数据存储方法、装置、可读介质及电子设备 | |
CN115878301A (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
CN115202573A (zh) | 数据存储***以及方法 | |
CN114595080A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN112835632A (zh) | 一种端能力的调用方法、设备和计算机存储介质 | |
CN113691466B (zh) | 一种数据的传输方法、智能网卡、计算设备及存储介质 | |
CN116560878B (zh) | 一种内存共享方法和相关装置 | |
CN117312229A (zh) | 一种数据传输装置、数据处理设备、***、方法及介质 | |
CN117370046A (zh) | 进程间通信方法、***、设备和存储介质 | |
CN115580667B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN113886105B (zh) | 跨进程的调用方法、装置、存储介质及电子设备 | |
CN113518183B (zh) | 摄像头调用方法、装置和电子设备 | |
CN115454666A (zh) | 消息队列集群间的数据同步方法和装置 | |
CN113849449A (zh) | 一种通信***和信息交互方法、设备和介质 | |
CN112163176A (zh) | 数据存储方法、装置、电子设备和计算机可读介质 | |
CN112948141A (zh) | 一种基于消息中间件的数据处理方法、装置和*** | |
CN113271229B (zh) | 设备控制方法及装置、存储设备、安全设备、交换机、路由器及服务器 | |
CN118211000B (zh) | 内嵌网页请求处理方法、装置、电子设备和可读介质 | |
CN118012470B (zh) | 电力信息管理应用更新方法、装置、电子设备与介质 | |
US20230048915A1 (en) | Low latency remoting to accelerators | |
CN115993942B (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 |