CN108733506B - 用于数据同步的方法、设备和计算机可读介质 - Google Patents

用于数据同步的方法、设备和计算机可读介质 Download PDF

Info

Publication number
CN108733506B
CN108733506B CN201710249894.1A CN201710249894A CN108733506B CN 108733506 B CN108733506 B CN 108733506B CN 201710249894 A CN201710249894 A CN 201710249894A CN 108733506 B CN108733506 B CN 108733506B
Authority
CN
China
Prior art keywords
processor
rdma
data
cache
cause
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
Application number
CN201710249894.1A
Other languages
English (en)
Other versions
CN108733506A (zh
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 CN201710249894.1A priority Critical patent/CN108733506B/zh
Priority to US15/954,902 priority patent/US10812584B2/en
Publication of CN108733506A publication Critical patent/CN108733506A/zh
Priority to US17/015,764 priority patent/US11349920B2/en
Application granted granted Critical
Publication of CN108733506B publication Critical patent/CN108733506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

本公开的实施例涉及用于数据同步的方法、设备和计算机可读介质。该方法包括在第一处理器处,响应于接收到用于同步数据的第一请求,向第二处理器发起第一远程直接存储器访问(RDMA)操作,第一RDMA操作在第一处理器中的第一缓存和第二处理器中的第二缓存之间传输数据。该方法还包括响应于第一RDMA操作完成,将数据写入到与第一处理器耦合的第一持久性存储设备中。该方法还包括向第二处理器传输命令,以指示第二处理器将数据提交到与第二处理器耦合的第二持久性存储设备中。此外,该方法还包括检测来自第二处理器的针对命令的确认,该确认指示数据在第一处理器和第二处理器之间被同步。

Description

用于数据同步的方法、设备和计算机可读介质
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及用于数据同步的方法、设备和计算机可读介质。
背景技术
为了保护数据免受灾难的影响,需要实现用于数据同步的复制技术,以使得多个数据的副本能够被安全地存储。复制解决方案的选择涉及很多因素,诸如能够被丢失的数据量、恢复所需的时间、以及站点之间的距离等。传统的复制解决方案通常是基于应用或文件的,或者要求附加的设施。因此,传统的复制解决方案通常无法实现存储块级的远程复制。
为了实现不同站点间的数据的存储块级复制,需要实现不同站点间的缓存镜像。在具有多个存储处理器的存储系统中,通常可以利用点到点的局部总线(例如,命令接口)来在多个存储处理器之间交换数据。这样的局部总线通常被构建在外围组件快速互联(PCIe)交换结构上,以通过PCIe物理接口实现本地缓存镜像。然而,这样的实现限制了多个存储处理器的远程部署。此外,这样的实现的另一潜在问题在于点到点的基础设施无法支持存储系统的扩展。
发明内容
本公开的实施例提供了用于数据同步的方法、设备和计算机可读介质。
在本公开的第一方面,提供了一种用于数据同步的方法。该方法包括:在第一处理器处,响应于接收到用于同步数据的第一请求,向第二处理器发起第一远程直接存储器访问(RDMA)操作,第一RDMA操作在第一处理器中的第一缓存和第二处理器中的第二缓存之间传输数据;响应于第一RDMA操作完成,将数据写入到与第一处理器耦合的第一持久性存储设备中;向第二处理器传输命令,以指示第二处理器将数据提交到与第二处理器耦合的第二持久性存储设备中;以及检测来自第二处理器的针对命令的确认,该确认指示数据在第一处理器和第二处理器之间被同步。
在本公开的第二方面,提供了一种用于数据同步的方法。该方法包括:在第二处理器处,响应于从第一处理器接收到经由第一远程直接存储器访问(RDMA)操作而传输的数据,向第一处理器传输针对第一RDMA操作的确认;响应于从第一处理器接收到用于将数据提交到持久性存储设备的命令,向第一处理器传输针对命令的确认;以及响应于命令,将数据写入到与第二处理器耦合的持久性存储设备中。
在本公开的第三方面,提供了一种用于数据同步的设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:响应于接收到用于同步数据的第一请求,向第二处理器发起第一远程直接存储器访问(RDMA)操作,第一RDMA操作在第一处理器中的第一缓存和第二处理器中的第二缓存之间传输数据;响应于第一RDMA操作完成,将数据写入到与第一处理器耦合的第一持久性存储设备中;向第二处理器传输命令,以指示第二处理器将数据提交到与第二处理器耦合的第二持久性存储设备中;以及检测来自第二处理器的针对命令的确认,该确认指示数据在第一处理器和第二处理器之间被同步。
在本公开的第四方面,提供了一种用于数据同步的设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:响应于从第一处理器接收到经由第一远程直接存储器访问(RDMA)操作而传输的数据,向第一处理器传输针对第一RDMA操作的确认;响应于从第一处理器接收到用于将数据提交到持久性存储设备的命令,向第一处理器传输针对命令的确认;以及响应于命令,将数据写入到与第二处理器耦合的持久性存储设备中。
在本公开的第五方面,提供了一种计算机可读存储介质。该计算机可读存储介质具有存储在其上的计算机可读程序指令,计算机可读程序指令在被处理单元执行时使得该处理单元实现根据本公开的第一方面所描述的方法的任意步骤。
在本公开的第六方面,提供了一种计算机可读存储介质。该计算机可读存储介质具有存储在其上的计算机可读程序指令,计算机可读程序指令在被处理单元执行时使得该处理单元实现根据本公开的第二方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的存储系统100的架构图;
图2示出了根据本公开的实施例的存储系统200的架构图;
图3图示了根据本公开的实施例的用于数据同步的方法300的流程图;
图4图示了根据本公开的实施例的用于数据同步的装置400的框图;
图5图示了根据本公开的实施例的用于数据同步的装置500的框图;以及
图6示出了可以用来实施本公开内容的实施例的示例设备600的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所描述的,传统的数据同步方案通常是基于应用或文件的,其通常无法实现不同站点间的块级远程复制。在具有多个存储处理器的存储系统中,通常能够实现被构建在PCIe交换结构上的缓存镜像功能。然而,这样的实现限制了多个存储处理器的远程部署,并且不具有可扩展性。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种用于数据同步的方案。该方案利用无限带宽(Infiniband,简称“IB”)交换结构来互连多个存储处理器,并且通过增强的远程直接存储器访问(RDMA)操作来实现数据在多个存储处理器中的相应缓存之间的传输。因此,该方案能够实现具有低延迟、高吞吐量和可扩展性的远程数据同步。此外,该方案还提供了远程缓存提交机制,以进一步提升远程数据同步的可靠性。
图1示出了根据本公开的实施例的存储系统100的架构图。应当理解,如图1所示的存储系统100的结构和功能仅用于示例的目的,而不暗示对于本公开的范围的任何限制。本公开的实施例可以被体现在不同的结构和/或功能中。
如图1所示,存储系统100可以包括两个存储处理器(SP,也被称为“存储节点”),即SP 110和SP 120。SP 110和SP 120可以分别具有一个或多个模块。例如,如图1所示,SP 110可以具有耦合于其中的存储器,例如缓存130。缓存130可以用于将数据临时存储在例如动态随机访问存储器(DRAM)中。此外,SP 110可以与存储盘140相耦合,并且在合适的时间将临时存储在缓存130中的数据写入到存储盘140中。存储盘140可以是任何目前已知或者将来开发的非易失性存储介质,例如磁盘、固态盘(SSD)或磁盘阵列等等。
SP 120可以用于存储SP 110中的数据的副本,例如以用于保护数据免受灾难的影响。在一些实施例中,SP 120可以被部署为靠近或者远离SP 110。例如,SP 110和SP 120可以被部署在地理上不同的城市中。为了实现远程数据镜像,SP 120可以具有与SP 110相同的结构。例如,SP 120可以具有包括缓存150的一个或多个模块,并且与存储盘160相耦合。类似地,缓存150可以用于将数据临时存储在例如DRAM中,并且在合适的时间将数据写入到存储盘160中。存储盘160可以是任何目前已知或者将来开发的非易失性存储介质,例如磁盘、固态盘(SSD)或磁盘阵列等等。
在存储系统100中,SP 110和SP 120可以通过网络170被互连。在一些实施例中,网络170可以包括无限带宽交换结构,其也被称为无限带宽网络。例如,SP 110和SP 120可以分别被连接至无限带宽网络170中的交换机(图1中未示出)。在此所述的“无限带宽”技术指代用于高性能计算的计算机网络通信标准,其可以具有非常高的吞吐量和极低的延迟。无限带宽技术通常被用于计算机之间和/或计算机的内部组件之间的互连。无限带宽技术还可以被用于服务器和存储系统之间的直接互连或经交换的互连。此外,无限带宽技术也可以被用于存储系统之间的互连。
当SP 110和SP 120经由无限带宽网络被互连时,可以在它们之间实现RDMA操作。在此所述的“RDMA操作”指代从一个计算机的存储器(例如,SP 110中的缓存130)到另一计算机的存储器(例如,SP 120中的缓存150)的直接存储器访问,而不涉及任一计算机的操作系统。RDMA操作可以使得网络适配器能够将数据直接传输到存储器或者直接从存储器传输数据,由此实现零拷贝数据传输。这样的传输不需要由中央处理单元(CPU)、操作系统或交换机等参与,并且能够与其他系统操作并行。当RDMA读操作或写操作被执行时,数据可以被直接传输到网络,从而降低延迟并且提高吞吐量。
此外,RDMA可以具有多种数据传输类型,诸如与普通传输控制协议(TCP)套接字类似的发送和接收。在一些实现中,RDMA读操作和/或写操作可以支持将数据直接放置到相对于发起方的另一方的缓存中。也即,在如图1所示的存储系统100中,SP 110和SP 120中的任一方可以通过RDMA操作来启动远程数据同步操作,使得数据在缓存130和缓存150之间被同步。
图2示出了根据本公开的实施例的存储系统200的架构图。存储系统200可以被视作是存储系统100的一种具体实现。应当理解,如图2所示的存储系统200的结构和功能仅用于示例的目的,而不暗示对于本公开的范围的任何限制。本公开的实施例可以被体现在不同的结构和/或功能中。
如图2所示,存储系统200可以包括存储子系统201和存储子系统202,两者可以通过诸如无限带宽网络的网络270被互连。存储子系统201和存储子系统202互为镜像,并且用于存储数据的不同副本,例如以用于保护数据免受灾难的影响。在一些实施例中,存储子系统202可以被部署为靠近或远离存储子系统201。例如,存储子系统201和存储子系统202可以被部署在地理上不同的城市中。为了实现远程数据镜像,存储子系统202可以具有与存储子系统201相同的结构。
以存储子系统201为例,其可以包括耦合到共享存储盘250的两个SP,即SP 210和SP 220。SP 210和SP 220可以互为本地镜像,并且两者可以经由命令接口280相互通信。命令接口280例如是基于PCIe总线的接口,使得SP 210和SP 220能够经由命令接口280来传输命令和/或进行本地数据同步。
以存储子系统201中的SP210为例,SP 210可以具有一个或多个模块。例如,如图2所示,SP 210可以具有耦合于其中的存储器,例如缓存211。缓存211可以用于将数据临时存储在例如DRAM中,并且在合适的时间将临时存储在缓存211中的数据写入到共享存储盘250中。SP 210还可以包括主机侧模块212,其用于从主机(图2中未示出)接收输入输出(IO)命令、处理该IO命令并且向主机返回IO确认。SP 210还可以包括远程镜像模块213,其用于使SP 210被连接至网络270(例如,无限带宽网络中的交换机),以经由网络270与其他SP(例如,SP220、SP 230和/或SP 240)进行数据同步。当网络270为无限带宽网络时,SP 210还可以包括用于向应用提供RDMA功能接口的IB抽象层(Infiniband Verbs)214,其可以被划分为数据路径和控制路径,并且支持对于实现缓存数据的发送和接收的资源的管理。此外,SP210还可以包括一个或多个其他模块215。例如,当共享存储盘250被实现为磁盘阵列时,一个或多个其他模块215可以包括相应的磁盘阵列管理模块以及底层驱动模块等。应当理解,如图2所示的SP 210的结构和功能仅用于示例的目的,而不暗示对于本公开的范围的任何限制。
SP 220与SP 210可以互为本地镜像,因此SP 220可以具有与SP 210相同的结构。例如,SP 220可以包括缓存221、主机侧模块222、远程镜像模块223、IB传输层224和一个或多个其他模块225。SP 220中的模块的功能可以与SP 210中的相应模块的功能相同,在此不再重复描述。
与存储子系统201互为远程镜像的存储子系统202可以具有与存储子系统201相同的结构。也即,存储子系统202中的SP 230和SP 240可以分别具有与存储子系统201中的SP210和SP 220类似的结构和功能。出于简化描述的目的,在此不再重复描述。
以下将结合如图1所示的存储系统100和/或如图2所示的存储系统200来进一步描述本公开的实施例。如上所述,为了实现远程部署的存储节点之间的块级数据同步,本公开的实施例提出经由无限带宽网络通过增强的RDMA操作来实现数据在多个存储节点中的相应存储器之间的传输。
图3图示了根据本公开的实施例的用于数据同步的方法300的流程图。以下结合如图2所述的存储系统200来描述方法300中所涉及的动作。为了方便讨论,在方法300的描述中涉及两个SP。不失一般性地,以如图2所示的SP 210和SP 230为例来描述方法300。例如,在图3中,左侧的各个动作可以由SP 210执行,而右侧的各个动作可以由SP 230执行。在以下描述中,SP 210与第一处理器可以被互换地使用;缓存211与第一缓存可以被互换地使用;SP 230与第二处理器可以被互换地使用;并且缓存231与第二缓存可以被互换地使用。
应当理解,方法300也可以被实施在如图1所示的存储系统100中。例如,图3中左侧的各个动作可以由SP 110和SP 120中的一个SP执行,而右侧的各个动作可以由SP 110和SP120中的另一SP执行。此外,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框301,SP 210响应于接收到用于同步数据的第一请求,向SP 230发起第一RDMA操作。在一些实施例中,SP 210可以经由主机侧模块212从主机接收用于同步数据的IO请求。第一RDMA操作可以经由诸如无限带宽网络的网络270被发起,并且第一RDMA操作可以在SP 210中的缓存211和SP 230中的缓存231之间传输数据。
在一些实施例中,第一RDMA操作可以遵循由RFC5666(“用于远程过程调用的远程直接存储器访问”,http://tools/ietf.org/html/rfc5666)协议所规定的步骤而被发起。例如,由SP 210发起的第一RDMA操作可以包括RDMA写操作或者RDMA读操作。RDMA写/读操作也可以被称为RDMA推送/拉取模式。RDMA推送模式指代数据可以经由RDMA写操作被直接推送到SP 230中的缓存231中。RDMA拉取模式指代数据可以经由RDMA读操作而直接从SP 230中的缓存231被获得。也即,当发起方(例如,SP 210)发起第一RDMA操作时,数据可以在没有CPU参与的情况在缓存211和缓存231之间被传输。出于说明的目的,在以下描述中以RDMA写操作作为第一RDMA操作的示例。然而,应当理解,第一RDMA操作也可以是RDMA读操作,并且本公开的范围在此方面不受限制。
如所公知的,上述RFC5666协议不具有确认机制。例如,在SP 210向SP 230发起RDMA写操作时,SP 210并不能够知道经由该RDMA写操作数据是否已经被放置到SP 230中的缓存231中。针对这一问题,在一些实施例中,相对于RDMA操作的发起方(例如,SP 210)的另一方(例如,SP 230)可以确认是否在缓存中接收到经由该RDMA操作而传输的数据,并且向发起方发送确认。
在框302,SP 230响应于从SP 210接收到经由第一RDMA操作而传输的数据,向SP210传输针对第一RDMA操作的确认。该确认可以指示数据已经被放置在SP 230中的缓存231中。
在一些实施例中,该确认机制可以被实现在用于实现诸如RFC5666协议的协议层中。例如,可以向RFC5666协议添加用于传输确认的应用编程接口。在一些实施例中,例如当第一RDMA操作为RDMA读操作时,SP 230可以可选地不向SP 210传输针对RDMA读操作的确认。也即,在此情况下,框302可以被省略。
此外,在一些实施例中,框301和框302可以被执行多于一次,直到所有要同步的数据(也称为“脏数据”)被传输到相应的缓存中。例如,SP 210可以向SP 230发起多个RDMA写操作和/或多个RDMA读操作,并且SP 230可以分别向SP 210传输针对多个RDMA操作的相应确认。
在框303,SP 210响应于第一RDMA操作完成,将数据写入到与SP 210耦合的第一持久性存储设备中。例如,第一持久性存储设备可以是与SP 210相耦合的共享存储盘250。
在一些实施例中,SP 210可以响应于从SP 230接收到针对第一RDMA操作的确认来确定第一RDMA操作完成。在一些实施例中,例如当第一RDMA操作为RDMA读操作时,SP 210可以响应于从SP 230中的缓存231中获得期望的数据来确定第一RDMA操作完成。
在一些实施例中,SP 210通过将数据提交到第一持久性存储设备中,使得在发生电源故障或SP 210崩溃的情况下,当故障恢复时所有的脏数据也能够被恢复(也即,重播)。
在框304,SP 210向SP 230传输命令,以指示SP 230将数据提交到与SP 230耦合的第二持久性存储设备中。例如,第二持久性存储设备可以是与SP 230相耦合的共享存储盘260。
在一些实施例中,该提交命令可以经由第二RDMA操作来被传输。例如,SP 210可以向SP 230发送RDMA写操作,以使得该提交命令被传输到SP 230中的缓存231中。SP 210发起第二RDMA操作的方式与其发起第一RDMA操作的方式类似,在此不再详细描述。
在框305,SP 230响应于从SP 210接收到用于将数据提交到第二持久性存储设备的命令,向SP 210传输针对该命令的确认。
在一些实施例中,例如当提交命令经由RDMA写操作被传输时,SP 230可以与如框302所示的动作类似地向SP 210传输针对该RDMA写操作的确认。例如,该确认可以指示提交命令已经被放置在SP 230中的缓存231中以供处理。
在框306,SP 230响应于该命令,将数据写入到与SP 230耦合的第二持久性存储设备中。在一些实施例中,SP 230通过将数据提交到第一持久性存储设备中,使得在发生电源故障或SP 230崩溃的情况下,当故障恢复时所有的脏数据也能够被恢复(也即,重播)。以此方式,本公开的实施例能够进一步提高远程数据同步的可靠性。
在框307,SP 210检测来自SP 230的针对命令的确认。在一些实施例中,SP 210可以响应于接收到来自SP 230的确认,确定数据在SP 210和SP 230之间被同步。例如,SP 210可以将与缓存211相关联的状态设置为“已同步”状态。
通过上述描述可以看出,本公开的实施例能够利用IB交换结构来互连多个存储处理器,并且能够通过增强的RDMA操作(例如,具有确认机制的RDMA读/写操作)来实现数据在多个存储处理器中的相应缓存之间的传输。因此,本公开的实施例能够实现具有低延迟、高吞吐量和可扩展性的远程数据同步。此外,本公开的实施例能够提供远程缓存提交机制,以进一步提升远程数据同步的可靠性。
图4图示了根据本公开的实施例的用于数据同步的装置400的框图。例如,如图1所示的SP 110-120以及如图2所示的SP 210-240中充当数据同步的主动方的任一项可以由装置400实现。如图4所示,装置400可以包括RDMA操作发起模块410,被配置为响应于接收到用于同步数据的第一请求,向第二处理器发起第一RDMA操作,该第一RDMA操作在第一处理器中的第一缓存和第二处理器中的第二缓存之间传输数据。装置400还可以包括数据提交模块420,被配置为响应于第一RDMA操作完成,将数据写入到与第一处理器耦合的第一持久性存储设备中。装置400还可以包括命令传输模块430,被配置为向第二处理器传输命令,以指示第二处理器将数据提交到与第二处理器耦合的第二持久性存储设备中。此外,装置400还可以包括确认检测模块440,被配置为检测来自第二处理器的针对命令的确认,该确认指示数据在第一处理器和第二处理器之间被同步。
图5图示了根据本公开的实施例的用于数据同步的装置500的框图。例如,如图1所示的SP 110-120以及如图2所示的SP 210-240中充当数据同步的被动方的任一项可以由装置500实现。如图5所示,装置500可以包括第一确认传输模块510,被配置为响应于从第一处理器接收到经由第一RDMA操作而传输的数据,向第一处理器传输针对第一RDMA操作的确认。装置500还可以包括第二确认传输模块520,被配置为响应于从第一处理器接收到用于将数据提交到持久性存储设备的命令,向第一处理器传输针对该命令的确认。此外,装置500还可以包括数据提交模块530,被配置为响应于该命令,将数据写入到与第二处理器耦合的持久性存储设备中。
出于清楚的目的,在图4和/或图5中没有示出装置400和/或500的某些可选模块。然而,应当理解,上文参考图1-3所描述的各个特征同样适用于装置400和/或500。而且,装置400和/或500的各个模块可以是硬件模块,也可以是软件模块。例如,在某些实施例中,装置400和/或500可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置400和/或500可以部分或者全部基于硬件来实现,例如被实现为集成电路(IC)、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA)等。本公开的范围在此方面不受限制。
图6示出了可以用来实施本公开内容的实施例的示例设备600的示意性框图。例如,如图1所示的SP 110-120以及如图2所示的SP 210-240中的任一项可以由设备600来实施。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元601执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法300的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (24)

1.一种用于数据同步的方法,包括:
在第一处理器处,响应于接收到用于同步数据的第一请求,向第二处理器发起第一RDMA(远程直接存储器访问)操作,其中所述第一RDMA操作包括被配置为使数据从所述第一处理器中的第一缓存写入所述第二处理器中的第二缓存的RDMA写操作,或被配置为使所述数据从所述第二缓存读取到所述第一缓存的RDMA读操作;
响应于所述第一RDMA操作完成,将所述数据从所述第一缓存写入到与所述第一处理器耦合的第一持久性存储设备中;
响应于将所述数据写入所述第一持久性存储设备中,向所述第二处理器传输提交命令,其中所述提交命令被配置为使所述第二处理器将所述数据从所述第二缓存写入与所述第二处理器耦合的第二持久性存储设备中;以及
在第一处理器处,检测来自所述第二处理器的确认,所述确认指示所述第二处理器已将所述数据从所述第二缓存写入所述第二持久性存储设备中。
2.根据权利要求1所述的方法,其中所述第一RDMA操作经由连接所述第一处理器和所述第二处理器的网络而被发起,并且所述网络包括无限带宽网络。
3.根据权利要求1所述的方法,其中所述第一RDMA操作包括RDMA写操作,并且向所述第二处理器发起第一RDMA操作包括:
向所述第二处理器发起所述RDMA写操作,以使得所述数据从所述第一缓存被传输至所述第二缓存。
4.根据权利要求3所述的方法,其中将所述数据写入到与所述第一处理器耦合的第一持久性存储设备中包括:
响应于从所述第二处理器接收到针对所述RDMA写操作的确认,将所述数据从所述第一缓存写入到所述第一持久性存储设备中。
5.根据权利要求1所述的方法,其中所述第一RDMA操作包括RDMA读操作,并且向所述第二处理器发起第一RDMA操作包括:
向所述第二处理器发起所述RDMA读操作,以使得所述数据从所述第二缓存被传输至所述第一缓存。
6.根据权利要求2所述的方法,其中向所述第二处理器传输所述提交命令包括:
经由所述网络向所述第二处理器发起用于传输所述命令的第二RDMA操作;并且
检测来自所述第二处理器的针对所述命令的确认包括:
检测来自所述第二处理器的针对所述第二RDMA操作的所述确认。
7.根据权利要求6所述的方法,其中所述第二RDMA操作为RDMA写操作。
8.一种用于数据同步的方法,包括:
在第二处理器处,响应于第一处理器接收到用于同步数据的请求,从所述第一处理器接收第一RDMA(远程直接存储器访问)操作的发起,其中所述第一RDMA操作包括被配置为使所述数据从所述第一处理器中的第一缓存写入所述第二处理器中的第二缓存的RDMA写操作,或被配置为使所述数据从所述第二缓存读取到所述第一缓存的RDMA读操作;
响应于所述第一处理器将所述数据从所述第一缓存写入到与所述第一处理器耦合的第一持久性存储设备中,从所述第一处理器接收提交命令,其中所述提交命令被配置为使所述第二处理器将所述数据从所述第二缓存写入与所述第二处理器耦合的第二持久性存储设备中;以及
响应于来自所述第一处理器的所述提交命令,将所述数据从所述第二缓存写入到与所述第二处理器耦合的所述第二持久性存储设备中。
9.根据权利要求8所述的方法,其中所述第一RDMA操作经由连接所述第一处理器和所述第二处理器的网络而被发起,并且所述网络包括无限带宽网络。
10.根据权利要求8所述的方法,其中所述第一RDMA操作包括RDMA写操作,并且所述数据经由所述RDMA写操作从所述第一处理器中的所述第一缓存被传输到所述第二处理器中的所述第二缓存。
11.根据权利要求9所述的方法,其中所述提交命令经由第二RDMA操作被传输,并且所述第二RDMA操作由所述第一处理器经由所述网络而发起。
12.一种用于数据同步的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
在第一处理器处,响应于接收到用于同步数据的第一请求,向第二处理器发起第一RDMA(远程直接存储器访问)操作,其中所述第一RDMA操作包括被配置为使所述数据从所述第一处理器中的第一缓存写入到所述第二处理器中的第二缓存的RDMA写操作,或被配置为使所述数据从所述第二缓存读取到所述第一缓存的RDMA读操作;
响应于所述第一RDMA操作完成,将所述数据从所述第一缓存写入到与所述第一处理器耦合的第一持久性存储设备中;
响应于将所述数据写入所述第一持久性存储设备中,向所述第二处理器传输提交命令,其中所述提交命令被配置为使所述第二处理器将所述数据从所述第二缓存写入与所述第二处理器耦合的第二持久性存储设备中;以及
在第一处理器处,检测来自所述第二处理器的确认,所述确认指示所述第二处理器已将所述数据从所述第二缓存写入到所述第二持久性存储设备中。
13.根据权利要求12所述的设备,其中所述第一RDMA操作经由连接所述第一处理器和所述第二处理器的网络而被发起,并且所述网络包括无限带宽网络。
14.根据权利要求12所述的设备,其中所述第一RDMA操作包括RDMA写操作,并且向所述第二处理器发起第一RDMA操作包括:
向所述第二处理器发起所述RDMA写操作,以使得所述数据从所述第一缓存被传输至所述第二缓存。
15.根据权利要求14所述的设备,其中将所述数据写入到与所述第一处理器耦合的第一持久性存储设备中包括:
响应于从所述第二处理器接收到针对所述RDMA写操作的确认,将所述数据从所述第一缓存写入到所述第一持久性存储设备中。
16.根据权利要求12所述的设备,其中所述第一RDMA操作包括RDMA读操作,并且向所述第二处理器发起第一RDMA操作包括:
向所述第二处理器发起所述RDMA读操作,以使得所述数据从所述第二缓存被传输至所述第一缓存。
17.根据权利要求13所述的设备,其中向所述第二处理器传输所述提交命令包括:
经由所述网络向所述第二处理器发起用于传输所述命令的第二RDMA操作;并且
所述指令当由所述至少一个处理单元执行时使得所述设备通过以下操作来检测来自所述第二处理器的针对所述命令的确认:
检测来自所述第二处理器的针对所述第二RDMA操作的所述确认。
18.根据权利要求17所述的设备,其中所述第二RDMA操作为RDMA写操作。
19.一种用于数据同步的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于第一处理器接收到用于同步数据的请求,从所述第一处理器接收第一RDMA(远程直接存储器访问)操作的发起,其中所述第一RDMA操作包括被配置为使所述数据从所述第一处理器中的第一缓存写入第二处理器中的第二缓存的RDMA写操作,或被配置为使所述数据从所述第二缓存读取到所述第一缓存的RDMA读操作;
响应于所述第一处理器将所述数据从所述第一缓存写入到与所述第一处理器耦合的第一持久性存储设备中,从所述第一处理器接收提交命令,其中所述提交命令被配置为使所述第二处理器将所述数据写入与所述第二处理器耦合的第二持久性存储设备中;以及
响应于来自所述第一处理器的所述提交命令,将所述数据从所述第二缓存写入到与所述第二处理器耦合的所述第二持久性存储设备中。
20.根据权利要求19所述的设备,其中所述第一RDMA操作经由连接所述第一处理器和所述第二处理器的网络而被发起,并且所述网络包括无限带宽网络。
21.根据权利要求19所述的设备,其中所述第一RDMA操作包括RDMA写操作,并且所述数据经由所述RDMA写操作从所述第一处理器中的所述第一缓存被传输到所述第二处理器中的所述第二缓存。
22.根据权利要求20所述的设备,其中所述提交命令经由第二RDMA操作被传输,并且所述第二RDMA操作由所述第一处理器经由所述网络而发起。
23.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其上的计算机可读程序指令,所述计算机可读程序指令在被处理单元执行时使得所述处理单元实现根据权利要求1-7中的任一项所述的方法。
24.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其上的计算机可读程序指令,所述计算机可读程序指令在被处理单元执行时使得所述处理单元实现根据权利要求8-11中的任一项所述的方法。
CN201710249894.1A 2017-04-17 2017-04-17 用于数据同步的方法、设备和计算机可读介质 Active CN108733506B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710249894.1A CN108733506B (zh) 2017-04-17 2017-04-17 用于数据同步的方法、设备和计算机可读介质
US15/954,902 US10812584B2 (en) 2017-04-17 2018-04-17 Methods, devices and computer readable mediums for data synchronization
US17/015,764 US11349920B2 (en) 2017-04-17 2020-09-09 Methods, devices and computer readable mediums for data synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710249894.1A CN108733506B (zh) 2017-04-17 2017-04-17 用于数据同步的方法、设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN108733506A CN108733506A (zh) 2018-11-02
CN108733506B true CN108733506B (zh) 2022-04-12

Family

ID=63790398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710249894.1A Active CN108733506B (zh) 2017-04-17 2017-04-17 用于数据同步的方法、设备和计算机可读介质

Country Status (2)

Country Link
US (2) US10812584B2 (zh)
CN (1) CN108733506B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388524A (zh) * 2016-12-21 2018-08-10 伊姆西Ip控股有限责任公司 用于缓存数据的方法和设备
CN108733506B (zh) 2017-04-17 2022-04-12 伊姆西Ip控股有限责任公司 用于数据同步的方法、设备和计算机可读介质
US11061585B1 (en) 2017-10-19 2021-07-13 EMC IP Holding Company, LLC Integration of NVMe device with DRAM cache system and method
US10521137B1 (en) * 2017-10-31 2019-12-31 EMC IP Holding Company LLC Storage device array integration of dual-port NVMe device with DRAM cache and hostside portion of software stack system and method
US10783080B2 (en) * 2018-10-29 2020-09-22 Arm Limited Cache maintenance operations in a data processing system
CN109597713A (zh) * 2018-11-29 2019-04-09 阿里巴巴集团控股有限公司 数据备份方法及装置
CN109614043A (zh) * 2018-12-04 2019-04-12 郑州云海信息技术有限公司 一种数据压缩方法、装置、系统及计算机可读存储介质
US11379404B2 (en) * 2018-12-18 2022-07-05 Sap Se Remote memory management
CN112148653A (zh) * 2019-06-26 2020-12-29 北京百度网讯科技有限公司 数据传输装置、数据处理系统、数据处理方法和介质
CN112148644A (zh) * 2019-06-27 2020-12-29 伊姆西Ip控股有限责任公司 处理输入/输出请求的方法、装置和计算机程序产品
GB2597078B (en) * 2020-07-14 2022-07-13 Graphcore Ltd Communication between host and accelerator over network
US11507294B2 (en) 2020-10-22 2022-11-22 EMC IP Holding Company LLC Partitioning a cache for fulfilling storage commands
US11416441B2 (en) 2021-01-11 2022-08-16 EMC IP Holding Company LLC RPC-less locking mechanism based on RDMA CAW for storage cluster with active-active architecture
US11507441B2 (en) 2021-01-21 2022-11-22 EMC IP Holding Company LLC Asymmetric fulfillment of remote procedure calls by multi-core systems
CN114697372B (zh) * 2022-05-31 2022-09-06 深圳市泛联信息科技有限公司 一种分布式系统中数据传输处理与存储方法、系统及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763173A (zh) * 2013-12-31 2014-04-30 华为技术有限公司 数据传输方法和计算节点
US20160124877A1 (en) * 2014-11-03 2016-05-05 Intel Corporation Apparatus and Method for RDMA with Commit ACKs
US20160147710A1 (en) * 2014-11-21 2016-05-26 International Business Machines Corporation Providing remote, reliant and high performance pci express device in cloud computing environments
US20170052723A1 (en) * 2014-06-10 2017-02-23 Hewlett Packard Enterprise Development Lp Replicating data using remote direct memory access (rdma)

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2615324A1 (en) 2005-07-14 2007-07-05 Yotta Yotta, Inc. Maintaining write order fidelity on a multi-writer system
US7409525B1 (en) 2006-03-29 2008-08-05 Emc Corporation Implicit locks in a shared virtual memory system
US7774645B1 (en) 2006-03-29 2010-08-10 Emc Corporation Techniques for mirroring data within a shared virtual memory system
US7680987B1 (en) 2006-03-29 2010-03-16 Emc Corporation Sub-page-granular cache coherency using shared virtual memory mechanism
US7676628B1 (en) 2006-03-31 2010-03-09 Emc Corporation Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes
US20080109569A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US8706968B2 (en) * 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8935302B2 (en) * 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US9047178B2 (en) * 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9286261B1 (en) 2011-11-14 2016-03-15 Emc Corporation Architecture and method for a burst buffer using flash technology
US9652568B1 (en) 2011-11-14 2017-05-16 EMC IP Holding Company LLC Method, apparatus, and computer program product for design and selection of an I/O subsystem of a supercomputer
US9158540B1 (en) 2011-11-14 2015-10-13 Emc Corporation Method and apparatus for offloading compute resources to a flash co-processing appliance
US10318171B1 (en) 2012-06-29 2019-06-11 EMC IP Holding Company LLC Accessing fast memory in a data storage array
US10216652B1 (en) 2012-06-29 2019-02-26 EMC IP Holding Company LLC Split target data transfer
US10223326B2 (en) * 2013-07-31 2019-03-05 Oracle International Corporation Direct access persistent memory shared storage
US9418131B1 (en) 2013-09-24 2016-08-16 Emc Corporation Synchronization of volumes
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US10009438B2 (en) * 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US10157003B1 (en) 2015-12-17 2018-12-18 EMC IP Holding Company LLC Storage system with distributed tiered parallel file system comprising software-defined unified memory cluster
US20170329635A1 (en) * 2016-05-13 2017-11-16 University Of Utah Research Foundation Systems and methods for distributed computing
US10146696B1 (en) 2016-09-30 2018-12-04 EMC IP Holding Company LLC Data storage system with cluster virtual memory on non-cache-coherent cluster interconnect
US9959074B1 (en) 2016-11-29 2018-05-01 EMC IP Holding Company LLC Asynchronous in-memory data backup system
US10353640B2 (en) * 2016-12-06 2019-07-16 Dell Products L.P. Seamless data migration in a clustered environment
CN108228082B (zh) 2016-12-21 2021-04-02 伊姆西Ip控股有限责任公司 存储系统和用于存储控制的方法
US10235064B1 (en) 2016-12-27 2019-03-19 EMC IP Holding Company LLC Optimized data replication using special NVME protocol and running in a friendly zone of storage array
US10489307B2 (en) * 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
CN108733506B (zh) 2017-04-17 2022-04-12 伊姆西Ip控股有限责任公司 用于数据同步的方法、设备和计算机可读介质
US10719238B1 (en) 2017-10-12 2020-07-21 EMC IP Holding Company LLC Memory fabric with reliability zone comprising two or more fabric attached memory endpoints
US10705753B2 (en) 2018-05-04 2020-07-07 EMC IP Holding Company LLC Fan-out asynchronous replication logical level caching
US10860239B2 (en) 2018-05-04 2020-12-08 EMC IP Holding Company LLC Fan-out asynchronous replication caching
US10698772B2 (en) 2018-07-17 2020-06-30 EMC IP Holding Company LLC Storage system with multiple write journals supporting synchronous replication failure recovery
US11079961B1 (en) 2020-02-03 2021-08-03 EMC IP Holding Company LLC Storage system with write-via-hash functionality for synchronous replication of logical storage volumes
US11144232B2 (en) 2020-02-21 2021-10-12 EMC IP Holding Company LLC Storage system with efficient snapshot pair creation during synchronous replication of logical storage volumes
US11061618B1 (en) 2020-02-25 2021-07-13 EMC IP Holding Company LLC Disk array enclosure configured to determine metadata page location based on metadata identifier
US11079969B1 (en) 2020-02-25 2021-08-03 EMC IP Holding Company LLC Disk array enclosure configured for metadata and data storage processing
US11144461B2 (en) 2020-03-09 2021-10-12 EMC IP Holding Company LLC Bandwidth efficient access to persistent storage in a distributed storage system
US11010251B1 (en) 2020-03-10 2021-05-18 EMC IP Holding Company LLC Metadata update journal destaging with preload phase for efficient metadata recovery in a distributed storage system
US11126361B1 (en) 2020-03-16 2021-09-21 EMC IP Holding Company LLC Multi-level bucket aggregation for journal destaging in a distributed storage system
US11093161B1 (en) 2020-06-01 2021-08-17 EMC IP Holding Company LLC Storage system with module affinity link selection for synchronous replication of logical storage volumes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763173A (zh) * 2013-12-31 2014-04-30 华为技术有限公司 数据传输方法和计算节点
US20170052723A1 (en) * 2014-06-10 2017-02-23 Hewlett Packard Enterprise Development Lp Replicating data using remote direct memory access (rdma)
US20160124877A1 (en) * 2014-11-03 2016-05-05 Intel Corporation Apparatus and Method for RDMA with Commit ACKs
US20160147710A1 (en) * 2014-11-21 2016-05-26 International Business Machines Corporation Providing remote, reliant and high performance pci express device in cloud computing environments

Also Published As

Publication number Publication date
US20200412802A1 (en) 2020-12-31
US10812584B2 (en) 2020-10-20
US20180302469A1 (en) 2018-10-18
US11349920B2 (en) 2022-05-31
CN108733506A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN108733506B (zh) 用于数据同步的方法、设备和计算机可读介质
CN108228082B (zh) 存储系统和用于存储控制的方法
US10965753B2 (en) Interconnect delivery process
US10778767B2 (en) Persistent memory replication in RDMA-capable networks
CN109213702B (zh) 虚拟机环境中的虚拟双控制模块之间的通信
US20140359229A1 (en) Lightweight Remote Replication of a Local Write-Back Cache
US20070041383A1 (en) Third party node initiated remote direct memory access
US6948031B2 (en) Methods and apparatus for transferring a data element within a data storage system
US11093141B2 (en) Method and apparatus for caching data
US9600378B2 (en) Efficient mechanism to replicate data for multiple controllers
US10831402B2 (en) Method and apparatus for ensuring data consistency
CN105379229A (zh) 使用分段队列远程数据存取的设备互联失效备援系统和方法
WO2015035919A1 (en) Coordination of spare lane usage between link partners
US10884886B2 (en) Copy-on-read process in disaster recovery
EP3211535A1 (en) Write request processing method, processor and computer
CN111124993A (zh) 减小i/o处理时缓存数据镜像时延的方法、设备和程序产品
CN104735119A (zh) 用于数据拷贝避免的方法和装置
CN111104060A (zh) 数据处理系统中的缓存维护操作
US11137933B2 (en) Accelerating transaction execution across geographically dispersed clusters
WO2016095340A1 (zh) 数据发送成功的确认方法及装置
CN110519242A (zh) 数据传输方法及装置
CN112380069B (zh) 一种虚拟机容错系统及其容错方法
US20230342297A1 (en) Multisystem shared memory
JP2007259000A (ja) データ転送装置及びデータ転送方法等
US10270857B2 (en) Asynchronous duplexing

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