CN114817121A - 用于处理数据的方法、电子设备和计算机程序产品 - Google Patents

用于处理数据的方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN114817121A
CN114817121A CN202110093823.3A CN202110093823A CN114817121A CN 114817121 A CN114817121 A CN 114817121A CN 202110093823 A CN202110093823 A CN 202110093823A CN 114817121 A CN114817121 A CN 114817121A
Authority
CN
China
Prior art keywords
data blocks
write request
data
network interface
interface card
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
CN202110093823.3A
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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202110093823.3A priority Critical patent/CN114817121A/zh
Priority to US17/475,917 priority patent/US11822811B2/en
Publication of CN114817121A publication Critical patent/CN114817121A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及用于处理数据的方法、电子设备和计算机程序产品。该方法包括在与第一设备耦合的第一网络接口卡处获取与待向第二设备写入的多个数据块有关的信息,信息包括多个数据块的大小以及多个数据块将要被写入到的第二设备的存储器的多个目的地地址。该方法还包括基于信息生成针对多个数据块的写请求,写请求至少指示多个目的地地址和多个数据块的大小。该方法还包括向与第二设备耦合的第二网络接口卡发送写请求,以使多个数据块被写入到多个目的地地址。通过该方法,可以通过减少通信的次数来提高系统性能,同时减少硬件资源的消耗。

Description

