CN116032498A - 一种内存区域注册方法、装置及设备 - Google Patents

一种内存区域注册方法、装置及设备 Download PDF

Info

Publication number
CN116032498A
CN116032498A CN202111241404.6A CN202111241404A CN116032498A CN 116032498 A CN116032498 A CN 116032498A CN 202111241404 A CN202111241404 A CN 202111241404A CN 116032498 A CN116032498 A CN 116032498A
Authority
CN
China
Prior art keywords
storage area
memory
network card
task
rdma
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
CN202111241404.6A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111241404.6A priority Critical patent/CN116032498A/zh
Publication of CN116032498A publication Critical patent/CN116032498A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请涉及数据处理领域,特别涉及一种内存区域注册方法、装置及设备。该方法应用于第一设备,第一设备包括内存和网卡,第一设备和第二设备通过网络通信,该方法包括:第一设备将内存的第一存储区域注册到网卡,第一存储区域是内存的一部分存储空间;向第二设备发送第一存储区域的标识;当第一存储区域注册到网卡之后,利用第一存储区域执行一个或多个业务请求;在执行一个或多个业务请求的过程中,在第一设备满足第一条件时,执行内存区域注册任务,将内存的第二存储区域注册到网卡,第二存储区域是指内存的存储空间中除第一存储区域中之外的全部或部分剩余区域。该方法可以提高设备间的通信性能。

Description

