CN103885895A - 容错集群存储系统中的写入性能 - Google Patents
容错集群存储系统中的写入性能 Download PDFInfo
- Publication number
- CN103885895A CN103885895A CN201310618574.0A CN201310618574A CN103885895A CN 103885895 A CN103885895 A CN 103885895A CN 201310618574 A CN201310618574 A CN 201310618574A CN 103885895 A CN103885895 A CN 103885895A
- Authority
- CN
- China
- Prior art keywords
- copy
- node
- data
- master
- bunch
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/825—Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Human Computer Interaction (AREA)
Abstract
本发明实施例涉及支持提交到稳定存储器的事务数据。簇中的提交数据存储在持久缓存层中,被复制并且存储在一个或多个次级节点的缓存层中。在独占写入锁定分配给原版并且共享写入锁定扩展为副本的情况下,一个拷贝被指定为原版拷贝,所有其它拷贝被指定为副本。在数据已经复制到指定为接收副本的每个节点的确认之后,传送接收数据的确认。提供管理器和引导器以支持文件系统内的原版拷贝和副本的管理,包括副本的无效、与保存原版拷贝的节点的故障关联的容错、从故障节点恢复、从功率故障恢复文件系统以及在文件系统内传送原版和副本拷贝。
Description
技术领域
本发明涉及集群文件系统中的写入性能。更具体地说,本发明涉及将集群存储系统的文件系统缓存与分布式存储器层进行集成以启用同步写入事务的效率。
背景技术
具有多个同步写入操作或高比例提交操作的工作量被认为遭受性能损失。这些工作量在具有高比例提交的数据库工作量中是常见的。相似地,基于web的工作量当关闭文件时执行要求提交到稳定存储器的一系列文件操作。虚拟机具有它们自身的块层,并且在虚拟化环境中到达底层存储器的所有写入事务是同步的,并且要求立即提交到稳定存储器。这些操作中的每一个要求在将确认返回到客户机之前,将工作量数据写入到存储子系统。因为盘存取延时是比动态RAM(在此又称为DRAM)延时更高的量值级别,所以性能损失反映在增加的写入延时中。此外,提交操作不允许文件系统通过对存储子系统将多个写入事务聚合为单个I/O来延迟写入事务。相应地,要求将数据写入到存储子系统的各种类型的操作以及关联的确认通信受性能损失影响。
发明内容
本发明包括用于减小容错集群文件系统中与同步写入事务关联的性能损失的方法、系统和物品。
在一个方面中,提供一种用于减小容错文件系统中与同步写入事务关联的性能损失的方法。所述文件系统中的页面缓存层与稳定存储器层进行集成,以在簇中的各节点的分布式非易失性存储器中临时保存提交数据。响应于在所述文件系统中接收同步写入事务,与所述事务关联的数据被放置在层中并且在所述簇中的至少一个节点的层内被复制。在接收到的数据的原版拷贝与副本之间进行区分。所述区分包括:将现有缓存策略应用于所述原版拷贝。在将所述原版拷贝刷新(flush)到持久存储器之后,使得所述节点上的每个副本无效。
在另一方面中,提供一种用于在文件系统中将稳定存储器层与页面缓存层进行集成的计算机程序产品。所述计算机程序产品包括具有嵌入至其的程序代码的计算机可读存储介质。所述程序代码可由处理器执行。更具体地说,提供用于在簇中的各节点的分布式非易失性存储器中临时保存提交数据的程序代码。响应于在所述文件系统中接收同步写入事务,与接收到的写入事务关联的数据被放置在层中并且在所述文件系统中的一个或多个远程节点的层内被复制。还提供用于在接收到的数据的原版拷贝与副本之间进行区分的程序代码。所述区分包括:将现有缓存策略应用于接收到的数据的原版拷贝。响应于将所述原版拷贝刷新到持久存储器,使得各个远程节点上的每个副本无效。
在又一方面中,提供一种系统,其配备有在文件系统中与页面缓存层集成的稳定存储器层以在簇中节点的分布式非易失性存储器中保存提交数据。每个节点配备有与存储器进行通信的处理单元。提供与所述处理单元中的至少一个进行通信的功能单元。所述功能单元包括用于支持容错文件系统中的写入事务的工具。所述工具包括放置管理器、引导器和无效管理器,但不限于此。所述放置管理器负责将与所接收到的写入事务关联的数据放置在至少一个节点的层中。与所述放置管理器进行通信的引导器负责在接收到的数据的原版拷贝与接收到的数据的副本之间进行区分。所述引导器的功能包括:将现有缓存策略应用于接收到的数据的原版拷贝。与所述引导器进行通信的无效管理器响应于将所述原版拷贝刷新到持久存储器而使得每个副本无效。
在再一方面中,提供一种方法,用于减小容错文件系统中与写入事务关联的性能损失。在文件系统中将稳定存储器层与页面缓存层进行集成,以在簇节点的非易失性存储器中保存提交到稳定存储器的数据。响应于在所述文件系统中接收同步写入事务,与接收到的事务关联的数据被放置在层中并且在层内被复制。维持接收到的数据的原版拷贝和副本。所述原版拷贝和所述副本具有区别特征。将现有缓存策略应用于接收到的数据的原版拷贝,在将原版拷贝刷新到持久存储器之后,使得所述副本无效。
结合附图,从本发明目前优选实施例的以下详细描述中,本发明的其它特征和优点将变得清楚。
附图说明
在此引用的附图形成说明书的一部分。附图中所示的特征旨在说明本发明的仅某些实施例,而不是本发明所有实施例,除非另外明确地指示。
图1是描述对文件系统的同步写入事务的到达的流程图。
图2是描述当簇中的一个或多个节点已经历经故障时防止数据的丢失的流程图。
图3是描述原版节点将字节范围的原版拷贝刷新到盘存储子系统的流程图。
图4是描述当簇从功率故障返回时防止提交数据的丢失的处理的流程图。
图5是描述用于传送锁定的处理的流程图,其也可以传送原版拷贝与副本之间的指定。
图6是示出具有用于支持容错文件系统中的事务的工具的系统的框图。
图7描述示出用于实现本发明实施例的系统的框图。
具体实施方式
应容易理解,可以通过各种不同配置来布置和设计在此一般描述以及在附图中示出的本发明的各组件。因此,附图中所提出的本发明的装置、系统和方法的实施例的以下详细描述并非意图限制本发明的范围,如所要求的那样,而是仅表示本发明的所选实施例。
贯穿说明书对“选择实施例”、“一个实施例”或“实施例”的引用表示本发明的至少一个实施例中包括结合实施例描述的特定特征、结构或特性。因此,贯穿该说明书在各个地方的短语“在选择实施例中”、“在一个实施例中”或“在实施例中”的出现不一定指代相同的实施例。
所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。在以下描述中,提供大量具体细节,例如放置管理器、计算管理器等的示例,以提供本发明实施例的透彻理解。然而,本领域技术人员应理解,可以在没有一个或多个具体细节的情况下或以其它方法、组件、材料等实践本发明。在其它实例中,并未详细示出或描述公知结构、材料或操作,以免模糊本发明的各方面。
在各实施例的以下描述中,参照附图,其形成实施例的一部分,并且通过说明的方式示出可以实践本发明的具体实施例。应理解,因为可以在不脱离本发明的范围的情况下进行结构改变,所以可以利用其它实施例。
该说明书中所描述的功能单元已经标记有管理器和引导器的形式的工具。可以以可编程硬件器件(例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等)来实现所述工具。也可以以用于通过各种类型的处理器来进行处理的软件来实现所述工具。所标识的可执行代码的工具可以例如包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程、函数或其它构造。然而,所标识的工具的可执行无需物理上定位在一起,而是可以包括不同位置中所存储的全异指令,其当逻辑上结合在一起时包括所述工具并且实现所声明的所述工具的目的。
实际上,可执行代码可以是单个指令,或很多指令,并且甚至在不同应用之中,可以分布在若干不同代码段上,并且遍及若干存储器设备。相似地,操作数据可以被标识并且在此示出在管理器内,并且可以通过任何合适的形式来实施并且在任何合适类型的数据结构内被组织。操作数据可以收集为单个数据集,或可以分布在包括在不同存储设备上的不同位置上,并且可以至少部分地存在为系统或网络上的电子信号。
贯穿说明书对“选择实施例”、“一个实施例”或“实施例”的引用表示本发明至少一个实施例中包括结合实施例描述的特定特征、结构或特性。因此,贯穿该说明书在各个地方的短语“在选择实施例中”、“在一个实施例中”或“在实施例中”出现不一定指代相同的实施例。
此外,所描述的特征、结构或特征可以在一个或多个实施例中以任何合适的方式组合。在以下描述中,提供大量具体细节,例如放置管理器、无效管理器、故障管理器、恢复管理器、传送管理器、引导器等的示例,以提供本发明实施例的透彻理解。然而,本领域技术人员应理解,可以在没有一个或多个具体细节的情况下或以其它方法、组件、材料等实践本发明。在其它实例中,并未详细示出或描述公知结构、材料或操作,以免模糊本发明的各方面。
将通过参照附图来最佳地理解本发明的所示实施例,其中相同部分始终由相同标号表示。以下描述仅意图通过示例的方式,并且仅示出与在此所要求的本发明一致的设备、系统和处理的特定的所选实施例。
集群存储系统的文件系统缓存与稳定分布式存储器层进行集成。这种集成使得能够高效确认同步写入事务,其包括要求在响应于客户机请求之前将所更新的数据物理地存储在稳定存储器(例如盘、SSD)上的任何事务。在一个实施例中,同步写入事务包括提交事务。具体地说,所述集成使得能够维持文件系统缓存中的提交数据并且延迟将提交数据刷新到盘子系统(disksubsystem)。同时,所述集成确保数据不会由于簇节点故障或功率故障而丢失。相应地,减小了同步写入延时。
图1是描述对文件系统的同步写入事务的到达的流程图(100)。如所示那样,文件系统中的节点之一接收事务(102)。使用现有缓存策略在接收方节点的页面缓存中放置与事务关联的数据(104)。页面缓存是分区为多个页面的存储器中的缓冲器,其表示存储器中的文件系统块。页面缓存层是文件系统中的软件机制,其允许文件系统块反映在存储器子系统中,从而可以满足对这些页面的存取,而无需首先必须存取物理存储器。然后将接收到的数据复制到文件系统中的至少一个次级节点(106)。在一个实施例中,次级节点是并非接收方节点的文件系统中的任何节点。接收副本的次级节点的数量基于系统的可靠性和可用性特征。对于接收到的每个副本,将所复制的数据放置在关联次级节点的页面缓存中(108),并且次级节点将确认通信发送到接收方节点(110)。在一个实施例中,副本数据在持久DRAM(例如,闪速背式RAM(flash backed RAM))中。一旦接收到用于每一个副本的所有确认通信,接收方节点就将主要确认发送到事务发源的客户机(112)。相应地,事务数据在文件系统的缓存层内被复制,并且对于事务发源的客户机被确认,而不将数据刷新到盘子系统。
当接收异步写入事务时,对于同步写入事务,据图1中所展示的情况,在文件系统的行为方面不存在改变。当文件系统接收到提交操作时,将脏页面复制到文件系统中的一个或多个节点。在从已经复制数据的节点中的每一个确认复制之后,将提交确认回到发起提交操作的客户机。相应地,与提交操作关联的数据在一个或多个副本节点的缓存层中被复制并且对于发起客户机被确认,而不将数据刷新到盘子系统。
如图1所示,在文件系统的缓存层中维持提交数据,并且延迟将数据刷新到盘或盘子系统。同时,缓存层(例如电池背式DRAM(battery backedDRAM)、闪速背式DRAM或闪速器件)的持久特征确保提交数据不会因数据中心功率故障而丢失,副本确保提交数据不会因簇节点故障而丢失。
文件系统包括与盘子系统或数据中心进行通信的两个或更多个节点。如图1所示,对于从同步写入事务接收到的数据,在至少一个副本节点上维持副本。在数据的原版拷贝与副本之间进行区分。具体地说,原版拷贝保存关于数据的独占簇宽写入锁定,而副本节点保存关于数据的共享簇宽写入锁定。故此,在关联的缓存层中通过具有数据的节点所维持的锁定的特征来区分拷贝。在一个实施例中,原版拷贝用于在缓存层中选择字节范围。例如,选择节点可以是缓存层中用于第一字节范围的原版拷贝和缓存层中用于第二字节的副本拷贝。相应地,每个节点的缓存层可以包括原版和副本拷贝二者,其中,每个拷贝由关联的字节范围区分,并且原版拷贝具有原版字节范围上的独占簇宽写入锁定,而副本拷贝具有副本字节范围上的共享簇宽写入锁定。
处理读取事务的到达与在集群文件系统中传统地完成的相同。响应于对文件系统的读取事务,如果数据在接收方节点的本地页面缓存中,则从本地页面缓存读取所请求的字节范围。否则,如果所请求的字节范围在任何远程节点的页面缓存中,则将所请求的字节范围的原版拷贝刷新到盘子系统,将数据从盘子系统读取到接收方节点的页面缓存,并且从本地页面缓存服务于读取。
文件系统中的一个或多个节点可能经历故障,包括原版节点和副本节点。图2是描述当簇中的一个或多个节点已经历经故障时防止数据的丢失的流程图(200)。响应于检测到簇节点故障(202),簇中的节点之一(例如接管节点)获取故障节点所保存的丢失字节范围(204)。然后确定故障节点是否具有缓存层中丢失字节范围内的原版字节范围(206)。如果存在原版字节范围,则接管节点获取用于其已经获取的原版字节范围的独占写入锁定(208)。相应地,响应于节点故障,接管原版字节范围的任何节点获取用于原版字节范围的关联独占写入锁定。
在对在步骤(206)的确定的否定响应或在步骤(208)获取独占写入锁定之后,确定故障节点是否具有指定为副本范围数据的缓存层中的任何字节范围(210)。在对步骤(210)的确定的否定响应断定解决关于故障节点的缓存层的任何问题(212)。然而,在对步骤(210)的确定的肯定响应后,接管节点向簇中的每个原版节点通知节点故障,对此,故障节点关于副本故障而保存其副本(214)。故障节点的字节范围可以具有与簇中不同原版节点关联的多个子范围。例如,故障节点可以具有作为用于簇中一个原版节点的副本的第一字节范围以及作为用于簇中第二原版节点的副本的第二字节范围。对于故障节点中的每个副本字节范围,关联的原版节点接收属于副本数据的节点故障的通知(216),并且关联的原版节点请求簇中的新副本节点(218)。
一旦已经指定新副本节点,原版节点就可以从两个可选择动作中选取一个。第一可选择动作针对原版节点,以将原版字节范围写入到新副本节点,并且针对副本节点,以获取用于副本字节范围的共享写入锁定(220)。第二可选择动作针对原版节点,以将字节范围的原版拷贝刷新到盘存储子系统并且使得簇中副本节点上的字节范围的每个副本无效(222)。在(220)或(222)的动作之后,用于主体字节范围的原版节点将确认发送到接管节点(224),并且确定接管节点是否已经从用于故障节点中的比特范围的每个原版节点接收到确认(226)。对在步骤(226)的确定的肯定响应断定节点故障的矫正(212),对在步骤(226)的确定的否定响应后,等待所定义的时间间隔(228)并且返回到步骤(226)。相应地,用于故障节点中的副本字节范围的原版节点设定两个动作之一,以创建新副本节点或将主体字节范围中的数据刷新到存储子系统。
如图2所示,原版节点可以将字节范围的原版拷贝刷新到盘存储子系统。图3是描述该处理的细节的流程图(300)。将字节范围写入到存储子系统(302),此后,原版节点将无效消息发送到簇中的副本节点(304)。接收到无效消息(306)的每个副本节点使得其缓存层中的副本字节范围无效(308),释放用于副本字节范围的对应共享写入锁定(310),并且将确认发送到原版节点(312)。一旦原版节点处于从用于字节范围的每个副本节点的确认的接收中(314),原版节点就释放用于字节范围的对应独占写入锁定(316)。
文件系统中的节点可能出故障。故障的原因并不重要。相反,重要的是在缓存层中维持数据的方式。故障的一种形式是当簇经历功率故障时。图4是描述当簇从功率故障返回时防止提交数据的丢失的处理的流程图(400)。如所示那样,以从功率故障返回的簇开始处理(402)。簇中的每个节点检查其持久缓存层(例如电池背式DRAM或闪速背式DRAM)中的每个字节范围的元数据(404)。然后确定字节范围是否包含原版拷贝(406)。对在步骤(406)的确定的否定响应后,节点获取用于字节范围的共享写入锁定(408)。在一个实施例中,锁定管理器将共享写入锁定分配给获取节点。反之,对在步骤(406)的确定的肯定响应后,节点获取用于字节范围的独占写入锁定(410)。在一个实施例中,锁定管理器将独占锁定分配给获取节点。在步骤(408)或(410)的锁定获取之后,确定是否成功地获取锁定(412)。在步骤(412)对确定的否定响应后,使得缓存层中的字节范围无效(414)。在步骤(414)或对在步骤(412)的确定的肯定响应之后,确定是否所有簇节点验证了缓存层中它们的字节范围(416)。对在步骤(416)的确定的否定响应后,内部暂停(418)并且返回到步骤(416)。一旦所有簇节点已经验证缓存层中它们的字节范围,如对在步骤(416)的确定的肯定响应所示的那样,簇就被看作已经从功率故障返回。
可以在簇中的节点之间传送锁定。图5是描述用于传送锁定的处理的流程图(500),其也可以传送原版拷贝与副本之间的指定。响应于文件系统中的节点请求独占写入锁定(502),确定独占写入锁定是否对于作为请求的主体的字节范围可用(504)。对在步骤(504)的确定的否定响应后,将独占写入锁定扩展到请求节点(506)。然而,对在步骤(504)的确定的肯定响应后,确定请求节点是否保存与锁定请求关联的副本字节范围(508)。对在步骤(508)的确定的肯定响应后,改变字节范围的指定(510)以及将独占写入锁定传送到请求节点(512)。反之,对在步骤(508)的确定的否定响应后,节点上的字节范围被指定为具有独占写入锁定的新原版拷贝(514),之后从缓存层移除先前原版拷贝。相应地,可以连同底层字节范围的指定一起在文件系统内传送写入锁定。
存在用于管理存储器中副本空间的若干选项。一个选项是保留用于副本数据的每个节点上的分离缓存空间,并且原版副本可以执行用于每个副本的空间分配和管理。另一选项是不保留用于副本的分离缓存空间,其中,所复制的写入被处理为任何其它写入事务,并且可能产生副本节点上的页面退出。副本也可以被退出,导致原版副本被刷新到盘。
系统跟踪提交但未刷新的数据及其副本。如果保存原版拷贝的节点出故障,则从现有副本选取新的原版副本,并且创建新的副本。如果节点在提交但未刷新的数据的任何拷贝的情况下出故障,则将用于替代故障节点副本的又一副本放置在另一簇节点上。当崩溃的节点返回时,由于已经选取新副本,因此其缓存层得以恢复,并且所返回的节点的缓存内容被丢弃。最后,在簇故障的情况下,当返回功率时,以缓存层中的所有提交数据来恢复每个节点上的缓存的内容,那么可以使得非提交数据无效。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令也可以加载到计算机、其它可编程数据处理装置或其它设备,以产生要在计算机、其它可编程装置或其它设备上执行的一系列操作步骤,以产生计算机实现的处理,从而在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图块或各块中指定的功能/动作的处理。
如图1-5所示,提供一种用于改进容错文件系统中的写入性能的方法。更具体地说,缓存层被配置有用于支持写入事务和提交操作的持久RAM。缓存层内的原版和副本字节范围具有不同的锁定,原版字节范围具有独占锁定,并且副本字节范围具有共享锁定。仅在所有副本节点已经确认副本节点的副本字节范围中的关联数据的接收和存储之后,将单个确认通信发送到发起写入事务或提交操作的客户机。图6是示出计算机系统中嵌入以支持文件系统中的写入事务或提交操作的工具的框图(600)。文件系统(610)示出具有多个节点(620)和(640)。虽然仅示出两个节点,但本发明不应受限于文件系统中的该节点数量。相应地,可以采用两个或更多个节点来建构文件系统。
相似地配置节点中的每一个。更具体地说,节点0(620)具有穿过总线(626)与存储器(624)进行通信并且与数据存储器(628)进行通信的处理单元(622),节点1(640)配备有穿过总线(646)与存储器(644)进行通信并且与第二本地存储器(648)进行通信的处理单元(642)。节点(620)和(640)是与远程数据存储器(650)进行通信的文件系统(610)的一部分。节点(620)和(640)中的每一个示出为驻留在文件系统(610)中,节点(620)和(640)中的每一个包括分别形成簇中的文件系统缓存层(610)的文件系统缓存(630)和(632)。在一个实施例中,文件系统缓存(630)和(632)是持久动态随机存取存储器(“P-DRAM”)、闪速背式DRAM或非易失性RAM(“NVRAM”)的形式。相应地,文件系统缓存(630)和(632)优选地是RAM的持久形式,从而在故障的情况下保留数据。
在节点(620)和(640)中的至少一个内还提供功能单元,以支持文件系统中的写入性能的管理。为了便于描述,示出节点0(620)具有与处理单元(622)进行通信的功能单元(640),并且具有嵌入其中的、用于在容错文件系统中支持写入事务或提交操作的工具。所述工具包括放置管理器(642)、引导器(644)、无效管理器(646)、故障管理器(648)、恢复管理器(660)以及传送管理器(662),但不限于此。相应地,提供管理器或引导器的形式的工具,以支持写入事务的接收以及文件系统内的关联数据的容错保留。
放置管理器(642)运作为响应于同步写入事务的形式的事务。更具体地说,放置管理器(642)将与接收到的事务或操作关联的数据放置在文件系统的缓存层中,并且在文件系统缓存层内复制与接收到的事务或操作关联的数据。在一个实施例中,文件系统中的每个节点配备有用于接收到的数据的放置管理器(642)。引导器(644)被提供与放置管理器(642)进行通信,并且运作为在接收到的数据的原版拷贝和副本之间进行区分。引导器(644)基于分类而将不同的缓存技术应用于与事务关联的数据。相应地,放置管理器(642)与引导器(644)结合管理与文件系统中的节点中的任一所接收到的写入事务或提交操作关联的数据的接收和放置。
无效管理器(646)、故障管理器(648)、恢复管理器(660)和传送管理器(662)均结合引导器(644)而被提供,以使能数据的容错复制的进一步功能。如图1-5的流程图中详细描述的那样,在文件系统的缓存层中复制接收到的数据,其中,一个拷贝指定为原版拷贝,并且每个副本指定为副本或副本拷贝。原版拷贝被标识并且与独占簇宽写入锁定关联,而副本被标识并且与共享簇宽写入锁定关联。无效管理器(646)运作为响应于将文件系统中的原版拷贝刷新到持久存储器而使得远程节点的每个副本无效。由于只要原版拷贝处于缓存层中副本就运作为支持原版拷贝,因此一旦从缓存层移除原版拷贝,就可以从缓存层移除远程节点上的每个副本。相应地,无效管理器(646)运作为通过使得原版拷贝已经刷新到持久存储器的每个副本无效来维持缓存层的完整性。
故障管理器(648)被提供与引导器(644)进行通信。故障管理器(648)运作为支持文件系统的容错特性。更具体地说,故障管理器(648)运作为在节点的缓存层经历保存指定为原版拷贝的数据的故障的情况下响应于节点故障。在一个实施例中,缓存层可以包括具有指定为原版拷贝的字节范围的一个子集以及指定为副本的字节范围的另一子集的扩展字节范围。基于指定原版拷贝的、经历故障的节点上的字节范围的至少一个子集的确定,故障管理器(668)选取文件系统中的其它节点以获取数据的原版拷贝。所选取的节点获取用于数据的新原版拷贝的独占簇宽写入锁定。在一个实施例中,故障管理器(648)采用指定为具有缓存层中的原版拷贝的副本的簇中的节点。在另一实施例中,故障管理器(648)促进将数据复制到簇中的新次级节点,并且新次级节点获取独占簇宽写入锁定。相应地,在保存原版拷贝的节点的故障的情况下,故障管理器(648)促进新原版拷贝的指定。
恢复管理器(660)还被提供与引导器(644)进行通信,并且运作为恢复所恢复的故障节点上的内容,并且在另一实施例中运作为响应于从功率故障恢复文件系统而恢复数据。关于所恢复的故障节点,恢复管理器(660)运作为通过从生存节点的非易失性存储器读取数据来恢复所恢复的故障节点上的内容。在此情况下,簇并不经历簇宽故障,故此,簇中的至少一个节点被看作已经生存。生存节点可以是簇的原版节点或簇中的可用节点。由于缓存层中的字节范围与独占锁定或共享锁定关联,因此字节范围的特征指示其中的数据是否为副本的原版拷贝。关于从功率故障恢复文件系统,恢复管理器(660)运作为基于每个字节范围内的特征来标识原版和副本拷贝。更具体地说,恢复管理器(660)通过重新获取包括用于原版拷贝的独占簇宽写入锁定以及用于副本拷贝的共享簇宽写入锁定的适当锁定,来验证缓存层内的原版拷贝和副本拷贝。相应地,恢复管理器(660)被配置为促进从簇功率故障恢复簇中的单独节点或簇。
传送管理器(662)被提供与引导器(644)进行通信。传送管理器(662)运作为在文件系统内传送原版拷贝的指定。如指示的那样,原版拷贝配备有用于关联字节范围的簇宽独占写入锁定。传送管理器(662)维持与原版拷贝的独占写入锁定。更具体地说,如果原版拷贝传送到簇中的请求器节点,则传送管理器(662)撤消与原版拷贝的来自初始节点的独占写入锁定,并且将独占写入锁定传送到请求器节点。相应地,可以在簇内传送原版拷贝,并且传送管理器(662)通过使得传送伴随穿过字节范围的独占写入锁定来促进原版拷贝的传送。
放置管理器(642)、引导器(644)、无效管理器(646)、故障管理器(648)、恢复管理器(660)和传送管理器(662)被配置为文件系统中的容错。如上所述,放置管理器(642)、引导器(644)、无效管理器(646)、故障管理器(648)、恢复管理器(660)和传送管理器(662)示出驻留在节点(620)的存储器(624)中。在一个实施例中,放置管理器(642)、引导器(644)、无效管理器(646)、故障管理器(648)、恢复管理器(660)和传送管理器(662)可以驻留在驻留于文件系统中的一个或多个服务器节点的本地的存储器中。相似地,在一个实施例中,管理器和引导器(642)-(662)可以驻留为存储器外部的硬件工具,并且可以实现为硬件和软件的组合,或可以本地驻留到文件系统中的节点中的任一的存储器。相似地,在一个实施例中,管理器和引导器(642)-(662)可以组合为合并分离条目的功能的单个功能条目。如在此所示的那样,管理器中的每一个示出为对文件系统中的一个节点来说是本地的。然而,在一个实施例中,它们可以联合地或单独地穿过文件系统中的两个或更多个节点而分布,并且运作为用于解决并且维持容错的单元。相应地,管理器和引导器可以实现为软件工具、硬件工具或软件和硬件工具的组合。
现在参照图7的框图(700),现在关于实现本发明实施例来描述附加细节。计算机系统包括一个或多个处理器,例如处理器(702)。处理器(702)连接到通信基础架构(704)(例如通信总线、交叉条或网络)。
计算机系统可以包括显示接口(706),其从通信基础架构(704)(或从帧缓冲器(未示出))转发图形、文本和其它数据,以用于在显示单元(708)上显示。计算机系统还包括主级存储器(710),优选地随机存取存储器(RAM),并且可以还包括次级存储器(712)。次级存储器(712)可以包括例如硬盘驱动器(714)(或替代的持久存储器件)和/或表示例如软盘驱动器、磁带驱动器或光盘驱动器的可移除存储驱动器(716)。可移除存储驱动器(716)以本领域技术人员公知的方式来读取自和/或写入到可移除存储单元(718)。可移除存储单元(718)表示例如软盘、压缩盘、磁带或光盘等,其由可移除存储驱动器(716)读取并且写入。应理解,可移除存储单元(718)包括具有其中存储计算机软件和/或数据的计算机可读介质。
在替选实施例中,次级存储器(712)可以包括用于允许计算机程序或其它指令加载到计算机系统中的其它相似部件。这些部件可以包括例如可移除存储单元(720)和接口(722)。这些部件的示例可以包括(例如在视频游戏设备中发现的)程序分组或分组接口、可移除存储器芯片(例如EPROM或PROM)和关联套接以及允许将软件和数据从可移除存储单元(720)传送到计算机系统的其它可移除存储单元(720)和接口(722)。
计算机系统还可以包括通信接口(724)。通信接口(724)允许在计算机系统与外部设备之间传送软件和数据。通信接口(724)的示例可以包括调制解调器、网络接口(例如以太网卡)、通信端口或PCMCIA插槽或卡等。经由通信接口(724)所传送的软件和数据是信号的形式,其可以是例如能够由通信接口(724)接收的电、电磁、光或其它信号。经由通信路径(即信道)(726)将这些信号提供给通信接口(724)。该通信路径(726)承载信号并且可以使用有线或缆线、光纤、电话线路、蜂窝电话链路、射频(RF)链路和/或其它通信信道来实现。
在本发明中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”通常用于指代例如主级存储器(710)和次级存储器(712)、可移除存储驱动器(716)以及安装在硬盘驱动器或替代的持久存储设备上的硬盘(714)的介质。
计算机程序(又称为计算机控制逻辑)存储在主级存储器(710)和/或次级存储器(712)中。也可以经由通信接口(724)来接收计算机程序。这些计算机程序当运行时使得计算机系统能够执行在此所讨论的本发明的特征。具体地说,计算机程序当运行时使得处理器(702)能够执行计算机系统的特征。相应地,这些计算机程序表示计算机系统的控制器。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在此所使用的术语仅用于描述特定实施例的目的,而并非意图限制本发明。如在此使用的那样,单数形式“一个”、“某个”以及“这个”意图同样包括复数形式,除非上下文另外清楚指明。还应理解,术语“包括”和/或“包含”当在本发明中使用时用于指定所声明的特征、整体、步骤、操作、元件和/或组件的存在性,但不排除一个或多个其它特征、整体、步骤、操作、元件、组件或其群组的存在性或添加性。
以下权利要求中的所有手段或步骤加功能的对应结构、材料、动作和等同物意图包括用于与具体要求的其它所要求的要素组合来执行功能的任何结构、材料或动作。已经为了说明和描述的目的陈述了本发明的描述,但并非意图将本发明囊括或限制为所公开的形式。在不脱离本发明的范围和金属的情况下,很多修改和变化对于本领域技术人员将是明显的。选取并且描述实施例以最佳地解释本发明的原理和实际应用,并且使得本领域技术人员能够针对具有适合于所预期的实际使用的各种修改的各种实施例理解本发明。相应地,增强云计算模型支持关于事务处理的灵活性,包括优化存储系统并且响应于所优化的存储系统来处理事务,但不限于此。
替代实施例
应理解,虽然为了说明的目的而在此已经描述了本发明特定实施例,但在不脱离本发明精神和范围的情况下,可以进行各种修改。相应地,本发明的范围仅由所附权利要求及其等同物限定。
Claims (21)
1.一种方法,包括:
在文件系统中将稳定存储器层与页面缓存层进行集成,以在簇中的各节点的分布式非易失性存储器中临时保存提交数据;
响应于在所述文件系统中接收到同步写入事务,在所述层中放置与接收到的写入事务关联的数据,并且在所述簇中一个或多个远程节点的层内复制接收到的数据;
在接收到的数据的原版拷贝与接收到的数据的副本之间进行区分,包括将现有缓存策略应用于接收到的数据的原版拷贝;以及
响应于将所述原版拷贝刷新到持久存储器,使得所述一个或多个远程节点上的每个副本无效。
2.如权利要求1所述的方法,还包括:所述原版拷贝保持独占簇宽写入锁定,并且所述副本保持共享簇宽写入锁定。
3.如权利要求2所述的方法,还包括:响应于保存所述原版拷贝的节点的故障而维持容错,包括:选取远程节点以通过获取用于所述数据的独占簇宽写入锁定来获取所述原版拷贝。
4.如权利要求3所述的方法,还包括:响应于故障节点的恢复而恢复所恢复的故障节点上的内容,包括:从生存节点的非易失性存储器读取数据,其中,所述生存节点选自包括可用节点和所述原版节点的组。
5.如权利要求2所述的方法,还包括:将所述原版拷贝的指定传送到请求器节点,包括:从所述原版拷贝撤消所述独占写入锁定,并且将所述独占写入锁定传送到所述请求器节点。
6.如权利要求1所述的方法,还包括:响应于从功率故障恢复所述文件系统,从每个节点上的非易失性存储器内容恢复数据,并且根据数据字节范围的特性来标识原版和副本拷贝,通过重新获取簇宽写入锁定来验证原版和副本拷贝。
7.一种用于在文件系统中将稳定层与页面缓存层进行集成的装置,包括:
一模块,适配为在簇中的各节点的分布式非易失性存储器中临时保存提交数据;
一模块,适配为响应于在所述文件系统中接收到同步写入事务,在所述层中放置与接收到的写入事务关联的数据,并且在所述簇中一个或多个远程节点的层内复制接收到的数据;
一模块,适配为在接收到的数据的原版拷贝与接收到的数据的副本之间进行区分,包括将现有缓存策略应用于接收到的数据的原版拷贝;
一模块,适配为响应于将所述原版拷贝刷新到持久存储器来使得所述一个或多个远程节点上的每个副本无效。
8.如权利要求7所述的装置,还包括:一模块,适配为所述原版拷贝保存独占簇宽写入锁定和所述副本保存共享簇宽写入锁定。
9.如权利要求8所述的装置,还包括:一模块,适配为响应于保存所述原版拷贝的节点的故障而维持容错,包括:选取远程节点以通过获取用于所述数据的独占簇宽写入锁定来获取所述原版拷贝。
10.如权利要求9所述的装置,还包括:一模块,适配为响应于故障节点的恢复而恢复所恢复的故障节点上的内容,包括:从生存节点的非易失性存储器读取数据,其中,所述生存节点选自包括可用节点和所述原版节点的组。
11.如权利要求8所述的装置,还包括:一模块,适配为将所述原版拷贝的指定传送到请求器节点,包括:从所述原版拷贝撤消所述独占写入锁定,并且将所述独占写入锁定传送到所述请求器节点。
12.如权利要求7所述的装置,还包括:响应于从功率故障恢复所述簇,一模块,适配为从每个节点上的非易失性存储器内容恢复数据,并且根据数据字节范围的特性来标识原版和副本拷贝,通过重新获取簇宽写入锁定来验证原版和副本拷贝。
13.一种系统,包括:
页面缓存层,在文件系统中与稳定存储器层集成,以在簇中的各节点的分布式非易失性存储器中临时保存提交数据,每个节点具有与存储器进行通信的处理单元;
功能单元,与所述处理单元中的至少一个进行通信,所述功能单元包括用于支持在容错文件系统中支持写入事务的工具,所述工具包括:
放置管理器,用于在所述层中放置与接收到的写入事务关联的数据,并且响应于接收同步写入事务而在一个或多个节点的层内复制接收到的数据;
引导器,与所述放置管理器进行通信,所述引导器用于在接收到的数据的原版拷贝和副本之间进行区分,包括:所述引导器将现有缓存策略应用于所述原版拷贝;以及
无效管理器,与所述引导器进行通信,所述无效管理器用于响应于将所述原版拷贝刷新到持久存储器而使得每个副本无效。
14.如权利要求13所述的系统,还包括:所述原版拷贝保持独占簇宽写入锁定,并且所述副本保存共享簇宽写入锁定。
15.如权利要求14所述的系统,还包括:故障管理器,与所述引导器进行通信,所述故障管理器响应于保存所述原版拷贝的节点的故障而维持容错,包括:所述故障管理器选取所述簇中的远程节点,以通过获取用于所述数据的独占簇宽写入锁定来获取所述原版拷贝。
16.如权利要求15所述的系统,还包括:恢复管理器,与所述引导器进行通信,所述恢复管理器响应于故障节点的恢复而恢复所恢复的故障节点上的内容,包括:从生存节点的非易失性存储器读取数据,其中,所述生存节点选自包括可用节点和所述原版节点的组。
17.如权利要求14所述的系统,还包括:传送管理器,与所述引导器进行通信,所述传送管理器将所述原版拷贝的指定传送到请求器节点,包括:从所述原版拷贝撤消所述独占写入锁定,并且将所述独占写入锁定传送到所述请求器节点。
18.如权利要求14所述的系统,还包括:恢复管理器,与所述引导器进行通信,所述恢复管理器响应于从功率故障恢复所述簇而从所述簇中每个节点上的非易失性存储器内容恢复数据,并且根据数据字节范围的特性来标识原版和副本拷贝,并且通过重新获取簇宽写入锁定来验证原版和副本拷贝。
19.一种方法,包括:
在文件系统中将稳定存储器层与页面缓存层进行集成,以在簇中的各节点的非易失性存储器中保存提交到稳定存储器的数据;
在所述文件系统中接收同步写入事务,包括:在所述文件系统的层中放置与所述事务关联的数据,并且在所述层内复制接收到的数据;
维持接收到的数据的原版拷贝和副本,所述原版拷贝具有与所述副本的区别特征;以及
将现有缓存策略应用于接收到的数据的原版拷贝;以及
在将所述原版拷贝刷新到持久存储器之后,使得所述副本无效。
20.如权利要求19所述的方法,还包括:所述原版拷贝保持独占簇宽写入锁定,并且所述副本保存共享簇宽写入锁定。
21.如权利要求19所述的方法,还包括:从每个节点上的非易失性存储器内容恢复数据,根据数据字节范围的特性来标识原版和副本拷贝,并且响应于从功率故障的恢复而通过重新获取簇宽写入锁定来验证原版和副本拷贝。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/719,590 US9152501B2 (en) | 2012-12-19 | 2012-12-19 | Write performance in fault-tolerant clustered storage systems |
US13/719,590 | 2012-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885895A true CN103885895A (zh) | 2014-06-25 |
CN103885895B CN103885895B (zh) | 2017-03-01 |
Family
ID=50932352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310618574.0A Active CN103885895B (zh) | 2012-12-19 | 2013-11-28 | 容错集群存储系统中的写入性能 |
Country Status (2)
Country | Link |
---|---|
US (3) | US9152501B2 (zh) |
CN (1) | CN103885895B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103930878A (zh) * | 2011-11-17 | 2014-07-16 | 英特尔公司 | 用于存储器验证的方法、装置及系统 |
CN105183544A (zh) * | 2015-09-17 | 2015-12-23 | 中国科学院计算技术研究所 | 一种非阻塞式容错的分布式事务提交方法及系统 |
CN108021335A (zh) * | 2016-11-01 | 2018-05-11 | 富士通株式会社 | 存储系统和存储装置 |
CN111339061A (zh) * | 2020-02-12 | 2020-06-26 | 杭州涂鸦信息技术有限公司 | 一种分布式数据库的数据迁移方法及系统 |
CN112470129A (zh) * | 2018-07-24 | 2021-03-09 | Arm有限公司 | 容错存储器系统 |
CN111033471B (zh) * | 2017-06-30 | 2023-05-16 | 伊夫塔奇·舒尔曼 | 用于控制只追加文件的方法、系统以及介质 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407044B (zh) * | 2010-12-14 | 2019-09-24 | 株式会社日立制作所 | 信息处理系统中的故障恢复方法和信息处理系统 |
US9086991B2 (en) * | 2013-02-19 | 2015-07-21 | Infinidat Ltd. | Solid state drive cache recovery in a clustered storage system |
US9330055B2 (en) * | 2013-06-04 | 2016-05-03 | International Business Machines Corporation | Modular architecture for extreme-scale distributed processing applications |
EP3514693A1 (en) * | 2013-10-29 | 2019-07-24 | Huawei Technologies Co., Ltd. | Transaction processing method and apparatus |
US9213642B2 (en) * | 2014-01-20 | 2015-12-15 | International Business Machines Corporation | High availability cache in server cluster |
CA2953031C (en) * | 2014-08-26 | 2023-08-08 | Ctera Networks, Ltd. | A method and computing device for allowing synchronized access to cloud storage systems based on stub tracking |
KR20160046235A (ko) * | 2014-10-20 | 2016-04-28 | 한국전자통신연구원 | 컨텐츠 캐시의 그룹 형성 방법 및 컨텐츠 제공 방법 |
CN104516969A (zh) * | 2014-12-25 | 2015-04-15 | 祝峰 | 一种云计算平台下数据与计算密集型处理系统 |
CN105991752B (zh) * | 2015-03-06 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 一种数据块更新方法及设备 |
US10496538B2 (en) * | 2015-06-30 | 2019-12-03 | Veritas Technologies Llc | System, method and mechanism to efficiently coordinate cache sharing between cluster nodes operating on the same regions of a file or the file system blocks shared among multiple files |
US20170011054A1 (en) * | 2015-07-11 | 2017-01-12 | International Business Machines Corporation | Intelligent caching in distributed clustered file systems |
US10877956B2 (en) * | 2015-11-24 | 2020-12-29 | Sap Se | Transactional cache invalidation for inter-node caching |
US10353895B2 (en) | 2015-11-24 | 2019-07-16 | Sap Se | Atomic visibility switch for transactional cache invalidation |
US9946534B1 (en) * | 2016-01-15 | 2018-04-17 | Jpmorgan Chase Bank, N.A. | Techniques for automated database deployment |
US10235249B1 (en) * | 2016-07-01 | 2019-03-19 | EMC IP Holding Company LLC | System and method for PaaS replication |
US10514847B2 (en) * | 2016-12-28 | 2019-12-24 | Amazon Technologies, Inc. | Data storage system with multiple durability levels |
US10771550B2 (en) | 2016-12-28 | 2020-09-08 | Amazon Technologies, Inc. | Data storage system with redundant internal networks |
US11301144B2 (en) | 2016-12-28 | 2022-04-12 | Amazon Technologies, Inc. | Data storage system |
US10484015B2 (en) | 2016-12-28 | 2019-11-19 | Amazon Technologies, Inc. | Data storage system with enforced fencing |
US10725915B1 (en) | 2017-03-31 | 2020-07-28 | Veritas Technologies Llc | Methods and systems for maintaining cache coherency between caches of nodes in a clustered environment |
US11169723B2 (en) | 2019-06-28 | 2021-11-09 | Amazon Technologies, Inc. | Data storage system with metadata check-pointing |
CN111078451B (zh) * | 2019-08-05 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 分布式事务处理方法、装置、计算机设备及存储介质 |
CN111104069B (zh) * | 2019-12-20 | 2024-02-06 | 北京金山云网络技术有限公司 | 分布式存储系统的多区域数据处理方法、装置及电子设备 |
US11184424B2 (en) * | 2020-03-19 | 2021-11-23 | Citrix Systems, Inc. | Systems and methods for simplified recording and sharing of data |
US11520516B1 (en) * | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
CN115037745B (zh) * | 2022-05-18 | 2023-09-26 | 阿里巴巴(中国)有限公司 | 一种在分布式系统中选举的方法及装置 |
CN116662081B (zh) * | 2023-08-01 | 2024-02-27 | 苏州浪潮智能科技有限公司 | 一种分布式存储冗余方法、装置、电子设备和存储介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115804A (en) | 1999-02-10 | 2000-09-05 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention |
US7146524B2 (en) * | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7054910B1 (en) * | 2001-12-20 | 2006-05-30 | Emc Corporation | Data replication facility for distributed computing environments |
US7363540B2 (en) | 2002-10-22 | 2008-04-22 | Microsoft Corporation | Transaction-safe FAT file system improvements |
US8041735B1 (en) * | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US7739233B1 (en) * | 2003-02-14 | 2010-06-15 | Google Inc. | Systems and methods for replicating data |
US7793060B2 (en) * | 2003-07-15 | 2010-09-07 | International Business Machines Corporation | System method and circuit for differential mirroring of data |
US7822929B2 (en) | 2004-04-27 | 2010-10-26 | Intel Corporation | Two-hop cache coherency protocol |
US7441081B2 (en) | 2004-12-29 | 2008-10-21 | Lsi Corporation | Write-back caching for disk drives |
US20070022129A1 (en) * | 2005-07-25 | 2007-01-25 | Parascale, Inc. | Rule driven automation of file placement, replication, and migration |
US7451277B2 (en) | 2006-03-23 | 2008-11-11 | International Business Machines Corporation | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
US8706968B2 (en) | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
US20090157766A1 (en) | 2007-12-18 | 2009-06-18 | Jinmei Shen | Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event |
US7979652B1 (en) | 2007-12-20 | 2011-07-12 | Amazon Technologies, Inc. | System and method for M-synchronous replication |
US8650155B2 (en) | 2008-02-26 | 2014-02-11 | Oracle International Corporation | Apparatus and method for log based replication of distributed transactions using globally acknowledged commits |
US8935336B2 (en) | 2008-06-18 | 2015-01-13 | Cisco Technology, Inc. | Optimizing program requests over a wide area network |
US8250311B2 (en) | 2008-07-07 | 2012-08-21 | Intel Corporation | Satisfying memory ordering requirements between partial reads and non-snoop accesses |
US8438325B2 (en) | 2008-10-09 | 2013-05-07 | Cadence Design Systems, Inc. | Method and apparatus for improving small write performance in a non-volatile memory |
US8140478B2 (en) | 2009-01-29 | 2012-03-20 | Microsoft Corporation | Commit rate management with decoupled commit operations |
CN101562543B (zh) * | 2009-05-25 | 2013-07-31 | 阿里巴巴集团控股有限公司 | 一种缓存数据的处理方法、处理系统和装置 |
US8271737B2 (en) | 2009-05-27 | 2012-09-18 | Spansion Llc | Cache auto-flush in a solid state memory device |
-
2012
- 2012-12-19 US US13/719,590 patent/US9152501B2/en not_active Expired - Fee Related
-
2013
- 2013-08-30 US US14/014,852 patent/US9454435B2/en not_active Expired - Fee Related
- 2013-11-28 CN CN201310618574.0A patent/CN103885895B/zh active Active
-
2015
- 2015-07-28 US US14/811,040 patent/US9916201B2/en active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103930878A (zh) * | 2011-11-17 | 2014-07-16 | 英特尔公司 | 用于存储器验证的方法、装置及系统 |
CN103930878B (zh) * | 2011-11-17 | 2016-09-21 | 英特尔公司 | 用于存储器验证的方法、装置及系统 |
CN105183544A (zh) * | 2015-09-17 | 2015-12-23 | 中国科学院计算技术研究所 | 一种非阻塞式容错的分布式事务提交方法及系统 |
CN105183544B (zh) * | 2015-09-17 | 2018-08-31 | 中国科学院计算技术研究所 | 一种非阻塞式容错的分布式事务提交方法及系统 |
CN108021335A (zh) * | 2016-11-01 | 2018-05-11 | 富士通株式会社 | 存储系统和存储装置 |
CN111033471B (zh) * | 2017-06-30 | 2023-05-16 | 伊夫塔奇·舒尔曼 | 用于控制只追加文件的方法、系统以及介质 |
CN112470129A (zh) * | 2018-07-24 | 2021-03-09 | Arm有限公司 | 容错存储器系统 |
CN111339061A (zh) * | 2020-02-12 | 2020-06-26 | 杭州涂鸦信息技术有限公司 | 一种分布式数据库的数据迁移方法及系统 |
CN111339061B (zh) * | 2020-02-12 | 2023-09-26 | 杭州涂鸦信息技术有限公司 | 一种分布式数据库的数据迁移方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US9152501B2 (en) | 2015-10-06 |
US20150331925A1 (en) | 2015-11-19 |
CN103885895B (zh) | 2017-03-01 |
US9916201B2 (en) | 2018-03-13 |
US20140173326A1 (en) | 2014-06-19 |
US20140173185A1 (en) | 2014-06-19 |
US9454435B2 (en) | 2016-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
CN107408070B (zh) | 分布式存储系统中的多事务日志 | |
KR101771246B1 (ko) | 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피 | |
US10831741B2 (en) | Log-shipping data replication with early log record fetching | |
KR101833114B1 (ko) | 분산 데이터베이스 시스템들을 위한 고속 장애 복구 | |
US10366106B2 (en) | Quorum-based replication of data records | |
US9639592B1 (en) | Dynamically switching between synchronous and asynchronous replication | |
US9946655B2 (en) | Storage system and storage control method | |
CN106104502B (zh) | 用于存储系统事务的系统、方法和介质 | |
CN110045912A (zh) | 数据处理方法和装置 | |
KR20170097540A (ko) | 데이터 지속을 위한 디램 장치 | |
CN104935654A (zh) | 一种服务器集群系统中的缓存方法、写入点客户端和读客户端 | |
US20100023532A1 (en) | Remote file system, terminal device, and server device | |
US9934110B2 (en) | Methods for detecting out-of-order sequencing during journal recovery and devices thereof | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
CN102959529A (zh) | 用于缓存的网络的广播协议 | |
US10552057B2 (en) | Methods for improving journal performance in storage networks and devices thereof | |
CN111611223A (zh) | 非易失性数据的访问方法、系统、电子设备和介质 | |
US11941253B2 (en) | Storage system and method using persistent memory | |
CN115904795A (zh) | 存储系统中的数据存储方法及装置 | |
CN115248745A (zh) | 一种数据处理方法和装置 | |
CN114063883A (zh) | 存储数据方法、电子设备和计算机程序产品 | |
US10656867B2 (en) | Computer system, data management method, and data management program | |
US10437471B2 (en) | Method and system for allocating and managing storage in a raid storage system | |
US20230259298A1 (en) | Method for providing logging for persistent memory |
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 |