用于处理数据的方法、电子设备和计算机程序产品
技术领域
本公开的实施例涉及数据处理领域,并且更具体地,涉及用于处理数据的方法、电子设备和计算机程序产品。
背景技术
随着远程计算设备之间数据存取技术的发展,提出了新的远程直接数据存取(Remote Direct Memory Access,RDMA)技术。RDMA使得计算设备通过网络将数据直接写入目标计算机的存储器中,而不对两个计算设备的操作系统造成任何影响。
RDMA技术实现的原理是将由计算设备执行的数据访问操作卸载到与计算设备耦合的本地网络接口卡来执行。在RDMA操作过程中,与本地计算设备耦合的网络接口卡控制向目标计算机的网络接口卡来发送数据以实现对目标计算设备的存储器的访问。然而,在RDMA操作过程中还存在许多需要解决的问题。
发明内容
本公开的实施例提供一种用于处理数据的方法、电子设备和计算机程序产品。
根据本公开的第一方面,提供了一种用于处理数据的方法。该方法包括在与第一设备耦合的第一网络接口卡处获取与待向第二设备写入的多个数据块有关的信息,信息包括多个数据块的大小以及多个数据块将要被写入到的第二设备的存储器的多个目的地地址。该方法还包括基于信息生成针对多个数据块的写请求,写请求至少指示多个目的地地址和多个数据块的大小。该方法还包括向与第二设备耦合的第二网络接口卡发送写请求,以使多个数据块被写入到多个目的地地址。
根据本公开的第二方面,提供了一种用于处理数据的方法。该方法包括在与第二设备耦合的第二网络接口卡处,从与第一设备耦合的第一网络接口卡接收针对多个数据块的写请求,写请求至少指示多个数据块的大小和多个数据块将要被写入到的第二设备的存储器的多个目的地地址。该方法还包括基于多个大小,使多个数据块被写入多个目的地地址。
根据本公开的第三方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储器,耦合至所述至少一个处理器并且具有存储于其上的指令,所述指令在由所述至少一个处理器执行时使所述设备执行动作,所述动作包括:在与第一设备耦合的第一网络接口卡处获取与待向第二设备写入的多个数据块有关的信息,信息包括多个数据块的大小以及多个数据块将要被写入到的第二设备的存储器的多个目的地地址;基于信息生成针对多个数据块的写请求,写请求至少指示多个目的地地址和多个数据块的大小;以及向与第二设备耦合的第二网络接口卡发送写请求,以使多个数据块被写入到多个目的地地址。
根据本公开的第四方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储器,耦合至所述至少一个处理器并且具有存储于其上的指令,所述指令在由所述至少一个处理器执行时使所述设备执行动作,所述动作包括:在与第二设备耦合的第二网络接口卡处,从与第一设备耦合的第一网络接口卡接收针对多个数据块的写请求,写请求至少指示多个数据块的大小和多个数据块将要被写入到的第二设备的存储器的多个目的地地址;以及基于多个大小,使多个数据块被写入多个目的地地址。
根据本公开的第五方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
根据本公开的第六方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第二方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了传统方案中用于对数据进行远程直接存储器访问的过程100的流程图;
图2图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境200的示意图;
图3图示了根据本公开的实施例的用于处理数据的方法300的流程图;
图4图示了根据本公开的实施例的报头的示例400的示意图;
图5图示了根据本公开的实施例的子报头的示例500的示意图;
图6图示了根据本公开的实施例的操作码的示例600的示意图;
图7图示了根据本公开的实施例的用于处理数据的方法700的流程图;
图8图示了根据本公开的实施例的用于对数据进行远程直接存储器访问的示例过程800的流程图;
图9图示了适于用来实施本公开内容的实施例的示例设备900的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在一些板卡设计中,非透明桥(Non-Transparent Bridge,NTB)被用作底层传输。它提供了存储处理器(Storage Processor,SP)之间的远程直接存储器访问(DirectMemory Access,DMA)。通过非透明桥,来自SP的数据被捆绑在一起,然后被传输到远程SP上的单独目标地址,而且许多数据大小通常很小。
在NTB中,一次仅向一个目标地址传输数据的方式没有表现出比较差的性能。因为通过非透明桥连接的存储处理器通常通过相同的物理板连接。因此这些数据传输就像是存储器访问,SP之间没有额外的开销。但是,当使用RDMA代替NTB作为低层传输时,性能会变差。传输这些捆绑数据期间涉及许多网络通信开销。
当前,在RDMA写操作情况下,RDMA技术仅在本地支持分散集合列表(ScatterGather List,SGL)。这意味着用户可以将分散/聚集列表指定的源数据写入单个远程地址。利用这种设计,在将数据包以RDMA方式写入多个远程目的地地址时,只能依据要存储到的不同目的地地址将数据包分成多个数据块,然后将多个数据块利用不同的RDMA写操作写入多个不同的远程地址。
如图1所示,在利用RDMA操作将位于四个不同地址的数据块1114、数据块2 116、数据块3 118和数据块4 120写入对应于四个不同的目的地地址的存储块1 122、存储块2124、存储块3 126和存储块4 128中时,需要在工作队列104中生成4个工作队列元素。每个工作队列元素中至少包括数据块源地址、要存储到的存储块的目的地地址和数据块的大小或数据的长度。针对每个工作队列元素执行一次RDMA操作,将一个数据块写入到对应的存储块。针对每个工作队列元素,基于数据块的源地址获取对应的数据块,然后结合RDMA扩展传输报头(RDMA Extended Transport Header,RETH)和基本传输报头(Base TransportHeader,BTH)以及其他的报头生成RDMA写请求。例如如果是利用无限带宽(InfiniBand(IB))网络进行传输,则其他的报头可以为本地路由报头(Local Route Headers,LRH)和全局路由报头(Global Route Headers,GRH)。如果是使用传统的网络,其他报头可以为以太网或者TCP/IP报头。
然后本地网络接口卡106将每个RDMA写请求传送到远程网络接口卡108,以将源存储器110中的数据块1 114、数据块2 116、数据块3 118和数据块4 120写入目的地存储器112的存储块1 122、存储块2 124、存储块3 126和存储块4 128中。针对每个RDMA写请求,远程网络接口卡108均会向本地网络接口卡发送确认消息。在确认消息指示数据块被功能接收处理后,本地网络接口卡106生成完成队列元素放入完成队列102中以通知上层应用数据块写入完成。
因此,在该过程中至少需要4次往返的通信才能完成所有这4个数据块的数据传输,并且需要额外的资源来处理4个工作队列元素和4个完成队列元素。
在较多的小数据块要写入目的地存储器的情况下,这种方式将导致严重的性能问题。与纯载荷传输相比,大量的通信开销会降低系统性能。
至少为了解决上述和其他潜在问题,本公开的实施例提出了一种用于处理数据的方法。在该方法中,网络接口卡获取与待向第二设备写入的多个数据块有关的信息,信息包括多个数据块的大小以及多个数据块将要被写入到的第二设备的存储器的多个目的地地址。然后,网络接口卡处用获得的信息生成针对多个数据块的写请求,写请求至少指示多个目的地地址和多个数据块的大小。然后网络接口卡向与第二设备耦合的第二网络接口卡发送写请求,以使多个数据块被写入到多个目的地地址。通过该方法,可以通过减少通信的次数来提高系统性能,同时减少硬件资源的消耗。
以下将进一步结合附图来详细描述本公开的实施例。图2示出了本公开的实施例能够在其中被实现的示例系统200的框图。应当理解,仅出于示例性的目的描述系统200的结构,而不暗示对于本公开的范围的任何限制。
系统200包括设备202和设备204。为了便于描述,设备202也可以称为第一设备,设备204也可以称为第二设备。设备202和设备204包括但不限于个人计算机、服务器计算机、手持或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子产品、小型计算机、大型计算机、包括上述系统或设备中的任意一个的分布式计算环境等。
设备202具有存储器206。存储器206内存储有要被存储到设备204的存储器208中的数据块214-1、214-2、……、214-N,其中N为正整数。为了描述方便,将数据块214-1、214-2、……、214-N中的每个数据块称为数据块214。该N个数据块214将被存储在存储器206的N个存储块中。
设备202基于要存储在设备204中的存储块216-1、216-2、……、216-N的数据块214的源地址、目的地地址和数据块长度来生成工作队列中的一个元素。除了上述因素以外,设备202还可以附加地基于例如数据携带标识之类的其他信息来生成该元素。数据携带标识是这样一个标识符,其指示生成的写请求是否包括多个数据块。
网络接口卡210、212分别耦合对对应的设备202和设备204。为了描述方便,网络接口卡210可以称为第一网络接口卡,网络接口卡212可以称为第二网络接口卡。在一个示例中,该耦合为有线连接。在一个示例中,该耦合是通过插槽连接来实现。上述示例仅是用于描述本公开在,而非对本公开的具体限定。
网络接口卡210、212分别耦合对对应的设备202和设备204仅是示例,而非对本公开的具体限定。在一些实施例中,网络接口卡210和212分别包括在设备202和设备204中。
在一些实施例中,网络接口卡210和212是由物理硬件实现的。在一些实施例中,网络接口卡210和212是通过软件实现的。上述示例仅是用于描述本公开,而非对本公开的具体限定。
然后网络接口卡210基于该工作队列元素来生成写请求以将多个数据块214写入到设备204中的存储器208的存储块216中,例如RDMA写请求。
由网络接口卡210生成的写请求包括一个报头,该报头包括与所述多个数据块相对应的多个报头和所述多个数据块的总大小。该子报头包括与多个数据块中的一个数据块相对应的目的地地址以及大小。第一网络接口卡210将生成的写请求发送到第二网络接口卡212以用于将多个数据块存储到设备204的存储器208中。
在需要传送数据块时,网络接口卡210通过使用源地址直接访问存储器206来获得数据块214。然后将获取的数据块214与写请求一起或者通过写操作中的有效载荷数据包发送到第二网络接口卡212。第二网络接口卡212将接收到的数据块缓存在第二网络接口卡212内的存储块内。然后第二网络接口卡212通过直接存储器访问将接收到的数据块存储到目的地地址所指示的存储器208中的存储块。
通过上述方法,可以提高应用迁移的效率,减少网络资源和计算资源的使用,提高了数据处理效率和用户体验。
上面结合图2描述了本公开的实施例能够在其中被实现的示例系统200的框图。下面结合图3描述根据本公开的实施例的用于处理数据的方法300的流程图。方法300可以在图2中的网络接口卡210及任意合适的计算设备处执行。
在框302处,第一网络接口卡210获取与待向第二设备204写入的多个数据块214有关的信息。其中,信息包括多个数据块214的大小以及多个数据块214将要被写入到的第二设备204的存储器208的多个目的地地址。
在一些实施例中,在执行写操作时,第一设备202中的应用在需要将多个数据块存储到第二设备204的存储器208中的多个不同的目的地地址时,会生成工作队列元素。然后将工作队列元素放入工作队列中。然后网络接口卡210从该工作队列中获得该工作队列元素。
在一些实施例中,该工作队列元素包括与多个数据块有关的信息。该信息包括多个数据块中的每个数据块的源存储地址、目的地存储地、和数据块大小或者数据长度。备选地或附加地该工作队列元素还包括数据携带标识,该数据携带标识指示由网络接口卡发送的写请求是否包括多个数据块。上述示例仅仅是用于描述本公开,而非对本公开的具体限定,工作队列元素可以包括任意合适的信息。
在一些实施例中,该工作队列元素包括上述信息所在的存储区域的存储位置的指示。网络接口卡210从工作队列元素中获取信息在第一设备中的存储位置的指示。例如工作队列元素中存储中指向该信息的存储位置的指针。然后网络接口卡210基于指示来从存储位置获取信息。通过该方法,网络接口卡可以快速的获取信息,并且信息的量可以依据需要调整。
在框304处,第一网络接口卡210基于信息生成针对多个数据块的写请求,写请求至少指示多个目的地地址和多个数据块的大小。
在一些实施列中,第一网络接口卡210从第一设备202获取数据携带标识,数据携带标识指示写请求是否包括多个数据块。例如,网络接口卡从工作队列元素中获取该数据携带标识。然后,第一网络接口卡210基于数据携带标识来确定是否在发送的写请中携带该多个数据块。
如果数据携带标识指示写请求不包括多个数据块,则第一网络接口卡210利用多个目的地地址、多个大小和多个数据块的数目生成写请求。该写请求包括一个报头,报头包括与多个数据块相对应的多个子报头和多个数据块的总大小。子报头包括与多个数据块中的一个数据块相对应的目的地地址以及大小。通过该方法,可以使得写请求携带多个目的地地址,加快了数据的存储,减少了通信的次数,提高了系统性能。
下面参考图4和图5来描述该报头和子报头。图4示出了根据本公开的实施例的报头的示例400。例如,该报头可以称为RDMA多个新扩展传输报头(RDMA Multiple NewExtended Transport Header,RMNETH)。
该报头包括标志位字段、预留字段、子报头数目字段、多个数据块的总大小字段以及N个子报头。其中标志字段可以用来支持某些高级功能。例如可以标识是否支持冲刷操作,诸如在发送接收到数据的确认消息之前指示是否对数据块进行冲刷操作以保证数据的持久存储。上述示例仅是用于描述本公开,而非对本公开的具体限定,本领域技术人员可以依据需要设置标志位指示的功能。
该报头中的预留字段是用于为以后的功能预留的一些数据位。图4示出的报头结构仅是示例,而非对本公开的具体限定。本领域技术人员可以依据需要来调整或设置报头的格式以及调整每个字段大小,例如,增加或减少字段,诸如加入版本字段等。
图5示出了根据本公开的实施例的子报头的示例500的示意图。该子报头可以称为RDMA新扩展传输报头(RDMA New Extended Transport Header,RNETH)。
如图5所示,该子报头包括16个字节,其中虚拟地址用于存储目的地地址。该子报头还包括密钥字段,该密钥子段用于在目的地存储器进行验证,以确定是否可以对目的地地址所在的存储器进行操作。该子报头还包括标志字段、预留字段、用于使传输的数据块符合规定长度的填充字段和要传输的数据块的长度。该要传输的数据块的长度也称为DMA长度。
该标志字段可以用于支持某些高级功能,例如融合操作。通过融合操作,可以通过将几个更简单的IO命令“融合”在一起来创建复杂的命令,这些命令由子报头指定。可以使用此标志字段来定义融合操作中的第一个/中间/最后一个命令。图6示出的子报头结构仅是示例,而非对本公开的具体限定。本领域技术人员可以依据需要来调整或设置子报头的格式以及调整每个字段大小,例如,增加或减少字段等。
现在返回图3继续描述。在一些实施例中,第一网络接口卡210在确定数据携带标识指示写请求包括多个数据块时,生成写请求。写请求包括报头和多个数据块。通过该方式,可以将多个数据块在写请求中携带过去,减少了数据传输的次数。
在框306处,第一网络接口卡210向与第二设备耦合的第二网络接口卡发送写请求,以使多个数据块被写入到多个目的地地址。
在一些实施例中,如果写请求中包括了多个数据块,则第二网络接口卡212接收到写请求,并成功为写请求分配了与报头中的总大小相对应的存储块来存储多个数据块时,可以向第一网络接口卡传输写请求被成功接收的确认消息。
在一些实施例中,如果写请求中不包括多个数据块,第二网络接口卡212接收到写请求,并成功为写请求分配了与报头中的总大小相对应的存储块时,会向第一网络接口卡210传输写请求被成功接收的确认消息。第一网络接口卡210接收到确认消息后,向第二网络接口卡212发送多个数据块。如果多个数据块的大小未超过最大传输单元,则通过一个写操作将多个数据块传输到第二网络接口卡212。如果超过了最大传输单元,则通过两个或多个写操作来完成多个数据块的发送。
图6示出了确定写请求或写操作中的内容的操作码的示例600。该操作码包括在基本传输报头BTH中,基本传输报头设置在图4所示的报头的前面。该操作码用于指示在基本传输报头后面的内容。如操作码的5-7位为110指示为网络中的连接为可靠连接。当操作码中的0-4比特为00000时,表示传输的为写请求,在该基本传输报头后的内容为图4所示的报头。如果0-4比特为00001时,其表明传输的为写操作的第一部分,在该基本传输报头后的内容为报头和作为有效载荷的多个数据块。如果图4的报头和多个数据块分开传输,则可以通过操作码中的0-4比特为00010和00011标识传输数据块的不同部分。也可以用操作码中的0-4比特为00100标识有效载荷及相应的即时操作。应当注意,图6中示出的仅是操作码的示例,而非对本公开的具体限定。本领域技术人员可以依据需要设置操作码的格式及操作码对应的具体内容。
现在返回图3继续进行描述,第一网络接口卡210如果接收到来自第二设备204的针对多个数据块214的确认消息,向第一设备202提供指示多个数据块被写入到第二设备204的完成信息。备选地或附加地,如果数据块是通过多个写操作发送到第二网络接口卡212,则在每发送一个写操作后均发送对应的确认消息。通过该方法,可以准确的把数据传送给第二网络接口卡。
在一些实施例中,网络接口卡210获取多个数据块在第一设备的存储器中的多个源地址,例如从工作队列元素中获取。网络接口卡210基于多个源地址,通过执行直接存储器访问操作来获取多个数据块。
通过上述方法,可以提高应用迁移的效率,减少网络资源和计算资源的使用,提高了数据处理效率和用户体验。
上面结合图3-图6描述了本公开的实施例用于处理数据的方法300的流程图。下面结合图7描述根据本公开的实施例的用于处理数据的方法700的流程图。方法700可以在图2中的第二网络接口卡212或者任意合适的计算设备处执行。
在框702处,第二网络接口卡212在与第二设备耦合的第二网络接口卡处,从与第一设备耦合的第一网络接口卡接收针对多个数据块的写请求,写请求至少指示多个数据块的大小和多个数据块将要被写入到的第二设备204的存储器208的多个目的地地址;
在一些实施例中,第二网络接口卡212从写请求的一个报头获取与多个数据块相对应的多个子报头和多个数据块的总大小。然后第二网络接口卡212从多个子报头中的每个子报头获取与多个数据块中的一个数据块相对应的目的地地址以及大小。网络接口卡211分配与总大小相对应的存储块。通过该方式,可以快速准确的确定数据的存储位置,并且可以将多个数据块存储到多个不同的目的地地址。
在一些实施例中,第二网络接口卡212确定写请求中是否包括多个数据块。网络接口卡212如果确定写请求中包括多个数据块,则从写请求读取多个数据块。第二网络接口卡212将多个数据块写入存储块。通地该方式,可以快速的获取到多个数据块,提高了数据块获取效率。
在一些实施例中,网络接口卡212如果确定写请求中未包括多个数据块,向第一网络接口卡210发送针对写请求的确认消息。然后网络接口卡212从第一网络接口卡210接收多个数据块以存储在网络接口卡212内的存储块中。如果多个数据块被存储在存储块中,网络接口卡212向第一网络接口210卡发送针对多个数据块的确认消息以指示数据块被成功接收。通过该方式,可以实现大量的数据块被快速传输到网络接口卡212,以实现数据的快速存储。
在框704处,基于多个大小,第二网络接口卡212使多个数据块被写入多个目的地地址。利用每个数据块的大小从接收的数据中确定出每个数据块,然后写入到存储器208中。
在一些实施例中,第二网络接口卡212通过直接存储器访问操作来使多个数据块被写入第二设备204的存储器208中的多个目的地地址,例如与多个目的地地址相对应的多个存储块。通过上述方式,可以加快数据的存储,而不消耗计算设备的计算资源。
通过上述方法,可以提高应用迁移的效率,减少网络资源和计算资源的使用,提高了数据处理效率和用户体验。
上面结合图7描述了本公开的实施例的用于处理数据的方法700的流程图。下面结合图8描述根据本公开的实施例的用于对数据进行远程直接存储器访问的示例过程800的流程图。过程800可以在图2中的第一网络接口卡210和第二网络接口卡212及任意合适的计算设备处执行。
如图8所示,第一设备将工作队列元素放置入工作队列804中。从该工作队列元素可以获得与数据块1 214-1、数据块2 214-2、数据块3 214-3和数据块4 214-4有关的信息。该信息包括数据块1 214-1、数据块2 214-2、数据块3 214-3和数据块4 214-4在存储器206中的源地址、要发送到的存储器208中的存储块1 216-1、存储块2 216-2、存储块3 216-3和存储块4 216-4的目的地地址及数据块的长度。工作队列元素还指示将数据块与报头分开发送。
网络接口卡210基于获得的信息来生成一个报头,该报头如图4所示。将该报头结合基本传输报头BTH以及其他的网络协议报头形成写请求。然后将写请求将发送806到网络接口卡212。
然后网络接口卡212基于接收到的写请求后,在网络接口卡212内的存储器内分配相当于数据块总大小的存储块。如果存储块分配成功,则可以向第一网络接口卡210发送808针对该写请求的确认消息,例如该确认消息指示写请求被成功处理。然后网络接口卡将数据块1214-1、数据块2 214-2、数据块3 214-3和数据块4 214-4发送810到第二网络接口卡212。第二网络接口卡212将接收的数据块存储到分配的存储块中。第二网络接口卡212向第一网络接口卡210发送812数据块被接收的确认消息。然后,第二网络接口212卡利用直接存储器访问操作将数据块写入存储块1 216-1、存储块2 216-2、存储块3216-3和存储块4216-4。此外,在第一网络接口卡210从第二网络接口卡212接收到多个数据块被成功接收的确认消息后,会生成完成队列元素放入完成队列802,以指示数据块的存储完成。
通过上述方法,可以通过减少通信的次数来提高系统性能,同时减少硬件资源的消耗。
图9示出了可以用来实施本公开的实施例的示例设备900的示意性框图。图2中的第一网络接口卡210和/或第二网络接口卡212中可以利用设备900来实现。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储页面908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储页面908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、700和800,可由处理单元901执行。例如,在一些实施例中,方法200、700和800可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储页面908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM903并由CPU 901执行时,可以执行上文描述的方法200、700和800的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (24)

