CN104937565B - 从第一节点到第二节点的地址范围传送 - Google Patents

从第一节点到第二节点的地址范围传送 Download PDF

Info

Publication number
CN104937565B
CN104937565B CN201380071543.6A CN201380071543A CN104937565B CN 104937565 B CN104937565 B CN 104937565B CN 201380071543 A CN201380071543 A CN 201380071543A CN 104937565 B CN104937565 B CN 104937565B
Authority
CN
China
Prior art keywords
address
section point
group
node
mark
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
CN201380071543.6A
Other languages
English (en)
Other versions
CN104937565A (zh
Inventor
D.L.福伊特
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN104937565A publication Critical patent/CN104937565A/zh
Application granted granted Critical
Publication of CN104937565B publication Critical patent/CN104937565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

组地址范围被映射到非易失性存储器的存储器地址范围。如果第一存储器地址被映射到所述组地址范围并且针对第一存储器地址请求写访问,则存储器地址范围的第一存储器地址将被复制到易失性存储器。响应于同步命令,将组地址范围从第一节点传送到第二节点。在传送组地址范围之后,所复制的地址将被写NVM。

Description

从第一节点到第二节点的地址范围传送
背景技术
由于在固态存储技术中的新近的创新,这样的技术正在被集成到数据系统中。数据系统的服务器可以寻求将数据写到固态存储技术或者从固态存储技术读数据。将这样的技术集成到系统中而又维持原子性(atomicity)可能对诸如管理员和/或供应者之类的用户构成挑战。
附图说明
以下详细描述参考附图,其中:
图1是第一节点将地址范围传送到第二节点的示例框图;
图2是第一节点将地址范围传送到第二节点的另一示例框图;
图3A-3D是图2的第一节点的各种状态的示例框图;
图4是包括用于将地址范围从第一节点传送到第二节点的指令的计算设备的示例框图;以及
图5是用于将地址范围从第一节点传送到第二节点的方法的示例流程图。
具体实施方式
在以下描述中给出了具体细节以提供对实施例的彻底理解。然而,应理解,可以在没有这些具体细节的情况下实行实施例。例如,可以以框图示出系统以便不以不必要的细节使得实施例不清楚。在其他实例中,可以在没有不必要的细节的情况下示出公知过程、结构和技术,以便避免使得实施例不清楚。
诸如忆阻器(memristor)之类的非易失性存储器(NVM)技术可以提供耐久性和存储器快速访问两者。该类型的NVM可以被映射到服务器存储器空间中用于直接加载/存储访问。当将用于冗余、复制、备份和归档的全方位(full range)丰富数据(rich data)服务应用于存储器映射的存储时,可能必须建立数据的分组,其必须在多个存储器系统之内保持自相一致并且必须跨多个存储器系统保持自相一致。
存储器一致性一般由处理器和存储器控制器本地管理。虽然现有的方法可以强制实施严格的排序和高速缓存相干性,但是针对诸如那些可能存在于应用服务器和存储服务器之间的群集的、联合的、远程复制和/或客户端/服务器关系,这些方法可能不缩放(scale)。这个的根本原因在于,如在单个处理器或对称多处理器(SMP)系统中可见的严格一致性可能对于在有限的物理范围之上维持是成本过高(cost prohibitive)的。
当由处理器使用存储指令直接写NVM时,某些应用可能需要在已经积累了完整的多方更新或事务之前避免以新的数据覆写持久数据。这通过制造正在进行的工作的临时副本并且之后将其交付(commit)到NVM(例如,写时复制(copy-on-write))来完成。通常,这个一次一页或一个存储器范围地发生,如果存在电力丢失(power loss)或故障,则其不允许整个更新是原子性的。
实施例可以将写时复制(COW)操作与同步操作和组耦合以实现在较大范围之上的原子性。这些组可以由应用限定以解决(address)它们的具体一致性要求。一旦耦合,写就可能被重定向到原始NVM位置的副本。正常同步操作可以将数据冲洗(flush)到所述副本,但可以不修改主(master)页,也可以不将页指定用于传输。例如,第一节点可以包括组表格和控制器。组表格可以包括与被映射到NVM的存储器地址范围的组地址范围相关联的组。组地址范围可以包括COW范围。
如果第一存储器地址被映射到COW范围并且针对第一存储器地址请求写访问,则存储器地址范围的第一存储器地址可以被复制到易失性存储器。响应于同步命令,根据由组表格确定的顺序,控制器可以将组地址范围从第一节点传送到第二节点。控制器可以在传送完成之后传输标志。控制器可以在第二节点确认所述标志之后将所复制的地址写到NVM。
因此,实施例可以通过单个同步操作将隔离的逐地址组(address group-wise)范围(或逐页)的COW操作在组操作之内链接在一起。相应地,COW操作可以与存储器地址范围到另一节点的传输协调。这可以使得COW操作能够关于电力丢失或服务器故障成为原子的。
如果由于电力丢失或故障,不是所有的COW页被交付到主镜像(image),则通过使用在组之内的传送的地址范围来实现原子性以在恢复期间将NVM的主镜像向前滚动(roll)。因此,多个COW操作可以成为原子的。跨不相交(disjoint)的存储器位置范围、存储器系统和服务器来延伸COW原子性的范围。这可以使得一致数据镜像或虚拟化的镜像能够被建立,其遵守(adhere to)应用特定规则。这些镜像然后可以被投射(cast)为各种类型的数据复制品或者被用于执行诸如解复制(deduplication)或者分类的数据分析,该数据分析需要数据的一致和可恢复状态。
现在参考附图,图1是第一节点100将地址范围传送到第二节点150的示例框图。第一和/或第二节点100和150可以是例如存储设备、计算机、交换机、外壳(enclosure)、服务器、控制器和/或连接到网络的任何类型的设备的一部分或被包括在其中。在图1的实施例中,第一节点100被示出包括组表格110、控制器120和易失性存储器(VM)130。进一步地,第一节点100被示出与NVM 140和第二节点150对接。虽然以下描述主要是指第一节点100,但第二节点150可以包括类似的功能和/或部件。
第一节点100可以包括例如硬件设备,所述硬件设备包括用于实现下文描述的功能的电子电路,诸如控制逻辑和/或存储器。附加地或者作为替代,第一节点100可以被实现为被编码在机器可读存储介质上并且可由处理器执行的一系列指令。易失性存储器130可以是需要电力以维持所存储的信息的任何类型的设备,诸如处理器高速缓存(未示出)。
NVM 140可以包括当断开电力时保留其数据的任何类型的设备,诸如只读存储器、闪存、铁电RAM(F-RAM)、大部分类型的磁性计算机存储设备(例如,硬盘、软盘和磁带)和光盘以及基于忆阻器的、自旋转移矩(spin-torque transfer)以及相变随机访问存储器。例如,NVM可以包括以每字节或者每处理器高速缓存线(line)为基础读或写的存储器。
组表格110包括组112,并且组112包括组地址范围114。组地址范围114可以被映射到NVM 140的存储器地址范围142。例如,组地址范围114可以包括被映射到存储器地址范围142的一个或多个地址的一个或多个地址。术语映射可以指用于将诸如NVM 140的设备的一个或多个存储器地址并入到诸如第一节点100的组表格110的另一设备的地址表格中的技术。虽然组表格110被示出包括单个组112并且组114被示出包括单个组地址范围114,但是组表格110的实施例可以包括多个组112,并且组112的实施例可以包括多个地址范围114。
组地址范围可以进一步包括写时复制(COW)范围116。如果第一存储器地址144被映射到COW范围116并且针对第一存储器地址144请求写访问,则存储器地址范围142的第一存储器地址144可以被复制132到VM 130。所复制的地址可以132可以包括存储在第一存储器地址144处的任何数据,并且诸如经由虚拟存储器表格(未示出)与第一存储器地址144相关联。
控制器120可以接收包括同步地址范围的同步命令。例如,应用(未示出)可能偶尔生成同步命令以便定义恢复点。可以例如经由显式调用来生成同步命令,或者在以其编写应用的语言的某些使用中,其可以是隐式的。同步操作可以遍历(traverse)到NVM 140的软件路径或硬件路径。应用可以创建组112中的一个或多个以表示其大规模的数据结构,诸如数据表格、索引和日志。应用然后可以用反映应用的整体数据结构的组地址范围114填充(populate)组112。
同步操作可以包括由处理器(未示出)执行的冲洗指令和/或被传送到NVM 140的同步命令。例如,在同步操作期间,虚拟存储器表格(未示出)、组表格110和/或子组表格(未示出)可以被用于协调除由同步命令的同步地址范围116初始引用的那些之外的附加地址(或者页)的冲洗。可以由组表格110基于同步地址范围是否被包括在组表格110的任何组112的组地址范围114中来确定这些附加地址。
同步操作还可以根据如由组表格110确定的、保留应用层一致性的顺序,将所冲洗的地址传送到诸如第二节点150的另一节点。例如,响应于同步命令,控制器120可以根据由组表格110确定的顺序,将组地址范围114从第一节点传送到第二节点150。进一步地,第一节点100的控制器120可以在传送完成之后传输标志。控制器可以在第二节点确认所述标志之后将所复制的地址132写到NVM 140。下文将关于图2更详细地描述组表格110。
图2是第一节点100将地址范围传送到第二节点290的另一示例框图。在图2中,第一节点200包括组表格210、子组表格220、日志230、写时复制(COW)引擎240、控制器250、VM260、阈值周期270以及阈值数量280。第一节点200被示出诸如经由网络连接与第二节点290和NVM 140对接。
图2的第一和第二节点200和290可以包括与图1的第一和第二节点100和150类似的功能和/或硬件。例如,图2的组表格210、控制器250和VM 260可以分别包括类似于图1的组表格110、控制器120和VM 130的功能和/或硬件。
出于复制数据并且因此在各种类型的故障的情况中维持可恢复性的目的,控制器250可以将被写到NVM 140的存储器地址范围142以及VM 260的地址选择性地传输到诸如第二节点290的其他设备。
组表格210被示出包括组编号列211、传送属性列213、初始地址列215、范围大小列217和准备标记列219。这里,组编号列211指示组表格210具有三个组1-3。组211中的每个与传送属性列213的传送属性相关联,所述属性确定响应于同步命令是否将传送相关联的组。
例如,传送属性213可以具有从不(never)、总是(always)或有条件(conditional)的值。从不值可以指示,响应于同步命令,将不传送相应的组。总是值可以指示,响应于同步命令,将总是传送相应的组。有条件值可以指示,仅当同步命令的类型是主时,才传送相应的组。因此,在图2中,响应于同步命令,可以从不传送第一组1,可以总是传送第二组2,并且仅当同步命令是主类型(如相对于正常类型的那样)时才可以传送第三组3。如以下解释的那样,当被配置成在COW模式中操作时,写被重定向到在VM 260处的所复制的地址262,并且正常同步操作将数据冲洗到在VM 260处的所复制的地址262,但是既不修改在NVM 140处的第一存储器地址144,也不指定用于到NVM 140或第二节点290的传输的副本。然而,主类型的同步操作可以使得所有复制的位置被冲洗到NVM 140本身以及被传送到第二节点290。因此,主类型的同步操作可以使能通过可兼容接口与COW实现的集成并且使能复制品传输的进一步优化。
在图1中描述的组地址范围114可以包括来自组表格210的初始地址列215的初始地址以及来自组表格210的范围大小列217的相应的范围大小。所述范围大小可以指示被包括在组地址范围中的在初始地址之后的连续的地址的数量。在一个实施例中,这些地址可以是物理地址,因为它们跨访问上下文或者跨时间不改变。例如,这些地址可以引用在NVM140中的相同的数据存储位置而不论哪个处理器线程、进程或节点正在进行访问。虽然所述组地址范围由初始地址和范围大小组成,但是组地址范围的实施例可以具有任何大小和/或地址分辨率。例如,地址分辨率可以是字节、高速缓存线、高速缓存页或者其他块因子。
组表格210的准备标记列219可以提供针对组地址范围中的每个的准备标记。准备标记可以涉及调度相关联的组地址范围到诸如第二节点290的另一节点的传送。例如,如果传送准备标记被重置或者是0,则这可以指示当前不需要传送相关联的组地址范围。另一方面,如果所述传送准备标记被设置或者是1,则这可以指示正在组织(orchestrate)相关联的组地址范围的传送(例如,被请求、排队或者正在进行中)。
这里,组表格210的三个组1-3中的每个都具有不同的传送属性设置。被包含在各种组1-3中的组地址范围是非重叠的。因此,NVM 140的每个存储器位置282在至多一个组中。以初始1和2000开始的组地址范围具有设置的准备标记。因此,出于冗余、复制和/或参与其他富数据服务的目的,它们当前正在被传送到另一服务器。
子组表格220被示出包括子组编号列221、COW列223、初始地址列225、范围大小列227和准备标记列229。子组220的子组编号列221、初始地址列225、范围大小列227和准备标记列229可以在功能上分别类似于组表格210的组编号列211、初始地址列215、范围大小列217和准备标记列219。例如,子组编号列221可以列出一个或多个子组。子组中的每个可以与子组地址范围225和227以及来自准备标记列229的准备标记相关联。
子组地址范围225和227可以由来自初始地址列225的初始地址以及来自范围大小列227的范围大小组成。子组地址范围225和227中的每个被包括在组表格210的组地址范围215和217中的一个中。因此,在子组中的每个地址也在组中的一个中。在该实施例中,任何子组也被整体地包含在组中的单个组之内。子组中的每个还与COW标记列223的COW标记相关联。COW标记可以指示相应的子组使用COW操作。
如果对相应子组地址范围的写将对对应于子组地址范围的数据的副本执行,则可以设置COW标记。例如,如果COW标记被设置,则在诸如第一存储器地址144、存储器地址范围142或者地址的页)的NVM 140处的一个或多个地址的副本可以被存储在VM 260处,用于对NVM 140的该原始地址的写请求。后续的读和写然后可以被重定向到所复制的地址。原始地址可以被用于在电力丢失之后恢复到一致状态。控制器250可以等待以将所复制的地址写回到NVM 140,直至响应于同步命令,所复制的地址被传送到诸如第二节点290的另一设备。
COW 240引擎可以是例如包括用于实现以下描述的功能的电子电路的硬件设备,诸如控制逻辑和/或存储器。附加地或者作为替代,COW 240引擎可以被实现为被编码在机器可读存储介质上并且可被处理器执行的一系列指令。响应于对子组地址范围225和227的写操作,COW 240引擎可以生成与子组地址范围225和227相关联的地址副本242。如果COW标记被设置并且同步命令的类型是主,则地址副本可以被写到NVM 140。
被包括在组中的子组地址范围225和227与该组的传送属性相关联。这里,子组1和2是第三组3的子集,其具有条件传送属性。因为针对子组2设置了COW标记,所以如果接收了具有被包括在子组2中的同步地址范围的主类型同步命令,则子组2的所复制的地址将在所复制的地址被传送到第二节点290之后被写到NVM 140。
在组和子组之间存在优先关系,使得对子组中的位置进行寻址的同步操作不应用于在其他子组中的位置。然而,所述同步操作应用于不在任何其他子组中、在相同组中的位置。这使能了管理针对某些数据结构的细粒度一致性和针对其他数据结构的粗粒度一致性的有用的能力。例如,成批数据(bulk data)可以处于组中但不处于子组中,同时有关的元数据可以处于在该相同的组之内的子组中。在该示例中,如果同步范围包括在包含元数据的子组之内的任何位置,则这可以自动地引起整个子组以及普遍(at large)在相关联的组中的成批数据的同步。
可以首先同步非子组数据,继之以子组数据,继之以由同步地址范围指定的数据。如果子组的COW标记被设置,则所复制的地址可以被写回到NVM 140,作为子组的同步的一部分。组地址范围的准备标记可以不应用于当前处于子组之内的任何位置,因为其被子组的准备标记超越(override)。针对子组地址范围225和227的准备标记的值可以代替针对包括子组地址范围225和227的组地址范围215和217的准备标记的值。
同步操作可以包括冲洗和/或传送操作。传送操作可以跟随冲洗操作并且遵循上文关于同步描述的顺序。传送操作可以被控制器250执行,其中响应于同步命令,所冲洗的数据被传送到诸如第二节点290的另一设备。例如,如果同步地址范围被包括在子组地址范围中,则控制器250可以在子组地址范围225和227之前冲洗和传送包括子组地址范围225和227的组地址范围215和217并且可以在同步地址范围之前冲洗和传送子组地址范围225和227。
通过取决于以上优先描述来设置在子组或组中的准备标记,可以首先记录将被传送的组或子组地址范围。然后,在所述地址范围中的数据可以被发送到参与组的第二节点290。组和子组地址范围的准备标记可以在相应的组和/或子组地址范围在给定的同步操作期间被传送到第二节点290之后被重置,除非组和/或子组地址范围是被传送的最后的范围。
在该情况下,控制器250可以等待以重置最后范围的准备标记,直至在完成整个传送之后。例如,如上所述,控制器250可以一般地将同步地址范围最后传送到第二节点290。然后,控制器250可以将标志或分组传输到第二节点290以指示已经达到一致性点。可恢复的一致性点可以跨多个存储器范围(诸如页或高速缓存线、多个同步操作和多个服务器)。
最后的传送准备标记的重置因此被延迟,直至标志的传送完成并且所有COW数据已经被交付到NVM 140。当在子组或组中不存在与设置的准备标记相关联的更多地址范围时,传送完成。
日志230可以存储被成功地传送到第二节点290的数据的列表,并且还可以存储将被传送到第二节点290的数据。这里,日志230被示出包括初始地址列232、范围大小列234、数据列235和标志列238。日志230的初始地址和范围大小列232和234可以在功能上类似于组表格210的初始地址和范围大小列215和217。例如,日志230的初始地址和范围大小列232和234可以列出组或子组地址范围,针对其组织到第二节点290的传送。数据列236可以充当针对将被传送到第二节点290的数据的队列或缓冲器。
在相应的组和/或子组地址范围已经被成功地传送到第二节点之后,可以由控制器250设置标志列238的标志。因此,如果传送中断,诸如在电力故障期间,则控制器250可以向后检查日志230以确定地址范围中的哪些被成功传送。因此,控制器250可以不重新发送针对其设置了标志的数据。相反地,控制器250可以丢弃在标记被设置之后将被发送的任何数据,以便还原到之前的一致性点。进一步地,由于日志230充当针对数据的缓冲器,所以日志230可以独立于控制器250传送数据,因此释放了控制器250以执行其他操作。因此,日志230可以改进到第二节点290的数据传送的效率。
阈值周期270可以限定第一节点200可以等待来自第二节点290的确认的时间量,来自第二节点290的确认诸如标志或者组地址范围的接收的确认。阈值数量280可以限定如果没有接收到确认,则第一节点200可以重传标志或组地址范围的次数。阈值周期和数量270和280可以被控制器250同时监视。例如,控制器250可以对已经经过的时间量以及在等待确认时已经重传地址或标志的次数进行计数。如果超过阈值周期270和/或阈值数量280,则第一节点200可以推断第二节点290不能交付到传送并且因此丢弃所复制的地址262以便维持与第二节点290的原子性。
如上所述,第二节点290可以包含类似于第一节点200的部件。例如,第二节点290也可以包含阈值周期(未示出)、阈值数量(未示出)以及日志(未示出)。然而,阈值周期和/或数量可以不同和/或可以针对不同类型的传输被测量。进一步地,第二节点290的日志还可以记录在传送期间从第一节点200接收的地址范围。
通过允许应用显式表示哪些存储器位置将作为相同组的一部分被一起同步,实施例可以减少将被传送的数据的量。具有组地址范围的组的存在可以使能将由同步操作实现的应用一致性要求,同时维持同步操作语法的向后兼容性。在组之内具有子组可以使能更细粒度的高速缓存冲洗,其减少性能破坏。另外,可以在单个组之内正确地管理在子组之内以及在子组之外的地址范围。组和子组可以使能用于冗余、远程复制或者时间点复制的新近的写的更有效的传输,因为基于显式指定的应用要求和行为可以将细粒度的更新分组成较不频繁的传输。
图3A-3D是在图2的第一和节点200和290之间的操作的各种状态的示例时序图。图3A图示了正常状态。在时间T0期间,第一节点200的控制器250接收对COW范围的地址的写请求。控制器250然后发送命令以使得与COW范围的地址相关的NVM 140的地址144被复制到VM260。然后对在VM 260处的所复制的地址262执行后续的写操作。接着,控制器250接收包括同步地址范围的同步命令。这里,同步地址范围被包括在子组中,并且其组具有允许进行传送的传送属性值。因此,在时间T1处开始,控制器250开始向第二节点290传送非组地址,并且第二节点290确认该传送的接收。
接着,控制器250传送组地址范围(排除任何子组地址范围),并且第二节点290对接收进行确认。在接收所述确认时,控制器250重置(一个或多个)相应的准备标记。然后,控制器250传送子组地址范围(排除同步地址范围),并且第二节点290再次对接收进行确认。在接收确认时,控制器250重置(一个或多个)相应的准备标记。然后,控制器250传送同步地址范围,并且第二节点290对其接收进行确认。
然而,控制器250没有重置相应的准备标记。替代地,控制器250传送标志。在接收标志时,第二节点290将所有所传送的地址交付到它自己的NVM,并且然后发回确认。在时间T2处,在从第二节点290接收确认之后,控制器250将命令发送到VM 260以使得所复制的地址262被写到NVM 140。只有在所复制的地址262覆写第一存储器地址144之后,控制器250才重置最后的准备标记并且因此完成传送。另外,控制器250还可以在该点处清除日志230。可选地,控制器250还可以向第二节点290发送消息以指示第一节点200已经清除了其日志230。响应于该消息,第二节点290然后也可以清除其日志。
在图3B中,示出了其中第一节点200在传送中间被重置或者丢失电力的状态。这里,在时间T1处,在发送组地址范围中的一个并且接收确认之后,第一节点200被重置。在该情况下,控制器250停止传送并且保持传送未完成。进一步地,所复制的地址在被传送到第二节点之前丢失,因为其仅被存储在VM 260中。当第二节点290没有接收下一地址范围时,第二节点重新发送先前的确认。第二节点290可以在第二节点290的阈值周期期间多次重新发送先前的确认,直至第二节点290的阈值数量。如果达到了阈值数量和/或周期,没有接收下一地址范围,则第二节点290可以确定第一节点200不是可达的,并且丢弃在该会话期间从第一节点200接收的所有传送的地址范围。
图3C图示了其中第二节点290在传送中间被重置或者丢失电力的状态。这里,在时间T1处,第二节点290在从第一节点250接收标志时被重置,并且因此没有对标志的接收进行确认。当第一节点290没有接收确认时,第一节点重新发送标志。第一节点290可以在第一节点200的阈值周期270期间多次重新发送标志(或者任何地址范围),直至第一节点200的阈值数量280。如果达到了阈值数量280和/或周期270并且没有接收确认,则第一节点200可以确定第二节点290不是可达的,并且向VM 260发送命令以丢弃所复制的地址262。VM 260然后可以丢弃所复制的地址262,使得第一节点200可以保留与第二节点290的存储器一致性。
在图3D中,示出了其中第一节点200在传输标志之后但是在第一节点可以将所复制的地址262交付到NVM 140之前丢失电力的状态。这里,在时间T1处,控制器250传送最后的地址范围并且从第二节点290接收对接收的确认。如上所述,控制器250尚未重置相应的准备标记。接着,控制器250传输标志。在从第一节点200接收标志时,第二节点290将传送交付到它的NVM并且发送其确认。随后,第一节点200在可以从VM 260取回所复制的地址262之前遭受电力丢失并且丢失所复制的地址262。在再次上电并且注意到仅最后的地址范围的准备标记仍是设置的时候,第一节点200意识到传送未完成。
然后,第一节点200的控制器250检查日志230。如上所述,在确认接收时,地址范围在日志230中被记录为被成功传送。在注意到所述标志被成功传送之后,控制器250确定即使第一节点200丢失了所复制的地址262,第二节点290仍可以具有所复制的地址262。因此,控制器250将最后的组地址范围再次发送到第二节点290。在已经接收标志之后第二次接收最后的地址范围时,第二节点200确定第一节点200已经丢失了至少某些传送的地址,诸如所复制的地址262。
接着,第二节点290至少发送所复制的地址262,并且一直到所有所传送的地址范围发回到第一节点200。第一节点20然后将任何以及所有丢失的地址交付到NVM 140。接着,控制器250对被传送回的一个或多个地址的接收进行确认。控制器250然后还重置最后的准备标记。
类似于图3A,第一和第二节点200和290还可以向后清除它们的日志。因此,如果传送被电力丢失中断、标志被记录在日志230中、在所复制的地址262以及日志230中的标志还未被写到NVM 140之前,记录所复制的地址,则控制器250可以能够从第二节点290接收所复制的地址262。
图4是包括用于将地址范围从第一节点传送到第二节点的指令的计算设备400的示例框图。在图4的实施例中,计算设备400包括处理器410和机器可读存储介质420。机器可读存储介质420进一步包括用于将地址范围从第一节点(未示出)传送到第二节点(未示出)的指令422、424和426。
计算设备400可以是例如安全微处理器、笔记本计算机、台式计算机、一体化(all-in-one)系统、服务器、网络设备、控制器、无线设备,或者能够执行指令422、424和426的任何其他类型的设备。在某些示例中,计算设备400可以包括或者可以连接到诸如存储器、控制器等等之类的附加部件。
处理器410可以是至少一个中央处理单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、适于取回和执行存储在机器可读存储介质420中的指令的其他硬件设备,或者它们的组合。处理器410可以取、解码和执行指令422、424和426以实现将地址范围从第一节点传送到第二节点。作为取回和执行指令的替代或者除取回和执行指令之外,处理器410可以包括至少一个集成电路(IC)、其他控制逻辑、其他电子电路,或者包括用于执行指令422、424和426的功能的多个电子部件的它们的组合。
机器可读存储介质420可以是包含或存储可执行指令的任何电子、磁、光或其他物理存储设备。因此,机器可读存储介质420可以是例如随机访问存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储驱动器、压缩盘只读存储器(CD-ROM)等等。同样,机器可读存储介质420可以是非瞬时的。如以下详细描述的那样,可以用一系列可执行指令对机器可读存储介质420进行编码,该一系列可执行指令用于将地址范围从第一节点传送到第二节点。
此外,指令422、424和426当被处理器执行时(例如,经由处理器的一个处理元件或者多个处理元件),可以使得处理器执行过程,诸如图4的过程。例如,生成指令422可以被处理器410执行以在第一节点处生成被映射到非易失性存储器(NVM)的存储器地址范围的组地址范围。复制指令424可以被处理器410执行以响应于针对被映射到组地址范围的第一存储器地址的写操作在第一节点处将存储器地址范围的第一存储器地址复制到易失性存储器(未示出)。传送指令426可以被处理器410执行以响应于包括同步地址范围的同步命令将组地址范围从第一节点传送到第二节点。组地址范围包括所复制的地址,其中在同步范围之前传送在同步地址范围之外并且在组地址范围之内的地址。
如果第二节点在第一阈值周期之内没有对组地址范围的接收进行确认,则可以由第一节点丢弃所复制的地址。如果第二节点以第二阈值周期对组地址范围的接收进行确认,则所复制的地址可以被写到NVM。
只有在组地址范围的传送完成之后,第一节点才可以向第二节点发送标志。第二节点可以对标志进行确认,以便对组地址范围的接收进行确认。如果在第二阈值周期之内第二节点没有接收标志,则第二节点可以丢弃所传送的组地址范围。
图5是用于将地址范围从第一节点传送到第二节点的方法500的示例流程图。虽然以下参考第一节点100描述了方法500的执行,但是可以利用用于执行方法400的其他适合的部件,诸如第一节点200或300。附加地,用于执行方法500的部件可以被散布在多个设备(例如,与输入和输出设备通信的处理设备)之中。在某些场景中,协调行动的多个设备可以被视为单个设备以执行方法500。可以以存储在诸如存储介质420之类的机器可读存储介质上的可执行指令的形式和/或以电子电路的形式实现方法500。
在框510处,第一节点100接收包括同步地址范围的同步命令。然后,在框520处,第一节点100确定包括同步地址范围的组地址范围114。组地址范围114可以被映射到NVM 140的存储器地址范围142。如果第一存储器地址144被映射到组地址范围114并且针对第一存储器地址144请求写访问,则存储器地址范围140的第一存储器地址144可以被复制132到VM130。写访问然后可以被授予(grant)所复制的地址132,而不是第一存储器地址144。
接着,在框530处,第一节点100将包括同步地址范围的组地址范围114传送到第二节点150,其中将最后传送同步地址范围。在框540处,确定从第一节点100到第二节点150的传送是否完成。如果诸如由于在第一节点100处的电力丢失,传送未完成,则方法500流动到框560,其中第一节点100丢弃所复制的地址132。
另一方面,如果完成传送,则方法500从框540流到框550,其中第一节点100将标志传输到第二节点150。然后,在框570处,方法500确定第二节点150是否在第一阈值时段之内向第一节点100确认标志。如果没有确认所述标志,则方法500流回到框560,其中由第一节点100丢弃所复制的地址132。
仍然,如果确认了所述标志,则方法500从框570流到框580,其中第一节点100将所复制的地址132写到NVM 140。在第二节点150成功存储整个传送的组地址范围114之后,第二节点150可以确认标志。如果第二节点150在第二阈值时段之内没有接收标志,则第二节点150可以丢弃所传送的组地址范围114。
根据上文,实施例可以将存储器COW操作与组和/或子组链接。该同步机制可以被用于在将多个COW范围交付到诸如NVM的主存储器镜像的过程之内实现原子性。因此,如果在COW同步操作期间电力丢失或者故障,则同步将以其整体完成或者根本不完成。

