CN105393225A - 跨多个区的纠删编码 - Google Patents
跨多个区的纠删编码 Download PDFInfo
- Publication number
- CN105393225A CN105393225A CN201480036690.4A CN201480036690A CN105393225A CN 105393225 A CN105393225 A CN 105393225A CN 201480036690 A CN201480036690 A CN 201480036690A CN 105393225 A CN105393225 A CN 105393225A
- Authority
- CN
- China
- Prior art keywords
- district
- parity checking
- transregional
- parity
- districts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
- H03M13/293—Decoding strategies with erasure setting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
在各实施例中,提供了用于跨多个存储区对数据进行纠删编码的方法和系统。这可以通过将数据块划分成多个子片段来实现。多个子片段中的每一者与一个区相关联。区包括提供存储服务的建筑、数据中心和地理区域。多个重构奇偶校验被计算。多个重构奇偶校验中的每一者使用来自多个子片段中的至少一个子片段来计算。多个重构奇偶校验包括至少一个跨区奇偶校验。至少一个跨区奇偶校验被指派给奇偶校验区。跨区奇偶校验提供对数据块的一部分的跨区重构。
Description
背景
数据中心可以使用容错存储技术来实现专业且可靠的数据存储。具体地,纠删编码技术可被用于提供降低的存储开销。纠删编码可以跨存储节点(例如盘、服务器和机架)来实现。然而,常规的纠删编码技术无法容适由于大规模中断(例如,建筑物崩塌、数据中心烧毁、或对整个区域的天气相关的破坏)而导致的故障。
概述
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。该发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在独立地用于帮助确定所要求保护的主题的范围。
本发明的各实施例提供了一种用于跨多个存储区对数据进行纠删编码的方法和系统。这可以通过将数据块划分成多个子片段来实现。多个子片段中的每一者与一个区相关联。区包括提供存储服务的建筑、数据中心和地理区域。多个重构奇偶校验被计算。多个重构奇偶校验中的每一者使用来自多个子片段中的至少一个子片段来计算。多个重构奇偶校验包括至少一个跨区奇偶校验。跨区奇偶校验提供对数据块的一部分的跨区重构。另外,本发明的各实施例提供了一种用于至少部分地基于每一纠删编码方案的折衷或各维度(dimension)来跨多个区进行纠删编码的方法和系统。具体地,维度(诸如成本、性能和可靠性)定义与跨区的不同纠删编码方案相关联的实现约束。每一纠删编码方案指定经纠删编码数据的放置以达成容错的特定目标。
附图简述
下面参考附图详细描述本发明,其中:
图1是适用于在实现本发明的各实施例中使用的示例性计算环境的框图;
图2是其中可以使用本发明各实施例的示例性分布存储系统的框图;
图3是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
图4是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
图5是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
图6是示出根据本发明的各实施例的示例性纠删编码方案的示意图;
图7是示出根据本发明的各实施例的比较纠删编码方案的各实现约束的图表;
图8是根据本发明的各实施例的示出用于跨多个区对数据进行纠删编码的方法的流程图;以及
图9是根据本发明的各实施例的示出用于跨多个区对数据进行纠删编码的方法的流程图。
详细描述
本文中用细节来描述本发明各实施例的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人已设想所要求保护的主题还可结合其它当前或未来技术以其它方式来实施,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。
出于本公开的目的,单词“包括”(including)具有与单词“包含”(comprising)一样广义的含义。另外,诸如“一(a)”和“一(an)”包括复数以及单数,除非另外相反地指明。这样,例如,“一个特征”的要求在存在一个或多个特征的情况下被满足。同样,术语“或”包括合取、析取及这两者(a或b由此包括a或b任一,以及a和b)。
出于下文详细讨论的目的,参考基于被示意性地描绘为用于三个区的纠删编码方案来跨多个区对数据进行纠删编码来描述本发明的各实施例;然而,本文描绘的三个区仅仅是示例性的且设想了多个区可以与本文描述的纠删编码方案一起使用。此外,尽管本发明的各实施例可一般引用在本文描述的分布式存储系统和图表,但设想了所描述的技术可被扩展到其他实现上下文。
一般而言,容错指的是系统在其组件中的一些出现故障(或一个或多个故障)的情况下继续工作的能力。例如,容错技术包括复制和纠删编码。纠删编码指的是用来从所存储的数据的故障中恢复的纠错算法。数据可以用不同类型的存储服务存储在不同类型的存储硬件中。纠删编码可被实现以向所存储的数据提供容错。另外,纠删编码还可提供降低的存储开销。例如,代替复制数据流,数据可被分成各片段并与一个或多个奇偶校验相关联,且随后各片段以从剩余片段中重构丢失片段的能力来被存储。如此,纠删编码提供硬件、数据中心占用的成本节省以及因不必运行附加硬件的功率节省。
然而,伴随跨各区(例如,数据中心、建筑、或地区)对数据进行纠删编码而来的是折衷或维度,如下文更详细地讨论的。例如,在对数据进行编码以及从跨多个存储区进行纠删编码的数据的失败中恢复数据时,成本、性能、以及可靠性具有特定实现约束。这些折衷可以与不同的纠删编码方案相关联,尤其是在纠删编码针对存储在不同区的数据执行时。
一般而言,纠删码使用特定类型的代码来对数据进行编码。例如,Reed-Solomon是用于对数据进行纠删编码的常规办法。Reed-Solomon实现可包括6个数据片段和用于恢复6个数据片段的3个代码(奇偶校验)段。另一类型的纠删编码是局部重构代码(LRC)。与Reed-Solomon相比,LRC降低了在重构离线的数据片段时需要读取的纠删编码片段的数量,同时将存储开销保持得很低。例如,对于6个数据片段,LRC生成4个奇偶校验片段,而非3个。两个局部奇偶校验片段(每一个与6个片段中的3个数据片段的不同集合相关联)以及针对6个数据片段的两个全局奇偶校验片段。所以,与使用奇偶校验和5个数据片段来重构失败的数据片段的Reed-Solomon形成对比,LRC使用局部奇偶校验和同一集合中的2个数据片段来重构失败的数据片段。在平衡存储开销对重构成本时,LRC相比Reed-Solomon提供了更多的灵活性。对于以上示例,LRC比Reed-Solomon增加了一个奇偶校验,同时将重构成本减半。或者,LRC可保持与Reed-Solomon相同的重构成本,同时显著地降低了存储开销。
局部重构代码可在形式上定义。(k,l,r)LRC将k个数据片段分成l组,其中每一组有k/l个数据片段。纠删编码方案计算每一组内的一个局部奇偶校验。另外,它根据所有数据片段来计算r个全局奇偶校验。令n是片段总数(数据+奇偶校验)。则n=k+l+r。因而,归一化的存储开销是n/k=1+(l+r)/k。在该示例中,LRC是(6,2,2)LRC,具有存储成本1+4/6=1.67倍。
此外,LRC代码可以基于所选择的编码方程来确定,使得LRC达到最大可恢复(MR)属性,这意味着它可解码信息理论上可解码的任何故障模式。例如,参考以上示例,如果3个数据片段和与数据片段相关联的奇偶校验的集合发生故障,则该模式是不可解码的,因为其余两个奇偶校验不能解码3个数据片段,因而它在信息理论上是不可解码的。否则,可能重构的故障模式被称为在信息理论上是可解码的。LRC可与达到最大可恢复属性的单个编码方程组相关联。
本发明的各实施例基于跨多个存储区对数据进行纠删编码来提供针对大规模中断的容错,同时确保可靠性和可用性。区指的是提供存储服务的特定的建筑、数据中心和地理区域。跨多个区的纠删编码涵盖在该区中存储服务所定义的任何容错水平处提供纠删编码。如此,跨各区实现纠删编码创建实现考虑和机会的不同集合。具体而言,跨各区的纠删编码可基于唯一性跨区特性来被优化,如各区之间的带宽,因为各区之间的带宽比区内的带宽稀缺和昂贵得多。同样,区故障的概率是相关因子。基本上,与存储节点相比,整个区发生故障的可能性低得多。预期一区将发生故障,或各区可能离线以便于维护。这允许各区被构建得比传统数据中心更便宜,从而向存储服务提供显著成本节省。
由于涉及跨区特性,取决于各区的目标,各区在实现跨区的数据纠删编码时引入各种折衷。折衷是指纠删编码方案维度,如定义与不同纠删编码方案相关联的实现约束的成本、性能以及可靠性。每一纠删编码方案指定经纠删编码数据的放置以达成容错的特定目标。如此,纠删编码可以用包括以下各项的目标的组合来实现:开销/跨区带宽消耗的最小化、性能的最大化、同时维持所需耐久性。
示例性纠删编码方案包括可使用LRC以及常规纠删编码方案来提供区内的局部重构以及跨区容错的第一纠删编码方案(例如,XLRC)。可通过联合选择区内和跨区的编码系数来提供区内的局部重构以及跨区容错两者的第二纠删编码方案(例如,BLRC)以及可通过以跨区网络带宽换取存储效率来达到高存储效率同时提供跨区容错的第三纠删编码方案。
三个维度可以与跨区容错数据存储相关联。它们包括:成本(例如,开销/跨区带宽消耗的最小化)、性能(例如,性能最大化)、以及可靠性(例如,离线耐久性)。成本是与跨多个区的分布式存储系统相关联的度量。分布式存储系统可包括若干子存储系统,每一个在单个区内。子系统中的每一者可以由跨各区的网络中枢链接在一起。就此,总成本可以基于单区子存储系统和跨区网络中枢来被确定。单区子存储系统可以是存储开销的函数——存储指定量的用户数据所需的物理存储空间的总量。跨区网络中枢可以是要被供应以支持存储系统的网络带宽量的函数。
性能度量可以指从不同类型的故障场景恢复的能力。不同类型的故障对系统性能具有不同影响。每一类型的故障可被不同地处理。例如,在区内的存储节点或错误域发生故障时,该系统以降级模式来运行。然而,在整个区发生故障时,该系统以灾难模式运行。为了表征性能,例如,在降级模式中,降级的读取成本(即,从发生故障的存储节点读出一个单位的用户数据所需的盘I/O的数量)可被定义。类似地,灾难读取成本可被定义为读取处于故障区中的一个单位的用户数据所需的盘I/O的数量。盘I/O被设想为包括用于传达数据的网络传输成本。此外,可靠性与数据存储系统可容忍的故障类型和故障量相关联。因而,可靠性基于在一个或多个机器发生故障或变得不可用之后重构数据的能力。例如,可靠性可基于平均数据丢失时间(MTTDL)来评估。
特定编码方案可包括异或-LRC或XLRC方案,采用两种类型的纠删码。每一区内的LRC以及跨所有区的异或(XOR)。LRC向单个区内的任意(r+1)且上至(r+l)个故障提供数据片段的恢复,而无需跨区恢复。使用三区部署作为示例,对于XLRC,数据块在两个区之间被均匀地分成子片段。在每一区内,子片段由多个局部奇偶校验和区奇偶校验来保护。局部奇偶校验是从每一区中的子片段生成的且允许该区内的高效故障重构。区奇偶校验是从每一区中的所有子片段生成的且提供最大容错。如所讨论的,最大容错包括使用特别确定的编码方程达到最大可恢复属性的LRC;这意味着LRC可解码在信息理论上可解码的任何故障模式。各区的子片段、局部奇偶校验、以及区奇偶校验组合形成LRC。来自两个区中的每一者的区片段(数据或奇偶校验)被用来通过将各区片段进行异或来计算跨区奇偶校验。跨区奇偶校验被指派给第三区(例如,奇偶校验区)。为所有区片段计算跨区奇偶校验,包括数据片段、局部奇偶校验以及区奇偶校验。就此,第三区包含三种类型的跨区奇偶校验,它们用于对区数据片段进行异或、对局部奇偶校验进行异或,以及对区奇偶校验进行异或。
LRC和异或是线性计算。由于线性计算的交换性,奇偶校验的异或总和是各单独异或总和的奇偶校验。因而,指派给第三区的三种类型的跨区奇偶校验也形成第三区内的LRC。如此,第三区内的所有故障可根据该区内的片段来重构。另外,遵循LRC的属性,该区中的单个故障可被高效地重构。
在XLRC中,由于存储故障造成的重构可以使用同一区内的区数据片段来完成。因而,在降级模式中,重构网络话务可被包含在每一区内,而没有到跨区网络中枢的成本。在其中整个区发生故障的场景中,跨区冗余可被调用以用于灾难恢复。然而,甚至在灾难模式中,任何其余节点中的附加存储节点故障仍然可在区内被重构。XLRC对跨区中枢提供最小压力且实现来自跨区中枢的有限供应。XLRC编码方案使用跨区奇偶校验来提供跨区冗余。例如,在灾难模式中,在整个区发生故障时,跨区冗余可被消除且冗余可只在每一区内提供。就此,为提供对抗数据丢失,甚至在灾难模式历经持续时段时,LRC的参数需要确保每一区内的耐久性是尤其高的。因而,XLRC提供每一区内的显著耐久性。
使用三区部署作为示例,XLRC代码可在形式上定义。(3,1)-(k,l,r)XLRC包括每一数据中心中的n个片段,其中n=k+l+r。令c_{i,j}表示数据中心i中的第j片段,其中j=0,1,…,n-1且i=0,1,2。c_{0,j}和c_{1,j}作为数据片段,其中j=0,1,…,k-1。其余片段作为奇偶校验。奇偶校验片段满足以下约束:跨区奇偶校验约束、局部奇偶校验约束、以及区内奇偶校验约束,在形式上表示为:
c_{2,j}=c_{0,j}+c_{1,j}——跨区奇偶校验约束;
c_{i,k+l_j}=\sum_{j=l_j*k/l}^{(l_j+1)*k/l–1}c_{i,j},l_j=0,1,…,l-1——局部奇偶校验约束;以及
c_{i,k+r_i}=\sum_{j=0}^{r-1}\alpha_{j,r_i}c_{i,j}//r_i=0,1,…,r-1——区内奇偶校验约束。
XLRC的存储开销是3n/2k。降级的读取成本是区内的k/l个片段。灾难读取成本是跨区2个片段。
平衡位置重构代码(BLRC)纠删编码方案支撑存储开销与跨区网络话务之间的灵活平衡。BLRC方案利用更多跨区网络供应。BLRC方案还维持较低的存储开销。在结构上,BLRC用保护跨所有区的数据片段的区间奇偶校验来替换保护区内的区数据片段的区奇偶校验。该更改使得降低每一区的耐久性成为可能,因为在整个区发生故障的情况下,区数据片段被不仅在同一区中还在其他幸存区中的区间奇偶校验保护。
如与两类代码被独立地应用的XLRC区分开的,BLRC联合地设计区内和跨区的奇偶校验。BLRC方案提供附加容错,而不招致额外存储开销。在操作中,数据块被在各区之间均匀地分成子片段。在每一区内,子片段由局部奇偶校验保护。局部奇偶校验是从每一区中的子片段计算的以允许高效故障重构。区间奇偶校验的数量是从每一区的所有子片段计算得到的。区间奇偶校验提供跨各区的最大容错。这是BLRC和XLRC之间的区别特征。来自各区中的每一者的区片段被用来通过将各片段进行异或来计算跨区奇偶校验。跨区奇偶校验是针对每一区中的所有区数据片段来生成的,包括数据片段、局部奇偶校验以及区间奇偶校验。第三区包含三种类型的跨区奇偶校验,来自对区数据片段进行异或、对局部奇偶校验进行异或、以及对区间奇偶校验进行异或。
与XLRC类似,遵循交换性,在第三区本地重构故障是可能的。在BLRC中,区数据片段或局部奇偶校验的单个故障可使用同一区内的其他片段来重构。如此,由单个存储节点故障造成的重构话务大部分被包含在每一区内。然而,区间奇偶校验或多个区数据片段的故障可能必须跨区重构。这样的重构对跨区网络中枢造成负担。跨区网络中枢除用于灾难恢复的能力之外还需要更多供应。此外,BLRC区间奇偶校验提供最终跨区冗余,甚至在整个区发生故障的灾难模式中。这可允许BLRC达到比XLRC更高的存储效率,同时维持相当的耐久性。
使用三区部署作为示例,BLRC代码可在形式上定义。(3,1)-(k,l,g)BLRC包括每一数据中心中的n个片段,其中n=k+l+g。令c_{i,j}表示数据中心i中的第j片段,其中j=0,1,…,n-1且i=0,1,2。c_{0,j}和c_{1,j}作为数据片段,其中j=0,1,…,k-1。其余片段作为奇偶校验。奇偶校验片段满足以下约束:跨区奇偶校验约束、局部奇偶校验约束、以及区间奇偶校验约束,在形式上表示为:
c_{2,j}=c_{0,j}+c_{1,j}——跨区奇偶校验约束;
c_{i,k+l_j}=\sum_{j=l_j*k/l}^{(l_j+1)*k/l–1}c_{i,j},l_j=0,1,…,l-1——局部奇偶校验约束;以及
c_{i,k+g_i}=\sum_{i=0}^{1}\sum_{j=0}^{r-1}\alpha_{i,j,g_i}c_{i,j}//g_i=0,1,…,g-1——区间奇偶校验约束。
BLRC的存储开销是3n/2k。降级的读取成本是区内的k/l个片段。灾难读取成本是跨区2个片段。
在第三纠删编码方案中,与XLRC和BLRC相比,朴素重构代码(FRC)达到最高存储效率。然而,存储效率以最大跨区话务为代价。在结构上,FRC是通过移除所有局部奇偶校验而从BLRC导出的。即使与BLRC相关,FRC通过移除局部奇偶校验提供了不同类型的容错,因为数据块的各部分必须跨区重构。如此,跨区网络中枢被繁重地利用,同时允许FRC达到最高存储效率。
使用三区部署作为示例,FRC代码可在形式上定义。(3,1)-(k,g)FRC包括每一数据中心中的n个片段,其中n=k+g。令c_{i,j}表示数据中心i中的第j片段,其中j=0,1,…,n-1且i=0,1,2。c_{0,j}和c_{1,j}作为数据片段,其中j=0,1,…,k-1。其余片段作为奇偶校验。奇偶校验片段满足以下约束:跨区奇偶校验约束、以及区间奇偶校验约束,在形式上表示为:
c_{2,j}=c_{0,j}+c_{1,j}——跨区奇偶校验约束;以及
c_{i,k+g_i}=\sum_{i=0}^{1}\sum_{j=0}^{r-1}\alpha_{i,j,g_i}c_{i,j}//g_i=0,1,…,g-1——区间奇偶校验约束。
FRC的存储开销是3n/2k。降级的读取成本和灾难读取成本两者都是跨区2个片段。
如上所述,实现纠删编码可以使用多个纠删编码方案来完成,每一纠删编码方案具有实现约束;方案中的每一者可基于实现约束来被选择以达成各区的特定目标。
因此,在本发明的第一方面,存储计算机可使用指令的一个或多个计算机可读介质,当这些指令由一个或多个计算设备使用时,使该一个或多个计算设备执行一种用于跨多个存储区对数据进行纠删编码的方法。该方法包括将数据块划分成多个子片段,多个子片段中的每一者与多个区之一相关联。该方法还包括计算多个重构奇偶校验,多个重构奇偶校验中的每一者是使用来自多个子片段中的至少一个子片段来计算得到的。多个重构奇偶校验包括至少一个跨区奇偶校验。该方法进一步将该至少一个跨区奇偶校验指派给奇偶校验区,其中跨区奇偶校验提供数据块的一部分的跨区重构。
在本发明的第二方面,一种用于跨多个存储区对数据进行纠删编码的系统。该系统包括将数据块划分成多个子片段,多个子片段中的每一者具有一个或多个区数据片段,多个子片段中的每一者与多个区之一相关联。编码器组件还被配置成计算多个重构奇偶校验,多个重构奇偶校验中的每一者是使用来自多个子片段中的至少一个子片段来计算得到的。多个重构奇偶校验包括至少一个跨区奇偶校验。编码器组件还被配置成:将该至少一个跨区奇偶校验指派给奇偶校验区,其中跨区奇偶校验提供数据块的一部分的跨区重构。该系统还包括重构组件,重构组件被配置成:使用与第一区、第二区以及第三区相关联的多个子片段和多个重构奇偶校验来重构数据。数据是基于数据的纠删编码方案来被重构的,并且恢复数据对于第一纠删编码方案而言包括:使用局部奇偶校验和区奇偶校验来提供恢复区内的局部重构和跨区最大容错;对于第二纠删编码方案而言包括:使用局部奇偶校验和区间奇偶校验来提供恢复区内的局部重构和跨区最大容错;且对于第三纠删编码方案而言包括:使用区间奇偶校验提供跨区最大容错。
在本发明的第三方面,一种用于选择纠删编码方案来跨多个存储区对数据块进行编码的计算机实现的方法。该方法包括提供多个纠删编码方案。该多个纠删编码方案中的每一者与定义实现约束的多个维度相关联。该方法还包括至少部分地基于该多个维度来选择用于对数据块进行编码的纠删编码方案。该方法还包括使用所选择的纠删编码方案对数据块进行编码,该纠删编码方案将数据块划分成来自该多个区的所选区中的一个或多个组中的多个子片段,该一个或多个组中的每一者包括所选区中的一个或多个区数据片段。
第一所选纠删编码方案被配置成对于多个区中的每一区:根据所述区中的所述一个或多个组中的每一者中的子集区数据片段,在水平方向上计算所述区中的所述一个或多个组中的每一者的多个局部奇偶校验;根据所述区的所述一个或多个区数据片段,在水平方向上计算多个区奇偶校验;以及使用包括所述一个或多个区数据片段、所述多个局部奇偶校验以及在所述多个区中的每一者中垂直地相对应的所述多个区奇偶校验的多个区片段来在垂直方向上计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区。所述多个跨区奇偶校验被指派给所述奇偶校验区中的对应位置。
第二所选纠删编码方案被配置成对于多个区中的每一区:根据所述一个或多个组中的每一者中的子集区数据片段,在所述水平方向上计算所述区中的所述一个或多个组中的每一者的局部奇偶校验;根据所述多个区中的每一者中的所述一个或多个区数据片段,在所述水平方向上计算区间奇偶校验;以及使用包括所述一个或多个区数据片段、所述多个局部奇偶校验以及在所述多个区中的每一者中垂直地相对应的区间奇偶校验的多个区片段来在垂直方向上计算多个跨区奇偶校验。所述多个跨区奇偶校验被指派给所述奇偶校验区中的对应位置。
第三所选纠删编码方案被配置成:对于所述多个区中的每一区:根据所述多个区中的每一者中的所述一个或多个区数据片段,在水平方向上计算多个区间奇偶校验;使用包括所述一个或多个区数据片段以及在所述多个区中的每一者中垂直地相对应的所述多个区间奇偶校验的多个区片段来在所述垂直方向上计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区。所述多个跨区奇偶校验被指派给所述奇偶校验区中的对应位置。
在简要描述了本发明各实施方式的概览之后,以下描述其中可实现本发明的各实施方式的示例性操作环境,以便为本发明各方面提供通用上下文。首先具体参考图1,示出了用于实现本发明的各实施方式的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。
本发明可以在由计算机或诸如个人数据助理或其他手持式设备之类的其他机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。
参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出端口118、输入/输出组件120和说明性电源122。总线110表示可以是一条或多条总线(诸如地址总线、数据总线或其组合)。虽然为了清楚起见利用线条示出了图1的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器也具有存储器。可以认识到,这是本领域的特性,并且重申,图1的图示只是例示可结合本发明的一个或多个实施方式来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,因此它们全部都被认为是在图1的范围之内的并且被称为“计算设备”。
计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性与非易失性、可移动与不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储技术、磁带盒、磁带、磁盘存储或其它磁性存储设备,或可用于存储所需信息并且可由计算设备800访问的任何其它介质。计算机存储介质将信号本身排除在外。
通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。
I/O端口118允许计算设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。
另外参考图2,描述了描绘适于在本发明的各实施例中使用的示例性分布式存储系统200的框图。一般而言,分布式系统示出了其中跨多个存储区使用多个编码纠删编码方案对数据进行编码的环境。本发明的各实施例还提供了用于至少部分地基于与每一纠删编码方案相关联的实现约束来选择纠删编码方案以用于对数据块进行纠删编码的系统和方法。分布式存储系统200一般包括客户端计算设备210、具有编码器组件230和重构组件240的纠删编码服务器220、多个区——区1250、区2260和区3270、以及其他未示出的组件,它们全部经由网络290彼此通信。
在某些实施例中,所示组件/模块中的一个或多个可以被实现为独立的应用。在本发明的实施例的范畴内可以在计算系统200中采用任意数目的客户端计算设备、区、以及纠删编码服务器。每一者可以包括单个设备/接口或在分布式环境中协作的多个设备/接口。例如,纠删编码服务器230可以包括安排在分布式环境中的多个设备和/或模块,所述多个设备和/或模块共同提供此处描述的纠删编码服务器的功能。
另外,在分布式存储系统200内还可以包括未示出的其他组件/模块。例如,云计算环境被配置为在数据中心中分派由服务应用使用的虚拟机。例如,云计算平台可以是公共云、私有云、或专用云。云计算平台可以包括被配置为主存和支持特定服务应用中的端点的操作的数据中心。在此使用的用语“服务应用”宽泛地指运行在数据中心之上或访问数据中心内的存储位置的任何软件或软件部分。在一个实施例中,端点中的一个或多个可以表示软件部分、组件程序、或者参与服务应用的角色的实例。
应当理解,此处所描述的这一和其他安排仅作为示例来阐明。作为所示的安排和元素的补充或替换,可使用其他安排和元素(例如机器、接口、功能、次序、以及功能聚集等),并且可完全省略某些元素。此外,本文所描述的许多元素是可以实现为分立或分布式组件或结合其他组件的、以及以任何合适的组合和在任何合适的位置的功能实体。此处被描述为由一个或多个实体执行的各种功能可由硬件、固件和/或软件来执行。例如,各种功能可由执行存储在存储器中的指令的处理器来执行。
继续参照图2,客户端计算设备210可以包括任意类型的计算设备,例如参考图1所描述的计算设备100。多个客户端计算设备210可以与分布式存储系统200相关联。客户端计算设备210可被用来检索存储在本文描述的一个或多个区中的任一者上的数据。
区可以指提供存储服务的特定的建筑、数据中心和地理区域。例如,数据中心可被实现为被配置成在数据中心中分配虚拟机以供服务应用使用的云计算环境。跨多个区的纠删编码涵盖在该区中存储服务所定义的任何容错水平处提供纠删编码。本领域普通技术人员将理解和明白,与该区相关联地存储的信息可以是可配置的且可包括与纠删编码数据(包括数据块、局部奇偶校验以及区奇偶校验)相关的任何信息以及其他信息。这一信息的内容和量决不旨在限制本发明的各实施例的范围。
此外,虽然被示为单个独立的组件,但各区可事实上是包括存储设备的多个组件,例如,机架和服务器的集合以及另一外部计算设备(未示出)和/或其任何组合。如此,提供区容错允许各区具有在该区中的各组件中的意外或计划的服务丢失影响访问或造成数据丢失的情况下继续工作的能力。意外的服务丢失可包括存储、传输或处理组件中的故障,例如,电源故障、硬件故障、因特网服务提供者(ISP)故障或数据破坏。地域性区故障可与造成数据丢失的自然灾害、地震、洪水、龙卷风等相关联。计划服务丢失可包括在其间区中的数据不可用的计划网络中断(例如,维护中断)。
在各区是大规模存储系统时,由于大规模中断造成的相关故障由本发明实施例中的各实施例支持。然而,实现跨区纠删编码创建实现约束的不同集合。例如,继续参考图2,网络290可以包括,但不仅限于,一个或多个局域网(LAN)和/或广域网(WAN)。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。对于本发明的各实施例,纠删方案的成本维度与分布式存储系统区(例如,区1250、区2260以及区3270)相关联。分布式存储系统200可包括若干子存储系统,单个区内有一个子存储系统。每个子系统可以由跨多个区域范围的网络290中枢链接在一起。如此,总成本可以基于单区子存储系统和跨区网络中枢来被确定。单区子存储系统可以是存储开销的函数——存储指定量的用户数据所需的物理存储空间的总量。跨区网络中枢可以是要被供应以支持存储系统的网络带宽量的函数。
性能度量可以指从不同类型的故障场景恢复的能力。不同类型的区故障对系统性能具有不同影响。如此,在区内的存储节点或错误域发生故障时,该系统以降级模式来运行。然而,在整个区发生故障时,该系统以灾难模式运行。为了表征性能,例如,在降级模式中,降级的读取成本(即,从发生故障的存储节点读出用户数据的一个单位所需的盘I/O的数量)可被定义。类似地,灾难读取成本可被定义为读取出于发生故障的区中的用户数据的一个单位所需的盘I/O的数量。盘I/O被设想为包括用于传递数据的网络传输成本。可靠性度量也可以是网络290的函数,因为可靠性基于在一个或多个机器发生故障或变得不可用之后重构数据的能力。例如,可靠性可基于平均数据丢失时间(MTTDL)来评估。
图2的纠删编码服务器220一般被配置成接收并传达信息以用于纠删编码。信息一般可包括通信(例如,对编码或重构数据的请求)和/或用本文描述的纠删编码方案编码的实际数据块。如图所示,纠删编码服务器220包括编码器组件230和重构组件240。纠删编码服务器220能访问不同区。例如,纠删编码服务器220可以接收并发送数据(例如,数据块)到不同区。数据块可以是需要编码的数据或可以是已被恢复的数据。设想了数据也可以从不处于所示区之一中的外部存储组件(未示出)接收。
本发明的实施例可包括多个纠删编码服务器220,每一个与若干区相关联,其中各区处的数据根据本发明的各实施例来处理。此外,纠删编码服务器220可以与具有促进由纠删编码服务器执行的功能的接口元件的接口相关联。例如,接口元件可以允许为特定数据块选择特定纠删编码方案。接口元件可以提供与关联于纠删编码方案的特定维度和实现约束有关的信息,使得可基于与存储数据的实体(例如,具有服务应用的承租人)相关联的特定考虑来选择方案。设想实现本发明的各实施例的任何及所有如此的变型及接口元件的任何组合都落在范围内。
纠删编码服务器230的编码器组件230被配置成接收对数据进行编码的请求。数据块可连同用于对数据块进行编码的所选纠删编码方案一起接收。编码器组件还可确定和/或选择针对数据块实现的纠删编码的类型。确定纠删编码方案至少部分地基于与编码方案相关联的各维度(例如,成本、性能、以及可靠性)。选择纠删编码方案可由纠删编码服务器的接口元件来促进。
具体而言,存储数据块的实体(例如,与云计算平台相关联的承租人)的目标可与实现该目标的编码方案相配。例如,实体可重视第一编码方案超过第二编码方案,因为该方案提供更好性能。此外,编码器组件230被配置成执行与不同编码方案相关联的编码步骤。如下文更详细地讨论的,用于对数据块进行编码的步骤由编码器组件230执行。例如,编码器组件将数据分成各块,计算不同奇偶校验,标识数据块和奇偶校验的位置,并如每一纠删编码方案所指导地传达数据块。
纠删编码服务器230的重构组件250被配置成接收对数据进行重构或恢复的请求。如所讨论的,数据丢失可能是意外或计划的数据丢失。要被恢复的经编码的数据块的一部分可由重构组件250标识,连同用于恢复经编码的数据块的该部分的相关联的纠删编码方案。构想了数据丢失的信息和/或要被恢复的数据的细节可从外部源(未示出)传达给随后恢复经编码的数据的该部分的重构组件。与对数据块进行编码类似,重构过程也可由纠删编码服务器220的接口元件来促进。编码器组件230被配置成根据编码方案来恢复经编码的数据块的各部分。具体而言,纠删编码服务器和与要被恢复的数据块的该部分相关联的局部或区奇偶校验。如下文更详细地讨论的,用于重构数据块的各部分的步骤和组件基于纠删编码方案而变化。
参考图3,解说了示出示例性XLRC纠删编码方案的示意图。XLRC纠删编码方案对三个区的数据进行编码——区1310、区2320、以及区3330。每一区可以是数据中心、建筑、或区域。数据块在两个区之间被均匀地分成各子片段。例如,区1310包括具有区数据片段的第一集合312a[X1-X7]和区数据片段的第二集合312b[Y1-Y7]的子片段312。类似地,区2320具有带区数据片段的第一和第二集合[Z1-Z7]和[W1-W7]的第二子片段。在每一区内,子片段(例如,312)由多个局部奇偶校验314和区奇偶校验316来保护。局部奇偶校验314a和314b各自从每一区中的区数据片段(例如,分别是312a和312b)来计算得到。例如,第一局部奇偶校验314a与区数据片段的第一集合312a相关联,且第二局部奇偶校验314b与区数据片段的第二集合312b相关联。水平方向上的异或被用来为相关联的区数据片段计算每一局部奇偶校验。局部奇偶校验314启用区内的高效故障重构。
区奇偶校验316a和316b是从各区中的所有子片段生成的且提供最大容错(即,最大地可恢复)。各区的子片段、局部奇偶校验、以及区奇偶校验组合形成LRC。来自两个区中的每一者的每一单独的区片段(例如,340和350)被用来通过将各单独的区片段(数据和奇偶校验)进行异或来计算跨区奇偶校验(例如,360)。异或370是在垂直方向上计算的。每一计算得到的跨区奇偶校验(例如,跨区奇偶校验360)被指派给第三区(奇偶校验区)区3330。为所有区片段计算跨区奇偶校验,包括数据片段、局部奇偶校验314以及区奇偶校验316。就此,第三区包含三种类型的跨区奇偶校验,它们用于对区数据片段进行异或、对局部奇偶校验进行异或,以及对区奇偶校验进行异或。
LRC和异或是线性计算。由于线性计算的交换性,奇偶校验的异或370总和是各单独异或总和340和350的奇偶校验。因而,指派给第三区的三种类型的跨区奇偶校验也形成区3330内的LRC。如此,第三区内的所有故障可根据该区内的区片段来重构。另外,遵循LRC的属性,该区中的单个故障可被高效地重构。
关于重构,XLRC向单个区内的任意(r+1)且上至(r+l)个故障提供数据片段的恢复,而无需跨区恢复。如图所示,XLRC具有k个区数据片段,区数据片段的l个集合,以及r个区奇偶校验,其中k=14,l=2且r=2。在该示例中,参考图7,框710XLRC,存储开销是1.93倍。在高达3个数据片段发生故障时,它们可根据其区数据片段的局部集合中的7个单独的区数据片段或使用该区中的区内奇偶校验(316a和316b)在区内重构,所以降级的读取成本是7或14。在整个区发生故障时,丢失的数据片段是根据跨各幸存区的2个片段来重构的。如此,XLRC纠删编码方案的跨区带宽很低。
继续参考图4,解说了示出示例性BLRC纠删编码方案的示意图。BLRC纠删编码方案也对三个区的数据进行编码——区1410、区2420、以及区3430。平衡局部重构代码(BLRC)纠删编码方案支撑存储开销与跨区网络话务之间的灵活平衡。BLRC方案利用更多跨区网络供应。BRLC方案还维持较低的存储开销。
在结构上,BLRC用保护跨所有区的数据片段的区间奇偶校验416来替换保护区内的区数据片段的XLRC区奇偶校验(例如,316a和316b)。在操作中,数据块被在各区之间均匀地分成子片段(例如,412)。在每一区内,子片段由局部奇偶校验414保护。局部奇偶校验414a和414b是从每一区中的区数据片段计算的以允许高效故障重构。区间奇偶校验450和460的数量是从每一区的所有子片段计算得到的。区间奇偶校验提供跨各区的最大容错。这是BLRC和XLRC之间的区别特征。来自各区中的每一者的每一单独的区片段被用来通过将各片段进行异或来计算跨区奇偶校验。异或480是在垂直方向上计算的。跨区奇偶校验是针对每一区中的所有区片段来生成的,包括数据片段、局部奇偶校验以及全局奇偶校验。
第三区包含三种类型的跨区奇偶校验,来自对区数据片段进行异或、对局部奇偶校验进行异或、以及对区间奇偶校验进行异或。与XLRC类似,遵循交换性,在第三区本地重构故障是可能的。在BLRC中,区数据片段或局部奇偶校验的单个故障可使用同一区内的其他片段来重构。BLRC区间奇偶校验440、450和460提供跨区冗余,甚至在整个区发生故障的灾难模式中。这可允许BLRC达到比XLRC更高的存储效率,同时维持相当的耐久性。
关于重构,BLRC提供没有区故障的情况下的6个任意片段的恢复以及区故障后的3个故障的恢复。区中的两个故障可能需要跨区恢复。如图所示,BLRC具有k个区数据片段,区数据片段的l个集合,以及r个区奇偶校验,其中k=14,l=2且r=1。在该示例中,参考图7,框720BLRCI,存储开销是1.82倍。数据片段的单个故障根据包括7个单独的区数据片段的区数据片段局部集合中的7个片段在区内被重构,所以降级的成本是7。在整个区发生故障时,丢失的数据片段是根据跨各幸存区的2个片段来重构的。
继续参考图5,解说了示出示例性BLRCII纠删编码方案的示意图。BLRCII纠删编码方案也对三个区的数据进行编码——区1510、区2520、以及区3530。在操作中,数据块被在各区之间均匀地分成子片段(例如,512)。不同于BLRCI,BLRCII没有将数据块划分成包括7个单独的区数据片段的两个区数据片段局部集合,而是改为将数据块划分成针对每一区的包括14个单独的区数据片段的单个区数据片段集合570。如上所述,设想了在本发明的范围内具有附加区,所以对于加一也将具有区数据片段的局部集合。
在每一区内,子片段由单个局部奇偶校验514保护,这不同于BLRCI。局部奇偶校验514是从每一区中的14个单独的区数据片段计算的以允许高效故障重构。区间奇偶校验540和450的数量是从每一区的所有子片段计算得到的。区间奇偶校验提供跨各区的最大容错。来自各区中的每一者的每一单独的区片段被用来通过将各片段进行异或来计算跨区奇偶校验。跨区奇偶校验是针对每一区中的所有区片段来生成的,包括数据片段、局部奇偶校验以及全局奇偶校验。第三区包含三种类型的跨区奇偶校验,来自对区数据片段进行异或、对局部奇偶校验进行异或、以及对区间奇偶校验进行异或。遵循交换性,在第三区本地重构故障是可能的。BLRCII区间奇偶校验540、550和560提供跨区冗余,甚至在整个区发生故障的灾难模式中。
关于重构,BLRCII提供没有区故障的情况下的6个任意片段的恢复以及区故障后的3个故障的恢复。区中的两个故障需要跨区恢复。如图所示,BLRCII具有k个区数据片段,区数据片段的l个集合,以及r个区奇偶校验,其中k=14,l=1且r=1。在该示例中,参考图7,框730BLRCII,存储开销是1.71倍。因为区数据片段的局部集合的大小是14,所以数据片段的单个故障是从区中的14个片段重构的,所以降级的读取成本是14。。在整个区发生故障时,丢失的数据片段是根据跨各幸存区的2个片段来重构的。
继续参考图6,解说了示出示例性FRC纠删编码方案的示意图。FRC纠删编码方案也对三个区的数据进行编码——区1610、区2620、以及区3630。在结构上,FRC是通过移除所有局部奇偶校验而从BLRC导出的。即使与BLRC相关,FRC通过移除局部奇偶校验提供了不同类型的容错,因为数据块的各部分必须跨区重构。
在操作中,数据块被在各区之间均匀地分成子片段(例如,612)。在每一区内,子片段没有被任何局部奇偶校验保护,这是FRC纠删编码方案的区别特征。区间奇偶校验614和616的数量是从每一区的所有子片段计算得到的。区间奇偶校验提供跨各区的最大容错。每一区具有两个区奇偶校验。来自各区中的每一者的每一单独的区片段被用来通过将各片段进行异或来计算跨区奇偶校验。异或680是在垂直方向上计算的。具体而言,区1610和区2620中的对应的区片段被异或以计算区3630中的对应位置中的奇偶校验。跨区奇偶校验是针对每一区中的所有区片段来生成的,包括数据片段、局部奇偶校验以及全局奇偶校验。
如图所示,FRC具有k个区数据片段和g个区间奇偶校验,其中k=14且g=2。在该示例中,参考图7,框740BLRCI,存储开销是1.71倍。FRC方案容忍没有区故障的情况下的任意6个片段故障并容忍区故障后的4个故障。由于节点故障或区故障造成的数据片段的重构需要跨区2个片段。
现转向图8,提供了示出用于跨多个存储区对数据进行纠删编码的方法800的流程图。在框810,数据块被划分成多个子片段。多个子片段中的每一者与多个区之一相关联。在框820,计算多个重构奇偶校验。多个重构奇偶校验中的每一者使用来自多个子片段中的至少一个子片段来计算。多个重构奇偶校验包括至少一个跨区奇偶校验。在框830,至少一个跨区奇偶校验被指派给奇偶校验区。跨区奇偶校验提供对数据块的一部分的跨区重构。
现转向图9,提供了示出用于跨多个存储区对数据进行纠删编码的方法900的流程图。在框910,提供多个纠删编码方案。该多个纠删编码方案与定义纠删编码方案的实现约束的多个维度相关联。在框920,选择纠删编码方案。纠删编码方案是基于多个维度来选择的,以供对数据块进行编码。在框930,使用所选择的纠删编码方案对数据块进行编码。该纠删编码方案将数据块划分成来自该多个区的所选区中的一个或多个群中的多个子片段,该一个或多个群中的每一者包括所选区中的一个或多个区数据片段。此外,所选择的纠删编码方案基于上文描述的纠删编码方案的各步骤对数据块进行编码。
参考各具体实施例描述了本发明的各实施例,各具体实施例在所有方面都旨在是说明性的而非限制性的。不偏离本发明范围的情况下,各替换实施例对于本发明所属领域的技术人员将变得显而易见。
从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该结构是显而易见且固有的其他优点。
可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征或子组合的情况下使用。这由权利要求所构想的,并在权利要求的范围内。
Claims (15)
1.一种用于跨多个存储区对数据进行纠删编码的方法,所述方法包括:
将数据块划分成多个子片段,所述多个子片段中的每一者与多个区之一相关联;
计算多个重构奇偶校验,所述多个重构奇偶校验中的每一者是使用来自所述多个子片段中的至少一个子片段来计算得到的,其中所述多个重构奇偶校验包括至少一个跨区奇偶校验;以及
将所述至少一个跨区奇偶校验指派给奇偶校验区,其中所述跨区奇偶校验提供所述数据块的一部分的跨区重构。
2.如权利要求1所述的方法,其特征在于,计算所述至少一个跨区奇偶校验是基于垂直方向上的异或的。
3.如权利要求1所述的方法,其特征在于,所述至少一个跨区奇偶校验中的至少一者是使用一个或多个区数据片段和一个或多个跨区奇偶校验的组合来计算得到的。
4.如权利要求1所述的方法,其特征在于,进一步包括:
将所述多个子片段划分成来自所述多个区中的所选区中的多个组,所述多个组中的每一者包括所选区中的一个或多个区数据片段;以及
计算所述多个重构奇偶校验,其中
对于所述多个区中的每一区:
根据所述多个组中的每一者中的子集区数据片段,为所述区中的多个组中的每一者计算多个局部奇偶校验;
根据所述区的所述一个或多个区数据片段,计算多个区奇偶校验;以及
使用包括所述一个或多个区数据片段、所述多个局部奇偶校验以及在所述多个区中的每一者中相对应的所述多个区奇偶校验的多个区片段来计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区。
5.如权利要求4所述的方法,其特征在于,包括所述多个跨区奇偶校验的所述奇偶校验区被配置成基于所述多个组的局部奇偶校验和所述奇偶校验区中的区奇偶校验来进行区内重构和跨区重构。
6.如权利要求1所述的方法,其特征在于,进一步包括:
将所述多个子片段划分成来自所述多个区中的所选区中的多个组,所述多个组中的每一者包括所选区中的一个或多个区数据片段;以及
计算所述多个重构奇偶校验,其中
对于所述多个区中的每一区:
根据所述多个组中的每一者中的子集区数据片段,为所述区中的多个组中的每一者计算多个局部奇偶校验;
根据所述多个区中的每一者中的所述一个或多个区数据片段,计算区间奇偶校验;以及
使用包括所述一个或多个区数据片段、所述多个局部奇偶校验以及在所述多个区中的每一者中相对应的所述区间奇偶校验的多个区片段来计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区。
7.如权利要求6所述的方法,其特征在于,包括所述多个跨区奇偶校验的所述奇偶校验区被配置成基于所述奇偶校验区的局部奇偶校验和区间奇偶校验来进行区内重构和跨区重构。
8.如权利要求1所述的方法,其特征在于,进一步包括:
将所述多个子片段划分成来自所述多个区中的所选区中的组,所述组包括所选区中的一个或多个区数据片段;以及
计算所述多个重构奇偶校验,其中
对于所述多个区中的每一区:
根据所述组中的所述一个或多个区数据片段来计算所述区中的所述组的局部奇偶校验;
根据所述多个区中的每一者中的所述一个或多个区数据片段,计算区间奇偶校验;以及
使用包括所述一个或多个区数据片段、所述局部奇偶校验以及在所述多个区中的每一者中相对应的所述区间奇偶校验的多个区片段来计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区。
9.如权利要求8所述的方法,其特征在于,包括所述多个跨区奇偶校验的所述奇偶校验区被配置成基于所述奇偶校验区的局部奇偶校验和区间奇偶校验来进行区内重构和跨区重构。
10.如权利要求1所述的方法,其特征在于,进一步包括:
将所述多个子片段划分成来自所述多个区中的所选区中的多个组,所述多个组中的每一者包括所选区中的一个或多个区数据片段;以及
计算所述多个重构奇偶校验,其中
对于所述多个区中的每一区:
根据所述多个区中的每一者中的所述一个或多个区数据片段,计算多个区间奇偶校验;以及
使用包括所述一个或多个区数据片段以及在所述多个区中的每一者中相对应的所述多个区间奇偶校验的多个区片段来计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区。
11.如权利要求10所述的方法,其特征在于,包括所述多个跨区奇偶校验的所述奇偶校验区被配置成基于多个区间奇偶校验来进行跨区重构。
12.一种用于跨多个存储区对数据进行纠删编码的系统,所述系统包括:
编码器组件,所述编码器组件被配置成:
将数据块划分成多个子片段,所述多个子片段中的每一者具有一个或多个区数据片段,其中所述多个子片段中的每一者与多个区之一相关联;
计算多个重构奇偶校验,所述多个重构奇偶校验中的每一者是使用来自所述多个子片段中的至少一个子片段来计算得到的,其中所述多个重构奇偶校验包括至少一个跨区奇偶校验;以及
将所述至少一个跨区奇偶校验指派给奇偶校验区,其中所述跨区奇偶校验提供所述数据块的一部分的跨区重构;以及
重构组件,所述重构组件被配置成:
使用与所述多个区相关联的所述多个子片段和所述多个重构奇偶校验来重构数据,其中所述数据是基于所述数据的纠删编码方案来重构的,并且其中恢复数据
对于第一纠删编码方案而言包括:
使用局部奇偶校验和区奇偶校验来提供恢复区内的局部重构和跨区最大容错;
对于第二纠删编码方案而言包括:
使用局部奇偶校验和区间奇偶校验来提供所述恢复区内的局部重构以及跨区最大容错;
对于第三纠删编码方案而言包括:
使用区间奇偶校验提供跨区最大容错。
13.如权利要求12所述的系统,其特征在于,所述编码器组件和所述重构组件被实现为支持云计算的分布式计算环境的一部分。
14.如权利要求12所述的系统,其特征在于,跨区最大容错基于在信息理论上可解码的故障模式的最大可恢复属性的编码方程。
15.一种用于选择纠删编码方案以用于跨多个存储区来对数据块进行编码的计算机实现的方法,所述方法包括:
提供多个纠删编码方案,其中所述多个纠删编码方案中的每一者与定义实现约束的多个维度相关联;
至少部分地基于所述多个维度来选择用于对数据块进行编码的纠删编码方案;以及
使用所选择的纠删编码方案对所述数据块进行编码,所述纠删编码方案将所述数据块划分成来自所述多个区的所选区中的一个或多个群中的多个子片段,所述一个或多个群中的每一者包括所选区中的一个或多个区数据片段,
其中第一所选纠删编码方案被配置成:
对于所述多个区中的每一区:
根据所述区中的所述一个或多个组中的每一者中的子集区数据片段,在水平方向上计算所述区中的所述一个或多个组中的每一者的多个局部奇偶校验;
根据所述区的所述一个或多个区数据片段,在水平方向上计算多个区奇偶校验;以及
使用包括所述一个或多个区数据片段、所述多个局部奇偶校验以及在所述多个区中的每一者中垂直地相对应的所述多个区奇偶校验的多个区片段来在垂直方向上计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区中的对应位置;
其中第二所选纠删编码方案被配置成:
对于所述多个区中的每一区:
根据所述一个或多个组中的每一者中的子集区数据片段,在所述水平方向上计算所述区中的所述一个或多个组中的每一者的局部奇偶校验;
根据所述多个区中的每一者中的所述一个或多个区数据片段,在所述水平方向上计算区间奇偶校验;以及
使用包括所述一个或多个区数据片段、所述多个局部奇偶校验以及在所述多个区中的每一者中垂直地相对应的所述区间奇偶校验的多个区片段来在所述垂直方向上计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区中的对应位置;
其中第三所选纠删编码方案被配置成:
对于所述多个区中的每一区:
根据所述多个区中的每一者中的所述一个或多个区数据片段,在水平方向上计算多个区间奇偶校验;以及
使用包括所述一个或多个区数据片段以及在所述多个区中的每一者中垂直地相对应的所述多个区间奇偶校验的多个区片段来在所述垂直方向上计算多个跨区奇偶校验,其中所述多个跨区奇偶校验被指派给所述奇偶校验区中的对应位置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/926,722 | 2013-06-25 | ||
US13/926,722 US9378084B2 (en) | 2013-06-25 | 2013-06-25 | Erasure coding across multiple zones |
PCT/US2014/043857 WO2014209993A1 (en) | 2013-06-25 | 2014-06-24 | Erasure coding across multiple zones |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393225A true CN105393225A (zh) | 2016-03-09 |
CN105393225B CN105393225B (zh) | 2018-12-07 |
Family
ID=51210819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480036690.4A Active CN105393225B (zh) | 2013-06-25 | 2014-06-24 | 跨多个区的纠删编码 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9378084B2 (zh) |
EP (1) | EP3014450B1 (zh) |
CN (1) | CN105393225B (zh) |
TW (1) | TW201503143A (zh) |
WO (1) | WO2014209993A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788891A (zh) * | 2016-12-16 | 2017-05-31 | 陕西尚品信息科技有限公司 | 一种适用于分布式存储的最优局部修复码构造方法 |
CN108733503A (zh) * | 2017-04-24 | 2018-11-02 | 慧与发展有限责任合伙企业 | 在分布式存储系统中存储数据 |
CN111782152A (zh) * | 2020-07-03 | 2020-10-16 | 深圳市欢太科技有限公司 | 数据存储方法、数据恢复方法、装置、服务器及存储介质 |
CN112328168A (zh) * | 2017-06-29 | 2021-02-05 | 华为技术有限公司 | 分片管理方法和分片管理装置 |
CN112889034A (zh) * | 2018-10-15 | 2021-06-01 | Netapp股份有限公司 | 对数据块的内容驱动的分布进行擦除编码 |
Families Citing this family (268)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US9804925B1 (en) * | 2014-02-25 | 2017-10-31 | Google Inc. | Data reconstruction in distributed storage systems |
US20150331752A1 (en) * | 2014-05-16 | 2015-11-19 | Syed Ali Haider | Method of data storage on cloud data center for reducing processing and storage requirements by engaging user equipment |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9612952B2 (en) | 2014-06-04 | 2017-04-04 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
US8850108B1 (en) * | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11068363B1 (en) * | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9753807B1 (en) * | 2014-06-17 | 2017-09-05 | Amazon Technologies, Inc. | Generation and verification of erasure encoded fragments |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10298259B1 (en) | 2015-06-16 | 2019-05-21 | Amazon Technologies, Inc. | Multi-layered data redundancy coding techniques |
US10270475B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Layered redundancy coding for encoded parity data |
US9998150B1 (en) | 2015-06-16 | 2018-06-12 | Amazon Technologies, Inc. | Layered data redundancy coding techniques for layer-local data recovery |
US10270476B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Failure mode-sensitive layered redundancy coding techniques |
US10977128B1 (en) | 2015-06-16 | 2021-04-13 | Amazon Technologies, Inc. | Adaptive data loss mitigation for redundancy coding systems |
US10187083B2 (en) * | 2015-06-26 | 2019-01-22 | Microsoft Technology Licensing, Llc | Flexible erasure coding with enhanced local protection group structures |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US9904589B1 (en) * | 2015-07-01 | 2018-02-27 | Amazon Technologies, Inc. | Incremental media size extension for grid encoded data storage systems |
US10108819B1 (en) | 2015-07-01 | 2018-10-23 | Amazon Technologies, Inc. | Cross-datacenter extension of grid encoded data storage systems |
US10394762B1 (en) | 2015-07-01 | 2019-08-27 | Amazon Technologies, Inc. | Determining data redundancy in grid encoded data storage systems |
US9959167B1 (en) | 2015-07-01 | 2018-05-01 | Amazon Technologies, Inc. | Rebundling grid encoded data storage systems |
US10089176B1 (en) | 2015-07-01 | 2018-10-02 | Amazon Technologies, Inc. | Incremental updates of grid encoded data storage systems |
US10162704B1 (en) | 2015-07-01 | 2018-12-25 | Amazon Technologies, Inc. | Grid encoded data storage systems for efficient data repair |
US9998539B1 (en) | 2015-07-01 | 2018-06-12 | Amazon Technologies, Inc. | Non-parity in grid encoded data storage systems |
US10198311B1 (en) | 2015-07-01 | 2019-02-05 | Amazon Technologies, Inc. | Cross-datacenter validation of grid encoded data storage systems |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US9928141B1 (en) | 2015-09-21 | 2018-03-27 | Amazon Technologies, Inc. | Exploiting variable media size in grid encoded data storage systems |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
US9940474B1 (en) | 2015-09-29 | 2018-04-10 | Amazon Technologies, Inc. | Techniques and systems for data segregation in data storage systems |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10394789B1 (en) | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
US9785495B1 (en) | 2015-12-14 | 2017-10-10 | Amazon Technologies, Inc. | Techniques and systems for detecting anomalous operational data |
US10642813B1 (en) | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
US10248793B1 (en) | 2015-12-16 | 2019-04-02 | Amazon Technologies, Inc. | Techniques and systems for durable encryption and deletion in data storage systems |
US10324790B1 (en) | 2015-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Flexible data storage device mapping for data storage systems |
US10235402B1 (en) | 2015-12-17 | 2019-03-19 | Amazon Technologies, Inc. | Techniques for combining grid-encoded data storage systems |
US10102065B1 (en) | 2015-12-17 | 2018-10-16 | Amazon Technologies, Inc. | Localized failure mode decorrelation in redundancy encoded data storage systems |
US10127105B1 (en) | 2015-12-17 | 2018-11-13 | Amazon Technologies, Inc. | Techniques for extending grids in data storage systems |
US10180912B1 (en) | 2015-12-17 | 2019-01-15 | Amazon Technologies, Inc. | Techniques and systems for data segregation in redundancy coded data storage systems |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
WO2017107107A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Techniques to recover data in a network storage system |
US10146652B2 (en) | 2016-02-11 | 2018-12-04 | International Business Machines Corporation | Resilient distributed storage system |
US10372334B2 (en) | 2016-02-11 | 2019-08-06 | International Business Machines Corporation | Reclaiming free space in a storage system |
US10592336B1 (en) | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
US10678664B1 (en) | 2016-03-28 | 2020-06-09 | Amazon Technologies, Inc. | Hybridized storage operation for redundancy coded data storage systems |
US10366062B1 (en) | 2016-03-28 | 2019-07-30 | Amazon Technologies, Inc. | Cycled clustering for redundancy coded data storage systems |
US10061668B1 (en) | 2016-03-28 | 2018-08-28 | Amazon Technologies, Inc. | Local storage clustering for redundancy coded data storage system |
US10110258B2 (en) * | 2016-03-30 | 2018-10-23 | EMC IP Holding Company LLC | Accelerated erasure coding for storage systems |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US10152376B2 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Data object recovery for storage systems |
US10248326B2 (en) | 2016-06-29 | 2019-04-02 | EMC IP Holding Company LLC | Incremental erasure coding for storage systems |
US10547681B2 (en) | 2016-06-30 | 2020-01-28 | Purdue Research Foundation | Functional caching in erasure coded storage |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10191808B2 (en) * | 2016-08-04 | 2019-01-29 | Qualcomm Incorporated | Systems and methods for storing, maintaining, and accessing objects in storage system clusters |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US11137980B1 (en) | 2016-09-27 | 2021-10-05 | Amazon Technologies, Inc. | Monotonic time-based data storage |
US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US10810157B1 (en) | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
US10614239B2 (en) | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US10613974B2 (en) | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US10296764B1 (en) | 2016-11-18 | 2019-05-21 | Amazon Technologies, Inc. | Verifiable cryptographically secured ledgers for human resource systems |
US11269888B1 (en) | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
US10564883B2 (en) | 2016-12-13 | 2020-02-18 | EMC IP Holding Company LLC | Efficient migration to distributed storage |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US10503611B1 (en) * | 2016-12-23 | 2019-12-10 | EMC IP Holding Company LLC | Data protection management for distributed storage |
US10331516B2 (en) * | 2016-12-23 | 2019-06-25 | EMC IP Holding Company LLC | Content-aware data recovery method for elastic cloud storage |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11003532B2 (en) | 2017-06-16 | 2021-05-11 | Microsoft Technology Licensing, Llc | Distributed data object management system operations |
US10310943B2 (en) | 2017-06-16 | 2019-06-04 | Microsoft Technology Licensing, Llc | Distributed data object management system |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10284234B1 (en) | 2017-07-19 | 2019-05-07 | EMC IP Holding Company LLC | Facilitation of data deletion for distributed erasure coding |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10684780B1 (en) | 2017-07-27 | 2020-06-16 | EMC IP Holding Company LLC | Time sensitive data convolution and de-convolution |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
CN109426590A (zh) * | 2017-09-01 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 用于数据节点存储数据的方法和用于恢复数据的方法 |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10592478B1 (en) * | 2017-10-23 | 2020-03-17 | EMC IP Holding Company LLC | System and method for reverse replication |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
CN110018783B (zh) | 2018-01-09 | 2022-12-20 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置及系统 |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
WO2019227465A1 (en) * | 2018-06-01 | 2019-12-05 | Microsoft Technology Licensing, Llc. | Erasure coding with overlapped local reconstruction codes |
US10936196B2 (en) * | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10719250B2 (en) | 2018-06-29 | 2020-07-21 | EMC IP Holding Company LLC | System and method for combining erasure-coded protection sets |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US10783022B2 (en) | 2018-08-03 | 2020-09-22 | EMC IP Holding Company LLC | Immediate replication for dedicated data blocks |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US10768840B2 (en) | 2019-01-04 | 2020-09-08 | EMC IP Holding Company LLC | Updating protection sets in a geographically distributed storage environment |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US10998919B2 (en) * | 2019-10-02 | 2021-05-04 | Microsoft Technology Licensing, Llc | Coded stream processing |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
CN110866291B (zh) * | 2019-11-15 | 2023-03-24 | 北京工业大学 | 一种基于双重安全机制的废旧电子产品信息清除方法 |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11182249B1 (en) * | 2020-06-24 | 2021-11-23 | International Business Machines Corporation | Block ID encoding in an erasure coded storage system |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11442646B2 (en) * | 2020-09-09 | 2022-09-13 | Western Digital Technologies Inc. | Identified zones for optimal parity sharing zones |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11916785B2 (en) * | 2021-09-24 | 2024-02-27 | Apple Inc. | Symmetric routing in virtualized networks |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050229023A1 (en) * | 2004-04-02 | 2005-10-13 | Seagate Technology Llc | Dual redundant data storage format and method |
CN101512492A (zh) * | 2005-12-15 | 2009-08-19 | 网络装置公司 | 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术 |
WO2012007715A2 (en) * | 2010-07-14 | 2012-01-19 | Extas Global Ltd | Distributed data storage and recovery |
US8316260B1 (en) * | 2012-03-23 | 2012-11-20 | DSSD, Inc. | Method and system for multi-dimensional raid |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7073115B2 (en) * | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
US8364891B2 (en) | 2006-04-04 | 2013-01-29 | Permabit Technology Corporation | Storage assignment technique for scalable and fault tolerant storage system |
US7904782B2 (en) * | 2007-03-09 | 2011-03-08 | Microsoft Corporation | Multiple protection group codes having maximally recoverable property |
US8051362B2 (en) | 2007-06-15 | 2011-11-01 | Microsoft Corporation | Distributed data storage using erasure resilient coding |
US8171379B2 (en) * | 2008-02-18 | 2012-05-01 | Dell Products L.P. | Methods, systems and media for data recovery using global parity for multiple independent RAID levels |
US8473778B2 (en) | 2010-09-08 | 2013-06-25 | Microsoft Corporation | Erasure coding immutable data |
US8433849B2 (en) | 2010-12-27 | 2013-04-30 | Amplidata Nv | Hierarchical, distributed object storage system |
US9342405B2 (en) * | 2011-02-25 | 2016-05-17 | Seagate Technology Llc | Hierarchical data compression testing |
CN103577274B (zh) * | 2012-07-31 | 2016-07-06 | 国际商业机器公司 | 管理存储器阵列的方法和装置 |
-
2013
- 2013-06-25 US US13/926,722 patent/US9378084B2/en active Active
-
2014
- 2014-05-27 TW TW103118465A patent/TW201503143A/zh unknown
- 2014-06-24 WO PCT/US2014/043857 patent/WO2014209993A1/en active Application Filing
- 2014-06-24 EP EP14740083.2A patent/EP3014450B1/en active Active
- 2014-06-24 CN CN201480036690.4A patent/CN105393225B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050229023A1 (en) * | 2004-04-02 | 2005-10-13 | Seagate Technology Llc | Dual redundant data storage format and method |
CN101512492A (zh) * | 2005-12-15 | 2009-08-19 | 网络装置公司 | 用于实现从存储阵列中的三重故障中高效恢复的三重奇偶校验技术 |
WO2012007715A2 (en) * | 2010-07-14 | 2012-01-19 | Extas Global Ltd | Distributed data storage and recovery |
US8316260B1 (en) * | 2012-03-23 | 2012-11-20 | DSSD, Inc. | Method and system for multi-dimensional raid |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106788891A (zh) * | 2016-12-16 | 2017-05-31 | 陕西尚品信息科技有限公司 | 一种适用于分布式存储的最优局部修复码构造方法 |
CN108733503A (zh) * | 2017-04-24 | 2018-11-02 | 慧与发展有限责任合伙企业 | 在分布式存储系统中存储数据 |
CN108733503B (zh) * | 2017-04-24 | 2021-10-01 | 慧与发展有限责任合伙企业 | 存储节点、分布式存储系统以及用于存储数据的方法 |
CN112328168A (zh) * | 2017-06-29 | 2021-02-05 | 华为技术有限公司 | 分片管理方法和分片管理装置 |
US11243706B2 (en) | 2017-06-29 | 2022-02-08 | Huawei Technologies Co., Ltd. | Fragment management method and fragment management apparatus |
CN112889034A (zh) * | 2018-10-15 | 2021-06-01 | Netapp股份有限公司 | 对数据块的内容驱动的分布进行擦除编码 |
CN111782152A (zh) * | 2020-07-03 | 2020-10-16 | 深圳市欢太科技有限公司 | 数据存储方法、数据恢复方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW201503143A (zh) | 2015-01-16 |
US20140380125A1 (en) | 2014-12-25 |
EP3014450A1 (en) | 2016-05-04 |
CN105393225B (zh) | 2018-12-07 |
WO2014209993A1 (en) | 2014-12-31 |
EP3014450B1 (en) | 2019-01-30 |
US9378084B2 (en) | 2016-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393225A (zh) | 跨多个区的纠删编码 | |
US9244761B2 (en) | Erasure coding across multiple zones and sub-zones | |
US10936417B2 (en) | Multi-stage slice recovery in a dispersed storage network | |
US10187083B2 (en) | Flexible erasure coding with enhanced local protection group structures | |
US10241695B2 (en) | Optimizing rebuilds when using multiple information dispersal algorithms | |
CN111149093B (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
US8751897B2 (en) | Distributed system for fault-tolerant data storage | |
US6557123B1 (en) | Data redundancy methods and apparatus | |
US10042566B2 (en) | Intelligent read strategy within a dispersed storage network (DSN) | |
US7093182B2 (en) | Data redundancy methods and apparatus | |
EP2394220B1 (en) | Distributed storage of recoverable data | |
US8392805B2 (en) | Non-MDS erasure codes for storage systems | |
US20120179870A1 (en) | Data Storage Method with (D,K) Moore Graph-Based Network Storage Structure | |
CN113190377B (zh) | 一种基于分布式存储系统的可靠冗余方法及设备 | |
WO2019227465A1 (en) | Erasure coding with overlapped local reconstruction codes | |
US10331519B2 (en) | Application of secret sharing schemes at multiple levels of a dispersed storage network | |
US10360106B2 (en) | Throttled real-time writes | |
US10067998B2 (en) | Distributed sync list | |
US20180059951A1 (en) | Scheduling distributed storage network memory activities based on future projections | |
US10853175B1 (en) | Storage unit (SU) operative to service urgent read requests | |
Kiani et al. | A non-mds erasure code scheme for storage applications | |
US20170185303A1 (en) | Quasi-error notifications in a dispersed storage network | |
US20170168899A1 (en) | External healing mode for a dispersed storage network memory | |
Parase et al. | Handling Multiple Processor Failure Using Diskless Checkpointing Approach |
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 |