1.一种用于处理数据的方法,包括:
在与第一设备耦合的第一网络接口卡处获取与待向第二设备写入的多个数据块有关的信息,所述信息包括所述多个数据块的大小以及所述多个数据块将要被写入到的所述第二设备的存储器的多个目的地地址;
基于所述信息生成针对所述多个数据块的写请求,所述写请求至少指示多个目的地地址和所述多个数据块的大小;以及
向与所述第二设备耦合的第二网络接口卡发送所述写请求,以使所述多个数据块被写入到所述多个目的地地址。
2.根据权利要求1所述的方法,其中获取所述信息包括:
获取关于所述信息在所述第一设备中的存储位置的指示;以及
基于所述指示来从所述存储位置获取所述信息。
3.根据权利要求1所述的方法,其中生成所述写请求包括:
获取数据携带标识,所述数据携带标识指示所述写请求是否包括所述多个数据块;以及
响应于所述数据携带标识指示所述写请求不包括所述多个数据块,基于所述多个目的地地址、所述多个大小和所述多个数据块的数目生成所述写请求,所述写请求包括一个报头,所述报头包括所述数目的子报头和所述多个数据块的总大小,所述子报头包括与所述多个数据块中的一个数据块相对应的目的地地址以及大小。
4.根据权利要求3所述的方法,其中生成所述写请求还包括:
响应于所述数据携带标识指示所述写请求包括所述多个数据块,生成所述写请求,所述写请求包括所述报头和所述多个数据块。
5.根据权利要求3所述的方法,所述方法还包括:
如果接收到来自所述第二设备的针对所述写请求的确认消息,向所述第二设备发送所述多个数据块;以及
如果接收到来自所述第二设备的针对所述多个数据块的确认消息,向所述第一设备提供指示所述多个数据块被写入到所述第二设备的完成信息。
6.根据权利要求1所述的方法,还包括:
获取所述多个数据块在所述第一设备的存储器中的多个源地址;以及
基于所述多个源地址,通过执行直接存储器访问操作来获取所述多个数据块。
7.一种用于处理数据的方法,包括:
在与第二设备耦合的第二网络接口卡处,从与第一设备耦合的第一网络接口卡接收针对多个数据块的写请求,所述写请求至少指示所述多个数据块的大小和所述多个数据块将要被写入到的所述第二设备的存储器的多个目的地地址;以及
基于所述多个大小,使所述多个数据块被写入所述多个目的地地址。
8.根据权利要求7所述的方法,其中接收所述写请求包括:
从所述写请求的一个报头获取与所述多个数据块相对应的多个子报头和所述多个数据块的总大小;
从所述多个子报头中的每个子报头获取与所述多个数据块中的一个数据块相对应的目的地地址以及大小;
分配与所述总大小相对应的存储块。
9.根据权利要求8所述的方法,所述方法还包括:
确定所述写请求中是否包括所述多个数据块;以及
如果确定所述写请求中包括所述多个数据块,从所述写请求获取所述多个数据块;
将所述多个数据块写入所述存储块。
10.根据权利要求8所述的方法,所述方法还包括:
如果确定所述写请求中未包括所述多个数据块,向所述第一网络接口卡发送针对所述写请求的确认消息;以及
从所述第一网络接口卡接收所述多个数据块以存储在所述存储块;
如果所述多个数据块被存储在所述存储块中,向所述第一网络接口卡发送针对所述多个数据块的确认消息。
11.根据权利要求7所述的方法,其中使所述多个数据块被写入所述多个目的地地址包括:
通过直接存储器访问操作来使所述多个数据块被写入所述第二设备的所述存储器中的所述多个目的地地址。
12.一种电子设备,所述电子设备包括:
至少一个处理器;以及
存储器,耦合至所述至少一个处理器并且具有存储于其上的指令,所述指令在由所述至少一个处理器执行时使所述设备执行动作,所述动作包括:
在与第一设备耦合的第一网络接口卡处获取与待向第二设备写入的多个数据块有关的信息,所述信息包括所述多个数据块的大小以及所述多个数据块将要被写入到的所述第二设备的存储器的多个目的地地址;
基于所述信息生成针对所述多个数据块的写请求,所述写请求至少指示多个目的地地址和所述多个数据块的大小;以及
向与所述第二设备耦合的第二网络接口卡发送所述写请求,以使所述多个数据块被写入到所述多个目的地地址。
13.根据权利要求12所述的设备,其中获取所述信息包括:
获取关于所述信息在所述第一设备中的存储位置的指示;以及
基于所述指示来从所述存储位置获取所述信息。
14.根据权利要求12所述的设备,其中生成所述写请求包括:
获取数据携带标识,所述数据携带标识指示所述写请求是否包括所述多个数据块;以及
响应于所述数据携带标识指示所述写请求不包括所述多个数据块,基于所述多个目的地地址、所述多个大小和所述多个数据块的数目生成所述写请求,所述写请求包括一个报头,所述报头包括所述数目的子报头和所述多个数据块的总大小,所述子报头包括与所述多个数据块中的一个数据块相对应的目的地地址以及大小。
15.根据权利要求14所述的设备,其中生成所述写请求还包括:
响应于所述数据携带标识指示所述写请求包括所述多个数据块,生成所述写请求,所述写请求包括所述报头和所述多个数据块。
16.根据权利要求14所述的设备,所述动作还包括:
如果接收到来自所述第二设备的针对所述写请求的确认消息,向所述第二设备发送所述多个数据块;以及
如果接收到来自所述第二设备的针对所述多个数据块的确认消息,向所述第一设备提供指示所述多个数据块被写入到所述第二设备的完成信息。
17.根据权利要求12所述的设备,所述动作还包括:
获取所述多个数据块在所述第一设备的存储器中的多个源地址;以及
基于所述多个源地址,通过执行直接存储器访问操作来获取所述多个数据块。
18.一种电子设备,所述电子设备包括:
至少一个处理器;以及
存储器,耦合至所述至少一个处理器并且具有存储于其上的指令,所述指令在由所述至少一个处理器执行时使所述设备执行动作,所述动作包括:
在与第二设备耦合的第二网络接口卡处,从与第一设备耦合的第一网络接口卡接收针对多个数据块的写请求,所述写请求至少指示所述多个数据块的大小和所述多个数据块将要被写入到的所述第二设备的存储器的多个目的地地址;以及
基于所述多个大小,使所述多个数据块被写入所述多个目的地地址。
19.根据权利要求18所述的设备,其中接收所述写请求包括:
从所述写请求的一个报头获取与所述多个数据块相对应的多个子报头和所述多个数据块的总大小;
从所述多个子报头中的每个子报头获取与所述多个数据块中的一个数据块相对应的目的地地址以及大小;
分配与所述总大小相对应的存储块。
20.根据权利要求19所述的设备,所述动作还包括:
确定所述写请求中是否包括所述多个数据块;以及
如果确定所述写请求中包括所述多个数据块,从所述写请求获取所述多个数据块;
将所述多个数据块写入所述存储块。
21.根据权利要求19所述的设备,所述动作还包括:
如果确定所述写请求中未包括所述多个数据块,向所述第一网络接口卡发送针对所述写请求的确认消息;以及
从所述第一网络接口卡接收所述多个数据块以存储在所述存储块;
如果所述多个数据块被存储在所述存储块中,向所述第一网络接口卡发送针对所述多个数据块的确认消息。
22.根据权利要求18所述的设备,其中使所述多个数据块被写入所述多个目的地地址包括:
通过直接存储器访问操作来使所述多个数据块被写入所述第二设备的所述存储器中的所述多个目的地地址。
23.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至6中任一项所述的方法的步骤。
24.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求7至11中任一项所述的方法的步骤。
CN202110093823.3A 2021-01-22 2021-01-22 用于处理数据的方法、电子设备和计算机程序产品 Pending CN114817121A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110093823.3A CN114817121A (zh) 2021-01-22 2021-01-22 用于处理数据的方法、电子设备和计算机程序产品
US17/475,917 US11822811B2 (en) 2021-01-22 2021-09-15 Method, electronic device and computer program product for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110093823.3A CN114817121A (zh) 2021-01-22 2021-01-22 用于处理数据的方法、电子设备和计算机程序产品

Publications (1)

Publication Number Publication Date
CN114817121A true CN114817121A (zh) 2022-07-29

Family

ID=82494698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110093823.3A Pending CN114817121A (zh) 2021-01-22 2021-01-22 用于处理数据的方法、电子设备和计算机程序产品

Country Status (2)

Country Link
US (1) US11822811B2 (zh)
CN (1) CN114817121A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023030013A1 (zh) * 2021-09-01 2023-03-09 华为技术有限公司 一种数据处理方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12063157B2 (en) * 2021-06-07 2024-08-13 Microsoft Technology Licensing, Llc Transmitting multi-dimensional data between devices
US11729147B2 (en) * 2021-11-28 2023-08-15 Uab 360 It Authentication procedure in a virtual private network
US20240143539A1 (en) * 2022-10-31 2024-05-02 Mellanox Technologies, Ltd. Remote direct memory access operations with integrated data arrival indication

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7522597B2 (en) * 2004-08-30 2009-04-21 International Business Machines Corporation Interface internet protocol fragmentation of large broadcast packets in an environment with an unaccommodating maximum transfer unit
US7813369B2 (en) * 2004-08-30 2010-10-12 International Business Machines Corporation Half RDMA and half FIFO operations
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8762476B1 (en) 2007-12-20 2014-06-24 Qurio Holdings, Inc. RDMA to streaming protocol driver
US9396101B2 (en) 2012-06-12 2016-07-19 International Business Machines Corporation Shared physical memory protocol
US9922039B1 (en) * 2016-03-31 2018-03-20 EMC IP Holding Company LLC Techniques for mitigating effects of small unaligned writes
US10891253B2 (en) * 2016-09-08 2021-01-12 Microsoft Technology Licensing, Llc Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
US10614356B2 (en) * 2017-04-24 2020-04-07 International Business Machines Corporation Local multicast in single-host multi-GPU machine for distributed deep learning systems
US10531592B1 (en) * 2018-07-19 2020-01-07 Quanta Computer Inc. Smart rack architecture for diskless computer system
US11372580B2 (en) * 2018-08-07 2022-06-28 Marvell Asia Pte, Ltd. Enabling virtual functions on storage media
US12117956B2 (en) * 2019-03-04 2024-10-15 Intel Corporation Writes to multiple memory destinations
US10999084B2 (en) 2019-05-31 2021-05-04 Microsoft Technology Licensing, Llc Leveraging remote direct memory access (RDMA) for packet capture
US11095961B2 (en) * 2019-07-15 2021-08-17 Viscore Technology Inc. Remote data multicasting and remote direct memory access over optical fabrics
US11188375B2 (en) 2019-08-09 2021-11-30 International Business Machines Corporation Virtual machine mobility for virtual machines using remote direct memory access connections
US11736566B2 (en) * 2020-09-28 2023-08-22 Vmware, Inc. Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023030013A1 (zh) * 2021-09-01 2023-03-09 华为技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
US11822811B2 (en) 2023-11-21
US20220236908A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
CN114817121A (zh) 用于处理数据的方法、电子设备和计算机程序产品
CN108228647B (zh) 用于数据拷贝的方法和设备
JP5280135B2 (ja) データ転送装置
EP3482298B1 (en) Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
WO2016101288A1 (zh) 一种远程直接数据存取方法、设备和系统
US10116746B2 (en) Data storage method and network interface card
US20070041383A1 (en) Third party node initiated remote direct memory access
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN109478171B (zh) 提高openfabrics环境中的吞吐量
CN113422793B (zh) 数据传输方法、装置、电子设备及计算机存储介质
US9311044B2 (en) System and method for supporting efficient buffer usage with a single external memory interface
CN109669787B (zh) 数据传输方法及装置、存储介质、电子设备
US10523741B2 (en) System and method for avoiding proxy connection latency
CN111857546B (zh) 用于处理数据的方法、网络适配器和计算机程序产品
US8898353B1 (en) System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface
CN113434089B (zh) 数据搬移方法、装置及pcie系统
US8805880B2 (en) Establishment, optimization, and routing of remote transitive name space access
US20220217098A1 (en) Streaming communication between devices
CN114443525A (zh) 一种数据处理系统、方法、电子设备及存储介质
CN117242763A (zh) 用于缓存文件系统内部结构的网络接口卡
CN110768984A (zh) 一种数据传输的方法、装置及电子设备
CN115297169B (zh) 数据处理方法、装置、电子设备及介质
CN111447650B (zh) 一种数据前转的方法、设备及存储介质
US9104637B2 (en) System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface
US20240069802A1 (en) Method of submitting work to fabric attached memory

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