Claims (15)

1.一种传送地址范围的第一节点,其包括:
组表格,其包括第一组,所述第一组包括被映射到非易失性存储器NVM的存储器地址范围的第一组地址范围,所述第一组地址范围包括写时复制COW范围,其中如果第一存储器地址被映射到COW范围并且针对第一存储器地址请求写访问,则存储器地址范围的第一存储器地址将被复制到易失性存储器;以及
控制器,用于响应于同步命令来根据基于组表格确定的顺序将包括第一组地址范围的第一组中包括的地址范围从第一节点传送到第二节点,其中
控制器将在完成传送之后传输标志,以及
控制器将在第二节点对标志进行确认之后将所复制的地址写到NVM。
2.如权利要求1所述的第一节点,其中,
组地址范围与准备标记相关联,
如果组地址范围将被传送到第二节点,则控制器将设置组地址范围的准备标记,以及
在组地址范围被传送到第二节点之后,控制器将重置组地址范围的准备标记。
3.如权利要求2所述的第一节点,其中,
组表格包括多个组地址范围,组地址范围中的每个将与多个准备标记中的一个相关联,以及
在第二节点对标志的接收进行确认并且所复制的地址被写到NVM之后,控制器将重置最后传送的组地址范围的准备标记。
4.如权利要求3所述的第一节点,还包括:
日志,在组地址范围被传送到第二节点之后记录组地址范围,其中
日志将在标志被传送到第二节点之后记录标志。
5.如权利要求4所述的第一节点,其中,
如果所复制的地址在正在被传送到第二节点之前丢失,则控制器将停止并且保持传送未完成,以及
如果第二节点没有接收标志,则第二节点将丢弃来自第一节点的传送的组地址范围。
6.如权利要求5所述的第一节点,其中,
如果传送被电力丢失中断、标志被记录在日志中、在所复制的地址以及日志中的标志未被写到NVM之前记录COW范围,则控制器将从第二节点接收所复制的地址。
7.如权利要求4所述的第一节点,其中,
在最后组地址范围的准备标记被重置之后,控制器将清除日志,以及
如果在所复制的地址被写到NVM之前第一节点丢失电力,则丢失所复制的地址。
8.如权利要求3所述的第一节点,其中,
如果第二节点没有对标志的接收进行确认,则控制器将向第二节点重新发送标志,以及
在第二节点从第一节点接收标志并且被传送到第二节点的所有组地址范围被存储在由第二节点可访问的NVM处之后,第二节点将向第一节点确认标志。
9.如权利要求3所述的第一节点,其中,
如果第一节点被重置并且在第一节点被重置之后仅最后组地址范围的准备标记被保持设置,则控制器将发送最后组地址范围,以及
如果第二节点在接收标志之后接收最后组地址范围,则第二节点将把所有传送的组地址范围发回到第一节点。
10.如权利要求1所述的第一节点,其中,
如果在标志到第二节点的重传的第一阈值周期和第一阈值数量中的至少一个之后,标志没有被第二节点确认,则第一节点将丢弃所复制的地址,以及
如果在由第二节点最后接收的组地址范围的确认的重传的第二阈值周期和第二阈值数量中的至少一个之后,第二节点没有接收标志,则第二节点将丢弃从第一节点传送的组地址范围。
11.如权利要求1所述的第一节点,其中,
响应于针对第一存储器地址的写访问来修改所复制的地址,以及
在第二节点对标志进行确认之后,控制器将把所复制的地址写回到NVM的第一存储器地址。
12.一种传送地址范围的方法,其包括:
在第一节点处接收包括同步地址范围的同步命令;
在包括被组织到组中的多个组地址范围的组表格中,识别包括同步地址范围的组地址范围中的一个;其中组地址范围中的每一个映射到非易失性存储器NVM中的对应的存储器地址范围,并且所识别的组地址范围映射到包括被识别用于写时复制COW处理的第一存储器地址的NVM中的存储器范围;
以基于组表格确定的顺序将对应于包括所识别的地址范围的组的数据从第一节点传送到第二节点;
在完成传送之后,将标志从第一节点传输到第二节点;
在将对应于第一存储器地址的所复制的地址写到NVM之前,等待第二节点确认标志;以及
响应于传送未完成和在第一阈值周期之后第二节点没有确认标志中的至少一个,丢弃所复制的地址。
13.如权利要求12所述的方法,其中,
在第二节点成功存储传送的组地址范围的整体之后,第二节点对标志进行确认,以及
如果第二节点在第二阈值周期之内没有接收标志,则第二节点丢弃所传送的组地址范围。
14.一种传送地址范围的方法,所述方法包括:
在第一节点处生成被映射到非易失性存储器(NVM)的存储器地址范围的组地址范围;
响应于针对被映射到组地址范围的第一存储器地址的写操作,在第一节点处将存储器地址范围的第一存储器地址复制到易失性存储器;以及
响应于包括同步地址范围的同步命令,将组地址范围从第一节点传送到第二节点,组地址范围将包括所复制的地址,其中
如果第二节点在第一阈值周期之内没有对组地址范围的接收进行确认,则由第一节点丢弃所复制的地址,以及
如果第二节点在第二阈值周期之内对组地址范围的接收进行确认,则所复制的地址被写到NVM。
15.如权利要求14所述的方法,其中,
如果第二节点在第二阈值周期之内没有接收标志,则在第二节点处丢弃所传送的地址范围。
CN201380071543.6A 2013-03-28 2013-03-28 从第一节点到第二节点的地址范围传送 Active CN104937565B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034382 WO2014158166A1 (en) 2013-03-28 2013-03-28 Address range transfer from first node to second node