一种内存区域注册方法、装置及设备
技术领域
本申请涉及数据处理领域,特别涉及一种内存区域注册方法、装置及设备。
背景技术
随着信息技术(information technology,IT)的发展,用于对计算设备的数据处理能力要求越来越高。内存是影响计算设备数据处理能力的关键因素之一,越高数据处理能力的计算设备,对内存的需求也越高。由于,物理形态上的限制,计算设备的中央处理单元(central processing unit,CPU)可本地连接的主存储器(main memory)(例如,动态随机存取存储器(dynamic random access memory,DRAM))是有限的,并且,主存储器的容量没有得到快速增长。
因此,远端内存扩展方案成为了扩展计算设备内存的研究方向。其中,远程内存直接访问(remote direct memory access,RDMA)技术使得远端内存扩展方案成为了可行性方案。其中,为了实施RDMA技术,设备A1需要将相应的内存区域注册到网卡,使得设备A2可以在不经过设备A1的CPU的情况下,直接访问设备A1注册到网卡的内存区域(memoryregion,MR)。其中,在设备A1注册MR的过程中,设备A1难以对设备A1侧的用户提供业务,导致设备A1侧的用户体验较差。
发明内容
本申请实施例提供了一种内存区域注册方法、装置及设备,可以及早利用RDMA MR执行业务请求,提高了设备间的通信性能。
第一方面,本申请实施例提供了一种内存区域注册方法,该方法可应用于第一设备,第一设备包括内存和网卡,第一设备和第二设备通过网络通信,该方法包括:第一设备将内存的第一存储区域注册到网卡,第一存储区域是内存的一部分存储空间;向第二设备发送第一存储区域的标识;当第一存储区域注册到网卡之后,利用第一存储区域执行一个或多个业务请求;在执行一个或多个业务请求的过程中,在第一设备满足第一条件时,执行内存区域注册任务,将内存的第二存储区域注册到网卡,第二存储区域是指内存的存储空间中除第一存储区域中之外的全部或部分剩余区域。
本申请实施例提供的内存区域注册方法可以先将内存的部分存储区域注册到网卡,缩短了注册时间,从而可以及早利用该部分区域执行业务请求,提高了设备间的通信性能;并且,可以在适当时机(满足第一条件时),继续将内存中剩余的存储区域注册到网卡,可以在不影响或较少其他业务的情况下,实现内存到网卡的注册。
在第一方面的第一种可能实现方式中,第一条件为:第一设备的当前待执行任务中不具有第一类型任务,第一类型任务的优先级高于内存区域注册任务。
也就是说,在该实现方式中,可以将不影响高优先级任务执行的情况下,实现内存到网卡的注册。
在第一方面的第二种可能实现方式中,第一条件为:第一设备已连续执行了N次第一类型任务,N为大于或等于1的正整数,第一类型任务的优先级高于内存区域注册任务。
也就是说,在该实现方式中,可以兼顾高优先级任务和内存区域注册任务,在减少对高优先级任务的影响的同时,改善设备间的通信性能。
结合第一方面的第一种可能实现方式或第二种可能实现方式,在第一方面的第三种可能实现中,第一类型任务为用户任务。
也就是说,在该实现方式中,第一设备可以优先执行用户任务,改善了第一设备侧的用户体验。
在第一方面的第四种可能实现方式中,第一条件为:第一设备在第一时长内未执行内存区域注册任务。
也就是说,在该实现方式中,可以兼顾内存区域注册任务和其他任务,在减少对其他任务的影响的同时,改善设备间的通信性能。
在第一方面的第五种可能实现方式中,执行内存区域注册任务包括:将第二存储区域中的第三存储区域注册到网卡,第三存储区域为第二存储区域中的一部分存储区域;当第三存储区域注册到网卡之后,在第一设备满足第一条件时,将第二存储区域中的第四存储区域注册到网卡,第四存储区域为第二存储区域中除第三存储区域之外的全部或部分剩余区域。
也就是说,在该实现方式中,内存区域注册任务可以分阶段执行,单阶段的内存区域注册任务占用时间较短,从而使得当待执行任务中具有高优先级任务时,使得高优先级任务可以得到及时执行。
结合第一方面的第五种可能实现方式,在第一方面的第六种可能实现方式中,该方法还包括:当第三存储区域注册到网卡时,向第二设备发送第三存储区域的标识;或者,当第四存储区域注册到网卡时,向第二设备发送第三存储区域的标识和第四存储区域的标识。
也就是说,在该实现方式中,可以每当将一存储区域注册到网卡时,向第二设备发送该存储区域的标识,从而可以及早利用该存储区域执行业务请求;也可以每当注册多个存储区域到网卡时,再将多个存储区域的标识同时发送给第二设备,从而可以节省第一设备和第二设备之间的网络资源。
在第一方面的第七种可能实现方式中,第一存储区域的大小为预设值。
也就是说,在该实现方式中,可以预先设定第一存储区域的大小。例如,根据第一设备的性能设置第一存储区域的大小,从而可以平衡注册时长以及注册的内存区域的大小。
第二方面,本申请实施例提供了一种内存区域注册装置,该装置可配置于第一设备,第一设备包括内存和网卡,第一设备和第二设备通过网络通信,该装置包括:注册单元,用于将内存的第一存储区域注册到网卡,第一存储区域是内存的一部分存储空间;发送单元,用于向第二设备发送第一存储区域的标识;执行单元,用于当第一存储区域注册到网卡之后,利用第一存储区域执行一个或多个业务请求;执行单元还用于在执行一个或多个业务请求的过程中,在第一设备满足第一条件时,执行内存区域注册任务,将内存的第二存储区域注册到网卡,第二存储区域是指内存的存储空间中除第一存储区域中之外的全部或部分剩余区域。
在第二方面的第一种可能实现方式中,第一条件为:第一设备的当前待执行任务中不具有第一类型任务,第一类型任务的优先级高于内存区域注册任务。
在第二方面的第二种可能实现方式中,第一条件为:第一设备已连续执行了N次第一类型任务,N为大于或等于1的正整数,第一类型任务的优先级高于内存区域注册任务。
结合第二方面的第一种可能实现方式或第二种可能实现方式,在第二方面的第三种可能实现中,第一类型任务为用户任务。
在第二方面的第四种可能实现方式中,第一条件为:第一设备在第一时长内未执行内存区域注册任务。
在第二方面的第五种可能实现方式中,执行单元还用于:将第二存储区域中的第三存储区域注册到网卡,第三存储区域为第二存储区域中的一部分存储区域;当第三存储区域注册到网卡之后,在第一设备满足第一条件时,将第二存储区域中的第四存储区域注册到网卡,第四存储区域为第二存储区域中除第三存储区域之外的全部或部分剩余区域。
结合第二方面的第五种可能实现方式,在第二方面的第六种可能实现方式中,发送单元还用于:当第三存储区域注册到网卡时,向第二设备发送第三存储区域的标识;或者,当第四存储区域注册到网卡时,向第二设备发送第三存储区域的标识和第四存储区域的标识。
在第二方面的第七种可能实现方式中,第一存储区域的大小为预设值。
第三方面,本申请实施例提供了一种电子设备,包括处理器、存储器和网卡,处理器用于执行存储器中存储的指令,使得电子设备执行第一方面所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由电子设备执行时,电子设备执行第一方面所提供的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当指令被电子设备执行时,使得电子设备执行第一方面所提供的方法。
本申请实施例提供的内存区域注册方法、装置及设备,可以先将内存的部分存储区域注册到网卡,缩短了注册时间,从而可以及早利用该部分区域执行业务请求,提高了设备间的通信性能;并且,可以在适当时机(满足第一条件时),继续将内存中剩余的存储区域注册到网卡,可以在不影响或较少其他业务的情况下,实现内存到网卡的注册。
附图说明
图1为在RDMA通信操作中,网卡工作原理示意图;
图2A为一种内存区域注册方案示意图;
图2B为另一种内存区域注册方案示意图;
图3为本申请实施例提供的一种内存区域注册方案示意图;
图4为本申请实施例提供的一种设备的结构示意图;
图5为本申请实施例提供的一种内存区域注册方案示意图;
图6为本申请实施例提供的一种内存区域注册方案流程图;
图7为本申请实施例提供的一种内存区域注册方法流程图;
图8为本申请实施例提供的一种内存区域注册装置的结构示意图;
图9为本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。
在本说明书的描述中″一个实施例″或″一些实施例″等意味着在本说明书的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句″在一个实施例中″、″在一些实施例中″、″在其他一些实施例中″、″在另外一些实施例中″等不是必然都参考相同的实施例,而是意味着″一个或多个但不是所有的实施例″,除非是以其他方式另外特别强调。
其中,在本说明书的描述中,除非另有说明,″/″表示或的意思,例如,A/B可以表示A或B;本文中的″和/或″仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本说明书实施例的描述中,″多个″是指两个或多于两个。
在本说明书的描述中,术语″第一″、″第二″仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有″第一″、″第二″的特征可以明示或者隐含地包括一个或者更多个该特征。术语″包括″、″包含″、″具有″及它们的变形都意味着″包括但不限于″,除非是以其他方式另外特别强调。
远程直接内存访问(remote direct memory access,RDMA)作为非易失性内存主机控制器接口规范(non-volatile memory express,NVMe)的传输层协议,随着基于NVMe的固态驱动器(solid-state drive,SSD)的兴起,得到快速发展。其中,基于RDMA网络的NVMe(NVMe over RDMA network)的方案已被多数厂商所支持。
RDMA可以基于无限带宽(Infiniband,IB)、融合以太网的RDMA(RDMA overconverged ethernet,RoCE)(包括RoCEv1和RoCEv2)、互联网广域RDMA协议(internet widearea RDMA protocol,iWARP)等实现。其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输。RoCE和iWARP都是基于以太网的RDMA技术,支持相应的动词(Verbs)接口,RoCE也支持硬件级别保证可靠传输。
RDMA支持向基于交换网的NVMe(NVMe over Fabric,NoF)协议的内存(memory)类型和消息(message)类型的操作,可以绕过远程主机操作系统直接访问远程主机内存中的数据。由此,基于RDMA技术实现远端内存扩展,即处理器可以将远端内存作为自己的内存进行访问或者说数据调用。并且,RDMA技术由于不经过操作系统,不仅节省了大量处理器资源,同样也提高了系统吞吐量、降低了系统的网络通信延迟,尤其适合在大规模并行计算机集群中有广泛应用。
参见图1,RDMA属于传输层网络协议,其使用队列对(queue pair,QP)进行消费者(consumer)数据的发送和接收。其中,消费者数据可以是指传输层的上层协议指示传输层传输的数据。每条QP包含1个发送队列(send queue,SQ)和1个接收队列(receive queue,RQ)队列。其中SQ负责数据发送,RQ负责数据接收,每条QP都会关联到1个完成队列(completion queue,CQ)。每条QP都拥有自己的连接上下文(connection context),连接上下文用于维护队列的连接状态,SQ、RQ以及CQ也分别拥有自己的队列上下文(queuecontext),队列上下文用于维护队列的使用状态。
消费者,即传输层的上层协议,在发送数据时,向本节点(作为请求端(requester))的QP中的SQ提交(post)工作队列元素(work queue element,WQE)。该WQE包括RDMA操作类型、指向待传输的消息的存储空间的起始地址、待传输的消息的大小。待传输的数据作为一个消息,消息的长度支持0字节~2G字节,网卡根据路径最大传输单元(pathmaximum transmission unit,PMTU)将WQE指向的数据分段(segmented)成报文(packet)后发送到网络。当网卡将一个WQE指向的消息的所有内容传输完成后,向与SQ关联的CQ提交一个完成队列元素(completion queue element,CQE),以通知消费者完成了其提交的某个WQE指示的RDMA操作。
对于接收SEND消息,接收消息前,消费者预先向本节点(作为响应端(responder))的QP中的RQ提交WQE,该WQE包括能够存储数据的存储空间的指针、能够存储数据的存储空间的大小。网卡从前端网络接收数据后写入到RQ的WQE指向的存储空间。当网卡完成数据的接收后,向与RQ关联的CQ提交一个CQE,以通知消费者其完成了一个RDMA消息的接收。对于接收RDMA READ响应消息,网卡将接收的数据写入对应的RDMA READ操作的WQE指向的存储空间,并且对于接收RDMA READ响应消息的尾包或单包,当网卡完成数据的接收后,向与SQ关联的CQ提交一个CQE,以通知消费者完成了其提交的某个WQE指示的RDMA READ操作。对于接收RDMA WRITE消息或RDMA SEND消息的确认报文,网卡向与SQ关联的CQ提交一个CQE,以通知消费者完成了其提交的某个WQE指示的RDMA WRITE操作或RDMA SEND操作。关于SEND消息、RDMA READ响应消息和RDMA WRITE消息的确认报文见后面的描述。
其中,网卡也可以称为网络接口卡。示例性的,网卡可以为RDMA网络接口卡(RDMANIC,RNIC)。
RDMA支持的消息类型的操作包括发送操作(SEND operation),该操作涉及处理器,适用于传输控制类报文(或称命令消息)。RDMA支持的内存类型的操作包括RDMA读操作(RDMA READ operation)、RDMA写操作(RDMA WRITE operation)。其中,RDMA读操作和RDMA写操作不涉及处理器,数据的读或写都通过网络接口卡操作存储空间来完成,适用于传输数据类报文(或称数据消息)。其中,此处的发送操作、RDMA读操作和RDMA写操作可以统称为RDMA的通信操作。
发送操作也可以称为推送操作(push operation)或具有通道方式(havingchannel semantics)。请求端(requester)将数据推送给响应端(responder),而不必知道数据在响应端中存储的位置。响应端的网络接口卡将数据放入其QP的下一个可用存储空间,存储空间由QP的RQ中位于头部的WQE指示。
具体而言,请求端可以通过发送SEND消息来发起发送操作,该消息中包括待推送给响应端的数据。数据的长度可以在0字节到231(2G)字节之间,如果数据的长度大于路径最大传输单元(path maximum transmission unit,PMTU),将按照PMTU大小分段为多个报文,响应端再将这些报文重新组合得到数据。对于可靠连接,如果数据是短消息(即不必分段为多个报文),响应端针对每个报文向请求端发送确认(ACK)报文;如果数据是长消息(即分段为多个报文),响应端可以针对每个报文向请求端发送确认(ACK)报文,或者,针对同一消息的连续多个报文向请求端发送一个确认报文,或者,针对消息的尾包向请求端发送确认报文。
RDMA写操作用于请求端将数据写入响应端的存储空间。具体而言,在允许请求端进行RDMA写操作之前,响应端首先分配一个存储空间供响应端的QP(或QP组)访问。响应端的通道适配器将一个32位M_Key密钥与此存储空间的虚拟地址相关联。响应端将该存储空间的虚拟地址、长度和M_Key密钥发送给可以访问该内存区域的请求端。示例性的,可以通过前文所述的发送操作来将上述信息发送给请求端。请求端可以通过发送RDMA WRITE消息来发起RDMA写操作,该消息中包括待写至响应端的数据、响应端的存储空间的虚拟地址、数据的长度和M_Key密钥。数据的长度可以在0字节到231字节之间,与发送操作类似的,如果数据的长度大于PMTU,将按照PMTU大小分段为多个报文,响应端再将这些报文重新组合得到数据。对于可靠连接,如果数据是短消息(即不必分段为多个报文),响应端针对每个报文向请求端发送确认(ACK)报文;如果数据是长消息(即分段为多个报文),响应端可以针对每个报文向请求端发送确认(ACK)报文,或者,针对同一数据的连续多个报文向请求端发送一个确认报文,或者,针对报文的尾包向请求端发送确认报文。
RDMA读操作是RDMA写操作的反向操作,用于请求端读取响应端的存储空间中的数据。具体而言,在允许请求端进行RDMA读操作之前,响应端首先允许请求端访问其虚拟地址,即将RDMA读操作要读取的数据的虚拟地址、长度和M_Key密钥发送给请求端。示例性的,可以通过前文所述的发送操作来将上述信息发送给请求端。请求端可以通过发送RDMAREAD请求(RDMA READ Request)消息来发起RDMA读操作,该消息中包括响应端的存储空间的虚拟地址、RDMA操作的数据的长度和M_Key密钥。响应端向请求端发送RDMA READ响应(RDMA READ Response)消息,该消息中包括读取的数据。待读取的数据的长度可以在0字节到231字节之间,如果长度大于PMTU,将按照PMTU大小分段为多个报文,以便通过多个RDMAREAD响应消息的报文进行传输,请求端再将这些报文重新组合得到数据。对于可靠连接,RDMA READ响应消息没有相应的确认报文,请求端如果发现RDMA READ响应消息丢包,会重新发起RDMA读操作。
结合上文对RDMA的通信操作以及图1的介绍,在RDMA的通信操作中,对内存的读写操作,由网卡执行。为了便于网卡对内存进行读写操作,需要先将内存中指定的存储区以MR(可以是一段连续的地址空间)的形式注册到网卡。在本申请实施例中,为方便描述,可以将注册到网卡的内存区域称为RDMA MR。将存储区注册到网卡的过程可以称为RDMA MR注册。
在一种方案中,参阅图2A,在应用程序(application,APP)初始化期间,应用程序将其对应的存储区全部注册到网卡,即注册为RDMA MR。由于在将存储区注册到网卡的过程中,存储器驱动会对内存页面进行pin page等操作,会影响处理器执行其他任务。当应用程序对应的存储区较大时,将该较大的存储区注册到网卡会占用较长时间。在这较长时间内,应用程序不能对用户提供业务,导致用户体验较差。特别是在应用程序重启的场景下,重启后的应用程序难以及时为用户提供业务,使得用户业务的断掉(即用户感知到业务断掉)的可能性越来越大,严重影响了用户体验。并且,占用较长时间才能完成RDMA MR的注册,使得其他设备迟迟不能对本端设备进行RDMA通信,设备间通信性能降低。
在另一个中方案中,参阅图2B,当设备A1需要对设备A2进行RDMA的通信操作时,设备A1请求设备A2进行RDMA MR注册。当设备A2完成RDMA MR注册后,设备A1对设备A2进行RDMA的通信操作。在该方案中,在RDMA的通信操作前,需要临时申请注册RDMA MR,降低了RDMA的通信操作的效率,丧失了RDMA技术的优势。
参阅图3本申请实施例提供了一种内存区域注册方案,设备在应用程序启动后,可以先进行RDMA MR预注册,用于将应用程序对应的存储区中的部分存储区域注册到网卡上。然后,创建RDMA MR后台注册任务,RDMA MR后台注册任务用于将应用程序对应的存储区中的剩余存储区域注册到网卡上。其中,将部分存储区域注册到网卡的过程占用时间较短,从而节省了RDMA MR注册时间,使得其他设备可以及早利用预注册的RDMA MR对该设备进行RDMA通信操作。也可使得该设备在应用程序启动后可以及早执行用户任务,改善了该设备侧用户的体验。另外,可以通过RDMA MR后台注册任务中,利用设备执行用户任务的间隙,将剩余存储区域注册到网卡。从而可以在不影响或较少影响用户任务执行的情况下,将应用程序对应的存储区全部注册到网卡。
其中,用户任务可以是指与用户相关或者由用户所感知的任务。若这类任务得不到及时执行,会影响到用户体验。示例性的,用户任务可以包括由用户操作触发的任务。例如,用户任务可以包括响应于用户的下载操作,而进行的数据下载任务。再例如,用户任务可以为响应于用户点击的页面跳转操作,而进行的页面加载任务。等等。在一些实施例中,用户任务具体为与用户相关的数据输入输出(input/output,IO)任务,例如数据下载任务或数据上传任务等。
在一些实施例中,参阅图3可以在应用程序启动后的初始化过程中进行RDMA MR预注册。具体而言,在应用程序的初始化过程中,当基本模块初始化(base module init)完成后,可以执行RDMA MR预注册。也就是说,在该实施例中,应用程序初始化包括了RDMA MR预注册。
在一些实施例中,在应用程序初始化过程中,可以创建RDMA MR后台注册任务。可以在完成基本模块初始化(base module init)和RDMA MR预注册后,创建RDMA MR后台注册任务。
另外,需要指出的是,在本申请实施例中,创建RDMA MR后台注册任务并非是指立即进行RDMA MR注册任务,而是将RDMA MR注册作为优先级较低的待执行任务。在应用程序满足预设的条件C的情况下,可以执行RDMA MR后台注册任务,将应用程序对应的存储区中还未被注册为RDMA MR的存储区注册为RDMA MR。具体将在下文进行具体介绍,在此不再赘述。
接下来,以设备300进行内存区域注册为例,对本申请实施例提供的内存区域注册方案进行示例说明。
设备300可以为存储设备,也可以为计算设备。设备300可以为独立的硬件设备,也可以为虚拟机(virtual machine,VM)。示例性的,设备300可以为任何具有数据计算功能的装置、设备或平台。在一些实施例中,设备300可以为服务器。在一些实施例中,设备300可以为手机、平板电脑等客户端设备。在一些实施例中,设备300可以为存储列阵(memoryarray)。本申请实施例对设备300的具体实现形式或形态不做限定。
参阅图4,设备300可以包括处理器310、存储器320、网卡330。示例性的,处理器310可以为设备300的CPU。示例性的,存储器320可以包括一个或多个存储区。其中,存储区可以为一段连续的地址空间。其中,不同的存储区可以被分配给部署在设备300上的不同的应用程序。可以设定设备300上部署有应用程序B1,则存储区320可以包括分配给应用程序B1的存储区,即应用程序B1对应的存储区。网卡也可以称为网络接口卡。示例性的,网卡具体可以为RDMA网络接口卡。
如图4所示,可以将应用程序B1对应的存储区分为存储区321和存储区322。即存储区321为应用程序B1对应的存储区的部分存储区域,存储区322为应用程序B1对应的存储区中除存储区321之外的剩余区域。示例性的,存储区321的大小可以为预先设定的。在一个例子中,可以根据设备300的计算性能,设定存储区的大小。可以理解,对于将同样大小的存储区注册到网卡上,若设备的计算性能越强,则注册所花费的时长越短。同理,在同样的时长中,计算性能更强的设备可以将更大的存储区注册到网卡上。其中,设备的计算性能可以由处理器的性能(例如处理器的运行频率)、存储器的性能(例如存储器的运行频率)等确定。在具体实现时,开发者可以根据设备300的计算性能,以及所要求的预注册执行时长,确定存储区321的大小。其中,所要求的预注册执行时长可以设定,所要求的预注册执行时长越短,应用程序B1在启动后可以越早执行用户任务。
参阅图5,处理器310可以执行步骤501,进行RDMA MR预注册,以将存储区321注册到网卡330。其中,应用程序B1可以使用内存注册(memory registration)技术,将存储区321注册到网卡330。其中,将存储区321注册到网卡330后,可以将存储区321称为RDMAMR321。具体而言,应用程序可以借助RDMA库,使用内存注册技术,调用网卡330的驱动软件接口,将存储区321与称为键(key)的某个数值绑定起来,并将绑定结果注册到网卡330上。其中,此处绑定了该键的存储区321可以称为RDMA MR 321,与RDMA MR 321绑定的键可以称为RDMA MR 321的标识。网卡330可以关联RDMA MR32。例如,可以存储RDMA MR 321的地址和RDMA MR 321的标识的对应关系。
当设备拥有了与RDMA MR 321绑定的键,即该RDMA MR 321的标识,就表示拥有了对RDMA MR 321的访问权限。即该设备能够通过网卡,根据与RDMA MR 321的标识,直接访问该RDMA MR 321。其中,RDMA MR的标识可分为本地密钥(local key)和远端密钥(remotekey)。其中,本地密钥供本地设备使用,远端密钥供远端设备使用。某设备,例如设备400,在利用RDMA MR 321对设备300进行RDMA的通信操作之前,需要获取RDMA MR 321的远端密钥。在进行通信操作时,设备400可以将RDMA MR 321的远端密钥附带在内存访问消息中(例如,RDMA WRITE消息、RDMA READ请求消息等),并发送至网卡330,网卡330可以根据远端密钥,确定RDMA MR321的地址。由此,设备400可以通过网卡330,在绕过设备300操作系统的情况下,根据RDMA MR 321的该远端密钥,访问RDMA MR 321,或者说,利用RDMA MR321对设备300进行RDMA MR的通信操作,例如对RDMA MR 321进行读操作或写操作。其中,读操作或写操作的具体实现过程可以参考上文介绍,在此不再赘述。
另外,其他设备(例如设备400)对设备300进行RDMA MR的通信操作,可以理解为或者称为,设备300执行来自其他设备的业务请求。其中,其他设备利用RDMA MR 321对设备300进行RDMA MR的通信操作,可以理解为或者称为,设备300利用RDMA MR 321执行来自其他设备的业务请求。可以理解,其他设备利用RDMA MR 321可以对设备300进行一次或多次RDMA MR的通信操作。其中,一次RDMA MR的通信操作可以称为一次业务请求。也就是说,设备300利用RDMA MR 321执行来自其他设备的一个或多个业务请求。需要说明的是,其他设备可以为一个设备或者多个设备。即设备300利用RDMA MR 321执行来自一个或多个设备的业务请求。
继续参阅图5,当处理器310将存储区321注册到网卡330时,即RDMA MR 321注册完成时,处理器310可以执行步骤502,同步预注册的RDMA MR的标识。具体而言,在步骤502中,处理器310可以控制设备300向其他设备,例如设备400,发送RDMA MR 321的标识。其中,此处的RDMA MR321的标识可以为RDMA MR 321的远端密钥1其中,设备400的网卡410可以接收设备300发送的RDMA MR321的标识。
在一些实施例中,可以通过RDMA通信中的发送操作(SEND operation),向其他设备,例如设备400,发送RDMA MR 321的标识。具体可以参考上文介绍,在此不再赘述。
在一些实施例中,设备300可以采用广播的方式,向外发送RDMA MR 321的标识。接收到RDMA MR 321的标识的设备,例如设备400,可以凭借RDMA MR 321的标识,访问RDMA MR321。
上文示例介绍了RDMA MR预注册方案。接下来,示例介绍RDMA MR后台注册方案。
继续参阅图5,处理器310可以执行步骤503,执行RDMA MR后台注册任务,以将应用程序B1对应的存储区中还未被注册为RDMA MR注册为RDMA MR。处理器310还可以执行步骤504,同步在步骤503中注册的RDMA MR的标识。例如,可以向设备400发送在步骤503中注册的RDMA MR的标识。
在下文中,为方便描述,可以将RDMA MR后台注册任务简称为RDMA MR注册任务或者内存区域注册任务。
如上所述,创建RDMA MR后台注册任务并非是指立即进行RDMA MR注册任务,而是将RDMA MR注册作为优先级较低的待执行任务。在应用程序满足预设的条件C的情况下,可以执行RDMA MR后台注册任务,将应用程序对应的存储区中还未被注册为RDMA MR的存储区注册为RDMA MR。因此,处理器310在执行步骤503之前,可以判断应用程序B1是否满足条件C。
在一些实施例中,条件C可以为:应用程序B1的当前待执行任务中不具有高优先级任务。其中,高优先级任务是指执行优先级高于RDMA MR注册任务的任务。也就是说,当应用程序B1的当前待执行任务中具有高优先级任务时,可以先执行高优先级任务,然后再执行RDMA MR注册任务。示例性的,高优先级任务可以为用户任务。也就是说,在该示例中,可以为用户任务设置较高的优先级,使用户任务的优先级高于RDMA MR注册任务,从而应用程序B1的待执行任务中同时包括用户任务和RDMA MR注册任务时,可以优先执行用户任务。
在一些实施例中,条件C可以为:处理器310已连续执行了N次应用程序B1的高优先级任务,N为大于1或等于1。该实施例可应用的情况为,应用程序B1的待执行任务中同时具有多个高优先级任务,或者,每当高优先级任务被执行完时或者在高优先级任务执行过程中,应用程序B1的待执行任务中不断添加新的高优先级任务。在这种情况下,若不对高优先级任务的执行加以限制,可能导致RDMA MR注册任务一直得不到执行或者长时间得不到执行。为此,可以设置当处理器310已经连续执行了N次高优先级任务,在该N次高优先级任务中的第N次高优先级任务执行结束时,无论此时的应用程序B1的待执行任务中是否具有高优先级任务,处理器310都将执行RDMA MR注册任务。
在一些实施例中,条件C可以为:处理器310在时长T1内一直未执行RDMA MR注册任务。时间T1可以为预设的时长。当处理器310执行了步骤501之后,在存储区322中的部分区域或者全部区域还没有被注册为RDMA MR的情况下,若处理器310在时长T1内一直没有将存储区322中的部分区域或者全部区域注册为RDMA MR,则处理器310可以在时长T1结束时,无论应用程序B1的待执行任务中是否具有高优先级任务,都将执行RDMA MR注册任务。
在一些实施例中,存储区322可以被划分为多个子存储区,不同的子存储区不同。参阅图5,存储区322可以被划分为存储区3221、存储区32221、存储区3223、......、存储区322N-1、存储区322N等N个子区域。此处的N为大于或等于2的整数。相应的,步骤503可以分阶段执行,在每一阶段,将N个子区域中的一个子区域注册为RDMA MR。具体而言,当处理器310执行完步骤501之后,可以判断应用程序B1是否满足条件C。若应用程序B1满足条件C,处理器310执行一次步骤503,将存储区3221注册到网卡330上,即将存储区3221注册为RDMAMR 3221。然后,处理器310再次判断应用程序B1是否满足条件C。若应用程序B1满足条件C,则将存储区3222注册为RDMA MR 3222。然后,再次判断应用程序B1是否满足条件C。若应用程序B1满足条件C,则将存储区3223注册为RDMA MR 3223。......,依次类推,直至存储区322中的全部区域被注册为RDMA MR。
在一些实施例中,存储区322的每个子存储区的大小可以为预设值。在不影响高优先级任务执行或对高优先级任务执行影响较小(例如,缩短待执行任务中高优先级任务的等待时间)的前提下,设置该预设值尽可能的大。可以理解,该预设值越多,存储区322被划分的子存储区的个数越少,执行RDMA MR注册任务的次数也就越少,RDMA MR注册的总时间也会越短。并且,每次RDMA MR注册任务可以将较大的存储区注册为RDMA MR,方便了其他设备对设备300进行RDMA MR的通信操作,提高其他设备和设备300之间的通信性能。
在一些实施例中,存储区322的每个子存储区的大小与存储区322的大小正相关。
在一些实施例中,存储区322的每个子存储区的大小与设备300的计算性能相关。
在处理器310分阶段执行步骤503的情况下,处理器310可以每执行一次步骤503,就执行一次步骤504,将在最近执行的步骤503中注册的RDMA MR的标识发送至设备400,以便设备400可以及时得到新注册的RDMA MR的标识,并据此对设备300进行RDMA通信操作。处理器310也可以每执行M次步骤503,再执行一次步骤504,将在最近执行的M次步骤503中注册的RDMA MR的标识发送至设备400,以节省设备300和设备400之间的网络资源。
通过上文RDMA MR注册方案,在设备400访问应用程序B1的RDMA MR的过程中,应用程序B1不断调用网卡330的驱动软件接口,进行RDMA MR注册,使得设备400可通过RDMA通信操作访问的RDMA MR不断扩大。另外,需要说明的是,当已注册的RDMA MR 321以及存储区322中已被注册为RDMA MR的存储区域被耗尽时,若设备400可以采用传统网络通信方案和设备300进行通信。
本申请实施例提供的内存区域注册方案,可以先将待注册内存区域中的部分区域预注册为RDMA MR,从而使得远端设备可以及早利用预注册的RDMA MR对本地设备进行RDMA通信操作(例如远端设备可以及早将RDMA MR作为CPU的运行内存,实现内存的及时扩展),改善了远端设备和本地设备的通信体验。并且,本地设备也可以及时执行用户任务,改善了本地用户的体验。
接下来,结合图6,对本申请实施例提供的内存区域注册方案进行举例介绍。
参阅图6,应用程序B1的进程可以包括前台线程和后台线程,其中,处理器310通过调用前台线程进行RDMA MR预注册、启动RDMA MR后台注册任务以及执行用户任务。处理器320可以调用后台线程执行RDMA MR后台注册任务。接下来,进行具体介绍。
参阅图6,应用程序B1的初始化期间,处理器310可以调用应用程序B1的前台线程,进行基本模块初始化,然后进行RDMA MR预注册,将应用程序对应的存储区中的部分区域注册到网卡330上,即将该部分区域注册为RDMA MR。网卡330可以关联RDMA MR。例如可以存储RDMA MR的地址和RDMA MR的远端密钥的关联关系,由此,当网卡330接收到包括远端密钥的访问请求时,可以根据远端密钥,查询到RDMA MR的地址,进而实现对RDMA MR的访问。处理器310可以调用应用程序B1的前台线程,在应用程序B1的后台线程上创建RDMA MR后台注册任务。创建成功后,处理器310可以调用该后台线程向前台线程反馈创建成功响应。至此,应用程序B1的初始化完成。
当应用程序B1初始化完成后,可以接收用户的操作指令。参阅图6,若接收到用户的操作指令,处理器310可以调用前台线程,根据用户的操作指令,执行用户任务。当用户任务结束后,处理器310可以调用后台线程执行RDMA MR后台注册任务,将应用程序B1对应的存储区中的另一部分区域注册为RDMA MR。其中,此处的RDMA MR后台注册任务也可也简称为RDMA MR注册任务。若在本次的RDMA MR注册任务的执行期间或结束时,应用程序B1又接收到用户的操作指令,处理器310可以调用前台线程,根据用户的操作指令,执行用户任务。当用户任务结束后,处理器310可以调用后台线程继续执行RDMA MR注册任务,将应用程序B1对应的存储区中的又一部分区域注册为RDMA MR。等等,依次类推,直至应用程序B1对应的存储区中的所有区域均被注册为RDMA MR。
由此,应用程序启动后,可以先将待注册内存区域中的部分区域预注册为RDMAMR,从而使得远端设备可以及早利用预注册的RDMA MR对本地设备进行RDMA通信操作(例如远端设备可以及早将RDMA MR作为CPU的运行内存,实现内存的及时扩展),改善了远端设备和本地设备的通信体验。并且,本地设备也可以及时执行用户任务,改善了本地用户的体验。以及利用用户任务的执行间隙,将待注册内存区域全部注册为RDMA MR,实现了在不影响或较少影响用户任务的情况下,实现RDMA MR的全部注册。
基于上文介绍的内存区域注册方案,本申请实施例提供了一种内存区域注册方法进行。可以理解的是,即将在下文进行描述的内存区域注册方法是上文介绍的内存区域注册方案的另一种表达方式,两者是相结合的,该方法中的部分或全部内容可以参见上文对内存区域注册方案的介绍。
该方法可以由设备300执行,设备300包括内存和网卡,设备300和设备400通过网络通信。如图7所示,该方法包括如下步骤:
步骤701,将内存的第一存储区域注册到所述网卡,所述第一存储区域是所述内存的一部分存储空间。具体可以参考上文对图5中步骤501的介绍。
步骤702,向设备400发送所述第一存储区域的标识。具体可以参考上文对图5中步骤502的介绍。
步骤703,当所述第一存储区域注册到所述网卡之后,利用所述第一存储区域执行一个或多个业务请求。具体可以参考上文对RDMA MR 321的介绍。
步骤704,在执行所述一个或多个业务请求的过程中,在设备300满足第一条件时,执行内存区域注册任务,将所述内存的第二存储区域注册到所述网卡,所述第二存储区域是指所述内存的存储空间中除所述第一存储区域中之外的全部或部分剩余区域。具体可以参考上文图5中步骤503的介绍。
在一些实施例中,所述第一条件为:设备300的当前待执行任务中不具有第一类型任务,所述第一类型任务的优先级高于所述内存区域注册任务。具体可以参考上文对条件C的介绍。
在一些实施例中,所述第一条件为:设备300已连续执行了N次第一类型任务,N为大于或等于1的正整数,所述第一类型任务的优先级高于所述内存区域注册任务。具体可以参考上文对条件C的介绍。
在一些实施例中,所述第一类型任务为用户任务。具体可以参考上文对用户任务以及条件C的介绍。
在一些实施例中,所述第一条件为:设备300在第一时长内未执行所述内存区域注册任务。具体可以参考上文对条件C的介绍。
在一些实施例中,所述执行内存区域注册任务包括:将所述第二存储区域中的第三存储区域注册到所述网卡,所述第三存储区域为所述第二存储区域中的一部分存储区域;当所述第三存储区域注册到所述网卡之后,在设备300满足所述第一条件时,将所述第二存储区域中的第四存储区域注册到所述网卡,所述第四存储区域为所述第二存储区域中除所述第三存储区域之外的全部或部分剩余区域。具体可以参考上文对图5中步骤503的介绍。
在这些实施例的一个示例中,本申请实施例提供的内存区域注册方法还包括:当所述第三存储区域注册到所述网卡时,向设备400发送所述第三存储区域的标识;或者,当所述第四存储区域注册到所述网卡时,向设备400发送所述第三存储区域的标识和所述第四存储区域的标识。具体可以参考上文对图5中步骤504的介绍。
在一些实施例中,所述第一存储区域的大小为预设值。具体可以参考上文对存储区321的介绍。
本申请实施例提供的内存区域注册方法,可以先将内存的部分存储区域注册到网卡,缩短了注册时间,从而可以及早利用该部分区域执行业务请求,提高了设备间的通信性能;并且,可以在适当时机(满足第一条件时),继续将内存中剩余的存储区域注册到网卡,可以在不影响或较少其他业务的情况下,实现内存到网卡的注册。
参阅图8,本申请实施例提供了一种内存区域注册装置,该装置可以配置于设备300,设备300包括内存和网卡,设备300和设备400通过网络通信,该装置包括:
注册单元810,用于将所述内存的第一存储区域注册到所述网卡,所述第一存储区域是所述内存的一部分存储空间;
发送单元820,用于向设备400发送所述第一存储区域的标识;
执行单元830,用于当所述第一存储区域注册到所述网卡之后,利用所述第一存储区域执行一个或多个业务请求;
所述执行单元830还用于在执行所述一个或多个业务请求的过程中,在设备300满足第一条件时,执行内存区域注册任务,将所述内存的第二存储区域注册到所述网卡,所述第二存储区域是指所述内存的存储空间中除所述第一存储区域中之外的全部或部分剩余区域。
该装置的各功能单元的功能具体可以参考上文对图7所示各方法实施例实现,在此不再赘述。
本申请实施例提供的内存区域注册装置,可以先将内存的部分存储区域注册到网卡,缩短了注册时间,从而可以及早利用该部分区域执行业务请求,提高了设备间的通信性能;并且,可以在适当时机(满足第一条件时),继续将内存中剩余的存储区域注册到网卡,可以在不影响或较少其他业务的情况下,实现内存到网卡的注册。
参阅图9,本申请实施例还提供了一种设备900,该设备900包括处理器910、存储器920和网卡930。其中,存储器920用于存储计算机指令。处理器910用于执行存储器920存储的计算机指令,使得设备900可以执行上文图5或图6或图7所示实施例中设备300的操作。例如,设备900可以执行:
将内存的第一存储区域注册到所述网卡,所述第一存储区域是所述内存的一部分存储空间。
向设备400发送所述第一存储区域的标识。
当所述第一存储区域注册到所述网卡之后,利用所述第一存储区域执行一个或多个业务请求。
在执行所述一个或多个业务请求的过程中,在设备900满足第一条件时,执行内存区域注册任务,将所述内存的第二存储区域注册到所述网卡,所述第二存储区域是指所述内存的存储空间中除所述第一存储区域中之外的全部或部分剩余区域。
本申请实施例提供的设备,可以先将内存的部分存储区域注册到网卡,缩短了注册时间,从而可以及早利用该部分区域执行业务请求,提高了设备间的通信性能;并且,可以在适当时机(满足第一条件时),继续将内存中剩余的存储区域注册到网卡,可以在不影响或较少其他业务的情况下,实现内存到网卡的注册。
可以理解的是,本申请的实施例中的处理器可以是CPU,还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。

