CN113811857A - 用于网络连接的资源管理以跨网络处理任务的方法和装置 - Google Patents
用于网络连接的资源管理以跨网络处理任务的方法和装置 Download PDFInfo
- Publication number
- CN113811857A CN113811857A CN202080020615.4A CN202080020615A CN113811857A CN 113811857 A CN113811857 A CN 113811857A CN 202080020615 A CN202080020615 A CN 202080020615A CN 113811857 A CN113811857 A CN 113811857A
- Authority
- CN
- China
- Prior art keywords
- context
- network
- steering
- nic
- tasks
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了网络接口卡(NIC)、网络装置及其方法。NIC包括:存储器,用于分配表示动态分配的资源的导引上下文和网络上下文。导引上下文与网络上下文关联,并且导引上下文与排列有任务的并被指定使用网络连接来执行的队列关联。NIC还包括NIC处理电路,用于使用导引上下文及网络上下文处理任务。在任务执行期间,临时分配导引上下文,供网络连接使用,并且在网络连接的生命周期中,分配网络上下文,供网络连接使用。响应于完成任务执行,在保持网络上下文的分配直至特定网络连接被终止的同时,释放导引上下文与网络上下文的关联。
Description
技术领域
本公开在其部分实施例中涉及网络连接的资源,并且更具体地但并非仅仅涉及用于网络连接的资源管理以跨网络处理任务的方法和装置。
背景技术
网络节点,诸如服务器,可以建立并同时支持与其他网络节点,诸如存储服务器、端点设备和其他服务器,的数千个网络连接,以通过网络连接跨网络节点之间的网络提供应用程序数据的交换或执行应用程序任务。大量同时的网络连接会在网络节点处消耗大量资源,包括:用于管理向/从网络节点处运行的应用程序传递任务相关信息,诸如队列,的存储资源;用于存储网络协议相关信息,诸如状态参数,的存储资源,以通过网络连接按顺序提供有保证的任务和/或数据传递的存储资源;以处理、监视及缓解不同的网络状况,诸如数据丢失、重新排序、拥塞等;以及用于通过网络连接处理用于处理任务或传输数据的网络协议的计算资源。
发明内容
本公开的目的是提供了一种用于跨网络进行数据传输的网络接口卡(networkinterface card,NIC)、包括至少一个NIC的网络装置、管理网络连接所消耗的资源以跨网络处理任务的方法、计算机程序产品和/或计算机可读介质,该计算机程序产品和/或计算机可读介质存储可由一个或多个硬件处理器执行的代码指令,用于管理网络连接所消耗的资源以跨网络处理任务。
上述目的及其它目的通过独立权利要求的特征实现。根据从属权利要求、说明书和附图可以明显看出进一步的实现形式。
根据本公开的第一方面,公开了一种用于跨网络数据传输的网络接口卡(NIC)。所述NIC包括:存储器,用于分配表示第一动态分配的存储资源的导引上下文以及表示第二动态分配的存储资源的网络上下文。所述导引上下文与所述网络上下文关联(诸如通过外部处理器),并且所述导引上下文与排列有多项任务(诸如由应用程序启动)的至少一个队列关联。所述多项任务被发布(诸如由所述外部处理器)并被指定使用特定网络连接来执行。所述NIC还包括NIC处理电路,被配置为使用所述导引上下文及所述网络上下文处理所述多项任务。在执行所述多项任务期间,分配(诸如临时)所述导引上下文,供所述特定网络使用,并且在所述特定网络连接的生命周期中,分配所述网络上下文,供所述特定网络使用。响应于完成所述多项任务执行的指示,在保持所述网络上下文的分配直至所述特定网络连接被终止的同时,释放(诸如通过所述外部处理器)所述导引上下文与所述网络上下文的关联。
根据本公开的第二方面,公开了一种用于跨网络数据传输的NIC。所述NIC包括:存储器,用于分配表示第一动态分配的存储资源的导引上下文以及表示第二动态分配的存储资源的网络上下文。所述导引上下文与排列有多项任务的至少一个队列关联,并且所述多项任务通过特定网络连接从发起方网络节点跨所述网络来接收。所述NIC还包括NIC处理电路,并且所述NIC处理电路用于将所述导引上下文与所述网络上下文关联,以及将所述多项任务排列到与所述导引上下文关联的至少一个队列中。在执行所述多项任务期间,分配(诸如临时)所述导引上下文,供特定网络使用,并且在所述特定网络连接的生命周期中,分配所述网络上下文,供所述特定网络使用。响应于完成所述多项任务执行的指示,在保持所述网络上下文的分配直至所述特定网络连接被终止的同时,释放所述导引上下文与所述网络上下文的关联。
网络连接的存储资源分为两个独立的部分—第一部分(本文中被称为网络上下文)和第二部分(本文中被称为导引上下文)。第一部分即网络上下文在网络连接活跃时的整个期间使用(即直至连接被终止,释放网络上下文),而第二部分即导引上下文仅在使用网络连接处理一项或多项任务期间使用。
可同时跨网络处理/执行任务的已建立网络连接的量是根据特定网络带宽、特定网络时延及与网络连接设备附接的网络节点的计算性能确定的。在包括成千上万个已建立网络连接的大规模系统中,仅其中的几个已建立网络连接可用于同时传输数据。根据已建立网络连接的估计量,预留为分配网络上下文的存储资源。根据可用于同时执行任务处理的网络连接的估计量,预留为分配导引上下文的存储资源。由于导引上下文的量明显少于网络上下文的量,因此可以大大减少供网络设备的网络连接使用而预留的总存储。
为实现队列而预留的存储的量应足以容纳通过特定网络连接提供所需的吞吐量的任务相关信息的量。由于导引上下文与队列集合关联,并且在大规模系统中,估计的导引上下文的量明显少于估计的网络上下文的量,因此本文所述的至少部分方面和/或实现形式实现了为网络资源分配多个网络连接而预留的总存储的显著减少。
本文所述的第一方面和第二方面的至少一些实现可以使用不同类型的可靠传输协议,诸如RoCE(通过聚合以太网的远程直接内存访问,RDMA(Remote Direct MemoryAccess)over Converged Ethernet)的RC/XRC(可靠连接/扩展可靠连接,ReliableConnected/eXtended Reliable Connected)、TCP(传输控制协议,Transmission ControlProtocol)和CoCo(具有连接Cookie扩展的TCP,TCP with Connection Cookieextension)。
在第一方面和第二方面的另一实现形式中,所述导引上下文还用于存储多个第一状态参数。在执行与所述导引上下文关联的所述至少一个队列中排列的所述多项任务期间,所述多个第一状态参数由所述特定网络连接使用。
第一状态参数可以用于诸如使用队列集合传递任务相关信息,和/或处理到达分组混乱、丢失恢复及重传。
在第一方面和第二方面的另一实现形式中,为分配所述导引上下文而预留的所述存储资源的量是由预计将同时执行各自任务的已建立网络连接的第一估计数量确定的。
由于预计同时执行任务的连接的数量远小于已建立网络连接的数量,因此根据预计将同时执行各自任务的网络连接的估计数量预留存储资源,可显著减少预留的总存储。
在第一方面和第二方面的另一实现形式中,所述网络上下文用于为所述特定网络连接将多个第二状态参数存储在所述网络上下文中,其中,在所述特定网络连接的整个生命周期中,所述多个第二状态参数由所述特定网络连接保持并使用。
第二状态参数可以用于诸如提供跨网络分组运输和/或在网络中网络监视拥塞缓解。第二状态参数的示例包括:往返时间(Round trip time,RTT)/延迟,可用率及达到率。
在第一方面和第二方面的另一实现形式中,为分配所述网络上下文而预留的存储资源的量是由同时建立的网络连接的第二估计数量确定的。
将预留的存储资源的量划分为网络上下文和导引上下文,将显著减少预留的整个总存储资源。例如,由于在大规模系统中,同时传输数据的分配有导引上下文的网络连接的数量明显少于分配有网络上下文的网络连接的总数量。通过明显少于预测的网络上下文的量的预测的导引上下文的量来实现预留存储的减少。由于导引上下文的量明显少于网络上下文的量,因此可以大大减少供网络连接使用而预留的总存储。
在第一方面和第二方面的另一实现形式中,为所述网络上下文分配网络上下文标识符(network context identifier,NCID),并且为所述导引上下文分配导引上下文标识符(steering context identifier,SCID)。通过将NCID分配给网络上下文以及将SCID分配给导引上下文,对于不同的网络连接,更容易标识不同的网络上下文和不同的导引上下文。
在第一方面和第二方面的另一实现形式中,所述至少一个队列用于传递源自所述NIC处理电路和/或去往所述NIC处理电路的任务相关信息,其中,所述至少一个队列的队列元素包括使用所述特定网络连接的所述多项任务的任务相关信息及各自的NCID。
由于与队列元素关联的网络上下文的NCID立即可用,且不需要对映射数据集的额外访问以获得NCID,因此将NCID包括在队列元素(queue element,QE)中可以提高处理效率。
在第一方面和第二方面的另一实现形式中,所述存储器用于存储映射数据集,所述映射数据集在所述网络上下文的所述NCID与所述导引上下文的所述SCID之间进行映射。通过存储映射数据集,更容易基于已知的SCID来确定对应的NCID。
在第一方面的另一实现形式中,所述外部处理器可以在所述NIC外部实现,诸如实现为与所述NIC附接的主机的处理器。NIC与外部处理器之间的通信可以诸如通过外围组件互连快速(peripheral component interconnect express,PCIe)总线使用软件接口进行。可替换地,在第一方面的另一实现中,所述外部处理器可以在所述NIC本身内实现,例如,将所述NIC和外部处理器部署在同一硬件板上。
所述外部处理器用于:使用特定网络连接,确定处理所述多项任务中的第一项任务的开始;分配来自多个存储资源的引导上下文,以供所述特定网络连接使用;以及响应于确定的所述开始,通过在各自的NCID与SCID之间创建映射,将具有特定SCID的所述导引上下文与具有特定NCID的所述网络上下文关联,其中,所有的所述多项任务使用相同的映射进行处理。
在第一方面的另一实现形式中,所述外部处理器用于:确定所述多项任务中的最后一项任务的完成;以及响应于确定的所述完成,通过移除所述NCID与所述SCID之间的映射,释放所述导引上下文与所述网络上下文的关联,并释放所述导引上下文。
确定任务执行的开始和/或完成的能力能够临时分配导引上下文,供在执行任务期间使用。
在第一方面的另一实现形式中,所述NIC在发起方网络节点上实现,所述发起方网络节点使用到目标网络节点的所述特定网络连接来启动所述多项任务,其中,所述多项任务从所述发起方网络节点上运行的应用程序由所述外部处理器接收。
本文所述的至少部分方面和/或实现可以在发起方网络节点和目标网络节点上实现,仅在发起方网络节点上实现,或仅在目标网络节点上实现。当NIC在发起方节点上实现时,外部处理器将导引上下文与网络上下文关联,以及将任务发布到与导引上下文关联的队列中。NIC处理电路使用导引上下文及网络上下文处理任务。当NIC在目标节点上实现时,NIC处理电路将导引上下文与网络上下文关联,以及将任务排列到与导引上下文关联的队列中。由作为发起方的特定网络节点使用的实现不依赖于由作为目标的另一网络节点使用的实现。当NIC在发起方网络节点和目标网络节点二者处实现时,该实现可在每一端独立执行。网络连接的一端处(即发起方网络节点处)的实现不需要网络连接的另一端(即在目标网络节点处)的协作。
在第二方面的另一实现形式中,所述NIC处理器用于:使用所述特定网络连接,确定处理所述多项任务中的第一项任务的开始;分配来自多个存储资源的引导上下文,以供所述特定网络连接,以及响应于确定的所述开始,通过在所述NCID与所述SCID之间创建映射,将具有特定SCID的所述导引上下文与具有特定NCID的所述网络上下文关联,其中,所有的所述多项任务使用相同的映射进行处理。
在第二方面的另一实现形式中,所述NIC处理器用于:确定所述多项任务中的最后一项任务的完成;以及响应于确定的所述完成,通过移除所述NCID与所述SCID之间的映射,释放所述导引上下文与所述网络上下文的关联,并释放所述导引上下文。
确定任务执行的开始和/或完成的能力能够临时分配导引上下文,供在执行任务期间使用。
在第二方面的另一实现形式中,所述NIC在目标网络节点上实现,所述目标网络节点执行并响应从发起方网络节点通过所述特定网络连接跨所述网络接收的所述多项任务。
根据本公开的第三方面,还公开了一种网络装置。所述网络装置包括根据第一方面和第二方面及其实现中的任一项所述的至少一个NIC。
在第三方面的另一实现形式中,所述网络装置还包括:至少一个外部处理器,用于:使用特定网络连接,确定处理所述多项任务中的第一项任务的开始;分配来自多个存储资源的引导上下文,以供所述特定网络连接使用;以及响应于确定的所述开始,通过在各自的NCID与SCID之间创建映射,将具有特定SCID的所述导引上下文与具有特定NCID的所述网络上下文关联。作为该实现的可替换选择,所有的所述多项任务使用相同的映射进行处理。
通过使用相同的分配的网络上下文及导引上下文,在NCID和SCID或所有任务之间使用相同的映射可以提高任务的处理效率。
在第三方面的另一实现形式中,所述外部处理器用于:确定所述多项任务中的最后一项任务的完成;以及响应于确定的所述完成,通过移除所述NCID与所述SCID之间的映射,释放所述导引上下文与所述网络上下文的关联,并释放所述导引上下文。释放导引上下文以及关联的查询以供另一网络连接重用以执行另一网络连接的任务,提高存储利用率。
根据本公开的第四方面,公开了一种管理网络连接所消耗的资源以跨网络处理任务的方法。所述方法包括:提供表示第一动态分配的存储资源的导引上下文以及提供表示第二动态分配的存储资源的网络上下文,其中,所述导引上下文与所述网络上下文关联,并且所述导引上下文与排列有多项任务的至少一个队列关联,其中,所述多项任务被指定使用特定网络连接来执行;在执行所述多项任务期间,分配(诸如临时)所述导引上下文,供所述特定网络使用;在所述特定网络连接的生命周期中,分配所述网络上下文,供所述特定网络使用;使用所述导引上下文及所述网络上下文处理所述多项任务;以及响应于完成所述多项任务执行的指示,在保持所述网络上下文的分配直至所述特定网络连接被终止的同时,释放所述导引上下文与所述网络上下文的关联。
根据第四方面的方法可以扩展到与根据第一方面所述的第一装置的实现形式相对应的实现形式中。因此,该方法的实现形式包括第一装置或第二方面的对应实现形式的特征。
根据第四方面的方法的优点与根据第一方面或第二方面的第一装置的对应实现形式的优点相同。
除非另外限定,否则本文所使用的所有技术术语和/或科学术语与本公开所属领域内的普通技术人员普遍理解的含义相同。尽管在实践或测试本公开的实施例时可以使用与本文所描述的方法和材料相似或等同的方法和材料,但是以下描述了示例性的方法和/或材料。在冲突的情况下,将以本专利说明书(包括定义)为准。此外,材料、方法和示例仅是说明性的,而不一定是限制性的。
附图说明
本文中仅通过示例的方式参考附图描述本公开的部分实施例。现具体参考附图,强调所示的细节是作为示例并且出于本公开的实施例的说明性讨论的目的。就此而言,结合附图所做的描述使得本领域技术人员清楚如何实践本公开实施例。
图中:
图1A为根据部分实施例的包括NIC的网络节点的示例性实现的示意图;
图1B为根据部分实施例的NIC的示例性实现的示意图;
图1C为根据部分实施例的在作为发起方的网络节点上实现的NIC,通过分组网络与在作为目标的网络节点上实现的NIC的另一示例进行通信的示意图;
图2为根据部分实施例的一种管理网络连接所消耗的资源以跨网络处理任务的方法的流程图;
图3包括根据部分实施例的用于实现可通过映射数据集执行的示例性原子操作的示例性伪代码;
图4包括根据部分实施例的用于实现可通过映射数据集执行的示例性操作的示例性伪代码;
图5为根据部分实施例的描绘了包括本文所述的NIC的发起方网络节点中的示例性处理流程的图;以及
图6为根据部分实施例的描绘了包括本文所述的NIC的目标网络节点中的示例性处理流程的处理流程图。
具体实施方式
本公开在其部分实施例中涉及网络连接的资源,并且更具体地但并非仅仅涉及用于管理网络连接所消耗的资源以跨网络处理任务的方法和装置。
部分实施例的一方面涉及在发起方网络节点上实现的NIC。NIC被设计为使用特定网络连接与目标网络节点上实现的NIC的另一实现跨网络进行通信。在发起方网络节点上实现的NIC和在目标网络节点上实现的NIC各包括存储器,该存储器分配表示第一动态分配的存储资源的导引上下文以及分配表示第二动态分配的存储资源的网络上下文。在发起方网络节点处,导引上下文通过外部处理器与网络上下文关联。导引上下文与排列有任务的一个或多个队列关联,这些任务由外部处理器发布并被指定使用特定网络连接来执行。在发起方网络节点处,NIC处理电路使用导引上下文和网络上下文处理任务。在执行任务期间,临时分配导引上下文,供特定网络连接使用。在特定网络连接的生命周期中,分配网络上下文,供特定网络连接使用。发起方网络节点运行应用程序,该应用程序使用到目标网络节点的特定网络连接来启动任务。在目标网络节点处,目标网络节点的NIC处理电路将导引上下文与网络上下文关联,并将任务排列到与导引上下文关联的一个或多个队列中。目标网络节点执行并响应从发起方网络节点通过特定网络连接跨网络接收的任务。该任务可例如由目标网络节点的NIC处理电路、目标网络节点的外部处理器、目标网络节点上运行的应用程序和/或上述各项的组合来执行。响应于完成任务执行的指示,在保持网络上下文的分配直至特定网络连接被终止的同时,释放导引上下文与网络上下文的关联。在发起方网络节点处,该释放由外部处理器执行,在目标网络节点处,该释放由NIC处理电路执行。
本文所述的方法和装置的至少一些实现解决了为已建立网络连接预留大量存储资源的技术问题。该预留的存储实际上仅在任务处理时间间隔内使用,在无任务处理时不使用但仍被预留。因此,在为上下文和/或队列提前预留的大量存储未被实际处理任务的网络连接使用时,由于实际上仅使用了少量预留存储,因此浪费了大量存储。需要为一个占用网络连接提前预留的存储的量可能会很大,并且随着已建立连接数量的增加,需要提前预留的存储的量是巨大的,而存储资源短缺会成为某些部署的限制因素。下表1提供了具体列表,用于估计为示例性网络节点的已建立网络连接预留的存储的量,该示例性网络节点通过RoCE运输运行100000个连接(诸如大规模系统)。为2,880,000个未完成任务预留存储。
表1
在100,000个已建立网络连接中,同时处理任务的连接数量非常少。同时处理任务的网络连接数量受网络连接节点的计算性能、网络属性—网络带宽和网络延迟的限制。表1呈现了示例存储网络节点的值,该示例存储网络节点使用网络接口连接到网络,该网络接口的带宽为每秒200千兆字节(Gb/s),往返延迟为200纳秒(ns),该示例存储网络节点可同时提供不超过1221项处理4KB数据单元的任务请求。另一方面,为了保证每个网络连接的所需吞吐量,相应的发送队列(SQ)、接收队列(receive queue,RQ)及完成队列(completionqueue,CQ)应各包括足够数量的元素,以容纳针对任务的已发布的请求/响应/完成的所需量。SQ包括发送队列元素,用于传递数据和/或任务请求/响应。RQ包括接收队列元素,用于传递数据和/或任务请求/响应。CQ用于报告这些队列元素的完成。本文所述的存储消耗的最大部分是为保证每个网络连接的所需吞吐量而分配的队列。随着队列数量增加,预留存储的量也会增加,从而导致队列可伸缩性问题。本文所述的方法和装置的至少一些实现提供了与其他现有标准方法相比的技术优势,以解决上述技术问题。
解决队列可伸缩性问题的一种标准方法是基于实现虚拟队列,该虚拟队列为链接元素的列表。但是,由于队列位于NIC之外(诸如在网络节点的主CPU的存储器中),因此DMA方法对此种队列的有效性取决于访问次数。由于对队列的链接元素的访问次数为O(n),而对队列NIC的物理上连续的元素的访问次数为O(n/m),其中,“n”表示队列中元素的数量,“m”表示高速缓存线的大小,因此本文所述的方法和装置的至少一些实现使得可以采用物理上连续的队列来显著减少对队列的访问次数。
解决队列可伸缩性问题的其他标准方法的示例包括由无线带宽技术架构规定的并引入供RDMA技术使用的共享队列类型:例如,共享接收队列(shared receive queue,SRQ)、共享完成队列(shared completion queue,SCQ)以及扩展可靠连接(XRC)传输服务。然而,部署此种类型的共享队列仅解决了接收机侧处的队列可伸缩性问题,而留下了未答复的上下文可伸缩性问题。相反,本文所述的至少一些实现提供了一个或多个队列,该一个或多个队列与在执行任务期间临时分配的供网络连接使用的导引上下文关联,这解决了接收机和发送机侧双方处的队列及上下文可伸缩性问题。另一种方法仅适用于RDMA技术。相反,本文所述的至少一些实现提供了使用不同类型的可靠传输协议,诸如RC/XRC、RoCE、TCP和CoCo,来处理任务。
另一种方法(动态连接传输服务)减少了连接上下文和发送队列所需的存储大小,但有以下缺陷,而这些缺陷可以通过本文所述的至少一些实现来解决:
·在另一种方法中,单一SQ服务多个网络连接是造成线报头阻塞的原因。相反,本文所述的至少一些实现提供了一个或多个专用于每个网络连接的队列,该队列防止线报头阻塞。
·另一种方法需要在连接的两个对等点中支持动态连接传输(dynamicallyconnected transport,DCT)。相反,至少本文所述的部分实施例并不一定需要在发起方节点和目标节点二者处同时实现,例如,部分实施例在发起方节点处而非目标节点处实现,而其他实施例在目标节点处而非发起方节点处实现。应注意,部分实施例在发起方和目标二者处实现。
·另一种方法不会承继同一网络节点对的连续处理之间的网络状态,这使其不适用于拥塞的网络。相反,本文所述的至少一些实现提供了一种网络上下文,其存储用于在网络中网络监视拥塞缓解的第二状态参数。在特定网络连接的整个生命周期中,第二状态参数由特定网络连接保持和使用。
·另一种方法仅适用于无线带宽技术(InfiniBand,IB)(不适用于TCP甚至RoCE)。相反,本文所述的至少一些实现提供了使用不同类型的可靠传输协议来处理任务,诸如RC/XRC、RoCE、TCP和CoCo。
本文所述的方法和装置的至少一些实现大大降低了用于建立网络连接的网络节点(诸如大规模分布式系统)的存储需求。根据可同时执行任务处理的已建立网络连接的估计量,存储需求至少通过用于分配导引上下文的预留存储资源来降低。为导引上下文预留的存储的量显著少于供所有现存网络连接使用而另外预留的总存储的量。
下表2提供了用于计算表四中值的值。
参数 | 值 |
总带宽(Gbs) | 200 |
延迟 | 200 |
任务大小(KB) | 4 |
#未完成任务 | 1221 |
表2
下表3估计了运行100000个网络连接以处理任务的网络节点的每个子上下文类型存储利用率。每个子上下文存储类型将在下文中进行更详细地描述。
参数 | 值(以字节为单位) |
主机队列上下文 | 265 |
用户数据传递上下文 | 128 |
连接状态上下文 | 128 |
表3
下表4总结了运行100000个连接的示例性网络节点(诸如大规模系统)的参数,该节点仅能够支持估计的1221个网络连接同时主动处理任务。表4示出了未完成任务的实际量为1221,其中,任务的每个传输单元的大小为4KB。比较表1和表4,预留存储的量对于2,880,000项任务来讲是足够的,相反,实际仅有1221项任务同时执行。
表四
下表5比较了为所有100000个连接预留存储(行表示为“完全配备”)和本文中所述的方法和装置的至少一些实现所使用的存储(行表示为“实际使用”)的标准方法。本文所述的一些实现通过将所使用的存储的量减少到为所有已建立连接预留存储的标准过程的2.2%左右,来提高存储利用率。
表5
在详细说明本公开的至少一个实施例之前,应理解,本公开并不一定局限于它在构造细节上的应用和以下说明中所提出的和/或附图和/或示例所示出的部件和/或方法的排列。本公开能够实现其它实施例或以各种方式实践或执行。
本公开可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括计算机可读存储介质(或媒介质),其上具有计算机可读程序指令,用于使处理器执行本公开的各方面。
计算机可读存储介质可以是有形设备,其可以保留和存储供指令执行设备使用的指令。该计算机可读存储介质可以是例如但不限于电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备或上述的任意合适的组合。
本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或经由诸如互联网、局域网、广域网和/或无线网络等的网络下载到外部计算机或外部存储设备。
该计算机可读程序指令可以完全在用户的计算机上执行、作为独立的软件包部分地在用户的计算机上执行、部分地在用户的计算机上且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种场景中,该远程计算机可以通过包括局域网(local area network,LAN)或广域网(wide area network,WAN)的任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(例如,使用因特网服务供应商通过因特网)。为了执行本公开的各个方面,在部分实施例中,包括诸如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logicarrays,PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行该计算机可读程序指令,以使该电子电路个性化。
本文参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图对本公开的各方面进行描述。应理解,流程图和/或框图中的每个框,以及流程图和/或框图中的框的组合可以通过计算机可读程序指令实现。
附图中的流程图和框图示出了根据本公开的各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。就此而言,流程图和框图中的每个框可以表示模块、片段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在部分可替代的实现中,框中所提到的功能可以不按图中所提到的顺序出现。例如,实际上,根据所涉及的功能,连续示出的两个框本质上可以同时执行,或者框有时可以以相反的顺序执行。还应注意的是,该框图和/或流程图中的每个框,以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,该系统执行指定的功能或动作或者实现专用硬件和计算机指令的组合。
现参考图1A,图1A为根据部分实施例的包括NIC 192A或NIC 192B的网络节点150的示例性实现的示意图。继续参考图1B,图1B为根据部分实施例的NIC 192A的示例性实现190A和NIC 192B的示例性实现190B的示意图。继续参考图1C,图1C为根据部分实施例的在作为发起方150Q的网络节点150上实现的NIC 192A-B,通过基于分组的网络112与在作为目标150R的网络节点上实现的NIC 192A-B的另一示例进行通信的示意图。注意,每个节点150均可作为发起方、目标,或者发起方和目标二者。继续参考图2,图2为根据部分实施例的一种管理网络连接所消耗的资源以跨网络处理任务的方法的流程图。参考图2所述的方法由作为发起方的网络节点和/或作为目标的网络节点来实现,该网络节点包括参考图1A-1C所述的NIC。
NIC 192A和NIC 192B可以减少网络连接所消耗的存储量以跨网络处理任务。
已建立连接的存储资源分为两个独立的部分—第一部分(本文中被称为网络上下文)在已建立连接活跃时的整个期间使用。第二部分(本文中被称为导引上下文)仅在使用网络连接处理任务期间使用。排列有任务相关信息的队列的集合也与导引上下文关联。
可同时跨网络处理任务的已建立网络连接的量受特定网络带宽、特定网络时延及与网络连接设备附接的网络节点的计算性能的限制。在包括成千上万个已建立网络连接的大规模系统中,仅其中的几个已建立网络连接可同时处理任务。根据已建立连接的估计量,预留为分配网络上下文的存储。根据可同时执行任务处理的已建立网络连接的估计量,预留为分配导引上下文的存储。由于导引上下文的量明显少于网络上下文的量,因此实现了供网络连接使用而预留的总存储的显著减少。
NIC 192A或NIC 192B实现为诸如插入插槽和/或集成在计算设备内的网络接口卡。NIC 192A-B可使用诸如ASIC和/或FPGA,具有用于数据平面的可编程性的嵌入式或外部(板上)处理器来实现。NIC 192A-B可被设计为卸载网络节点的主CPU通常处理的任务处理。NIC 192A-B可能够执行TCP/IP和HTTP、RDMA处理、加密/解密、防火墙等的任意组合。如图1C所示,NIC 192A-B可以在作为发起方150Q(本文中也称为发起方网络节点)的网络节点150中实现,和/或在作为目标150R(本文中也称为目标网络节点)的网络节点150中实现。发起方网络节点(图1C中的150Q)运行应用程序,该应用程序使用到目标网络节点的特定网络连接来启动任务(图1C中的150R)。目标网络节点执行并响应从发起方网络节点通过特定网络连接跨网络112接收的任务。该任务可例如由目标网络节点的NIC处理电路、目标网络节点的外部处理器、目标网络节点上运行的应用程序、另一设备和/或上述的组合来执行。
任务处理可以包括在发起方网络节点和目标网络节点之间交换的一系列请求/响应命令和/或数据单元。面向任务的应用程序/上层协议(upper layer protocol,ULP)的示例包括:NVMe over Fabric以及iSCSI。可以包括多个交互的任务的示例包括:Read_operation、Write_operation_without_immediate_data和Write_operation_with_immediate_data。
本文所述的特定网络连接为同时存在于同一NIC 192A-B上的多个已建立网络连接之一。
部分已建立网络连接同时处理任务,而其他部分已建立网络连接则在其他已建立网络连接处理任务期间未处理任务。
已建立网络连接可以在NIC与多个其他网络节点之间,诸如主持由多个客户端同时访问的网站的中央服务器。每个客户终端使用其各自已建立网络连接来从网站下载数据、向网站上传数据,或者在已建立网络连接保持活跃的情况下不执行数据的主动上传/下载。例如,作为发起方网络节点的服务器连接到作为目标网络节点的存储控制器,以访问共享存储设备。
网络节点150使用特定网络连接经由网络接口118通过基于分组的网络112传输数据。特定网络连接为许多其他活跃网络连接中的一个,其中部分网络连接可跨网络122同时传输数据,而其他网络连接在与特定网络连接相同的时刻不传输数据。
网络节点150可实现为诸如服务器、存储控制器等。
网络112可实现为分组交换网络,诸如局域网(LAN)和/或广域网(WAN)。网络112可以使用有线或无线技术来实现。
网络接口118可实现为软件和/或硬件接口,诸如下列部件的组合中的一个或多个:计算机端口(诸如用于电缆的硬件物理接口)、网络接口控制器、网络接口设备、网络套接字和/或协议接口。NIC 192A或192B与存储器106关联,该存储器106分配导引上下文106D-2以及分配网络上下文106D-1。导引上下文106D-2指的是存储器106的一部分,该部分被定义为从多个可用分配的存储资源中预留的第一动态分配的存储资源。网络上下文106D-1指的是存储器106的另一部分,该部分由从多个可用分配的存储资源中预留的第二动态分配的存储资源定义。导引上下文106D-2与排列有多项任务的一个或多个队列106C关联,该多项任务被指定通过分组网络112使用多个网络连接中的特定网络连接来执行。
存储器106的示例包括随机存取存储器(random access memory,RAM),诸如动态RAM(dynamic RAM,DRAM)、静态RAM(static RAM,SRAM)等。
存储器106可以位于下列一个或多个中:附接到外部处理器150B的CPU 150A、附接到NIC 192A-B和/或NIC 192A-B内部。应注意,在图1A中描绘了所有三种可能的实现。
CPU 150A可实现为诸如单核处理器、多核处理器或微处理器。
对于NIC192A,外部处理器150B(和内部组件)在NIC 192A外部。NIC192A与外部处理器150B之间的通信可以诸如通过PCIe总线使用软件接口进行。
对于NIC192B,外部处理器150B、CPU 150A和存储队列106C的存储器106被包括在NIC192B内,诸如在同一硬件板上。NIC192B的组件之间的通信可以诸如使用合适的软件和/或硬件接口来实现。
队列106C用于在诸如NIC处理电路102和外部处理器150B之间传递源于NIC处理电路102和/或去往NIC处理电路102的任务相关信息。可替换地,在另一个示例中,NIC处理电路102将部分任务排列以供其进一步执行。
由队列106C传递的示例性任务相关信息包括下列一项或多项:任务请求指令、任务响应指令、数据传递指令、任务完成信息等。
处理电路102可实现为诸如ASIC、FPGA和一个或多个微处理器。
导引上下文106D-2存储第一状态参数,在执行与导引上下文106D-2关联的队列106C中排列的任务期间,该第一状态参数由特定网络连接使用。为分配导引上下文106D-2而预留的存储资源的量可以是由预计将同时执行各自任务的已建立网络连接的第一估计数量确定的。同时执行任务的网络连接每个分配有各自的导引上下文。如本文所述,已建立但未执行任务的网络连接不分配导引上下文,直到确定开始执行任务。
网络上下文106D-1为特定网络连接存储第二状态参数。在特定网络连接的整个生命周期中(从网络连接建立到网络连接终止)、在任务执行的时间间隔期间以及在未执行任务的间隔期间(即,网络连接保持建立),第二状态参数由特定网络连接保持并使用。为分配网络上下文106D-1而预留的存储资源的量是由同时建立的网络连接的第二估计数量确定的。无论是否正在执行任务,已建立的网络连接分配有各自的网络上下文。第一状态参数和第二状态参数包括在先和后续分组的处理(诸如有状态处理)之间传递的网络连接的状态(诸如上下文)。有状态处理取决于已处理分组的顺序,可选地,其顺序尽可能接近源处的分组的顺序。示例性有状态协议包括:TCP、RoCE、iWARP、iSCSI、NVMe-oF、MPI等。示例性有状态操作包括:LRO、GRO等。第一状态参数表示特定网络连接在处理任务期间所需的状态。第一状态参数可以用于诸如使用队列集合传递任务相关信息,和/或提供到达分组混乱、丢失恢复及重传。第二状态参数可以用于诸如提供网络运输和/或在网络中网络监视拥塞缓解,包括:RTT/延迟,可用率和/或达到率。
如本文所述,网络连接上下文包括第一部分和第二部分。第一部分包括导引上下文和关联队列,在处理任务期间使用(仅可选)。第二部分包括网络上下文,在网络连接活跃时期间使用。为网络上下文而预留的存储的量可以是根据同时建立的网络连接的预测量的。为导引上下文(包括队列)而预留的存储的量可以是根据同时处理任务的网络连接的预测量的。处理任务的每个网络连接使用上下文的第一部分和第二部分,即网络上下文和导引上下文。在任务处理发生时的时间间隔期间,导引上下文被动态地分配和/或分配给网络连接(仅可选)。由于在大规模系统中,同时处理任务的网络连接的数量明显少于网络连接的总数,因此,通过明显少于预测的网络上下文的量的预测的引导上下文的量来实现预留存储的减少。
可选择地,将网络上下文标识符(NCID)分配给网络上下文106D-1,并且将导引上下文标识符(SCID)分配给导引上下文106D-2。
队列106C的队列元素包括使用特定网络连接的任务的任务相关信息以及各自的NCID。由于与队列元素关联的网络上下文的NCID立即可用,且不需要对映射数据集的额外访问以获得NCID,因此将NCID包括在队列元素中可以提高处理效率。
存储器存储映射数据集106B,该映射数据集106B在网络上下文106D-1的NCID与导引上下文106D-2的SCID之间进行映射。映射数据集106B可以使用适当的格式和/或数据结构(诸如表、指示字集、哈希函数)来实现。可以根据同时处理任务的网络连接的支持/估计的数量来设置映射数据集中的元素的数量。映射数据集的每个元素可以存储下列中的一项或多项:(i)表示各自元素是否有效的有效性标记,可以将其初始化为“Not_Valid”;(ii)当元素有效时设置的SCID值;(iii)适用于各自元素的任务的计数器。
以下为由映射数据集实现的示例性逻辑操作:element ncscGet(NCID),从映射数据集中返回元素;void ncscSet(NCID,element),设置映射数据集中的元素。在发起方网络节点处,映射数据由外部处理器管理,并且可选择地由NIC处理电路访问。在目标网络节点处,映射数据集由NIC处理电路管理,并且可选择地由外部处理器访问。
当网络节点150实现为发起方时,任务由外部处理器150B发布到队列106C。外部处理器150B可以接收来自实现为发起方的网络节点150上运行的应用程序的任务。外部处理器150B将导引上下文106D-2与网络上下文106D-1关联。
当网络节点150实现为目标时,任务从发起方网络节点(诸如实现为发起方的网络节点150的另一示例)通过特定网络连接跨网络112被接收。NIC处理电路102将导引上下文106D-2与网络上下文106D-1关联,并将任务排列到与导引上下文106D-2关联的队列106C中。
NIC处理电路102使用导引上下文106D-2及网络上下文106D-1来处理任务。
在执行任务期间,临时分配导引上下文106D-2,供特定网络连接使用。在特定网络连接的生命周期中,分配网络上下文106D-1,供特定网络连接使用。临时分配在完成任务执行时被释放,这释放了导引上下文以分配给另一网络连接,或重新分配给同一网络连接,以执行另一任务集合。可替换地,导引上下文106D-1的临时分配在完成任务执行时不释放,而是被保持,以执行提交给相同的特定网络连接的另一任务集合。可替换地,导引上下文106D-1的临时分配在完成任务执行时不释放,而是在另一网络连接开始处理另一任务集合时被释放。
当网络节点150实现为发起方时,响应于完成任务执行的指示,通过外部处理器150B释放导引上下文106D-2与网络上下文106D-1的关联。当网络节点150实现为目标时,通过NIC处理电路102释放导引上下文106D-2与网络上下文106D-1的关联。关联的释放使导引上下文可由执行任务的另一网络连接来使用或由同一个网络连接来使用,以执行另一任务集合。
保持网络上下文106D-1的分配,直至特定网络连接被终止。特定已建立网络连接可以被终止,诸如由本地应用程序和/或由远程应用程序正常关闭。在另一示例中,诸如当检测到错误时,特定已建立网络连接可以被失败地终止。当网络连接终止时,可以将释放的网络上下文分配给已建立的另一网络连接。
当NIC 192A或192B在目标网络节点上实现时,NIC处理电路120执行下列操作:使用特定网络连接,确定处理第一项任务的开始。分配来自存储资源的引导上下文106D-2,供特定网络连接使用,并将导引上下文106D-2(可选地具有特定SCID)与网络上下文106D-1(可选地具有特定NCID)关联。响应于确定的开始,通过在网络上下文106D-1与导引上下文106D-2之间创建映射(诸如NCID与SCID之间的映射)来执行关联。该映射可存储在映射数据集106B中。所有任务使用相同的映射进行处理。确定任务中的最后一项任务的完成。响应于确定的完成,通过移除网络上下文160D-1与引导上下文160D2之间的映射(诸如NCID与SCID之间的映射),可选择地释放导引上下文106D-2与网络上下文106D-1的关联,并释放导引上下文106D-2。
现参考回图1B,实现190A包括NIC 192A(如图1A和1C中),且实现190B包括NIC192B(如图1A和1C中)。实现190A和190B可以用于发起方网络节点和/或目标网络节点。
现详细讨论实现190A。参考图1A所述,NIC192A(本文中也称为SmartNIC或sNIC)包括处理电路102、存储器106和网络接口118。主机150B-1对应参考图1A所述的外部处理器150B。参考图1A所述,主机150B-1包括CPU 150A和存储队列106C的存储器106。NIC192A和主机150B-1是两个单独的硬件组件,通过诸如PCIe接口连接。
主机150B-1可实现为诸如服务器。
当实现190A与发起方网络节点一起使用时,主机150B-1执行下列操作,并且可替换地或此外,当实现190A与目标网络节点一起使用时,处理电路102执行下列操作:使用特定网络连接,确定处理任务中的第一项任务的开始。分配来自存储资源的引导上下文,供特定网络连接使用。响应于确定的开始,通过在导引上下文和网络上下文之间创建映射(诸如各自的NCID与SCID之间的映射),将导引上下文(可选地具有特定SCID)与网络上下文(可选地具有特定NCID)关联。该映射可存储在参考图1A所述的映射数据集106B中。所有任务使用相同的映射进行处理。确定任务中的最后一项任务的完成。响应于确定的完成,通过移除可存储在映射数据集中的导引上下文和网络上下文之间的映射(诸如NCID与SCID之间的映射),释放导引上下文与网络上下文的关联,并释放导引上下文。应注意,导引上下文和网络上下文指的是参考图1A所述的元素106D-2和106D-1。
现详细讨论包括NIC 192B的实现190B,NIC 192B为智能NIC。在本文中可称为网络处理器单元(network processor unit,NPU)160A。网络处理器单元(NPU)160A可以包括处理电路102、存储器106和网络接口118。NIC192B还包括服务处理器单元(serviceprocessor unit,SPU)150B-2。SPU 150B-2对应参考图1A所述的外部处理器150B。NPU 160A和SPU 150B-2位于相同的硬件组件上,诸如相同的网络接口硬件卡。
SPU 150B-2可实现为诸如ASIC、FPGA和CPU。
NPU 160A可实现为诸如ASIC、FPGA和一个或多个微处理器。
NIC192B与主机194通信,主机194包括CPU 194A和存储器194B。存储器194B存储与队列106C不同的外部队列集合194C。主机194和NIC192B可以通过队列集合194B进行通信。
当实现190B与发起方网络节点一起使用时,SPU 150-B执行下列操作,并且可替换地或此外,当实现190B与目标网络节点一起使用时,处理电路102执行下列操作:使用特定网络连接,确定处理任务中的第一项任务的开始。分配来自存储资源的引导上下文,供特定网络连接使用。响应于确定的开始,通过创建映射(在各自的NCID与SCID之间),将导引上下文(可选地具有特定SCID)与网络上下文(可选地具有特定NCID)关联。该映射可存储在参考图1A所述的映射数据集106B中,其中,所有任务使用相同的映射进行处理。确定任务中的最后一项任务的完成。响应于确定的完成,通过移除(可以存储在映射数据集中的NCID与SCID之间的)映射,释放导引上下文与网络上下文的关联,并释放导引上下文。
现参考回1C,发起方节点150Q和目标节点150R可以使用可靠的网络连接,诸如RoCE RC/XRC、TCP和CoCo,跨网络112进行通信。
现参考回2,在202处,提供导引上下文以及网络上下文。
引上下文与网络上下文关联,并且导引上下文与排列有任务的一个或多个队列关联,该任务被指定使用特定网络连接来执行。
当该方法由发起方网络节点的NIC实现时,任务由外部处理器发布到队列中。外部处理器使用特定网络连接,确定处理任务中的第一项任务的开始,分配来自存储资源的导引上下文,供特定网络连接使用,以及响应于确定的开始,通过创建映射(在NCID与SCID之间),将导引上下文(可选地具有特定SCID)与网络上下文(可选地具有特定NCID)关联。
当该方法由目标网络节点的NIC实现时,任务从发起方网络节点通过特定网络连接跨网络被接收。目标网络节点的NIC的NIC处理电路使用特定网络连接,确定处理任务中的第一项任务的开始,分配来自存储资源的导引上下文,供特定网络连接使用,以及响应于确定的开始,通过创建映射(在NCID与SCID之间),将导引上下文(可选地具有特定SCID)与网络上下文(可选地具有特定NCID)关联。
在204处,在执行任务期间,临时分配导引上下文,供特定网络连接使用。
在206处,在特定网络连接的生命周期中,分配网络上下文,供特定网络连接使用。
在208处,使用导引上下文及网络上下文处理任务。所有任务使用相同的映射进行处理。
在210处,接收完成任务执行的指示。
在212处,在保持网络上下文的分配直至特定网络连接被终止的同时,释放导引上下文与网络上下文的关联。
当该方法由发起方网络节点的NIC实现时,执行任务中的最后一项任务的完成由外部处理器确定,释放由外部处理器执行。
当该方法由目标网络节点的NIC实施时,执行任务中的最后一项任务的完成由NIC处理电路确定,释放由NIC处理电路执行。
现参考图3,图3包括根据部分实施例的用于实现可通过映射数据集执行的示例性原子操作的示例性伪代码。
SCID/Error nsctLookupOrAllocate(NCID)302操作可以在任务开始时应用,以查找与给定NCID关联的SCID,和/或当不存在NCID-SCID关联时创建这样的关联。
Error nsctRelease(NCID)304操作可以在任务完成时应用,以释放NCID-SCID关联。
SCID/Error nsctLookup(NCID)306操作可以在任务的中间应用,以查找与给定NCID关联的SCID。
现讨论映射数据集的示例性实现。
一种示例性实现为通过sNIC的ASIC逻辑对所有映射数据集操作进行单独的硬件实现。
另一种实现为通过sNIC中运行的固件进行的纯软件解决方案。执行nsctLookupOrAllocate和nsctReleaseByNCID原语需要锁定NCID相关处理流程,可能会出现单个流程性能问题。但是,假设在大规模系统中,在同一流上执行两个并发操作的可能性不是很高,则此选项对于某些部署是可接受的。
对于单独硬件和纯软件实现,可进行下列简化:将poolAlloc和poolFree操作移出原子性边界。应注意,系统中可能短期缺少SCID,但提供了操作的完全一致性。
又一实现是基于使用RDMA原子原语的结合软件-硬件实现的。该解决方案与下列假设适用:
·支持不超过64K-1个未完成处理。当该假设成立时,所需的SCID不超过64K-1。
·当假设成立且计数器小于4个字节时:>2bytes forSCID+>2bytes for thecounter.。
·值0xFFFF表示无效的SCID,0xFFFF0000(NOT_VALID_VAL)表示计数器无效。
·以下为示例性原子原语:
οOriginalVal atomicAdd(Counter_ID,incremental_value);
οOriginalVal atomicDec(Counter_ID,incremental_value);
■该原子原语为atomicAdd的版本,不会低于0。0以下用于说明的可见性;在实现中可以阻止漏洞。
οOriginalVal atomicCAS(Counter_ID,Compare,Swap);
·损耗为计数器的额外读数。
现参考图4,图4包括根据部分实施例的用于实现可通过映射数据集执行的示例性操作的示例性伪代码。提供伪代码以实现操作SCID nsctLookupAndUpdate(NCID,SCID)402和SCID/Error nsctInvalidate(NCID)404。术语OV表示原始值。对于SCID/ErrornsctInvalidate(NCID)404,减小后计数器为0,因此该条目可能无效,但是有可能部分并行处理使用操作nsctLookupAndUpdate插入在中间并增加了计数器。在此情况下,SCID不会被释放。
现参考图5,图5为根据部分实施例的描绘了包括本文所述的NIC的发起方网络节点中的示例性处理流程的图。处理流程图的组件可以对应于参考图1A-1C所述的系统100的组件,和/或可以实现参考图2所述的方法的特征。发起方节点550对应于图1C的发起方节点150Q。通信层550C可以对应图1B的主机150B-1和/或主机194,和/或可以是与图1A的外部处理器150B通信的应用的一部分。数据平面(诸如生产者)550E可对应图1A的外部处理器150B。NSCT 560可对应图1A中的映射数据集106B。卸载电路502可对应图1A的NIC处理电路102。上下文存储库562可对应存储有图1A的第一可分配资源106D-2和第二可分配资源106D-1的存储器106。
启动节点处的处理流程如下:
在(1)处,通信层550C使用网络连接NCID提交新任务以进行处理。
在(2)处,任务处理开始。数据平面550E使用NSCT映射数据集的NSCT原语对SCID执行查找。当映射数据集中没有条目时,分配分配有SCID的新的导引上下文,并将其与分配给网络连接的网络上下文的NCID关联,否则使用现有关联。
在(3)处,数据平面550E初始化新任务并将新任务发布到与导引上下文关联的队列。NCID的实际值为已发布工作队列元素(working queue element,WQE)的任务相关信息的一部分。
在(4)处,数据平面550E按门铃,以通知卸载电路502与导引上下文关联的非空队列。
在(5)处,卸载电路502通过使用来自门铃的SCID从上下文存储库562中提取导引上下文,开始处理到达的门铃。
在(6)处,卸载电路502使用导引上下文的状态信息从SQ中来提取WQE。WQE携带正确的NCID值。
在(7)处,卸载电路502使用来自WQE的NCID来提取网络上下文。
在(7’)处,卸载电路502使用来自门铃的NCID来提取网络上下文。流程7’表示流程优化,该流程优化可以在门铃信息还包含NCID的情况下应用。
步骤(7’)可以与步骤(5)同时执行,然后再完成(6)。
在(8)处,卸载电路502通过下载数据、分段数据、计算CSC/校验和/摘要、格式化分组、报头等来处理任务;更新拥塞状态信息、RTT计算等;更新导引上下文和网络上下文状态信息,并将NCID←→SCID基准保存在对应的上下文中。
在(9)处,卸载电路502跨网络发送分组。
在(10)处,卸载电路502处理跨网络接收的到达的响应分组,并使用接收的分组中的信息(直接或间接地)获得NCID。直接获得NCID示例包括:使用RoCE报头的QPID和TCP报头的CoCo选项。间接示例包括:通过从分组的TCP/IP报头构建的5个元组密钥查找NCID。
在(11)处,卸载电路502使用来自上下文存储库562的NCID来提取网络上下文。网络上下文包括附加的SCID值。
在(12)处,卸载电路502使用从网络上下文获得的SCID来提取导引上下文。
在(13)处,卸载电路502通过更新拥塞状态信息、RTT计算等并清除上下文中的NCID←→SCID基准,使用网络上下文状态信息来执行分组处理。
在(14)处,卸载电路502通过将具有任务响应相关信息的工作元素发布到RQ中,将带有任务请求/响应完成信息的工作元素发布到CQ中并清除上下文中的NCID←→SCID基准,使用导引上下文状态信息来执行分组处理。
在(15)处,卸载电路502通知数据平面550E任务执行完成。
在(16)处,数据平面550E通过中断或表示任务已经结束的CQE轮询来调用。数据平面550E使用来自RQE的检索的NCID的CQE来检索完成信息。
在(17)处,数据平面550E使用NSCT原语释放SCID到NCID的映射。
在(18)处,数据平面550E将任务响应提交给通信层550C。
现参考图6,图6为根据部分实施例的描绘了包括本文所述的NIC的目标网络节点中的示例性处理流程的处理流程图。处理流程图的组件可以对应于参考图1A-C所述的系统100的组件,和/或可以实现参考图2所述的方法的特征。目标节点650对应图1C的目标节点150R。通信层650C可以对应图1B的主机150B-1和/或主机194,和/或对应与图1A的外部处理器150B通信的应用。数据平面(诸如消费者)650E可对应图1A的外部处理器150B。NSCT 660可对应图1A的映射数据集106B。卸载电路602可对应图1A的NIC处理电路102。上下文存储库662可对应存储有图1A的第一可分配资源106D-2和第二可分配资源106D-1的存储器106。
目标节点处的处理流程如下:
在(20)处,卸载电路602处理到达的任务启动分组,指示开始任务处理。卸载电路602使用分组中的信息(直接或间接地)获得NCID。直接获得NCID示例包括:使用RoCE报头的QPID和TCP报头的CoCo选项。间接示例包括:通过从分组的TCP/IP报头构建的5个元组密钥查找NCID。
在(21)处,卸载电路602使用NSCT映射数据集660的NSCT原语对SCID执行查找。当映射数据集中没有条目时,分配新的导引上下文,并且其SCID与具有请求的NCID的网络上下文关联,否则使用现有关联。
在(22)处,卸载电路602使用来自上下文存储库662的NCID来提取网络上下文。在网络上下文包括有效的SCID基准的情况下,将其值与由(21)中的查找原语检索的SCID进行验证。
在(23)处,卸载电路602使用由查找原语获得的SCID从上下文存储库662中提取导引上下文。应注意,一旦知道(21)结果,(23)就可以与(22)同时进行。
在(24)处,卸载电路602通过更新拥塞状态信息、RTT计算等以及更新上下文中的NCID←→SCID基准,使用网络上下文状态信息来执行分组处理。
在(25)处,卸载电路602通过将具有任务请求相关信息的工作元素发布到RQ,将带有完成信息的工作元素发布给到队列的CQ以及更新上下文中的NCID←→SCID基准,使用导引上下文状态信息来执行分组处理。
在(26)处,卸载电路602通知数据平面650E(作为消费者)任务执行完成。
在(27)处,数据平面650E通过中断或CQE轮询来调用,并且使用来自RQE的检索的NCID的CQE来检索完成信息。
在(28)处,数据平面650E将任务请求与{NCID,SCID}的实际值一同提交给通信层650C。
在(29)处,通信层650C在服务到达的请求之后,使用来自请求的对{NCID,SCID}将任务响应提交给数据平面650E(作为生产者)。
在(30)处,数据平面650E被初始化,并且将任务响应发布到与导引上下文关联的队列。NCID的实际值为已发布WQE中的任务响应信息的一部分。
在(31)处,数据平面650E按门铃,以通知卸载电路602与导引上下文关联的非空队列。
在(32)处,卸载电路602通过使用来自门铃的SCID提取导引上下文,开始处理到达的门铃。
在(33)处,卸载电路602使用导引上下文的状态信息从SQ中提取WQE。WQE携带正确的NCID值。
在(34)处,卸载电路602使用来自WQE的NCID来提取网络上下文。
在(34’)处,卸载电路602使用来自门铃的NCID来提取网络上下文。应注意,(34’)为流程优化,该流程优化可以在门铃信息还包含NCID的情况下应用。(34’)可以与步骤(32)同时执行,然后再完成(33)。
在(35)处,卸载电路602通过下载数据、分段数据、计算CSC/校验和/摘要、格式化分组、报头等来处理任务;更新拥塞状态信息、RTT计算等;并更新导引上下文和网络上下文状态信息。
在(36)处,卸载电路602跨网络发送分组。
在(37)处,卸载电路602处理指示任务完成的到达的确认分组。卸载电路602使用接收到的分组中的信息(直接或间接地)获取NCID。直接获得NCID示例包括:使用RoCE报头的QPID和TCP报头的CoCo选项。间接示例包括:通过从分组的TCP/IP报头构件的5个元组密钥查找NCID。
在(38)处,卸载电路602使用NCID提取网络上下文。
在(39)处,卸载电路602使用SCID提取导引上下文。
在(40)处,卸载电路602通过更新导引上下文和网络上下文状态信息并清除上下文中的NCID←→SCID基准来处理确认。
在(41)处,卸载电路602将包括任务完成信息的工作元素发布到CQ。
在(42)处,卸载电路602通知数据平面650E任务响应的完成。
在(43)处,卸载电路602使用NSCT原语释放SCID到NCID的映射。
本公开的其他系统、方法、特征和优点对于审阅下文附图及详细说明的本领域技术人员将是或变为显而易见的。旨在将所有这些附加系统、方法、特征和优点包括在本说明书内,包括在本公开的范围内,并由所附权利要求书保护。
出于说明的目的,已经给出了本公开的各个实施例的描述,但其并非意在穷举或局限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员来说是显而易见的。本文选择所使用的术语是为了最好地解释实施例的原理、对市场中见到的技术的实际应用或技术改进,或是使本领域其他普通技术人员能够理解本文所公开的实施例。
预计在由本申请形成的专利的有效期内,将会开发许多相关的NIC,并且术语NIC的范围旨在先验性地包括所有此类新技术。
如本文所用,术语“大约”指的是±10%。
术语“包括”(“comprises”和“comprising”)、“包含”(“includes”和“including”)、“具有”(“having”)、以及它们的同源词是指“包括但不限于”。该术语包括术语“由......组成”和“基本上由......组成”。
短语“基本上由......组成”是指组合物或方法可以包括额外的成分和/或步骤,但这仅在额外的成分和/或步骤实质上不改变要求保护的组合物或方法的基本和新颖特征的情况下。
如本文所使用的,单数形式“一”、“一个”和“所述”包括复数引用,除非上下文另有明确规定。例如,术语“一种化合物”或“至少一种化合物”可以包括多种化合物,包括其混合物。
本文中所使用的“示例性”一词是指“作为示例、例子或实例”。描述为“示例性”的任何实施例不必被解释为优于或胜于其他实施例,和/或排除其他实施例的特征的并入。
本文中所使用的“可选地”一词是指“在部分实施例中提供并且未在其他实施例中提供”。本公开的任何具体实施例可以包括多个“可选的”特征,除非这些特征相冲突。
在整个申请中,本公开的各个实施例可以以范围形式呈现。应该理解,范围形式的描述仅仅是为了方便和简洁,且不应被解释为对本公开范围的僵化限制。因此,应该认为范围的描述已经具体公开了所有可能的子范围以及该范围内的各个数值。例如,对范围从1至6的描述应被视为已经具体公开了诸如从1至3、从1至4、从1至5、从2至4、从2至6、从3至6等的子范围,以及该范围内的单个数值,例如,1、2、3、4、5和6。无论范围的宽度如何,这都适用。
无论本文何时指出数值范围,都意在包括指定范围内引用的任何数字(小数或整数)。短语第一指示数字和第二指示数字“之间的范围”和“从”第一指示数字“到”第二指示数字“的范围”在本文中可互换使用,并且意在包括该第一指示数字和该第二指示数字以及它们之间的所有小数和整数。
应当理解,为了清楚起见,在独立实施例的上下文中所描述的本公开的某些特征也可以以组合的形式在单个实施例中提供。相反,为了简洁起见,在单个实施例的上下文中所描述的本公开的各种特征也可以单独地或以任何合适的子组合的形式提供,或者在适当的时候在本公开的其他所描述的实施例中提供。各种实施例的上下文中所描述的某些特征不被认为是这些实施例的基本特征,除非该实施例在没有那些要素的情况下不起作用。
本说明书中所提及的所有出版物、专利和专利申请在本文中通过引用以其整体结合在本说明书中,其程度如同分别具体地指明每个单独的出版物、专利或专利申请通过引用结合在本文中。此外,本申请中对任何参考的引用或借鉴不应理解为承认此参考可用作本公开的现有技术。就所使用的章节标题而言,其不应理解为必然限定。
Claims (26)
1.一种用于跨网络(112)数据传输的网络接口卡NIC(192A,192B),包括:
存储器(106),用于分配表示第一动态分配的存储资源的导引上下文(106D-2)以及表示第二动态分配的存储资源的网络上下文(106D-1),其中,所述导引上下文(106D-2)通过外部处理器(150B)与所述网络上下文(106D-1)关联,并且所述导引上下文(106D-2)与排列有多项任务的至少一个队列(106C)关联,其中,所述多项任务由所述外部处理器(150B)发布并被指定使用特定网络连接来执行;
NIC处理电路(102),被配置为使用所述导引上下文(106D-2)及所述网络上下文(106D-1)处理所述多项任务,
其中,在执行所述多项任务期间,临时分配所述导引上下文(106D-2),供所述特定网络使用,其中,在所述特定网络连接的生命周期中,分配所述网络上下文(106D-1),供所述特定网络连接使用;以及
响应于完成所述多项任务执行的指示,在保持所述网络上下文(106D-1)的分配直至所述特定网络连接被终止的同时,通过所述外部处理器(150B)释放所述导引上下文(106D-2)与所述网络上下文(106D-1)的关联。
2.根据权利要求1所述的NIC(192A,192B),其中,所述导引上下文(106D-2)还用于存储多个第一状态参数,其中,在执行与所述导引上下文(106D-2)关联的所述至少一个队列(106C)中排列的所述多项任务期间,所述多个第一状态参数由所述特定网络连接使用。
3.根据权利要求1或2所述的NIC(192A,192B),其中,为分配所述导引上下文(106D-2)而预留的所述存储资源的量是由预计将同时执行各自任务的已建立网络连接的第一估计数量确定的。
4.根据前述权利要求中任一项所述的NIC(192A,192B),其中,所述网络上下文(106D-1)用于为所述特定网络连接存储多个第二状态参数,其中,在所述特定网络连接的整个生命周期中,所述多个第二状态参数由所述特定网络连接保持并使用。
5.根据前述权利要求中任一项所述的NIC(192A,192B),其中,为分配所述网络上下文(106D-1)而预留的存储资源的量是由同时建立的网络连接的第二估计数量确定的。
6.根据前述权利要求中任一项所述的NIC(192A,192B),其中,为所述网络上下文(106D-1)分配网络上下文标识符NCID,并且为所述导引上下文(106D-2)分配导引上下文标识符SCID。
7.根据权利要求6所述的NIC(192A,192B),其中,所述至少一个队列用于传递源于所述NIC处理电路(102)和/或去往所述NIC处理电路(102)的任务相关信息,其中,所述至少一个队列的队列元素包括使用所述特定网络连接的所述多项任务的任务相关信息及各自的NCID。
8.根据权利要求6至7中任一项所述的NIC(192A,192B),其中,所述存储器(106)用于存储映射数据集(106B),所述映射数据集(106B)在所述网络上下文(106D-1)的所述NCID与所述导引上下文(106D-2)的所述SCID之间进行映射。
9.根据权利要求6至8中任一项所述的NIC(192A),其中,所述外部处理器(150B)用于:
使用特定网络连接,确定处理所述多项任务中的第一项任务的开始;
分配来自多个存储资源的引导上下文,以供所述特定网络连接使用;以及
响应于确定的所述开始,通过在各自的NCID与SCID之间创建映射,将具有特定SCID的所述导引上下文(106D-2)与具有特定NCID的所述网络上下文(106D-1)关联,其中,所有的所述多项任务使用相同的映射进行处理。
10.根据权利要求6至9中任一项所述的NIC(192A),其中,所述外部处理器(150B)用于:
确定所述多项任务中的最后一项任务的完成;以及
响应于确定的所述完成,通过移除所述NCID与所述SCID之间的映射,释放所述导引上下文(106D-2)与所述网络上下文(106D-1)的关联,并释放所述导引上下文。
11.根据前述权利要求中任一项所述的NIC(192A,192B),其中,所述NIC(104)在发起方网络节点(150Q)上实现,所述发起方网络节点(150Q)使用到目标网络节点(150R)的所述特定网络连接来启动所述多项任务,其中,所述多项任务从所述发起方网络节点(150Q)上运行的应用程序由所述外部处理器(150B)接收。
12.一种用于跨网络(112)数据传输的网络接口卡NIC(192A,192B),包括:
存储器(106),用于分配表示第一动态分配的存储资源的导引上下文(106D-2)以及表示第二动态分配的存储资源的网络上下文(106D-1),其中,所述导引上下文(106D-2)与排列有多项任务的至少一个队列(106C)关联,其中,所述多项任务通过特定网络连接从发起方网络节点跨所述网络来接收;
NIC处理电路(102),用于:
将所述导引上下文(106D-2)与所述网络上下文(106D-1)关联;以及
将所述多项任务排列到与所述导引上下文(106D-2)关联的至少一个队列中;
其中,在执行所述多项任务期间,临时分配所述导引上下文(106D-2),供所述特定网络使用,其中,在所述特定网络连接的生命周期中,分配所述网络上下文(106D-1),供所述特定网络连接使用;以及
响应于完成所述多项任务执行的指示,在保持所述网络上下文(106D-1)的分配直至所述特定网络连接被终止的同时,释放所述导引上下文(106D-2)与所述网络上下文(106D-1)的关联。
13.根据权利要求12所述的NIC(192A,192B),其中,所述导引上下文(106D-2)还用于存储多个第一状态参数,其中,在执行与所述导引上下文(106D-2)关联的所述至少一个队列(106C)中排列的所述多项任务期间,所述多个第一状态参数由所述特定网络连接使用。
14.根据权利要求12或13所述的NIC(192A,192B),其中,为分配所述导引上下文(106D-2)而预留的存储资源的数量是由预计将同时执行各自任务的已建立网络连接的第一估计数量确定的。
15.根据权利要求12至14中任一项所述的NIC(192A,192B),其中,所述网络上下文(106D-1)用于为所述特定网络连接存储多个第二状态参数,其中,在所述特定网络连接的整个生命周期中,所述多个第二状态参数由所述特定网络连接保持并使用。
16.根据权利要求12至15中任一项所述的NIC(192A,192B),其中,为分配所述网络上下文(106D-1)而预留的存储资源的量是由同时建立的网络连接的第二估计数量确定的。
17.根据权利要求12至16中任一项所述的NIC(192A,192B),其中,为所述网络上下文(106D-1)分配网络上下文标识符NCID,并且为所述导引上下文(106D-2)分配导引上下文标识符SCID。
18.根据权利要求17所述的NIC(192A,192B),其中,所述至少一个队列用于传递源于所述NIC处理电路(102)和/或去往所述NIC处理电路(102)的任务相关信息,其中,所述至少一个队列的队列元素包括使用所述特定网络连接的所述多项任务的任务相关信息及各自的NCID。
19.根据权利要求17或18所述的NIC(192A,192B),其中,所述存储器(106)用于存储映射数据集(106B),所述映射数据集(106B)在所述网络上下文(106D-1)的所述NCID与所述导引上下文(106D-2)的所述SCID之间进行映射。
20.根据权利要求17至19中任一项所述的NIC(192A,192B),其中,所述NIC处理电路(102)用于:
使用所述特定网络连接,确定处理所述多项任务中的第一项任务的开始;以及
分配来自多个存储资源的引导上下文(106D-2),以供所述特定网络连接,以及响应于确定的所述开始,通过在所述NCID与所述SCID之间创建映射,将具有特定SCID的所述导引上下文(106D-2)与具有特定NCID的所述网络上下文(106D-1)关联,其中,所有的所述多项任务使用相同的映射进行处理。
21.根据权利要求17至20中任一项所述的NIC(192A,192B),其中,所述NIC处理电路(102)用于:
确定所述多项任务中的最后一项任务的完成;以及
响应于确定的所述完成,通过移除所述NCID与所述SCID之间的映射,释放所述导引上下文(106D-2)与所述网络上下文(106D-1)的关联,并释放所述导引上下文(106D-2)。
22.根据权利要求12至21中任一项所述的NIC(192A,192B),其中,所述NIC(104)在目标网络节点(150R)上实现,所述目标网络节点(150R)执行并响应从发起方网络节点(150Q)通过所述特定网络连接跨所述网络(112)接收的所述多项任务。
23.一种网络装置(150),包括根据权利要求1-9中任一项或根据权利要求12-22中任一项所述的至少一个网络接口卡NIC(192A)。
24.根据权利要求23所述的网络装置(150),还包括:至少一个外部处理器(150B),用于:
使用特定网络连接,确定处理所述多项任务中的第一项任务的开始;
分配来自多个存储资源的引导上下文,以供所述特定网络连接使用;以及
响应于确定的所述开始,通过在各自的NCID与SCID之间创建映射,将具有特定SCID的所述导引上下文(106D-2)与具有特定NCID的所述网络上下文(106D-1)关联,其中,所有的所述多项任务使用相同的映射进行处理。
25.根据权利要求23或24中任一项所述的网络装置(150),其中,所述外部处理器(150B)用于:
确定所述多项任务中的最后一项任务的完成;以及
响应于确定的所述完成,通过移除所述NCID与所述SCID之间的映射,释放所述导引上下文(106D-2)与所述网络上下文(106D-1)的关联,并释放所述导引上下文。
26.一种管理网络连接所消耗的资源以跨网络处理任务的方法,包括:
提供表示第一动态分配的存储资源的导引上下文以及提供表示第二动态分配的存储资源的网络上下文,其中,所述导引上下文与所述网络上下文关联,并且所述导引上下文与排列有多项任务的至少一个队列关联,其中,所述多项任务被指定使用特定网络连接来执行(202);
在执行所述多项任务期间,临时分配所述导引上下文,供所述特定网络使用(204);
在所述特定网络连接的生命周期中,分配所述网络上下文,供所述特定网络使用(206);
使用所述导引上下文及所述网络上下文处理所述多项任务(208);以及
响应于完成所述多项任务执行的指示(210),在保持所述网络上下文的分配直至所述特定网络连接被终止的同时,释放所述导引上下文与所述网络上下文的关联(212)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/085429 WO2021208097A1 (en) | 2020-04-17 | 2020-04-17 | Methods and apparatuses for resource management of a network connection to process tasks across the network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113811857A true CN113811857A (zh) | 2021-12-17 |
Family
ID=78083840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080020615.4A Pending CN113811857A (zh) | 2020-04-17 | 2020-04-17 | 用于网络连接的资源管理以跨网络处理任务的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230059820A1 (zh) |
CN (1) | CN113811857A (zh) |
WO (1) | WO2021208097A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553487B1 (en) * | 2000-01-07 | 2003-04-22 | Motorola, Inc. | Device and method for performing high-speed low overhead context switch |
US7039720B2 (en) * | 2001-01-25 | 2006-05-02 | Marconi Intellectual Property (Ringfence) , Inc. | Dense virtual router packet switching |
US7032073B2 (en) * | 2001-07-02 | 2006-04-18 | Shay Mizrachi | Cache system for network and multi-tasking applications |
EP1912402B1 (en) * | 2006-10-10 | 2019-08-28 | Mitsubishi Electric R&D Centre Europe B.V. | Protection of the data transmission network systems against buffer oversizing attacks |
US8566833B1 (en) * | 2008-03-11 | 2013-10-22 | Netapp, Inc. | Combined network and application processing in a multiprocessing environment |
US20200402006A1 (en) * | 2018-02-22 | 2020-12-24 | Gil MARGALIT | System and method for managing communications over an organizational data communication network |
-
2020
- 2020-04-17 CN CN202080020615.4A patent/CN113811857A/zh active Pending
- 2020-04-17 WO PCT/CN2020/085429 patent/WO2021208097A1/en active Application Filing
-
2022
- 2022-10-14 US US17/966,054 patent/US20230059820A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021208097A1 (en) | 2021-10-21 |
US20230059820A1 (en) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11184439B2 (en) | Communication with accelerator via RDMA-based network adapter | |
US9965441B2 (en) | Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics | |
CN108536543B (zh) | 具有基于跨步的数据分散的接收队列 | |
EP2406723B1 (en) | Scalable interface for connecting multiple computer systems which performs parallel mpi header matching | |
US7613813B2 (en) | Method and apparatus for reducing host overhead in a socket server implementation | |
US7889734B1 (en) | Method and apparatus for arbitrarily mapping functions to preassigned processing entities in a network system | |
US20140310369A1 (en) | Shared send queue | |
US7992144B1 (en) | Method and apparatus for separating and isolating control of processing entities in a network interface | |
US11044183B2 (en) | Network interface device | |
US7779164B2 (en) | Asymmetrical data processing partition | |
US10721302B2 (en) | Network storage protocol and adaptive batching apparatuses, methods, and systems | |
US20140223026A1 (en) | Flow control mechanism for a storage server | |
US20060227799A1 (en) | Systems and methods for dynamically allocating memory for RDMA data transfers | |
US8510491B1 (en) | Method and apparatus for efficient interrupt event notification for a scalable input/output device | |
US11503140B2 (en) | Packet processing by programmable network interface | |
US9306793B1 (en) | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies | |
CN113811857A (zh) | 用于网络连接的资源管理以跨网络处理任务的方法和装置 | |
EP2016496B1 (en) | Hiding system latencies in a throughput networking system | |
EP2018614A1 (en) | Virtualized partitionable shared network interface | |
Miao et al. | Softrdma: Rekindling high performance software rdma over commodity ethernet | |
EP2016718B1 (en) | Method and system for scaling by parallelizing network workload | |
US20230239351A1 (en) | System and method for one-sided read rma using linked queues | |
US20240111691A1 (en) | Time-aware network data transfer | |
EP2014028B1 (en) | Asymmetrical processing for networking functions and data path offload | |
WO2007123517A1 (en) | Asymmetrical processing for networking functions and data path offload |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211222 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Applicant after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right |