Publications (2)

Publication Number Publication Date
CN104937565A CN104937565A (zh) 2015-09-23
CN104937565B true CN104937565B (zh) 2017-11-17

Family

ID=51624948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380071543.6A Active CN104937565B (zh) 2013-03-28 2013-03-28 从第一节点到第二节点的地址范围传送

Country Status (5)

Country Link
US (1) US9703701B2 (zh)
EP (1) EP2979185B1 (zh)
CN (1) CN104937565B (zh)
TW (1) TW201502778A (zh)
WO (1) WO2014158166A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019403B2 (en) * 2015-11-04 2018-07-10 International Business Machines Corporation Mapping data locations using data transmissions
CN106919531B (zh) * 2015-12-25 2020-02-21 华为技术有限公司 基于非易失性存储总线协议的交互方法及设备
US10795782B2 (en) 2018-04-02 2020-10-06 Hewlett Packard Enterprise Development Lp Data processing apparatuses and methods to support transferring control between a primary data processing system and a secondary data processing system in response to an event
TWI696951B (zh) * 2018-08-31 2020-06-21 威剛科技股份有限公司 儲存裝置異常斷電的處理系統和方法
US11544093B2 (en) * 2019-09-27 2023-01-03 Intel Corporation Virtual machine replication and migration
US10990526B1 (en) 2020-04-30 2021-04-27 Micron Technology, Inc. Handling asynchronous power loss in a memory sub-system that programs sequentially
CN112507032B (zh) * 2020-12-22 2022-05-27 正链科技(深圳)有限公司 一种kademlia协议的k-桶构造改进方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360231B1 (en) * 1999-02-26 2002-03-19 Hewlett-Packard Company Transactional memory for distributed shared memory multi-processor computer systems

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6658540B1 (en) 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
US6728736B2 (en) 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
US6789156B1 (en) 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7133982B2 (en) 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
EP1510924B1 (en) 2003-08-27 2008-07-23 ARM Limited Apparatus and method for handling transactions with writes and reads to EEPROM or Flash memories
US7133986B2 (en) 2003-09-29 2006-11-07 International Business Machines Corporation Method, system, and program for forming a consistency group
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
JP2005310008A (ja) 2004-04-23 2005-11-04 Fuji Xerox Co Ltd 木構造データ同期装置および方法
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7975018B2 (en) * 2004-07-07 2011-07-05 Emc Corporation Systems and methods for providing distributed cache coherence
US7818515B1 (en) 2004-08-10 2010-10-19 Symantec Operating Corporation System and method for enforcing device grouping rules for storage virtualization
US8302178B2 (en) 2005-03-07 2012-10-30 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
JP2009501382A (ja) * 2005-07-14 2009-01-15 ヨッタ ヨッタ, インコーポレイテッド マルチライタシステムにおける書き込み順序忠実性の維持
US7464126B2 (en) 2005-07-21 2008-12-09 International Business Machines Corporation Method for creating an application-consistent remote copy of data using remote mirroring
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US7640395B2 (en) 2006-03-30 2009-12-29 Intel Corporation Maintaining write ordering in a system
US7788231B2 (en) 2006-04-18 2010-08-31 International Business Machines Corporation Using a heartbeat signal to maintain data consistency for writes to source storage copied to target storage
US7647454B2 (en) * 2006-06-12 2010-01-12 Hewlett-Packard Development Company, L.P. Transactional shared memory system and method of control
TWI349289B (en) 2006-07-31 2011-09-21 Toshiba Kk Nonvolatile memory system, data read/write method for nonvolatile memory system, data read method for memory system, and data write method for memory system
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US20090063807A1 (en) 2007-08-29 2009-03-05 International Business Machines Corporation Data redistribution in shared nothing architecture
JP5101378B2 (ja) 2008-04-16 2012-12-19 ソニー株式会社 リーダライタ、通信処理装置、通信処理方法、データ管理システム及び通信システム
US8099387B2 (en) 2008-06-02 2012-01-17 International Business Machines Corporation Managing consistency groups using heterogeneous replication engines
JPWO2010001602A1 (ja) 2008-07-01 2011-12-15 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、データ処理装置、不揮発性記憶装置システム及び方法
JP5221332B2 (ja) 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8762642B2 (en) 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8438332B2 (en) 2009-06-22 2013-05-07 International Business Machines Corporation Apparatus and method to maintain write operation atomicity where a data transfer operation crosses a data storage medium track boundary
US9063886B2 (en) 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US9053027B1 (en) * 2011-12-21 2015-06-09 Emc Corporation Techniques for maintaining and restoring dirty caches across CPU resets
US9678863B2 (en) * 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US9058244B2 (en) * 2012-09-13 2015-06-16 International Business Machines Corporation Durable and coherent cache transactions between volatile and non-volatile memories

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360231B1 (en) * 1999-02-26 2002-03-19 Hewlett-Packard Company Transactional memory for distributed shared memory multi-processor computer systems

Also Published As

Publication number Publication date
EP2979185B1 (en) 2019-01-30
TW201502778A (zh) 2015-01-16
CN104937565A (zh) 2015-09-23
US20150370702A1 (en) 2015-12-24
WO2014158166A1 (en) 2014-10-02
US9703701B2 (en) 2017-07-11
EP2979185A1 (en) 2016-02-03
EP2979185A4 (en) 2016-10-19

Similar Documents

Publication Publication Date Title
CN104937565B (zh) 从第一节点到第二节点的地址范围传送
CN104937564B (zh) 组表格的数据冲洗
CN110045912A (zh) 数据处理方法和装置
US8233380B2 (en) RDMA QP simplex switchless connection
CN106469085B (zh) 虚拟机在线迁移方法、装置及系统
US6662282B2 (en) Unified data sets distributed over multiple I/O-device arrays
US8464101B1 (en) CAS command network replication
US8244825B2 (en) Remote direct memory access (RDMA) completion
US8738813B1 (en) Method and apparatus for round trip synchronous replication using SCSI reads
JP6225262B2 (ja) 分散データグリッドにおいてデータを同期させるためにパーティションレベルジャーナリングをサポートするためのシステムおよび方法
CN108073656A (zh) 一种数据同步方法及相关设备
CN106446159B (zh) 一种存储文件的方法、第一虚拟机及名称节点
US9307011B2 (en) Synchronous mirroring of NVLog to multiple destinations (architecture level)
DE102014109519A1 (de) Techniken zum Replizieren von Daten zwischen Speicherservern
KR101351222B1 (ko) 기록 큐잉 메커니즘을 이용한 다중 어레이 일관성 그룹 구현 방법 및 컴퓨터 판독 가능 매체
CN109690510A (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
EP3155531A1 (en) Replicating data using remote direct memory access (rdma)
CN108292235A (zh) 使用选择性资源迁移的网络附连存储器
CN104268001B (zh) 一种创建虚拟机的方法和创建虚拟机的装置
CN110377223A (zh) 数据再同步
CN107111552A (zh) 持久存储器版本化和合并
CN106528338A (zh) 一种远程数据复制方法、存储设备及存储系统
KR101601877B1 (ko) 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법
CN104572483B (zh) 动态内存管理装置及方法
CN104866245B (zh) 缓存设备和存储系统之间同步快照的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170122

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, L.P.

GR01 Patent grant
GR01 Patent grant