Claims (18)

1.一种内存区域注册方法,其特征在于,应用于第一设备,所述第一设备包括内存和网卡,所述第一设备和第二设备通过网络通信,所述方法包括:
所述第一设备将所述内存的第一存储区域注册到所述网卡,所述第一存储区域是所述内存的一部分存储空间;
向所述第二设备发送所述第一存储区域的标识;
当所述第一存储区域注册到所述网卡之后,利用所述第一存储区域执行一个或多个业务请求;
在执行所述一个或多个业务请求的过程中,在所述第一设备满足第一条件时,执行内存区域注册任务,将所述内存的第二存储区域注册到所述网卡,所述第二存储区域是指所述内存的存储空间中除所述第一存储区域中之外的全部或部分剩余区域。
2.根据权利要求1所述的方法,其特征在于,所述第一条件为:所述第一设备的当前待执行任务中不具有第一类型任务,所述第一类型任务的优先级高于所述内存区域注册任务。
3.根据权利要求1所述的方法,其特征在于,所述第一条件为:所述第一设备已连续执行了N次第一类型任务,N为大于或等于1的正整数,所述第一类型任务的优先级高于所述内存区域注册任务。
4.根据权利要求2或3所述的方法,其特征在于,所述第一类型任务为用户任务。
5.根据权利要求1所述的方法,其特征在于,所述第一条件为:所述第一设备在第一时长内未执行所述内存区域注册任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述执行内存区域注册任务包括:
将所述第二存储区域中的第三存储区域注册到所述网卡,所述第三存储区域为所述第二存储区域中的一部分存储区域;
当所述第三存储区域注册到所述网卡之后,在所述第一设备满足所述第一条件时,将所述第二存储区域中的第四存储区域注册到所述网卡,所述第四存储区域为所述第二存储区域中除所述第三存储区域之外的全部或部分剩余区域。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述第三存储区域注册到所述网卡时,向所述第二设备发送所述第三存储区域的标识;或者,
当所述第四存储区域注册到所述网卡时,向所述第二设备发送所述第三存储区域的标识和所述第四存储区域的标识。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一存储区域的大小为预设值。
9.一种内存区域注册装置,其特征在于,所述装置配置于第一设备,所述第一设备包括内存和网卡,所述第一设备和第二设备通过网络通信,所述装置包括:
注册单元,用于将所述内存的第一存储区域注册到所述网卡,所述第一存储区域是所述内存的一部分存储空间;
发送单元,用于向所述第二设备发送所述第一存储区域的标识;
执行单元,用于当所述第一存储区域注册到所述网卡之后,利用所述第一存储区域执行一个或多个业务请求;
所述执行单元还用于在执行所述一个或多个业务请求的过程中,在所述第一设备满足第一条件时,执行内存区域注册任务,将所述内存的第二存储区域注册到所述网卡,所述第二存储区域是指所述内存的存储空间中除所述第一存储区域中之外的全部或部分剩余区域。
10.根据权利要求9所述的装置,其特征在于,所述第一条件为:所述第一设备的当前待执行任务中不具有第一类型任务,所述第一类型任务的优先级高于所述内存区域注册任务。
11.根据权利要求9所述的装置,其特征在于,所述第一条件为:所述第一设备已连续执行了N次第一类型任务,N为大于或等于1的正整数,所述第一类型任务的优先级高于所述内存区域注册任务。
12.根据权利要求10或11所述的装置,其特征在于,所述第一类型任务为用户任务。
13.根据权利要求9所述的装置,其特征在于,所述第一条件为:所述第一设备在第一时长内未执行所述内存区域注册任务。
14.根据权利要求9-13任一项所述的装置,其特征在于,所述执行单元还用于:
将所述第二存储区域中的第三存储区域注册到所述网卡,所述第三存储区域为所述第二存储区域中的一部分存储区域;
当所述第三存储区域注册到所述网卡之后,在所述第一设备满足所述第一条件时,将所述第二存储区域中的第四存储区域注册到所述网卡,所述第四存储区域为所述第二存储区域中除所述第三存储区域之外的全部或部分剩余区域。
15.根据权利要求14所述的装置,其特征在于,所述发送单元还用于:
当所述第三存储区域注册到所述网卡时,向所述第二设备发送所述第三存储区域的标识;或者,
当所述第四存储区域注册到所述网卡时,向所述第二设备发送所述第三存储区域的标识和所述第四存储区域的标识。
16.根据权利要求9-15任一项所述的装置,其特征在于,所述第一存储区域的大小为预设值。
17.一种电子设备,其特征在于,包括处理器、存储器和网卡,所述处理器用于执行所述存储器中存储的指令,使得所述电子设备执行如权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由电子设备执行时,所述电子设备执行如权利要求1-8中任一项所述的方法。
CN202111241404.6A 2021-10-25 2021-10-25 一种内存区域注册方法、装置及设备 Pending CN116032498A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111241404.6A CN116032498A (zh) 2021-10-25 2021-10-25 一种内存区域注册方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111241404.6A CN116032498A (zh) 2021-10-25 2021-10-25 一种内存区域注册方法、装置及设备

Publications (1)

Publication Number Publication Date
CN116032498A true CN116032498A (zh) 2023-04-28

Family

ID=86089966

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111241404.6A Pending CN116032498A (zh) 2021-10-25 2021-10-25 一种内存区域注册方法、装置及设备

Country Status (1)

Country Link
CN (1) CN116032498A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116886719A (zh) * 2023-09-05 2023-10-13 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116886719A (zh) * 2023-09-05 2023-10-13 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质
CN116886719B (zh) * 2023-09-05 2024-01-23 苏州浪潮智能科技有限公司 存储系统的数据处理方法、装置、存储系统、设备及介质

Similar Documents

Publication Publication Date Title
CA2509404C (en) Using direct memory access for performing database operations between two or more machines
WO2021254330A1 (zh) 内存管理方法、系统、客户端、服务器及存储介质
WO2020052323A1 (zh) 数据存储方法、装置及服务器
KR20170007103A (ko) RDMA NVMe 디바이스의 구현 방법
US20230080588A1 (en) Mqtt protocol simulation method and simulation device
US20080155154A1 (en) Method and System for Coalescing Task Completions
US20230267022A1 (en) Network interface card, storage apparatus, and packet receiving method and sending method
US20080155571A1 (en) Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
WO2022007470A1 (zh) 一种数据传输的方法、芯片和设备
WO2022017475A1 (zh) 一种数据访问方法及相关设备
US11231983B2 (en) Fault tolerance processing method, apparatus, and server
CN115934623B (zh) 一种基于远程直接内存访问的数据处理方法、设备及介质
CN113014662A (zh) 数据处理方法及基于NVMe-oF协议的存储系统
US20230137668A1 (en) storage device and storage system
CN113360077B (zh) 数据存储方法、计算节点及存储系统
EP4369171A1 (en) Method and apparatus for processing access request, and storage device and storage medium
CN116032498A (zh) 一种内存区域注册方法、装置及设备
CN114780465A (zh) 可共享远程直接数据存取链接的创建方法及装置
CN112148206A (zh) 一种数据读写方法、装置、电子设备及介质
CN116204487A (zh) 远程数据访问方法及装置
CN115242813A (zh) 一种文件访问方法、网卡以及计算设备
US20230244417A1 (en) Storage node, storage device, and network chip
WO2022143774A1 (zh) 一种数据访问方法及相关设备
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
US20220263869A1 (en) Data validation for zero copy protocols

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication