CN111858418B - 一种基于远程直接内存访问rdma的内存通信方法及装置 - Google Patents
一种基于远程直接内存访问rdma的内存通信方法及装置 Download PDFInfo
- Publication number
- CN111858418B CN111858418B CN201910364014.4A CN201910364014A CN111858418B CN 111858418 B CN111858418 B CN 111858418B CN 201910364014 A CN201910364014 A CN 201910364014A CN 111858418 B CN111858418 B CN 111858418B
- Authority
- CN
- China
- Prior art keywords
- clients
- group
- data
- time slice
- server
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种基于远程直接内存访问RDMA的内存通信方法及装置,属于通信领域。在该方法中,服务器根据接收的多个客户端发送的RDMA消息从所述多个客户端中确定第一组客户端。在第一时间片内,服务器对缓存于第一缓存空间的所述第一组客户端的数据进行处理。并且,在所述第一时间片内,所述服务器从所述多个客户端中确定第二组客户端,所述服务器的网卡将根据所述第二组客户端的RDMA消息从所述第二组客户端读取的数据放入所述服务器的第二缓存空间。在第二时间片内,所述服务器对所述第二缓存空间中的所述第二组客户端的数据进行处理。本申请能够提高***的扩展性。
Description
技术领域
本申请涉及通信领域,特别涉及一种基于远程直接内存访问RDMA的内存通信方法及装置。
背景技术
随着分布式技术的发展,远程访问服务器内存的应用需求越来越多,远程访问服务器内存是指客户端可以直接访问远端的服务器内存,例如客户端可以向远端的服务器内存中写入数据。
服务器包括网卡、处理器末级缓存(last level cache,LLC)、内存和内存控制器等部分,客户端向服务器的内存写数据时,客户端向服务器发送远程直接数据存取(remotedirect memory access,RDMA)消息。服务器的网卡根据该RDMA消息从该客户端中读取该客户端需要写入服务器内存的数据,将该数据写入到LLC的缓存空间中。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
通常用于处理客户端内存访问消息的缓存空间的大小不超过LLC中的10%,空间的大小受限。由于缓存空间较小,该缓存空间并不能完整容纳与其具有映射关系的内存空间的数据,从而服务器处理客户端的数据时会频繁出现缓存不命中的现象,增加服务器从内存读取数据到缓存的处理延时,导致服务器响应客户端的速度降低,访问服务器的客户端数目会受该缓存空间的影响,影响***的扩展性。
发明内容
本申请实施例提供了一种基于远程直接内存访问RDMA的内存通信方法及装置,以提高***的扩展性。所述技术方案如下:
第一方面,提供了一种基于远程直接内存访问RDMA的内存通信方法,在所述方法中,服务器接收多个客户端发送的RDMA消息;所述服务器根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第一组客户端;在第一时间片内,所述服务器对缓存于第一缓存空间的所述第一组客户端的数据进行处理,所述第一组客户端的数据是所述服务器的网卡根据所述第一组客户端的RDMA消息从所述第一组客户端读取的数据;在所述第一时间片内,所述服务器根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第二组客户端;在所述第一时间片内,所述服务器根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据,并将读取的数据写入所述服务器的第二缓存空间,其中,所述第一缓存空间和第二缓存空间是所述服务器的处理器的末级缓存LLC中的不同部分;在第二时间片内,所述服务器暂停对缓存于第一缓存空间的所述第一组客户端的数据进行处理,并对所述第二缓存空间中的所述第二组客户端的数据进行处理,其中,所述第二时间片是所述第一时间片的下一个时间片。
由于在第一时间片之前,从多个客户端中确定第一组客户端,在第一时间片内对第一缓存空间中缓存的第一组客户端的数据进行处理,以及从该多个客户端中确定第二组客户端,在第二时间片内对第二缓存空间中缓存的第二组客户端的数据进行处理,这样该多个客户端分在不同的时间片内共享第一缓存空间和第二缓存空间,服务器允许客户端的数目不受第一缓存空间和第二缓存空间的限制,如此服务器可以允许更多的客户端,将这些客户端分配在不同的时间片内与服务器的内存进行通信,提高了扩展性。在第一时间片之前将第一组客户端的数据缓存在第一缓存空间中,在第一时间片开始服务器就可以对第一缓存空间缓存的第一组客户端的数据进行处理,在第二时间片之前将第二组客户端的数据缓存在第二缓存空间中,在第二时间片开始服务器就可以对第二缓存空间缓存的第二组客户端的数据进行处理,提高了数据处理效率。
在一种可能的实现方式中,在所述第一时间片的前一个时间片内,所述服务器将根据所述第一组客户端的RDMA消息从所述第一组客户端读取的数据放入所述第一缓存空间。这样在第一时间片开始服务器就可以对第一缓存空间缓存的第一组客户端的数据进行处理,提高了数据处理效率。
在一种可能的实现方式中,在所述第二时间片内,所述服务器根据至少一个客户端发送的RDMA消息从至少一个客户端中确定第三组客户端;以及在所述第二时间片内,所述服务器将根据所述第三组客户端的RDMA消息从所述第三组客户端读取的数据放入所述第一缓存空间,所述第三组客户端与所述第二组客户端不同。这样在第三时间片开始服务器就可以对第一缓存空间缓存的第三组客户端的数据进行处理,提高了数据处理效率。
在一种可能的实现方式中,所述至少一个客户端包括在所述第一时间片和第二时间片内发送RDMA消息的客户端和/或所述多个客户端中的部分客户端,所述部分客户端可以是第一组客户端中没有读取完待读取数据的客户端,或者是在第一组客户端中CPU13未处理完数据的客户端,也可以是所述多个客户端中除所述第一组客户端和第二组客户端以外的客户端
在一种可能的实现方式中,所述第三组客户端包括所述第一组客户端中的部分客户端,所述部分客户端是所述服务器在第一时间片结束之前未读取完待读取数据的客户端。这样使服务器继续从该部分客户端中读取在第一时间片内未被读取的剩余数据并在第三时间片对该剩余数据进行处理。
在一种可能的实现方式中,所述服务器还包括第一内存空间和第二内存空间,所述第一内存空间和第二内存空间分别是所述服务器的内存中的不同部分,这样所述服务器将所述第一缓存空间中缓存的所述第一组客户端的数据写入所述第一内存空间中的每个客户端的内存消息区;所述服务器将所述第二缓存空间中缓存的所述第二组客户端的数据写入所述第二内存空间中的每个客户端的内存消息区。这样可以实现在第一时间片内第一组客户端与服务器的内存之间的通信,以及实现在第二时间片内第二组客户端与服务器的内存之间的通信。
在一种可能的实现方式中,所述服务器的网卡根据所述第二组客户端的RDMA消息中的元数据分别从所述第二组客户端读取数据,其中,所述元数据中包括待读取数据的地址和数据的大小。从而实现服务器从客户端中读取数据。
第二方面,提供了一种基于远程直接内存访问RDMA的内存通信装置,所述装置包括:中央处理器CPU、网卡和所述CPU的末级缓存LLC,所述LLC包括第一缓存空间和第二缓存空间;所述网卡,用于接收多个客户端发送的RDMA消息;所述CPU,用于根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第一组客户端;在第一时间片内,对缓存于第一缓存空间的所述第一组客户端的数据进行处理,所述第一组客户端的数据是所述网卡根据所述第一组客户端的RDMA消息从所述第一组客户端读取的数据;在所述第一时间片内,根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第二组客户端;所述网卡,还用于在所述第一时间片内,根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据,并将读取的数据写入第二缓存空间;所述CPU,还用于在第二时间片内,暂停对缓存于第一缓存空间的所述第一组客户端的数据进行处理,并对所述第二缓存空间中的所述第二组客户端的数据进行处理,其中,所述第二时间片是所述第一时间片的下一个时间片。
由于在第一时间片之前,所述CPU从多个客户端中确定第一组客户端,在第一时间片内对第一缓存空间中缓存的第一组客户端的数据进行处理,以及从该多个客户端中确定第二组客户端,在第二时间片内对第二缓存空间中缓存的第二组客户端的数据进行处理,这样该多个客户端分在不同的时间片内共享第一缓存空间和第二缓存空间,服务器允许客户端的数目不受第一缓存空间和第二缓存空间的限制,如此可以允许更多的客户端,将这些客户端分配在不同的时间片内与该装置的内存进行通信,提高了扩展性。网卡在第一时间片之前将第一组客户端的数据缓存在第一缓存空间中,在第一时间片开始CPU就可以对第一缓存空间缓存的第一组客户端的数据进行处理,网卡在第二时间片之前将第二组客户端的数据缓存在第二缓存空间中,在第二时间片开始CPU就可以对第二缓存空间缓存的第二组客户端的数据进行处理,提高了数据处理效率。
在一种可能的实现方式中,所述CPU、所述网卡还可以用于执行第一方面的任意一种可能的实现方式中的方法的操作,在此不再详细说明。
第三方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过中央处理器CPU和网卡进行加载来实现上述第一方面或第一方面的任意可能的实现方式的方法。
第四方面,本申请提供了一种非易失性计算机可读存储介质,用于存储计算机程序,所述计算机程序通过中央处理器CPU和网卡进行加载来实现上述第一方面或第一方面的任意可能的实现方式的方法。
附图说明
图1是本申请实施例提供的一种分布式***的架构示意图;
图2是本申请实施例提供的一种服务器结构示意图;
图3是本申请实施例提供的LLC中的缓存空间与内存中的内存空间之间的映射示意图;
图4是本申请实施例提供的一种基于RDMA的内存通信方法流程图;
图5是本申请实施例提供的一种读取数据的方法流程图;
图6是本申请实施例提供的一种基于RDMA的内存通信装置结构示意图。
具体实施方式
下面将结合附图对本申请实施方式作进一步地详细描述。参见图1,本申请实施例提供了一种分布式***,该分布式***包括服务器1和多个客户端2,每个客户端2与服务器1基于RDMA协议进行通信。
对于每个客户端2,该客户端2需要向服务器1的内存写入数据时,该客户端2与服务器1之间建立网络连接,该客户端2通过该网络连接向服务器1发送RDMA消息。该服务器1的网卡接收该RDMA消息,根据该RDMA消息从该客户端1中读取数据,将读取的数据写入服务器1的LLC中,服务器1再将该LLC缓存的数据写入服务器1的内存中。其中,客户端2将数据写入服务器1的内存中的详细过程,可以参见如下任一实施例中的内容,在此先不做详细说明。
参见图2,本申请提供了服务器1,服务器1包括网卡11、LLC12、CPU13、内存控制器14和内存15,网卡11、LLC12、CPU13、内存控制器14和内存15通过总线相互连接。
网卡11与多个客户端之间建立有网络连接。其中,网卡11与该多个客户端中的每个客户端的网卡之间建立有网络连接,这样每个客户端向服务器1发送RDMA消息,该RDMA消息携带该客户端的元数据,该元数据包括待读取数据的存储地址和大小,待读取数据是该客户端需要写入服务器1的内存15中的数据。
网卡11可以接收该多客户端发送的RDMA消息。
CPU13可以分配时间片(timeslice),时间片又称为“处理器片(processorslice)”,是分时操作***分配给每个正在运行的进程微观上的一段CPU时间。对于CPU13分配的任意一个时间片,在该时间片开始之前的一个时间片,CPU13从该多个客户端中确定一组客户端,该一组客户端包括的客户端数目大于或等于1且小于或等于预设数值,网卡将从该一组客户端中读取的数据写入LLC12的缓存空间中,在该时间片内CPU13对该缓存空间中的数据进行处理。
例如,在CPU13分配的第一时间片的前一个时间片,第一时间片是CPU13分配的任一时间片,CPU13从该多个客户端中确定第一组客户端,第一组客户端包括N个客户端,N为大于或等于1且小于或等于预设数值的整数。在第一时间片之前,网卡11根据第一组客户端的元数据从第一组客户端中读取第一组客户端的数据,并将第一组客户端的数据缓存在第一缓存空间,第一缓存空间是LLC22中的一部分,参见图3,第一缓存空间与内存15中的第一内存空间相对应,第一内存空间包括第一组客户端中的每个客户端的内存消息区。
在第一时间片内,网卡11还可以继续根据第一组客户端的元数据从第一组客户端中读取第一组客户端的数据,并将第一组客户端的数据缓存在第一缓存空间。CPU13对第一缓存空间中缓存的数据进行处理。内存控制器14可以将第一缓存空间中的数据保存在第一内存空间中。以及,在第一时间片内,CPU13从该多个客户端中确定第二组客户端,第二组客户端包括M个客户端,M为大于或等于1且小于或等于预设数值的整数,第一组客户端与第二组客户端不同。网卡11根据第二组客户端的元数据从第二组客户端中读取第一组客户端的数据,并将第二组客户端的数据缓存在第二缓存空间,第二缓存空间是LLC22中的另一部分,参见图3,第二缓存空间与内存15中的第二内存空间相对应,第二内存空间包括第二组客户端中的每个客户端的内存消息区。
在CPU13分配的第二时间片内,网卡11还可以继续根据第二组客户端的元数据从第二组客户端中读取第二组客户端的数据,并将第二组客户端的数据缓存在第二缓存空间,第二时间片是第一时间片的下一个时间片。CPU13对第二缓存空间中缓存的数据进行处理。内存控制器14可以将第二缓存空间中的数据保存在第二内存空间中或者客户端向服务器端写入新数据的情况下内存控制器可以将第一缓存空间缓存的数据存入第一内存空间。
网卡11在第一时间片和/或第二时间片内会继续接收新的客户端发送的RDMA消息。所以CPU13和网卡11重复执行在第一时间片内执行的操作以及重复执行在第二时间片内执行的操作。例如在第二时间片内,CPU13从至少一个客户端中确定第三组客户端,第三组客户端包括V个客户端,V为大于或等于1且小于或等于预设数值的整数,第三组客户端与第二组客户端不同,该至少一个客户端包括在第一时间片和第二时间片内发送RDMA消息的新客户端和/或该多个客户端中的部分客户端,该部分客户端可以是第一组客户端中没有读取完待读取数据的客户端,或者是在第一组客户端中CPU13未处理完数据的客户端,也可以是该多个客户端中除第一组客户端和第二组客户端以外的客户端。对于在第一时间片内CPU13未处理完数据的客户端,该客户端的数据可以仍缓存在第一缓存空间中,这样在第三时间片时,CPU13可以对第一缓存空间缓存的该客户端的数据处理进行处理。
网卡11根据第三组客户端的元数据从第三组客户端中读取第三组客户端的数据,并将第三组客户端的数据缓存在第一缓存空间,此时,第一缓存空间与内存15中的第一内存空间相对应,第一内存空间包括第三组客户端中的每个客户端的内存消息区。
可选的,在第一时间片内,内存控制器可以先不将第一缓存空间缓存的数据保存到第一内存空间,而是在将第三组客户端的数据缓存在第一缓存空间之前,可以将第一缓存空间缓存的数据保存到第一内存空间。
在CPU13分配的第三时间片内,网卡11还可以继续根据第三组客户端的元数据从第三组客户端中读取第三组客户端的数据,并将第三组客户端的数据缓存在第一缓存空间,CPU13对第一缓存空间缓存的第三组客户端的数据进行处理,第三时间片是第二时间片的下一个时间片。参见图3,在第三时间片内与第一缓存空间相对应的第一内存空间包括第三组客户端中的每个客户端对应的内存消息区,即第一内存空间包括V个内存消息区,第一内存空间用于保存第一缓存空间中的数据,也就是说,该V个内存消息区用于存储第三组客户端的数据。
在第三时间片内,CPU13确定第四组客户端,以及网卡11根据第四组客户端的元数据从第四组客户端中读取第四组客户端的数据,并将第四组客户端的数据缓存在第二缓存空间,第三组客户端与第四组客户端不同。这样在第四时间片内,CPU13和网卡11可以重复第二时间片内执行的过程。
在本申请实施例中,在第一时间片之前,CPU确定第一组客户端,在第一时间片内对第一缓存空间中缓存的第一组客户端的数据进行处理,以及确定第二组客户端,在第二时间片内对第二缓存空间中缓存的第二组客户端的数据进行处理,这样该多个客户端分在不同的时间片内共享第一缓存空间和第二缓存空间,服务器允许客户端的数目不受第一缓存空间和第二缓存空间的限制,如此可以允许更多的客户端在不同时间片内与服务器的内存进行通信,提高了扩展性。在第一时间片之前网卡将第一组客户端的数据缓存在第一缓存空间中,在第一时间片开始CPU就可以对第一缓存空间缓存的第一组客户端的数据进行处理,在第二时间片之前网卡将第二组客户端的数据缓存在第二缓存空间中,在第二时间片开始CPU就可以对第二缓存空间缓存的第二组客户端的数据进行处理,提高了数据处理效率。
参见图4,本申请实施例提供了一种基于RDMA的内存通信方法,该方法可以应用于图1所示的网络架构中,以及应用于图2所示的服务器中,包括:
步骤101:服务器的网卡接收多个客户端发送的RDMA消息。
客户端在需要访问服务器1的内存时,客户端可以与服务器的网卡之间建立网络连接,通过该网络连接向服务器发送RDMA消息,该RDMA消息携带该客户端的元数据,该元数据包括待读取数据的存储地址addr和大小size,待读取数据是客户端需要写入服务器内存的数据,该存储地址addr是待读取数据在该客户端中的存储地址。
在服务器的网卡接收到该客户端发送的RDMA消息时,服务器可以将该客户端的标识、该客户端的元数据和该客户端的状态保存在标识、元数据与状态的对应关系中,该客户端的状态为待处理。
标识、元数据与状态的对应关系中的每条记录为一个客户端的客户条目,即该客户端的客户条目中包括客户端的标识、元数据和状态。标识、元数据与状态的对应关系可以保存在服务器的内存中。
服务器的CPU分配时间片,在一个时间片内服务器的CPU允许一组客户端与服务器的内存进行通信,详细实现如下。
步骤102:服务器根据该多个客户端的RDMA消息从该多个客户端中确定第一组客户端。
在服务器的CPU分配的第一时间片之前,服务器的CPU从标识、元数据与状态的对应关系保存的各标识对应的客户端中,选择状态为待处理或挂起的N个客户端,将该N个客户端确定为第一组客户端,N为大于或等于1且小于或等于预设数值的整数。
服务器的CPU在标识、元数据与状态的对应关系中还可以将第一组客户端中的每个客户端的状态修改为处理中。
服务器的CPU在选择状态为待处理或挂起的客户端的标识时,优先选择状态为挂起的客户端。
对于标识、元数据与状态的对应关系保存的各标识对应的客户端,每个客户端还存在优先级,所以服务器的CPU从标识、元数据与状态的对应关系保存的各标识对应的客户端中选择状态为待处理的客户端和状态为挂起的客户端,根据优先级从状态为待处理的客户端和状态为挂起的客户端中选择N个客户端。
可选的,在服务器的CPU中可以运行调度线程,通过该调度线程确定第一组客户端。
步骤103:服务器的网卡将根据第一组客户端发送的RDMA消息从第一组客户端中读取的数据存放到第一缓存空间,第一缓存空间是服务器的LLC中的一部分空间。
在本步骤中,服务器的网卡在第一时间片之前,可以从标识、元数据与状态的对应关系中获取第一组客户端中的每个客户端的元数据,根据第一组客户端中的每个客户端的元数据分别从第一组客户端中的每个客户端中读取数据,并将读取的数据存放在第一缓存空间中。
参见图5,对于第一组客户端中的任一客户端,该客户端的元数据包括待读取数据的存储地址addr和大小size,服务器的网卡根据该存储地址addr和大小size从该客户端中读取数据。在实现时,服务器的网卡向客户端发送读请求消息,该读请求消息携带存储地址addr和大小size。客户端接收该读请求消息,根据该读请求消息携带的存储地址addr读取数据,读取的数据大小size1小于或等于待读取数据的大小size,向服务器发送读响应消息,该读响应消息携带读取的数据。服务器的网卡接收该读响应消息,将该读响应消息携带的数据缓存在第一缓存空间中。服务器的网卡向客户端发送读请求消息,该读请求消息携带存储地址addr+size1和大小size-size1。客户端接收该读请求消息,根据该读请求消息携带的存储地址addr+size1读取数据,读取的数据大小size2小于或等于待读取数据的大小size-size1,向服务器发送读响应消息,该读响应消息携带读取的数据。服务器的网卡接收该读响应消息,将该读响应消息携带的数据缓存的第一缓存空间中。重复上述过程直至读取完待读取数据或第一时间片结束。
步骤104:在第一时间片内,服务器的CPU对第一缓存空间中缓存的数据进行处理。
参见图3,第一缓存空间与服务器的内存中的第一内存空间相对应,第一内存空间包括第一组客户端中的每个客户端对应的内存消息区,即第一内存空间包括N个内存消息区,第一内存空间用于保存第一缓存空间中的数据,也就是说,该N个内存消息区用于存储第一组客户端的数据。该N个内存消息区是相互隔离的消息区。
在第一时间片内,服务器的CPU对第一缓存空间缓存的数据进行处理,处理后得到的处理结果仍保存在第一缓存空间中。服务器的内存控制器将可以将第一缓存空间缓存的数据存入第一内存空间或者客户端向服务器端写入新数据的情况下内存控制器可以将第一缓存空间缓存的数据存入第一内存空间。例如,如果客户端请求服务器根据客户端提供的参数执行若干请求,在所述第一时间片内,所述服务器会根据客户端提供的参数对客户端的请求进行处理,并将执行结果返回客户端。并且,可以理解的是,当客户端向服务器端写入了新数据的情况下,服务器的内存控制器可以将第一缓存空间缓存的数据存入第一内存空间。
在第一时间片之前,服务器的网卡可能没有读取完第一组客户端的数据,这样在第一时间片内,服务器的网卡继续根据第一组客户端中的每个客户端的元数据,分别从第一组客户端中的每个客户端中读取数据,并将读取的数据存放在第一缓存空间中。服务器的CPU对缓存在第一缓存空间中的数据进行处理。
服务器的CPU运行有多个工作线程,第一组客户端中的每个客户端对应一个工作线程,也就是说,第一组客户端对应N个工作线程,在服务器的CPU中可以运行该N个工作线程,通过该N个工作线程处理第一缓存空间中缓存的第一组客户端的数据。
步骤105:在第一时间片内,根据该多个客户端的RDMA消息从该多个客户端中确定第二组客户端,第一组客户端与第二组客户端不同。
在第一时间片内,服务器的CPU从标识、元数据与状态的对应关系中的各标识对应的客户端中选择状态为待处理或挂起的M个客户端,将该M个客户端确定为第二组客户端,M为大于或等于1且小于或等于预设数值的整数。
服务器的CPU还可以在标识、元数据与状态的对应关系中将第二组客户端中的每个客户端的状态修改为处理中。
服务器的CPU在选择状态为待处理或挂起的客户端时,优先选择状态为挂起的客户端。
对于标识、元数据与状态的对应关系保存的各标识对应的客户端,每个客户端还存在优先级,所以服务器1的CPU从标识、元数据与状态的对应关系保存的各标识对应的客户端中选择状态为待处理客户端和状态为挂起的客户端,根据优先级从状态为待处理的客户端和状态为挂起的客户端中选择M个客户端。
可选的,确定第二组客户端的操作,可以是服务器的CPU运行调度线程,使用调度线程执行确定第二组客户端的操作。
步骤106:在第一时间片内,服务器的网卡将根据第二组客户端发送的RDMA消息从第二组客户端中读取的数据存放到第二缓存空间,第二缓存空间是服务器的LLC中的另一部分空间。
在第一时间片内,服务器的网卡可以从标识、元数据与状态的对应关系中获取第二组客户端中的每个客户端的元数据,根据第二组客户端中的每个客户端的元数据,分别从第二组客户端中的每个客户端中读取数据,并将读取的数据存放在第二缓存空间中。
其中,在第一时间片内,服务器的CPU可以将第一缓存空间的状态设置为活动状态,将第二缓存空间的状态设置为预热状态。这样在第一时间片内,服务器的CPU对第一缓存空间中缓存的第一组客户端的数据进行处理,不会对第二缓存空间中缓存的第二组客户端中的数据进行处理。
在第一时间片结束时,对于第一组客户端中的任一个客户端,如果服务器的网卡从该客户端读取的数据的总大小小于该客户端的元数据包括的待读取数据的大小,即在第一时间片结束时,服务器的网卡没有从该客户端中读取完该客户端的待读取数据,则服务器可以根据该总大小、待读取数据的存储地址和大小,确定待读取数据中剩余的未被读取数据的存储地址和大小,在标识、元数据与状态的对应关系中将该客户端的元数据包括的待读取数据的存储地址和大小分别替换为该未被读取数据的存储地址和大小。例如,假设该客户端的元数据包括待读取数据的存储地址为addr和待读取数据的大小为size,以及该总大小为X,根据X、addr和size,确定待读取数据中剩余的未被读取数据的存储地址为addr+X,以及确定未被读取数据的大小为size-X。在标识、元数据与状态的对应关系中将该客户端的元数据包括的addr和size分别替换为addr+X和大小为size-X。
如果服务器的网卡在从该客户端读取的数据的总大小等于该客户端的元数据包括的待读取数据的大小,即在第一时间片结束时,服务器的网卡从该客户端中读取完该客户端的待读取数据,则服务器可以在标识、元数据与状态的对应关系中删除包括该客户端的标识、无数据和状态的记录。
步骤107:在第二时间片内,服务器的CPU对第二缓存空间中缓存的数据进行处理。
在第一时间片内,服务器的网卡可能没有读取完第二组客户端的数据,这样在第二时间片开始时,服务器的网卡继续根据第二组客户端中的每个客户端的元数据,分别从第二组客户端中的每个客户端中读取数据,并将读取的数据存放在第二缓存空间中。以及在第二时间片内,服务器的CPU对第二缓存空间中缓存的数据进行处理。
在第二时间片开始时,服务器的CPU可以将第一缓存空间的状态切换为预热状态,将第二缓存空间的状态切换为活动状态。这样运行在服务器的CPU中的工作线程在第二时间片内对第二缓存空间中缓存的第二组客户端的数据进行处理。
在第二时间片开始时,服务器的CPU暂停对第一缓存空间中的数据进行处理。
可选的,在第二时间片内,可以使用M个工作线程分别处理第二缓存空间中缓存的第二组客户端的数据。
参见图3,第二缓存空间与服务器的内存中的第二内存空间相对应,第二内存空间包括第二组客户端中的每个客户端对应的内存消息区,即第二内存空间包括M个内存消息区,第二内存空间用于保存第二缓存空间中的数据,也就是说,该M个内存消息区用于存储第二组客户端的数据。
服务器的CPU对第二缓存空间中缓存的数据进行处理,处理后得到的结果仍保存在第二缓存空间中。服务器的内存控制器可以将第二缓存空间缓存的数据存入第二内存空间,或者客户端向服务器端写入新数据的情况下内存控制器可以将第二缓存空间缓存的数据存入第二内存空间。
在第一时间片和第二时间片内,服务器的网卡可能接收到新客户端发送的RDMA消息,该RDMA消息携带该新客户端的元数据。服务器设置该新客户端的状态为待处理,将该新客户端的标识、元数据和状态保存在标识、元数据与状态的对应关系中。
在第二时间片内,服务器的CPU和网卡重复执行在第一时间片内的操作,即在第二时间片内,服务器的CPU可以继续从标识、元数据与状态的对应关系中的各标识对应的客户端中选择状态为待处理或挂起的V个客户端,将该V个客户端确定为第三组客户端,V大于或等于1且小于或等于预设数值的整数。服务器的CPU在标识、元数据与状态的对应关系中将第三组客户端中的每个客户端的状态修改为处理中。以及,在第二时间片内,服务器的网卡根据标识、元数据与状态的对应关系中的第三组客户端中的每个客户端的元数据,分别从第三组客户端中的每个客户端中读取数据,并将读取的数据存放在第一缓存空间中。
第三组客户端中可能存在部分客户端属于第一组客户端,该部分客户端是服务器在第一时间片内未处理完的第一组客户端中的部分客户端,或者,该部分客户端是服务器第一组客户端中没有读取完数据的部分客户端。在第一时间片结束时,该部分客户端的状态设置为挂起,所以在确定第三组客户端时,该部分客户端被优先选择为第三组客户端。也就是说,对于在第一时间片内,与服务器未完成内存通信的客户端,在第二时间片内会被选中为第三组客户端的一部分,以便在第三时间片时继续处理,其中第三时间片为第二时间片的下一个时间片。
对于该部分客户端中的每个客户端,在第三时间片内该客户端对应的内存消息区可以与在第一时间片内该客户端对应的内存消息区相同。参见图3,此时与第一缓存空间相对应的第一内存空间包括第三组客户端中的每个客户端的内存消息区,也就是说,第一内存空间包括V个内存消息区。
在第二时间片结束时,对于第二组客户端中的任一个客户端,如果服务器的网卡没有从该客户端中读取完该客户端的待读取数据,则服务器的CPU可以对标识、元数据与状态的对应关系保存的该客户端的元数据进行更新,以及在标识、元数据与状态的对应关系中将该客户端的状态修改为挂起。
在第三时间片内,服务器的CPU对第一缓存空间缓存的第三组客户端的数据进行处理,服务器的内存控制器将第一缓存空间中缓存的数据保存在第一缓存空间中。以及,在第三时间片内,服务器的网卡还可以继续根据第三组客户端中的每个客户端的元数据,分别从第三组客户端中的每个客户端中读取数据,并将读取的数据存放在第一缓存空间中。
在本申请实施例中,在第一时间片之前,CPU确定第一组客户端,在第一时间片内对第一缓存空间中缓存的第一组客户端的数据进行处理,以及确定第二组客户端,在第二时间片内对第二缓存空间中缓存的第二组客户端的数据进行处理,这样该多个客户端分在不同的时间片内共享第一缓存空间和第二缓存空间,服务器允许客户端的数目不受第一缓存空间和第二缓存空间的限制,如此可以允许更多的客户端在不同时间片内与服务器的内存进行通信,提高了扩展性。在确定一组客户端时优先选择挂起状态的客户端或根据优先级选择客户端,这样可以使在第一时间片之前未读取完待读取数据的客户端优先被选择,或高优先级的客户端优先被选择,可以提高对该客户端服务的及时性。在第一时间片之前网卡将第一组客户端的数据缓存在第一缓存空间中,在第一时间片开始CPU就可以对第一缓存空间缓存的第一组客户端的数据进行处理,在第二时间片之前网卡将第二组客户端的数据缓存在第二缓存空间中,在第二时间片开始CPU就可以对第二缓存空间缓存的第二组客户端的数据进行处理,提高了数据处理效率。
参见图6,本申请实施例提供了一种基于RDMA的内存通信装置200,包括:CPU201、网卡202和LLC203,LLC203包括第一缓存空间和第二缓存空间;
网卡202,用于接收多个客户端发送的RDMA消息;
CPU201,用于:根据该多个客户端发送的RDMA消息从该多个客户端中确定第一组客户端;
在第一时间片内,对缓存于第一缓存空间的第一组客户端的数据进行处理,第一组客户端的数据是网卡202根据第一组客户端的RDMA消息从第一组客户端读取的数据;以及
在第一时间片内,根据该多个客户端发送的RDMA消息从该多个客户端中确定第二组客户端;
网卡202,还用于在第一时间片内,根据第二组客户端的RDMA消息从第二组客户端读取数据,并将读取的数据写入的第二缓存空间;
CPU201,还用于在第二时间片内,暂停对缓存于第一缓存空间的第一组客户端的数据进行处理,并对第二缓存空间中的第二组客户端的数据进行处理,其中,所述第二时间片是所述第一时间片的下一个时间片。
可选的,网卡202,用于在第一时间片的前一个时间片内,将根据第一组客户端的RDMA消息从第一组客户端读取的数据放入第一缓存空间。
可选的,CPU201,还用于在第二时间片内,根据该多个客户端发送的RDMA消息从该多个客户端中确定第三组客户端;
网卡202,还用于在所述第二时间片内,将根据第三组客户端的RDMA消息从第三组客户端读取的数据放入第一缓存空间,第三组客户端与第二组客户端不同。
可选的,与第一缓存空间相对应的第一内存空间包括第一组客户端中的每个客户端的内存消息区,与第二缓存空间相对应的第二内存空间包括第二组客户端中的每个客户端的内存消息区;还包括:
内存204,包括第一内存空间和第二内存空间;以及
内存控制器205,用于将第一缓存空间中缓存的第一组客户端的数据写入第一内存空间;以及
将第二缓存空间中缓存的第二组客户端的数据写入第二内存空间。
可选的,网卡202具体用于在第一时间片内,根据第二组客户端的RDMA消息中的元数据分别从第二组客户端读取数据,其中,该元数据中包括待读取数据的地址和数据的大小。
在本申请实施例中,由于在第一时间片之前,从多个客户端中确定第一组客户端,在第一时间片内对第一缓存空间中缓存的第一组客户端的数据进行处理,以及从该多个客户端中确定第二组客户端,在第二时间片内对第二缓存空间中缓存的第二组客户端的数据进行处理,这样该多个客户端分在不同的时间片内共享第一缓存空间和第二缓存空间,这样可以允许更多的客户端与内存进行通信,提高了扩展性。在第一时间片之前将第一组客户端的数据缓存在第一缓存空间中,在第一时间片开始CPU就可以对第一缓存空间缓存的第一组客户端的数据进行处理,在第二时间片之前将第二组客户端的数据缓存在第二缓存空间中,在第二时间片开始CPU就可以对第二缓存空间缓存的第二组客户端的数据进行处理,提高了数据处理效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于远程直接内存访问RDMA的内存通信方法,其特征在于,包括:
服务器接收多个客户端发送的RDMA消息;
所述服务器根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第一组客户端;
在第一时间片内,所述服务器对缓存于第一缓存空间的所述第一组客户端的数据进行处理,所述第一组客户端的数据是所述服务器的网卡在所述第一时间片内和在所述第一时间片的前一个时间片内根据所述第一组客户端的RDMA消息从所述第一组客户端读取的数据;
在所述第一时间片内,所述服务器根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第二组客户端;
在所述第一时间片内,所述服务器根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据,并将读取的数据写入所述服务器的第二缓存空间,其中,所述第一缓存空间和第二缓存空间是所述服务器的处理器的末级缓存LLC中的不同部分;
在第二时间片内,所述服务器暂停对缓存于第一缓存空间的所述第一组客户端的数据进行处理,根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据,将读取的数据写入所述服务器的第二缓存空间,并对所述第二缓存空间中的所述第二组客户端的数据进行处理,其中,所述第二时间片是所述第一时间片的下一个时间片。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二时间片内,所述服务器根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第三组客户端;以及
在所述第二时间片内,所述服务器将根据所述第三组客户端的RDMA消息从所述第三组客户端读取的数据放入所述第一缓存空间,所述第三组客户端与所述第二组客户端不同。
3.根据权利要求1或2所述的方法,其特征在于:所述服务器还包括第一内存空间和第二内存空间,所述第一内存空间和第二内存空间分别是所述服务器的内存中的不同部分,所述方法还包括:
所述服务器将所述第一缓存空间中缓存的所述第一组客户端的数据写入所述第一内存空间;
所述服务器将所述第二缓存空间中缓存的所述第二组客户端的数据写入所述第二内存空间。
4.根据权利要求1所述的方法,其特征在于,所述服务器根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据包括:
所述服务器的网卡根据所述第二组客户端的RDMA消息中的元数据分别从所述第二组客户端读取数据,其中,所述元数据中包括待读取数据的地址和数据的大小。
5.一种基于远程直接内存访问RDMA的内存通信装置,其特征在于,包括:中央处理器CPU、网卡和所述CPU的末级缓存LLC,所述LLC包括第一缓存空间和第二缓存空间;
所述网卡,用于接收多个客户端发送的RDMA消息;
所述CPU,用于:
根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第一组客户端;
在第一时间片内,对缓存于第一缓存空间的所述第一组客户端的数据进行处理,所述第一组客户端的数据是所述网卡在所述第一时间片内和在所述第一时间片的前一个时间片内根据所述第一组客户端的RDMA消息从所述第一组客户端读取的数据;以及
在所述第一时间片内,根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第二组客户端;
所述网卡,还用于在所述第一时间片内,根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据,并将读取的数据写入第二缓存空间;
所述CPU,还用于在第二时间片内,暂停对缓存于第一缓存空间的所述第一组客户端的数据进行处理,根据所述第二组客户端的RDMA消息从所述第二组客户端读取数据,将读取的数据写入服务器的第二缓存空间,并对所述第二缓存空间中的所述第二组客户端的数据进行处理,其中,所述第二时间片是所述第一时间片的下一个时间片。
6.根据权利要求5所述的装置,其特征在于,
所述CPU,还用于在所述第二时间片内,根据所述多个客户端发送的RDMA消息从所述多个客户端中确定第三组客户端;
所述网卡,还用于在所述第二时间片内,将根据所述第三组客户端的RDMA消息从所述第三组客户端读取的数据放入所述第一缓存空间,所述第三组客户端与所述第二组客户端不同。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
内存,包括第一内存空间和第二内存空间;以及
内存控制器,用于将所述第一缓存空间中缓存的所述第一组客户端的数据写入所述第一内存空间;以及
将所述第二缓存空间中缓存的所述第二组客户端的数据写入所述第二内存空间。
8.根据权利要求5所述的装置,其特征在于:
所述网卡具体用于在所述第一时间片内,根据所述第二组客户端的RDMA消息中的元数据分别从所述第二组客户端读取数据,其中,所述元数据中包括待读取数据的地址和数据的大小。
9.一种计算机可读存储介质,其上存储有计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1-4任一项所述的方法。
10.一种计算机程序产品,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364014.4A CN111858418B (zh) | 2019-04-30 | 2019-04-30 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910364014.4A CN111858418B (zh) | 2019-04-30 | 2019-04-30 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858418A CN111858418A (zh) | 2020-10-30 |
CN111858418B true CN111858418B (zh) | 2023-04-07 |
Family
ID=72965186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910364014.4A Active CN111858418B (zh) | 2019-04-30 | 2019-04-30 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858418B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115981548A (zh) * | 2021-10-14 | 2023-04-18 | 华为技术有限公司 | 一种流控方法及装置 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404212A (zh) * | 2011-11-17 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种基于InfiniBand网络的跨平台RDMA通信方法 |
CN103902486A (zh) * | 2014-04-08 | 2014-07-02 | 华为技术有限公司 | 一种远端直接内存访问实现方法、装置及*** |
CN103929415A (zh) * | 2014-03-21 | 2014-07-16 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络*** |
CN104468638A (zh) * | 2013-09-12 | 2015-03-25 | 北大方正集团有限公司 | 一种分布式数据处理方法及*** |
CN104679688A (zh) * | 2013-12-02 | 2015-06-03 | 华为技术有限公司 | 数据访问方法、装置及*** |
CN105393239A (zh) * | 2013-09-05 | 2016-03-09 | 谷歌公司 | 隔离分布式存储***的客户端 |
CN105408880A (zh) * | 2013-07-31 | 2016-03-16 | 甲骨文国际公司 | 对共享存储装置的持久存储器的直接访问 |
CN105426321A (zh) * | 2015-11-13 | 2016-03-23 | 上海交通大学 | 采用远程位置信息的rdma友好缓存方法 |
CN105450588A (zh) * | 2014-07-31 | 2016-03-30 | 华为技术有限公司 | 一种基于rdma的数据传输方法及rdma网卡 |
CN105630426A (zh) * | 2016-01-07 | 2016-06-01 | 清华大学 | 基于rdma特性的远程数据获取方法及*** |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN107077441A (zh) * | 2014-12-09 | 2017-08-18 | 英特尔公司 | 使用远程直接存储器访问(rdma)和主动消息的异构输入/输出(i/o) |
CN107479833A (zh) * | 2017-08-21 | 2017-12-15 | 中国人民解放军国防科技大学 | 一种面向键值存储的远程非易失内存访问与管理方法 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件*** |
CN108989237A (zh) * | 2017-06-01 | 2018-12-11 | 华为技术有限公司 | 数据传输的方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7921178B2 (en) * | 2008-12-04 | 2011-04-05 | Voltaire Ltd. | Device, system, and method of accessing storage |
US10083193B2 (en) * | 2015-01-09 | 2018-09-25 | International Business Machines Corporation | Efficient remote pointer sharing for enhanced access to key-value stores |
-
2019
- 2019-04-30 CN CN201910364014.4A patent/CN111858418B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404212A (zh) * | 2011-11-17 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种基于InfiniBand网络的跨平台RDMA通信方法 |
CN105408880A (zh) * | 2013-07-31 | 2016-03-16 | 甲骨文国际公司 | 对共享存储装置的持久存储器的直接访问 |
CN105393239A (zh) * | 2013-09-05 | 2016-03-09 | 谷歌公司 | 隔离分布式存储***的客户端 |
CN104468638A (zh) * | 2013-09-12 | 2015-03-25 | 北大方正集团有限公司 | 一种分布式数据处理方法及*** |
CN104679688A (zh) * | 2013-12-02 | 2015-06-03 | 华为技术有限公司 | 数据访问方法、装置及*** |
CN103929415A (zh) * | 2014-03-21 | 2014-07-16 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络*** |
CN103902486A (zh) * | 2014-04-08 | 2014-07-02 | 华为技术有限公司 | 一种远端直接内存访问实现方法、装置及*** |
CN105450588A (zh) * | 2014-07-31 | 2016-03-30 | 华为技术有限公司 | 一种基于rdma的数据传输方法及rdma网卡 |
CN107077441A (zh) * | 2014-12-09 | 2017-08-18 | 英特尔公司 | 使用远程直接存储器访问(rdma)和主动消息的异构输入/输出(i/o) |
CN105426321A (zh) * | 2015-11-13 | 2016-03-23 | 上海交通大学 | 采用远程位置信息的rdma友好缓存方法 |
CN105630426A (zh) * | 2016-01-07 | 2016-06-01 | 清华大学 | 基于rdma特性的远程数据获取方法及*** |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件*** |
CN108989237A (zh) * | 2017-06-01 | 2018-12-11 | 华为技术有限公司 | 数据传输的方法和设备 |
CN107479833A (zh) * | 2017-08-21 | 2017-12-15 | 中国人民解放军国防科技大学 | 一种面向键值存储的远程非易失内存访问与管理方法 |
Non-Patent Citations (1)
Title |
---|
Youmin Chen,Youyou Lu,etc..Scalable RDMA RPC on Reliable Connection with Efficient Resource Sharing.《Fourteenth Eurosys Conference 2019》.ACM,2019,第1-14页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111858418A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110153976A1 (en) | Methods and apparatuses to allocate file storage via tree representations of a bitmap | |
EP3441884B1 (en) | Method for managing translation lookaside buffer and multi-core processor | |
US11698757B2 (en) | Memory system and method of controlling nonvolatile memory | |
CN107430551B (zh) | 数据缓存方法、存储控制装置、及存储设备 | |
JPWO2012026034A1 (ja) | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 | |
CN108197160B (zh) | 一种图片加载方法及装置 | |
CN108139974B (zh) | 分布式缓存动态迁移 | |
CN103064797A (zh) | 数据处理方法和虚拟机管理平台 | |
CN110046114B (zh) | 基于pcie协议的dma控制器及dma数据传输方法 | |
EP3252595A1 (en) | Method and device for running process | |
CN113794764A (zh) | 服务器集群的请求处理方法、介质和电子设备 | |
CN107341114A (zh) | 一种目录管理的方法、节点控制器和*** | |
CN110209354B (zh) | 用于处理数据的方法、装置、设备和介质 | |
CN111858418B (zh) | 一种基于远程直接内存访问rdma的内存通信方法及装置 | |
US10042773B2 (en) | Advance cache allocator | |
CN108287793B (zh) | 响应消息的缓冲方法及服务器 | |
CN111475099A (zh) | 一种数据存储方法、装置及其设备 | |
US10061725B2 (en) | Scanning memory for de-duplication using RDMA | |
JPH11143779A (ja) | 仮想記憶装置におけるページング処理システム | |
CN113010453A (zh) | 一种内存管理的方法、***、设备及可读存储介质 | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
CN112463064A (zh) | 基于双链表结构的i/o指令管理方法及装置 | |
CN110347614B (zh) | 存储空间映射算法、缓存状态机、存储装置、存储介质 | |
JP2005339299A (ja) | ストレージ装置のキャッシュ制御方法 | |
CN104252423A (zh) | 基于多内核处理器的一致性处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |