CN114595080A - 数据处理方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据处理方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

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
Application number
CN202210206443.0A
Other languages
English (en)
Inventor
张文博
刘奇
黄东旭
崔秋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pingkai Star Beijing Technology Co ltd
Original Assignee
Pingkai Star Beijing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Pingkai Star Beijing Technology Co ltd filed Critical Pingkai Star Beijing Technology Co ltd
Priority to CN202210206443.0A priority Critical patent/CN114595080A/zh
Publication of CN114595080A publication Critical patent/CN114595080A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

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任一项所述方法的步骤。
CN202210206443.0A 2022-03-02 2022-03-02 数据处理方法、装置、电子设备及计算机可读存储介质 Pending CN114595080A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116841929A (zh) * 2023-08-29 2023-10-03 北京紫光芯能科技有限公司 用于传输数据的方法及装置、电子设备、存储介质

Citations (6)

* Cited by examiner, † Cited by third party
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 北京沃东天骏信息技术有限公司 一种监控数据的方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 服务调用方法、装置、电子设备及存储介质
CN114089920A (zh) 数据存储方法、装置、可读介质及电子设备
CN112835632B (zh) 一种端能力的调用方法、设备和计算机存储介质
CN115878301A (zh) 一种数据库网络负载性能的加速框架、加速方法及设备
US11784946B2 (en) Method for improving data flow and access for a neural network processor
CN114595080A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN113691466B (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质
CN116560878B (zh) 一种内存共享方法和相关装置
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
CN117312229A (zh) 一种数据传输装置、数据处理设备、系统、方法及介质
CN117370046A (zh) 进程间通信方法、系统、设备和存储介质
CN113886105B (zh) 跨进程的调用方法、装置、存储介质及电子设备
CN113518183B (zh) 摄像头调用方法、装置和电子设备
CN115202573A (zh) 数据存储系统以及方法
CN113849449A (zh) 一种通信系统和信息交互方法、设备和介质
CN112163176A (zh) 数据存储方法、装置、电子设备和计算机可读介质
CN113271229B (zh) 设备控制方法及装置、存储设备、安全设备、交换机、路由器及服务器
CN115580667B (zh) 数据传输方法、装置、设备及存储介质
US20230048915A1 (en) Low latency remoting to accelerators
CN115993942B (zh) 数据缓存方法、装置、电子设备和计算机可读介质
CN113282391B (zh) 集群切换方法、集群切换装置、电子设备及可读存储介质
CN115904543A (zh) 基于异构服务框架的服务实现方法、装置、设备和介质
CN117155729A (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