CN105408880A - 对共享存储装置的持久存储器的直接访问 - Google Patents
对共享存储装置的持久存储器的直接访问 Download PDFInfo
- Publication number
- CN105408880A CN105408880A CN201480042557.XA CN201480042557A CN105408880A CN 105408880 A CN105408880 A CN 105408880A CN 201480042557 A CN201480042557 A CN 201480042557A CN 105408880 A CN105408880 A CN 105408880A
- Authority
- CN
- China
- Prior art keywords
- access
- pram
- message
- rdma
- remote node
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Abstract
描述了用于向一个或多个远程节点提供对持久随机存取存储器(PRAM)的直接访问的技术。在实施例中,针对使能了远程直接访问的网络接口控制器(RNIC)生成注册信息。注册信息将访问密钥与PRAM的目标区域相关联。将访问密钥发送给一个或多个节点中的远程节点。RNIC随后可以从所述远程节点接收包括访问密钥的远程直接存储器访问(RDMA)消息。响应于RDMA消息,RNIC执行PRAM的目标区域内的直接存储器访问。
Description
技术领域
本公开一般涉及用于访问存储器的技术,并且更具体地涉及对存储服务器上的持久存储器执行远程直接存储器访问。
背景技术
存储服务器是向远程客户端提供通常对磁盘存储装置的共享存储访问的计算机。为了管理来自远程客户端的输入/输出(I/O)操作,存储服务器可以使用基于消息的存储协议。例如,当远程客户端想要对共享磁盘进行读取和写入时,远程客户端通过网络向存储服务器发送消息。在存储服务器上运行的代理进程对请求做出响应。代理可以对消息进行处理、执行所请求的磁盘存储I/O操作、以及将确认消息返回到远程客户端。因而,存储协议是双边的,这是因为其涉及执行进程的连接的两边的中央处理单元(CPU),这两边彼此进行通信以协调I/O操作。
在一些情况下,双边存储协议可以使用远程直接存储器访问(RDMA)以在两个计算机之间传输数据。如这个术语RDMA在本申请中被使用的那样,RDMA是一种允许存储服务器的网络接口控制器(NIC)“直接地”向远程客户端的存储器或从远程客户端的存储器传输数据的技术,即向远程客户端的存储器或从存储器传输数据而不涉及远程客户端上的中央处理单元(CPU)。在示例方法中,远程客户端注册目标存储器缓冲区,并向存储服务器发送所注册的存储器缓冲区的描述。远程客户端然后将读取或写入请求发布给存储服务器。如果该请求是写入请求,那么存储服务器执行RDAM读取以将来自目标存储器缓冲区的数据加载到存储服务器的本地存储器中。存储服务器然后使得磁盘控制器将目标数据写入磁盘,一旦完成写入,就生成并向远程客户端发送写入确认消息。响应于读取请求,存储服务器使用磁盘控制器执行从磁盘的块级读取(block-levelread),并将数据加载到其本地存储器中。存储服务器然后执行RDMA写入以将数据直接放置到远程计算机的应用存储器缓冲区中。在RDAM操作完成之后,远程客户端从RDMA网络注销目标存储器缓冲区,以防止进一步的RDMA访问。使用RDMA增加了数据吞吐量,降低了数据传输的延迟,并且减少了数据传输期间存储服务器和远程客户端的CPU上的负荷。虽然CPU承受来自存储器注册和消息处理的某些开销,但是这样的延迟通常比写入磁盘的延迟小得多,并且因此不会显著地影响性能。
在这个部分中描述的方法是可能寻求的方法,但不一定是先前已经被构想或寻求的方法。因此,除非另外指示,不应当仅仅凭借这个部分包括被描述的方法而假定这些被描述的方法中的任何一个能够作为现有技术。
附图说明
在附图的图中通过示例的方式而不是通过限制的方式说明了各个实施例,并且其中相同的附图标记表示相似的元件,并且其中:
图1是描绘根据实施例的用于提供对持久存储装置的直接访问的示例性系统的框图;
图2是描绘根据实施例的用于注册持久存储器的示例性过程的流程图;
图3是描绘根据实施例的用于实施单边存储协议的示例性过程的流程图;
图4是说明根据实施例的用于向持久存储器写入数据的示例性过程的梯形图;
图5是描绘可以在其上实施实施例的计算机系统的框图。
具体实施方式
本申请描述了用于对共享存储装置中的持久存储器进行直接访问的技术。在以下描述中,为了解释的目的,阐释了大量的特定细节以便提供对本发明的深入理解。但是显而易见的是,可以在没有这些特定细节的情况下实施本发明。在其它实例中,在框图中示出了公知的结构和设备,以避免不必要地使得本发明难以理解。
总体概述
根据本申请描述的实施例,存储服务器包括持久随机存取存储器(PRAM)。与当前市场上可用的动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)选项相比,PRAM可以提供较高的密度。此外,PRAM是非易失性的,存储数据不需要电力,而DRAM和SRAM需要电力来存储数据。
PRAM可以被用作DRAM的直接替换,以作为存储服务器中的主存储器,这相对于其它形式的非易失性存储装置具有若干优点。例如,访问PRAM的延迟可以显著地小于对块设备进行读取和写入的延迟。访问PRAM不需要寻找机制、向存储控制器传送消息、或诸如块擦除和块缓冲之类的块管理。由于对PRAM多么迅速的读取和写入都可能发生,因此即使很小的处理开销可能显著地影响性能。
在实施例中,一个或多个客户端的集合使用单边存储协议来访问存储服务器中的PRAM。单边存储协议在读取和写入操作期间不需要存储服务器进行的CPU处理。例如,客户端可以向客户端的网络适配器注册PRAM。客户端然后可以使用RDMA读取和写入,直接地向存储服务器的PRAM并且从存储服务器的PRAM传输数据,而不需要存储服务器的CPU进行任何消息处理。相应地,在PRAM访问期间单边协议可以显著地降低或消除CPU开销。此外,I/O操作的可扩展性不受到任何存储装置侧代理处理的限制。
在另一实施例中,存储服务器上的PRAM对数据库的一部分或整个数据库进行缓存。远程客户端上的数据库服务器可以执行I/O操作以使用单边存储协议对持久存储装置读取和写入数据。通过使用单边协议,数据库管理系统(DBMS)可以高效地提交数据库事务,而不需要向诸如磁盘之类的块设备写入数据。
系统概述
图1是描绘根据实施例的用于提供对持久存储装置的直接访问的示例性系统的框图。系统100一般包括客户端系统110、网络130和存储服务器140。系统100可以包括经由网络130通信地耦接到存储服务器140的多个其它客户端系统,为了简洁的目的没有示出这些其它客户端系统。
客户端系统110一般包括进程112、内核114、CPU116、存储器118和网络适配器120。存储服务器140一般包括进程142、内核144、PRAM148、CPU146和网络适配器150。客户端系统110和存储服务器140中的每一个可以包括其它元件,为了简洁的目的没有示出这些其它元件。例如,依赖于特定的实施方式,客户端系统110和/或存储服务器140可以包括或者可以不包括磁盘存储装置。此外,这些系统中的每一个可以包括多个CPU。
进程112和142可以是分别在CPU116和CPU146上运行的任何应用进程。例如,进程112可以是DBMS的服务器进程。作为另一示例,进程142可以是执行PRAM148的注册的应用的实例,如下面进一步详细描述的那样。在每个CPU上执行的进程的数量和类型可以随着实施方式的不同而变化。
内核114和144是分别在客户端系统110和存储服务器140上的管理应用进程与硬件资源之间的通信的软件进程。例如,内核114可以确定哪个应用进程被分配给CPU116、允许进程使用存储器118的哪些部分、以及应用进程如何与网络适配器120通信。在RDMA操作期间,进程112可以绕过内核114和144,而直接访问PRAM148,如下面进一步详细描述的那样。
客户端系统110和存储服务器140经由网络130通信地耦接在一起。网络130可以包括一个或多个计算机网络,该一个或多个计算机网络提供允许客户端系统110与存储服务器140之间的数据通信的通信信道。例如,网络130可以通过现在通常称为“因特网”的世界范围的分组数据通信网络、存储区域网络(SAN)和/或局域网络(LAN)来提供数据通信服务。在另一示例中,网络130可以是针对RDMA协议优化的交换结构通信链路,例如无限带宽(InfiniBand)交换结构或任何其它RDMA互连。
网络适配器120和150分别将客户端系统110和存储服务器140连接到网络130。网络适配器120和150可以包括支持RDMA操作的任何类型的网络适配器,在本申请中这样的网络适配器被称为使能了RDMA的网络接口控制器(RNIC)。示例性的RNIC包括但不限于无限带宽主机信道适配器(HCA)。网络适配器120和150实施可靠传输之上的RDMA协议(RDMAP)。因而,网络适配器120和150可以支持包括但不限于通过融合以太网的RDMA(RoCE)、因特网广域RDMA协议(iWarp)、和无限带宽协议的协议。
网络适配器120和150可以与RNIC接口(RI)相关联,其中RI是RNIC对消费者的呈现,其通过RNIC设备和RNIC设备驱动器的组合被实施。本申请中所使用的消费者可以是通过RI与RNIC通信的任何软件进程,例如应用进程和内核。可以将RI实施为硬件、固件和软件的组合。内核可以通过一个或多个应用程序接口(API)向应用进程暴露RI功能中的一些或全部。
由网络适配器120和150执行的处理可以由RNIC引擎来执行。RNIC引擎将对RDMA消息的处理从CPU116和146卸载到网络适配器120和150上。RNIC引擎的实施方式可以随实施方式的不同而变化。例如,RNIC引擎可以被包括在网络适配器卡上的集成电路或某个其它硬件中。在另一实施例中,网络适配器可以包括具有用于处理RDMA消息并执行直接存储器访问的有限指令集的专用处理器。
持久随机存取存储器
PRAM148是可以改变或读取单独的存储位而不需要擦除或读取整个存储单元(storagecell)块的非易失性RAM。因此,与诸如闪速存储器和硬盘之类的块设备相比,PRAM不限于以块的形式移动数据。此外,PRAM148中的数据可以被重写,而不必先擦除它。PRAM148的示例包括但不限于相变存储器和铁电RAM。
除了用作针对远程客户端的持久数据存储之外,PRAM148可以用作存储服务器140的主存储器。例如,可以将PRAM148用作对诸如DRAM之类的易失性存储器的直接替换,或者除了易失性存储器以外还可以使用PRAM148,并且PRAM148可以由内核144以相同的方式管理。因此,可以以与DRAM相同的方式对PRAM148进行分页和/或分段。此外,可以以与DRAM相同的方式对PRAM148进行模块化,诸如以双列直插存储器模块(DIMM)的方式。相应地,PRAM148可以包括一个或多个模块,其中每个模块具有多个电触头,该多个电触头连接到存储服务器140内的系统总线,例如外围组件互连(PCI)或PCI快速(PCIe)总线。与DRAM相比,PRAM148不需要被刷新,并且不需要电力来维持存储的数据。
PRAM148可以被布置在行和列的网格图形中,其中行和列的交叉是存储数据位的存储单元的地址。因此,每个存储单元可以通过识别其相应的行地址和列地址而被单独访问。还可以通过使用存储器控制器驱动PRAM148,该存储器控制器使用诸如在双倍数据速率(DDR)或单倍数据速率(SDR)存储器控制器中使用的多路复用器电路。
对PRAM的共享直接访问
在实施例中,存储服务器140针对多个远程客户端提供对PRAM148的共享访问。“远程”客户端可以是经由网络通信地耦接到存储服务器140的任何客户端,例如客户端系统110。相对于这样的客户端系统,在本申请中存储服务器140也可以被称为是远程的。在本申请中存储服务器140和远程客户端中的每一个还可以被称为“节点”。节点可以指附接到网络130并能够通过网络130发送、接收和/或转发信息的电子设备。
在实施例中,只有那些已经被存储服务器140验证的远程客户端才有资格共享PRAM148。用于验证远程客户端的技术可以随实施方式的不同而变化。例如,存储服务器140可以要求远程客户端使用标识符、密码和/或任何其它认证因素进行认证。在另一示例中,存储服务器140可以将对PRAM148的访问限制到作为相同LAN的一部分或者经由无限带宽互连耦接的远程客户端。在又一示例中,系统管理员可以明确地识别针对其对PRAM148的访问被使能的远程客户端。有资格共享PRAM148的远程客户端在本申请中被称为“目标”客户端。
一旦验证了远程客户端,存储服务器140就可以允许该客户端直接访问PRAM148。例如,存储服务器140可以向每个被验证的远程客户端(即每个目标客户端)发送一个或多个访问密钥。远程客户端可以根据单边存储协议,使用访问密钥来对PRAM148执行PDMA读取和写入。如果远程客户端没有被成功验证,那么存储服务器140可以拒绝或以其它方式限制远程客户端对一个或多个访问密钥的访问。这防止了从未知或不信任的远程客户端对PRAM148的不安全访问。
每个目标客户端可以直接地访问并修改PRAM148的一个或多个区域中的数据项,即使这些数据项是由不同的远程客户端生成的。例如,第一目标客户端可以生成数据库表,并将该表存储在PRAM148中。其它目标客户端然后可以读取和/或修改PRAM148中的表的单独的行。在另一示例中,第一目标客户端可以生成诸如媒体文件之类的文档并将其存储在PRAM148中。其它目标客户端然后可以读取和/或修改PRAM148中的文档。
在一些实施例中,某些区域可以被限制到不同的目标客户端组。例如,存储服务器140可以将对PRAM148的第一区域的访问限制到第一组目标客户端,而将对PRAM148的第二区域的访问限制到第二组目标客户端。为了限制访问,存储服务器140可以仅仅将对PRAM148的第一区域的访问密钥暴露给第一组目标客户端,而仅仅将对第二区域的访问密钥暴露给第二组目标客户端。对于其它目标客户端组和PRAM148的相应区域可以类似地执行这一进程。
在实施例中,存储服务器140可以保留PRAM148的一个或多个区域以供本地使用。例如,存储服务器140可以保留一个区域以供内核144使用,并保留另一区域以供应用进程使用。因而,PRAM148既可以用作存储服务器140的主存储器又可以用作目标客户端的持久数据存储。在另一实施例中,存储服务器140还可以包括DRAM以供主存储器使用。因而PRAM148可以专用于向目标客户端提供持久存储。
存储服务器140可以包括其它形式的非易失性存储装置,例如磁盘或闪速存储装置,或者存储服务器140可以仅仅依赖于PRAM148向目标客户端提供非易失性存储装置,这依赖于特定的实施方式。
向远程客户端注册存储服务器的PRAM
为了使得目标客户端能够直接访问PRAM148,存储服务器140可以向RDMA网络注册PRAM148。图2是描绘根据实施例的用于注册持久存储器的示例过程的流程图。在步骤202中,进程142向内核144发送注册请求。该注册请求识别用于注册的PRAM148的一个或多个目标区域。例如,请求可以指定起始的虚拟或物理地址以及字节长度(即,区域的大小)。
在步骤204中,针对PRAM148的一个或多个区域生成PRAM注册信息152。PRAM注册信息152通常向网络适配器150描述PRAM的一个或多个目标区域,以便允许网络适配器150访问这些目标区域而不涉及CPU146或内核144。例如,PRAM注册信息152可以包括映射信息,该映射信息向网络适配器150提供一个或多个访问密钥的集合与目标区域的物理存储器地址之间的映射。例如,映射信息可以将一个或多个访问密钥与地址列表相关联,该地址列表指定表示目标存储器区域内的物理页面或块的地址的列表。在另一实施例中,PRAM注册信息152可以包括针对PRAM148的目标区域的虚拟存储器地址到物理存储器地址的映射。
在步骤206中,将PRAM注册信息152存储在网络适配器150可直接访问的位置。此上下文所述的可直接访问意味着网络适配器150可以在RDMA操作期间访问注册信息152,而不用从CPU146或内核144发送或接收消息。在实施例中,由网络适配器150对PRAM注册信息152进行缓存。例如,PRAM148可以存储包括转换表的注册信息,该转换表具有将访问密钥映射到相应物理地址的映射信息。这种高速缓存可以被网络适配器150直接访问,网络适配器150可以使用注册信息将密钥转换成物理地址,并执行对PRAM148的直接存储器访问。
在步骤208中,网络适配器150向目标客户端发送针对已经注册的PRAM148的至少一个目标区域的一个或多个访问密钥。在接收访问密钥时,网络适配器120可以将访问密钥缓存在PRAM访问密钥高速缓存122中。在这个步骤中发送的访问密钥可以随实施方式的不同而变化。在实施例中,向每个目标客户端发送操控标签(STag)。STag包括识别PRAM的目标区域的数据。RNIC可以使用STag来指示对远程客户端的授权,以便访问目标区域并且识别目标区域的物理PRAM地址。示例STag包括但不限于,由无限带宽协议定义的远程密钥(R_key)。
在一些实例中,存储服务器140可以禁用一个或多个目标客户端对PRAM148的访问。例如,如果目标客户端从RDMA网络中被移除或者如果系统管理员认为访问密钥已经损坏,那么系统管理员可能想要禁用对PRAM148的访问。在步骤210中,存储服务器140确定是否应当禁用目标客户端的共享访问。这可以通过响应于检测到目标客户端从RDMA互连中被移除或者响应于任何其它触发事件而被触发,这依赖于特定的实施方式。如果存储服务器140确定应当禁用访问,那么在步骤212中,使得访问密钥无效。在使得访问密钥无效之后,存储服务器140拒绝无效的访问密钥对PRAM148的访问。如果目标客户端随后恢复联机,那么存储服务器140生成并发送更新后的访问密钥。
如果在步骤210处不存在触发事件,那么在步骤214中,目标客户端可以继续使用先前生成的访问密钥来访问PRAM。因而,目标客户端可以无限期地使用在步骤208处发送的访问密钥来执行对PRAM148的目标区域的RDMA访问。例如,客户端系统110可以使用在PRAM访问密钥高速缓存122中相同的访问密钥来执行对PRAM148的多个RDMA读取和写入。也可以使用相同的访问密钥来访问PRAM148内不同的存储器位置。目标客户端可以使用访问密钥的时间与客户端有资格访问存储服务器140内的共享存储装置的时间一样长,并且存储服务器140不必针对每个RDMA操作执行PRAM148的注册。
用于向持久存储装置传输数据的单边存储协议
在实施例中,目标远程客户端实施单边存储协议以持久地在PRAM148中存储数据。该存储协议是单边的,因为其不需要存储服务器140上的CPU146进行任何消息处理或数据复制。因而,在执行I/O操作时可以使用CPU资源来执行其它任务,并且可以消除由这样的消息处理和数据复制导致的延迟。
图3是描绘根据实施例的用于实施单边存储协议的示例过程的流程图。在步骤302中,诸如进程112或内核114之类的消费者生成访问PRAM148的注册区域(即“目标”区域)的RDMA工作请求。在实施例中,工作请求使用由存储服务器140先前提供的访问密钥来识别目标区域。工作请求还可以通过指定偏移和/或长度来识别目标区域内的目标存储器位置(或子区域)。RDMA工作请求可以与对PRAM148中的目标存储器位置执行RDMA读取或写入操作的请求相对应。RI可以将工作请求转换成工作队列元素(WQE),并将WQE放置在与网络适配器120相关联的工作队列(例如发送队列)中。WQE是工作请求在网络适配器中的内部表示,并且可以直接由RI处理,而不需要与在CPU116上执行的软件进程进行通信。
在步骤304中,网络适配器120处理工作请求以生成识别目标的RDMA消息。网络适配器120可以生成RDMA读取消息或RDMA写入消息,这依赖于工作请求。RDMA写入消息使用由存储服务器140先前提供的至少一个访问密钥来识别PRAM148中用于持久地存储数据项的存储器位置。例如,RDMA写入消息可以使用STag、偏移和大小来识别存储器位置。RDMA写入消息还包括要写入到所识别出的存储器位置的数据有效负荷。RDMA读取消息可以类似地识别存储器位置以便从持久存储装置中读取数据对象。读取消息还可以包括STag或存储器118的本地缓冲区的其它标识符,以指示应当将读取的数据有效负荷放置在哪里。
在步骤306中,网络适配器120通过网络130向网络适配器150发送RDMA消息。网络适配器150可以将RDMA消息放置在诸如接收队列之类的工作队列中,以用于由网络适配器150进行后续处理。
在步骤308中,网络适配器150处理所接收到的RDMA消息,并执行对PRAM148中的目标存储器位置的直接存储器访问。响应于RDMA写入消息,网络适配器150使用直接存储器访问写入将数据有效负荷写入到目标存储器位置,并向网络适配器120返回硬件确认(即由RNIC硬件生成的确认)。对于RDMA读取,网络适配器150对来自目标存储器位置的数据执行直接存储器访问读取,并向网络适配器120返回RDMA读取响应消息。网络适配器150可以通过使用PRAM注册信息152将包括在REMA消息中的STag和偏移映射到PRAM148中的物理地址,来识别出数据项被持久地存储或应当被持久地存储在的目标存储器位置。例如,STag可以被映射到针对PRAM中的区域的特定的基物理存储器地址。偏移可以识别目标区域内读取或写入的起始位置,并且长度可以指示读取或写入的数据的大小(例如,以字节、八位字节等为单位)。
在RDMA读取的情况下,网络适配器120接收RDMA读取响应消息,该RDMA读取响应消息包括从PRAM148的目标区域读取的数据有效负荷。为了处理RDMA读取响应消息,网络适配器120可以执行直接存储器访问写入,以将消息中包括的数据有效负荷放入到存储器118的目标缓冲区中。RDMA读取响应消息可以通过使用在RDMA读取消息中由目标客户端先前提供的STag来引用目标缓冲区。在实施例中,目标缓冲区是针对从PRAM148读取的数据对象的临时存储位置。例如,目标缓冲区可以是进程112的应用存储器的一部分。因而,与用于执行对PRAM148的读取和/或写入的STag不同,用于处理RDMA读取响应消息的Stag识别出用于包括在RDMA读取响应消息中的数据有效负荷的临时存储位置。
可以执行步骤308中的直接存储器访问操作而不需要CPU146或存储服务器140上的任何其它CPU进行任何处理。替代地,网络适配器150处理由其从目标客户端的网络适配器接收到的RDMA消息触发的直接存储器访问。因而,在RDMA读取和写入期间,CPU146可以执行其它操作,而不需要处理来自目标客户端的任何消息。此外,网络适配器150可以将数据项放入PRAM148中,而不需要CPU146或存储服务器140上的任何其它CPU执行数据复制操作。
在步骤310中,在RDMA工作请求完成时,网络适配器120更新与RDMA工作请求相关联的状态。例如,网络适配器120可以在接收到硬件确认或者处理了来自RNIC150的RDMA读取响应消息之后更新该状态。在实施例中,网络适配器120通过将完成队列条目(CQE)放入完成队列中来更新RDMA工作请求的状态。CQE是WQ中已经完成的相应工作请求的RI内部表示。消费者能够通过轮询或通知来查明工作请求是否已经完成,这依赖于特定的实施方式。
确保单边RDMA写入操作期间的数据持久性
在一些情况中,电力故障和系统崩溃可能阻止向PRAM写入数据。例如,如果网络适配器120向网络适配器150发送RDMA写入消息,那么网络适配器150可以缓冲该写入消息并且一旦接收到该消息的最后一个字节就发送硬件确认。但是,在发送硬件确认时,数据有效负荷的一部分可能仍然位于网络适配器150的缓冲区中。如果在将数据有效负荷的全部或一部分放到连接PRAM148与网络适配器150的外围总线上之前电力故障或者系统崩溃,那么这一数据可能不会被写入PRAM148。
在实施例中,目标客户端的网络适配器在每个RDMA写入之后生成RDMA读取消息,以确保数据已经被持久存储。RDMA读取消息可以指向包括在RDMA写入数据有效负荷中的最后一部分数据。由于RDMA协议实施的有序化的(ordering)功能,因此只有在数据有效负荷的所有先前部分已经被写入PRAM之后才将最后一部分数据放在存储器中。只读取数据有效负荷的最后一部分将RDMA响应消息的大小最小化,并减小了协议延迟。
图4是说明根据实施例的用于向持久存储器写入数据的示例过程的梯形图。在步骤402中,客户端系统110生成向持久存储装置写入目标数据的请求。在步骤404中,客户端系统110发送包括目标数据的RDMA写入消息。在步骤406中,在网络适配器已经接收整个写入消息时,存储服务器返回硬件确认。在步骤408中,客户端系统110发布识别目标数据的最后一部分的RDMA读取消息。在实施例中,最后一部分是被写入的数据的最后一个字节。但是依赖于特定的实施方式,可以指定任何其它部分。在步骤410中,存储服务器140发送包括目标数据的最后一部分的RDMA读取响应。在步骤412中,响应于确定RDMA读取是成功的,客户端系统110可以确定目标数据被持久存储。
可以根据上面描述的技术处理RDMA读取响应。例如,可以将数据的最后一个字节放入应用存储器的临时缓冲区中。一旦成功地处理了RDMA读取响应,诸如数据库服务器之类的应用就可以确定数据被成功地写入持久存储装置。应用然后可以从临时缓冲区丢弃数据的最后一部分。
在一些实例中,可以在目标数据被物理地写入PRAM148之前返回RDMA读取响应。在示例实施例中,可以在将目标数据的最后一部分放到诸如PCIe总线之类的、连接网络适配器150与PRAM148的外围总线上之后,返回RDMA读取响应。在实施例中,一旦数据在外围总线上,网络适配器150就可以假定数据被PRAM148持久地存储。存储系统140可以确保:一旦数据被放到这样的外围总线上,就会有足够的电力来刷新网络适配器150与PRAM148之间的任何中间缓冲区,以使得数据被写入适当的PRAM位置。因而,一旦网络适配器150将数据放到外围总线上,存储系统140就可以保证数据将到达PRAM148。
因而,目标客户端可以使用单边协议来确定存储服务器已经将数据对象持久地存储在PRAM148中。被持久地存储的数据对象可以随实施方式的不同而变化。例如,数据库可以整个地或部分地存储在PRAM148中。作为另一示例,文件系统可以整个地或部分地存储在PRAM148中。因而,数据对象可以是用于存储数据的任何资源,并且示例数据对象可以包括但不限于:计算机文件,例如文档、图像和其它媒体文件;数据库对象,例如表、分区和视图;以及元数据,例如文件和数据库对象定义。
硬件概述
根据一个实施例,本申请所描述的技术是由一个或多个专用计算设备实施的。专用计算设备可以是用于执行所述技术而硬连线的,或者可以包括被持久编程以执行所述技术的数字电子设备,例如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可以包括被编程以根据固件、存储器、其它存储装置或组合中的程序指令来执行所述技术的一个或多个通用硬件处理器。这样的专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制的编程组合起来以实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或包含用于实施所述技术的硬连线逻辑和/或程序逻辑的任何其它设备。
例如,图5是说明可以在其上实施本发明的实施例的计算机系统500的框图。计算机系统500包括总线502或用于传送信息的其它通信机制,以及与总线502耦接以用于处理信息的硬件处理器504。硬件处理器504例如可以是通用微处理器。
计算机系统500还包括耦接到总线502以用于存储信息和要被处理器504执行的指令的主存储器506,例如随机存取存储器(RAM)或其它动态存储装置。主存储器506还可以用于在要由处理器504执行的指令的执行期间存储临时变量或其它中间信息。这样的指令在被存储到处理器504可访问的非暂时性存储介质时,使得计算机系统500成为被定制以执行指令中指定的操作的专用机器。
计算机系统500还包括耦接到总线502以用于存储静态信息和针对处理器504的指令的只读存储器(ROM)508或其它静态存储设备。诸如磁盘、光盘或固态驱动器之类的存储设备510被提供,并耦接到总线502以用于存储信息和指令。
计算机系统500可以经由总线502耦接到诸如阴极射线管(CRT)之类的显示器512以用于向计算机用户显示信息。包括字母数字和其它键的输入设备514耦接到总线502,以用于将信息和命令选择传送给处理器504。另一类型的用户输入设备是诸如鼠标、轨迹球或光标方向键之类的光标控件,以用于向处理器504传送方向信息和命令选择,并用于控制光标在显示器512上的移动。这种输入设备通常具有两个轴上的两个自由度,第一轴(例如x)和第二轴(例如y),其允许设备指定平面中的位置。
计算机系统500可以使用与计算机系统结合使得计算机系统500成为专用机器或将计算机系统500编程为专用机器的定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施本申请所描述的技术。根据一个实施例,本申请的技术是响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列而由计算机系统500执行的。可以从诸如存储设备510之类的另一存储介质将这样的指令读取到主存储器506中。对包含在主存储器506中的指令的序列的执行使得处理器504执行本申请所描述的过程步骤。在替换的实施例中,可以使用硬连线电路来替代软件指令或与软件指令组合。
本申请使用的术语“存储介质”是指存储使得机器以特定方式操作的数据和/或指令的任何非暂时性介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如,光盘、磁盘或固态驱动器,例如存储设备510。易失性介质包括动态存储器,例如主存储器506。存储介质的常用形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM以及EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式存储器。
存储介质不同于传输介质,但是可以与传输介质结合使用。传输介质参与在存储介质之间传递信息。例如,传输介质包括同轴电缆、铜线和光纤,包括组成总线502的线。传输介质还可以采用声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些。
各种形式的介质可以涉及将一个或多个指令的一个或多个序列携带到处理器504以供执行。例如,指令初始可以处于远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线来发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号携带的数据,并且适当的电路可以将数据放在总线502上。总线502将数据携带到主存储器506,处理器504从主存储器506中检索并执行指令。可选地,可以在处理器540执行之前或之后将主存储器506接收到的指令存储在存储设备510上。
计算机系统500还包括耦接到总线502的通信接口518。通信接口518提供与网络链路520耦接的双向数据通信,网络链路520连接到本地网络522。例如,通信接口518可以是RNIC。还可以实施无线链路。在任何这样的实施方式中,通信接口518发送并接收电信号、电磁信号或光信号,这些信号携带表示各种类型的信息的数字数据流。
网络链路520一般提供通过一个或多个网络与其它数据设备的数据通信。例如,网络链路520可以提供通过本地网络522与主计算机524或者与因特网服务提供商(ISP)526操作的数据装置的连接。ISP526进而通过现在通常称为“因特网”528的世界范围的分组数据通信网络来提供数据通信服务。本地网络522和因特网528两者均使用携带数字数据流的电信号、电磁信号或光信号。通过各个网络的信号以及网络链路520上并且通过通信接口518的信号是示例形式的传输介质,这些信号向计算机系统500并且从计算机系统500携带数字数据。
计算机系统500可以通过网络、网络链路520和通信接口518发送消息和接收包括程序代码的数据。在因特网的示例中,服务器530可以通过因特网528、ISP526、本地网络522和通信接口518发送应用程序的请求代码。
接收到的代码可以在其被接收时由处理器504执行,和/或可以存储在存储设备510或其它非易失性存储装置中以供后续执行。
延伸和替换
在上述说明书中,已经参考大量的具体细节描述了本发明的实施例,这些具体细节可以随着实施方式的不同而变化。相应地,应当以说明性而不是限制性的意义看待说明书和附图。本发明的范围的唯一并且排他的指标以及申请人想要的发明的范围是一组权利要求的字面和等效范围,该一组权利要求是以这些权利要求发布的具体形式由本申请发布的,包括任何后续修正。
Claims (13)
1.一种用于向一个或多个远程节点提供对持久随机存取存储器PRAM的直接访问的方法,所述方法包括:
针对使能了远程直接访问存储器的网络接口控制器RNIC,生成将访问密钥与PRAM中的目标区域相关联的注册信息;
向所述一个或多个远程节点中的远程节点发送所述访问密钥;
由所述RNIC从所述远程节点接收包括所述访问密钥的远程直接存储器访问RDMA消息;
由所述RNIC执行PRAM的所述目标区域内的直接存储器访问。
2.如权利要求1所述的方法,其中所述RDMA消息包括数据有效负荷,并基于所述访问密钥识别在PRAM的所述目标区域内用于持久性地存储所述数据有效负荷的存储器位置。
3.如权利要求2所述的方法,所述方法还包括:
由所述RNIC从所述远程节点接收识别所述数据有效负荷的最后一部分的RDMA读取消息;
由所述RNIC向所述远程节点返回包括所述数据有效负荷的所述最后一部分的RDMA读取响应消息;
其中所述RDMA读取响应消息确认所述数据有效负荷已经被持久地存储。
4.如权利要求1所述的方法,其中所述RDMA消息基于所述访问密钥识别数据库内持久地存储数据对象的存储器位置。
5.如权利要求4所述的方法,所述方法还包括:由所述RNIC在所述RDMA读取响应消息中向所述远程节点返回所述数据对象;其中,所述RDMA读取响应消息引用所述远程节点中应当放置所述数据对象的缓冲区。
6.如权利要求1所述的方法,
其中,所述RDMA消息是第一RDMA消息,所述第一RDMA消息基于所述访问密钥来识别PRAM的所述目标区域内的第一存储器位置;
其中,所述直接存储器访问是针对PRAM的所述目标区域内的所述第一存储器位置的;
所述方法还包括:
由所述RNIC从所述远程节点接收第二RDMA消息,所述第二RDMA消息包括所述访问密钥并识别PRAM的所述目标区域内的第二存储器位置;
由所述RNIC执行对PRAM的所述目标区域内的所述第二存储器位置的第二直接存储器访问。
7.如权利要求1所述的方法,其中,所述直接存储器访问是第一直接存储器访问,其中,所述注册信息将第二访问密钥与PRAM中的所述目标区域关联起来,所述方法还包括:
向所述一个或多个远程节点中的第二远程节点发送所述第二访问密钥;
在所述RNIC处从所述第二远程节点接收包括所述第二访问密钥的第二RDMA消息;
响应于在所述RNIC处从所述第二远程节点接收到包括所述第二访问密钥的所述第二RDMA消息,由所述RNIC执行PRAM的所述目标区域内的第二直接存储器访问。
8.如权利要求7所述的方法,其中,所述第二直接存储器访问针对的PRAM的所述目标区域中的存储器位置与所述第一直接存储器访问针对的存储器位置相同。
9.一个或多个存储指令的非暂时性存储介质,所述指令在被一个或多个计算设备执行时引起对权利要求1-8中的任何一个所述的方法的执行。
10.一种用于向一个或多个远程节点提供对持久随机存取存储器PRAM的直接访问的装置,所述装置包括:
一个或多个中央处理单元CPU;
PRAM;
远程直接访问存储器使能的网络接口控制器RNIC,其被配置为:
生成将访问密钥与PRAM中的目标区域相关联的注册信息;
向所述一个或多个远程节点中的远程节点发送所述访问密钥;
从所述远程节点接收包括所述访问密钥的远程直接存储器访问RDMA消息;
执行PRAM的所述目标区域内的直接存储器访问;
将所述一个或多个CPU、所述PRAM和所述RNIC互连起来的总线。
11.如权利要求10所述的装置,其中,RNIC接收所述远程直接存储器访问消息,并执行所述直接存储器访问而不与所述一个或多个CPU交互。
12.如权利要求10所述的装置,其中,所述RDMA消息包括数据有效负荷,并基于所述访问密钥识别PRAM的所述目标区域内用于持久地存储所述数据有效负荷的存储器位置。
13.如权利要求10所述的装置,其中,所述注册信息将第二访问密钥与PRAM中的所述目标区域关联起来,所述RNIC还被配置为:
向所述一个或多个远程节点中的第二远程节点发送所述第二访问密钥;
从所述第二远程节点接收包括所述第二访问密钥的第二RDMA消息;
响应于从所述第二远程节点接收到包括所述第二访问密钥的所述第二RDMA消息,执行PRAM的所述目标区域内的第二直接存储器访问。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/956,096 | 2013-07-31 | ||
US13/956,096 US10223326B2 (en) | 2013-07-31 | 2013-07-31 | Direct access persistent memory shared storage |
PCT/US2014/049098 WO2015017640A1 (en) | 2013-07-31 | 2014-07-31 | Direct access to persistent memory of shared storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105408880A true CN105408880A (zh) | 2016-03-16 |
CN105408880B CN105408880B (zh) | 2019-03-26 |
Family
ID=51390193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480042557.XA Active CN105408880B (zh) | 2013-07-31 | 2014-07-31 | 对共享存储装置的持久存储器的直接访问 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10223326B2 (zh) |
EP (1) | EP3028162B1 (zh) |
CN (1) | CN105408880B (zh) |
WO (1) | WO2015017640A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN106844048A (zh) * | 2017-01-13 | 2017-06-13 | 上海交通大学 | 基于硬件特性的分布式共享内存方法及系统 |
CN107656883A (zh) * | 2016-07-26 | 2018-02-02 | 忆锐公司 | 基于电阻切换式存储器的协处理器和包括其的计算设备 |
CN108664420A (zh) * | 2017-03-28 | 2018-10-16 | 慧与发展有限责任合伙企业 | 共享式永久存储器的基于容量的锁定和访问 |
CN108710638A (zh) * | 2018-04-13 | 2018-10-26 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
CN108780406A (zh) * | 2016-03-25 | 2018-11-09 | 微软技术许可有限责任公司 | 使用rdma共享工作数据的存储器 |
CN109274647A (zh) * | 2018-08-27 | 2019-01-25 | 杭州创谐信息技术股份有限公司 | 分布式可信内存交换方法及系统 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
CN109587442A (zh) * | 2017-09-29 | 2019-04-05 | 特克特朗尼克公司 | 镜像针对因特网协议接收方的流配置 |
CN109983749A (zh) * | 2016-11-18 | 2019-07-05 | 微软技术许可有限责任公司 | 使用远程直接存储器访问通信的更快的数据传输 |
CN110413217A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机程序产品 |
WO2020001459A1 (zh) * | 2018-06-26 | 2020-01-02 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
CN111033481A (zh) * | 2017-08-31 | 2020-04-17 | 甲骨文国际公司 | 非易失性存储器上的直接映射的缓冲区高速缓存 |
CN111066011A (zh) * | 2017-09-29 | 2020-04-24 | 甲骨文国际公司 | 具有nvdimm作为持久性存储装置的数据库 |
CN111858418A (zh) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
CN114153401A (zh) * | 2021-12-09 | 2022-03-08 | 建信金融科技有限责任公司 | 发送端或接收端数据的远程持久化方法和远程持久化系统 |
WO2022205054A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 存储系统和远程直接数据存取方法 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015070341A1 (en) * | 2013-11-14 | 2015-05-21 | Pleasant Solutions Inc. | System and method for credentialed access to a remote server |
US10133741B2 (en) | 2014-02-13 | 2018-11-20 | Amazon Technologies, Inc. | Log data service in a virtual environment |
EP3349418B1 (en) * | 2014-05-29 | 2019-07-24 | Huawei Technologies Co., Ltd. | Service processing method, related device, and system |
US10664535B1 (en) | 2015-02-02 | 2020-05-26 | Amazon Technologies, Inc. | Retrieving log data from metric data |
US11829349B2 (en) * | 2015-05-11 | 2023-11-28 | Oracle International Corporation | Direct-connect functionality in a distributed database grid |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
US20170155717A1 (en) * | 2015-11-30 | 2017-06-01 | Intel Corporation | Direct memory access for endpoint devices |
US20170242822A1 (en) * | 2016-02-18 | 2017-08-24 | Samsung Electronics Co., Ltd. | Dram appliance for data persistence |
US10929059B2 (en) * | 2016-07-26 | 2021-02-23 | MemRay Corporation | Resistance switching memory-based accelerator |
US10936198B2 (en) * | 2016-07-26 | 2021-03-02 | MemRay Corporation | Resistance switching memory-based coprocessor and computing device including the same |
KR101944037B1 (ko) * | 2017-09-04 | 2019-01-30 | 주식회사 맴레이 | 저항 변화 메모리 기반 가속기 |
US10713276B2 (en) | 2016-10-03 | 2020-07-14 | Ocient, Inc. | Data transition in highly parallel database management system |
US9794366B1 (en) | 2016-10-19 | 2017-10-17 | Red Hat, Inc. | Persistent-memory management |
WO2018112074A1 (en) | 2016-12-14 | 2018-06-21 | Ocient Llc | System and method for utilizing a designated leader within a database management system |
EP3555774B8 (en) | 2016-12-14 | 2024-03-27 | Ocient Inc. | Efficient database management system utilizing silo and manifest |
US20180239725A1 (en) * | 2017-02-17 | 2018-08-23 | Intel Corporation | Persistent Remote Direct Memory Access |
CN108733506B (zh) | 2017-04-17 | 2022-04-12 | 伊姆西Ip控股有限责任公司 | 用于数据同步的方法、设备和计算机可读介质 |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US10747765B2 (en) | 2017-05-30 | 2020-08-18 | Ocient Inc. | System and method for optimizing large database management systems with multiple optimizers |
US10567372B2 (en) * | 2017-06-16 | 2020-02-18 | International Business Machines Corporation | Establishing security over converged ethernet with TCP credential appropriation |
US10547683B2 (en) * | 2017-06-26 | 2020-01-28 | Christopher Squires | Object based storage systems that utilize direct memory access |
CN107766261A (zh) * | 2017-09-22 | 2018-03-06 | 华为技术有限公司 | 数据校验的方法、装置以及网卡 |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US20190102287A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Remote persistent memory access device |
CN109981480A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
CN108990126B (zh) * | 2018-07-25 | 2020-12-29 | 新华三技术有限公司 | 报文转发方法和装置 |
US10848585B2 (en) | 2018-12-03 | 2020-11-24 | Walmart Apollo, Llc | Using a sharded distributed cache as a pipeline integration buffer |
CN113852656B (zh) * | 2020-06-28 | 2023-02-10 | 华为技术有限公司 | 一种数据传输方法、处理器系统及内存访问系统 |
CN113971138A (zh) * | 2020-07-24 | 2022-01-25 | 华为技术有限公司 | 一种数据访问方法及相关设备 |
US11409685B1 (en) | 2020-09-24 | 2022-08-09 | Amazon Technologies, Inc. | Data synchronization operation at distributed computing system |
US11467992B1 (en) | 2020-09-24 | 2022-10-11 | Amazon Technologies, Inc. | Memory access operation in distributed computing system |
US11354258B1 (en) * | 2020-09-30 | 2022-06-07 | Amazon Technologies, Inc. | Control plane operation at distributed computing system |
CN112988680B (zh) * | 2021-03-30 | 2022-09-27 | 联想凌拓科技有限公司 | 数据加速方法、缓存单元、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132017A1 (en) * | 2003-12-11 | 2005-06-16 | International Business Machines Corporation | Reducing number of write operations relative to delivery of out-of-order RDMA send messages |
US20050198062A1 (en) * | 2004-03-05 | 2005-09-08 | Shapiro Richard B. | Method and apparatus for accelerating data access operations in a database system |
US20080177803A1 (en) * | 2007-01-24 | 2008-07-24 | Sam Fineberg | Log Driven Storage Controller with Network Persistent Memory |
US20120166886A1 (en) * | 2010-12-27 | 2012-06-28 | Netapp | Non-disruptive failover of rdma connection |
WO2013109640A1 (en) * | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
US7415723B2 (en) * | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US7320083B2 (en) * | 2003-04-23 | 2008-01-15 | Dot Hill Systems Corporation | Apparatus and method for storage controller to deterministically kill one of redundant servers integrated within the storage controller chassis |
US7610348B2 (en) * | 2003-05-07 | 2009-10-27 | International Business Machines | Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed |
US7370082B2 (en) * | 2003-05-09 | 2008-05-06 | Microsoft Corporation | Remote invalidation of pre-shared RDMA key |
JP2007510198A (ja) * | 2003-10-08 | 2007-04-19 | ユニシス コーポレーション | ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化 |
US7580406B2 (en) * | 2004-12-31 | 2009-08-25 | Intel Corporation | Remote direct memory access segment generation by a network controller |
US8688800B2 (en) * | 2005-10-05 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Remote configuration of persistent memory system ATT tables |
US8266472B2 (en) * | 2006-05-03 | 2012-09-11 | Cisco Technology, Inc. | Method and system to provide high availability of shared data |
US20080201234A1 (en) * | 2007-02-16 | 2008-08-21 | Microsoft Corporation | Live entities internet store service |
US7774568B2 (en) * | 2007-08-13 | 2010-08-10 | Novell, Inc. | Clustered snapshots in networks |
US7921686B2 (en) * | 2007-08-28 | 2011-04-12 | Cisco Technology, Inc. | Highly scalable architecture for application network appliances |
US7885953B2 (en) * | 2007-10-03 | 2011-02-08 | International Business Machines Corporation | Off-loading star join operations to a storage server |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US8448016B2 (en) * | 2009-07-31 | 2013-05-21 | Cleversafe, Inc. | Computing core application access utilizing dispersed storage |
US8566297B1 (en) * | 2010-01-14 | 2013-10-22 | Symantec Corporation | Method to spoof data formats from image backups |
US9263102B2 (en) * | 2010-09-28 | 2016-02-16 | SanDisk Technologies, Inc. | Apparatus, system, and method for data transformations within a data storage device |
US9331955B2 (en) * | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US9519647B2 (en) * | 2012-04-17 | 2016-12-13 | Sandisk Technologies Llc | Data expiry in a non-volatile device |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9306947B2 (en) * | 2012-11-14 | 2016-04-05 | Click Security, Inc. | Automated security analytics platform with multi-level representation conversion for space efficiency and incremental persistence |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
US9311110B2 (en) * | 2013-07-08 | 2016-04-12 | Intel Corporation | Techniques to initialize from a remotely accessible storage device |
WO2015094179A1 (en) | 2013-12-17 | 2015-06-25 | Hewlett-Packard Development Company, L.P. | Abstraction layer between a database query engine and a distributed file system |
-
2013
- 2013-07-31 US US13/956,096 patent/US10223326B2/en active Active
-
2014
- 2014-07-31 EP EP14753383.0A patent/EP3028162B1/en active Active
- 2014-07-31 CN CN201480042557.XA patent/CN105408880B/zh active Active
- 2014-07-31 WO PCT/US2014/049098 patent/WO2015017640A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132017A1 (en) * | 2003-12-11 | 2005-06-16 | International Business Machines Corporation | Reducing number of write operations relative to delivery of out-of-order RDMA send messages |
CN100476769C (zh) * | 2003-12-11 | 2009-04-08 | 国际商业机器公司 | 降低写操作的数量的方法和系统 |
US20050198062A1 (en) * | 2004-03-05 | 2005-09-08 | Shapiro Richard B. | Method and apparatus for accelerating data access operations in a database system |
US20080177803A1 (en) * | 2007-01-24 | 2008-07-24 | Sam Fineberg | Log Driven Storage Controller with Network Persistent Memory |
US20120166886A1 (en) * | 2010-12-27 | 2012-06-28 | Netapp | Non-disruptive failover of rdma connection |
WO2013109640A1 (en) * | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108780406B (zh) * | 2016-03-25 | 2021-12-03 | 微软技术许可有限责任公司 | 使用rdma共享工作数据的存储器 |
CN108780406A (zh) * | 2016-03-25 | 2018-11-09 | 微软技术许可有限责任公司 | 使用rdma共享工作数据的存储器 |
CN107656883A (zh) * | 2016-07-26 | 2018-02-02 | 忆锐公司 | 基于电阻切换式存储器的协处理器和包括其的计算设备 |
CN109983749B (zh) * | 2016-11-18 | 2021-10-26 | 微软技术许可有限责任公司 | 计算设备和提高数据传递速度的方法 |
CN109983749A (zh) * | 2016-11-18 | 2019-07-05 | 微软技术许可有限责任公司 | 使用远程直接存储器访问通信的更快的数据传输 |
CN106657365B (zh) * | 2016-12-30 | 2019-12-17 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN106844048A (zh) * | 2017-01-13 | 2017-06-13 | 上海交通大学 | 基于硬件特性的分布式共享内存方法及系统 |
CN106844048B (zh) * | 2017-01-13 | 2020-11-06 | 上海交通大学 | 基于硬件特性的分布式共享内存方法及系统 |
CN108664420A (zh) * | 2017-03-28 | 2018-10-16 | 慧与发展有限责任合伙企业 | 共享式永久存储器的基于容量的锁定和访问 |
CN111033481A (zh) * | 2017-08-31 | 2020-04-17 | 甲骨文国际公司 | 非易失性存储器上的直接映射的缓冲区高速缓存 |
CN111033481B (zh) * | 2017-08-31 | 2023-10-27 | 甲骨文国际公司 | 非易失性存储器上的直接映射的缓冲区高速缓存 |
CN109587442B (zh) * | 2017-09-29 | 2022-11-15 | 巨人计划有限责任公司 | 镜像针对因特网协议接收方的流配置的方法和存储介质 |
CN109587442A (zh) * | 2017-09-29 | 2019-04-05 | 特克特朗尼克公司 | 镜像针对因特网协议接收方的流配置 |
CN111066011A (zh) * | 2017-09-29 | 2020-04-24 | 甲骨文国际公司 | 具有nvdimm作为持久性存储装置的数据库 |
CN111066011B (zh) * | 2017-09-29 | 2023-10-31 | 甲骨文国际公司 | 具有nvdimm作为持久性存储装置的数据库 |
CN108710638B (zh) * | 2018-04-13 | 2020-06-12 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
CN108710638A (zh) * | 2018-04-13 | 2018-10-26 | 上海交通大学 | 一种基于混合rdma操作的分布式并发控制方法及系统 |
CN110413217A (zh) * | 2018-04-28 | 2019-11-05 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机程序产品 |
CN110413217B (zh) * | 2018-04-28 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机程序产品 |
WO2020001459A1 (zh) * | 2018-06-26 | 2020-01-02 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
CN110647480A (zh) * | 2018-06-26 | 2020-01-03 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
CN110647480B (zh) * | 2018-06-26 | 2023-10-13 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
CN109274647B (zh) * | 2018-08-27 | 2021-08-10 | 杭州创谐信息技术股份有限公司 | 分布式可信内存交换方法及系统 |
CN109274647A (zh) * | 2018-08-27 | 2019-01-25 | 杭州创谐信息技术股份有限公司 | 分布式可信内存交换方法及系统 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
CN111858418B (zh) * | 2019-04-30 | 2023-04-07 | 华为技术有限公司 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
CN111858418A (zh) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | 一种基于远程直接内存访问rdma的内存通信方法及装置 |
WO2022205054A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 存储系统和远程直接数据存取方法 |
CN114153401A (zh) * | 2021-12-09 | 2022-03-08 | 建信金融科技有限责任公司 | 发送端或接收端数据的远程持久化方法和远程持久化系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150039712A1 (en) | 2015-02-05 |
EP3028162B1 (en) | 2018-01-10 |
WO2015017640A1 (en) | 2015-02-05 |
EP3028162A1 (en) | 2016-06-08 |
US10223326B2 (en) | 2019-03-05 |
CN105408880B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105408880A (zh) | 对共享存储装置的持久存储器的直接访问 | |
US11755527B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
US9998558B2 (en) | Method to implement RDMA NVME device | |
US10257273B2 (en) | Systems, methods and devices for RDMA read/write operations | |
JP6543714B2 (ja) | 周辺デバイス、周辺デバイスによりエミュレートするための方法 | |
US9986028B2 (en) | Techniques to replicate data between storage servers | |
US9378049B1 (en) | Servicing I/O requests in an I/O adapter device | |
US10248607B1 (en) | Dynamic interface port assignment for communication transaction | |
US20070041383A1 (en) | Third party node initiated remote direct memory access | |
CN100462947C (zh) | 用于实现卸载发起方功能的方法和系统 | |
US11675326B2 (en) | Method and apparatus for remote field programmable gate array processing | |
US20160092123A1 (en) | Memory write management in a computer system | |
EP3719648A1 (en) | Edge component computing system having integrated faas call handling capability | |
CN103858111A (zh) | 一种实现聚合虚拟化中内存共享的方法、设备和系统 | |
KR20170013270A (ko) | 플래시 메모리 기반 저장 디바이스의 입력/출력 가상화 (iov) 호스트 제어기 (hc) (iov-hc) | |
CN114442916A (zh) | 存储器设备、主机系统及操作存储器设备的方法 | |
US9910813B1 (en) | Single function using multiple ports | |
US20150074316A1 (en) | Reflective memory bridge for external computing nodes | |
US20230325277A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
KR20210098302A (ko) | NVMe SGL 비트 버킷 전송들 | |
US9703714B2 (en) | System and method for management of cache configuration | |
US20040193832A1 (en) | Physical mode windows | |
US20220147470A1 (en) | System, device, and method for accessing memory based on multi-protocol | |
US7565504B2 (en) | Memory window access mechanism | |
Kwon et al. | Gen‐Z memory pool system implementation and performance measurement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |