CN104364765A - 分布式数据存储***中的数据存储和维护的方法以及对应设备 - Google Patents
分布式数据存储***中的数据存储和维护的方法以及对应设备 Download PDFInfo
- Publication number
- CN104364765A CN104364765A CN201380026373.XA CN201380026373A CN104364765A CN 104364765 A CN104364765 A CN 104364765A CN 201380026373 A CN201380026373 A CN 201380026373A CN 104364765 A CN104364765 A CN 104364765A
- Authority
- CN
- China
- Prior art keywords
- memory device
- bunch
- block
- file
- data
- 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.)
- Pending
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
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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
- G06F11/2053—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 where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明一般涉及分布式数据存储***。具体地,本发明涉及一种分布式数据存储***中的数据存储的方法,该方法包含对数据块进行聚簇以及使用数据块的随机线性组合,使分布式数据存储***就存储方法以及相关联的修复方法所需的存储空间和设备间的通信成本而言是高效的。
Description
技术领域
本发明一般涉及分布式数据存储***。具体地,本发明涉及一种分布式数据存储***中的数据存储的方法,就网络存储设备之间的数据交换所需的带宽以及存储数据项所需的网络存储设备的数量而言,其结合了高数据可用性和对网络和数据存储资源的低影响。本发明还涉及一种修复该分布式数据存储***中的故障存储设备的方法以及实现本发明的设备。
背景技术
随着大量数据处理设备(诸如视频和图像处理设备等)的迅速散布的部署,需要巨大量数据的可靠存储,用于直接存储或者作为部分备份存储。随着越来越多的设备装配有网络连接性,连接网络的设备(“存储设备”)中的数据的分布式存储被视为节省成分的解决方案。在这种可以部署在诸如因特网这样的无管理网络上的分布式数据存储***中,已经开发了将相同的数据项复制到多个连接网络的设备以确保数据可用性以及对数据丢失的复原性的方法。这被称为数据复制或添加冗余性。冗余性必须在广义上采用,并且包含纯粹的数据复制以及诸如纠删(erasure)码或再生码等编码技术的使用(其中,为了复原性,将编码数据放置在存储设备中)。为了应付由于设备故障导致的永久性数据丢失或者由于临时的设备不可用导致的临时性数据丢失的风险,希望高冗余性。然而,为了降低所需的关于通信和存储大小的成本(通常称为复制成本),反而希望具有低冗余性。
因此,冗余性是任何必须基于不可靠的组件提供可靠的服务的实际***的关键方面。存储***是使用冗余性掩蔽不可避免的盘不可用性和故障的服务的典型示例。如上所述,可以使用基本的复制或编码技术提供这种冗余性。
纠删码可以提供比基本的复制好得多的效率,但是它们未被完全地部署在当前***中。使用纠删码时的主要顾虑,除了由于编码-解码操作导致增加的复杂度之外,来自故障存储设备的维护。实际上,当存储设备出故障时,必须替换其存储的不同文件的所有块以确保数据耐久性。这意味着,对于每个丢失的块,为了仅仅重新创建一个新块,必须下载并解码该块所源自的整个文件。与基本的数据复制相比,就带宽和解码操作而言,该开销极大地限制了纠删码在故障以及因此而进行的修复是常态而非意外的***中的使用。然而,网络编码可以用于极大地减少维护过程期间必需的带宽。这为特别为应付维护已经被编码的文件而设计的新的分布式存储***作好准备,从而利用纠删码的效率,同时减轻其已知的缺点。
所需要的是一种实现高级别的数据可用性并且连带地考虑可用性需求和复制成本的分布式数据存储解决方案。
发明内容
本发明旨在减轻现有技术的不便之处。
为了优化分布式数据存储***中的数据存储,本发明提出一种在包含网络中互连的存储设备的分布式数据存储***中的数据存储的方法,所述方法包含对要存储在所述分布式数据存储***中的每个数据文件执行的以下步骤:
-将所述数据文件拆分成k个数据块,并且从这k个数据块通过所述k个数据块的随机线性组合创建至少n个编码数据块;
-通过在作为同一存储设备簇的部分的至少n个存储设备上散布所述文件的所述至少n个编码数据块来存储所述至少n个编码数据块,每个簇包含存储设备的独特的集合,所述文件的所述至少n个编码数据块分布在存储设备簇的所述至少n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。
本发明还包含一种修复根据本发明的存储方法存储数据并且将所存储的文件拆分成k个数据块的分布式数据存储***中的故障存储设备的方法,所述方法包含以下步骤:
-将替换存储设备添加到所述故障存储设备所属的存储设备簇;
-由所述替换存储设备从所述存储设备簇中的k+1个剩余的存储设备中的任何一个接收k+1个新的随机线性组合,所述k+1个新的随机线性组合根据来自由所述k+1个存储设备中的每个所存储的两个不同文件X和Y的两个编码数据块生成;
-使用代数运算对所接收的所述新的随机线性组合在它们之间进行组合以获得两个线性组合,其中,获得两个块,一个仅与X有关,另一个仅与Y有关;
-将所述两个线性组合存储在所述替换存储设备中。
根据所述修复方法的变型实施例,所述修复方法包含:将返回到所述分布式数据***的故障存储设备重新整合到所述存储设备簇中。
本发明还包含一种用于管理包含网络中互连的存储设备的分布式数据存储***中的数据文件的存储的设备,所述设备包含:数据拆分器,用于将所述数据文件拆分成k个数据块,并且从这k个数据块通过所述k个数据块的随机线性组合创建至少n个编码数据块;所述设备还包含:存储分配器,用于通过在作为同一存储设备簇的部分的至少n个存储设备上散布所述文件的所述至少n个编码数据块来存储所述至少n个编码数据块,每个簇包含存储设备的独特的集合,所述文件的所述至少n个编码数据块分布在存储设备簇的所述至少n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。
本发明还涉及一种用于管理修复根据本发明的存储方法存储数据的分布式数据存储***中的故障存储设备的设备。所述用于管理修复的设备包含:替换器,用于将替换存储设备添加到所述故障存储设备所属的存储设备簇;分配器,用于从所述存储设备簇中的k+1个剩余的存储设备中的任何一个向所述替换存储设备分配k+1个新的随机线性组合,所述k+1个新的随机线性组合根据来自由所述k+1个存储设备中的每个所存储的两个不同文件X和Y的两个编码数据块生成;组合器,用于使用代数运算对所接收的所述新的随机线性组合在它们之间进行组合以获得两个线性组合,其中,获得两个块,一个仅与X有关,另一个仅与Y有关;以及数据写入器,用于将所述两个线性组合存储在所述替换存储设备中。
附图说明
通过本发明的具体、非限定性的实施例的描述,将呈现本发明的更多优点。
将参照以下附图描述实施例:
图1示出本发明的存储方法的具体细节;
图2示出根据本发明的存储方法的数据聚簇的示例;
图3示出存储设备故障的修复过程;
图4例示能够实现本发明的设备;
图5示出实现本发明的方法的具体实施例的算法;
图6a的用于管理分布式数据***中的数据文件的存储的设备,所述分布式数据***包含网络中互连的存储设备;以及
图6b是用于管理修复根据本发明的存储方法存储数据的分布式数据存储***中的故障存储设备的设备。
具体实施方式
如先前所述,现在应当理解,在数据存储***中,纠删码可以提供比的基本的复制好得多的效率。而实际上,尽管有明显的优点,但它们在这样的存储***中的应用并不普遍。它们相对缺乏应用的原因之一是,现有技术水平的编码方法考虑每次需要***或修复块时就可能发现新的存储设备;亦即,假设存在无限资源的存储设备。此外,未考虑存储设备的可用性。这两个前提对纠删码在当前的分布式数据存储***中的简单应用构成了实际的障碍,并且在必须做出解决那些关键问题的设计选择时是令人困惑的。为了克服这些缺点,本发明提出对负责承载(host)构成分布式数据存储***中的冗余性的数据的块的存储设备进行聚簇,并且还提出使用并且部署纠删码的实际部件。这样,在与简单的复制和编码方案相比时,本发明容许显著的性能增益。根据本发明的聚簇允许在存储设备级别(亦即,包含很多文件的很多块的存储设备)而不是单个文件级别进行维护,并且对纠删码的应用允许高效的数据复制,从而利用多修复并且提高分布式数据存储***的性能增益。
在使用最大距离可分(Maximum Distance Separable,MDS)码时,纠删码的效率最大,因为它们通常被称为“优化的”。这意味着,对于给定的存储开销,MDS码关于数据可用性提供可能的最佳效率。MDS码是这样的码:出自n个冗余块(=编码数据块)的任何k个子集都足以重构丢失的数据。这意味着,为了重构M字节的文件,需要下载恰好M字节。里德所罗门(ReedSolomon,RS)是MDS码的经典示例。随机性提供了一种构造MDS码的灵活方式。
本发明提出一种在包含网络中互连的存储设备的分布式数据存储***中存储数据文件的具体方法。所述方法包含对要存储在所述分布式数据存储***中的每个数据文件执行的以下步骤:
-将所述数据文件拆分成k个数据块,并且从这k个数据块通过所述k个数据块的随机线性组合创建至少n个编码数据块;
-在作为同一存储设备簇的部分的所述n个存储设备上散布所述文件的n个编码数据块,每个簇包含存储设备的独特的集合,所述文件的所述至少n个编码数据块分布在存储设备簇的所述n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。
图1示出本发明的存储方法的具体示例,其中,文件被拆分成k=2个数据块,以及相关联的线性组合方法的具体示例,其中,生成n=4个编码数据块。按照如下进行:将每个文件X(10)组块化相等大小的k个数据块(12,13),然后,将n个编码数据块Xj(15,16,17,18)创建为这k个块的随机线性组合。然后,分布式存储***的每个存储设备j存储作为这k个数据块的随机线性组合的编码数据块Xj。在域Fq中随机地均匀选取相关联的随机系数α(例如:块15的2和7),亦即,Fq表示具有q个元素的“有限域”。利用有限域对实现纠错码是必要的,并且为本领域技术人员所知。简言之,有限域是诸如离散数字集合这样的数字集合,但是其中加法和乘法的规则与关于离散数字的公知规则不同。
除了存储n个编码数据块Xj(15-18)之外,还需要存储相关联的随机系数α。因为与块Xj的大小相比,它们的大小是可以忽略的,所以用于存储这些系数的存储空间也是可以忽略的。一般地,当在本文中使用用语(随机)线性组合时,这包含了相关联的系数。
作为实际示例,考虑文件X(10)具有M=1吉字节(Gbyte)的大小。选取参数k(文件组块的数量)和n(k个文件组块的随机线性组合的数量)使得存在码实现方式,例如k=2并且n=4。可以通过被参数化以生成1至q的范围内的离散数的现有技术随机数发生器来生成相关联的随机系数α。
根据分布式存储***的设计者所希望的冗余性级别来选取n/k。例如,对于码k=2、n=4,得到n/k=2,因此,为了存储1Gb的文件,***需要2Gb的存储空间。此外,n/k表示***可以容忍的故障的数量(故障存储设备的数量)。例如,给定k=2、n=4,则只要保留k=2个编码数据块,就可以恢复初始文件。从而,在引入的冗余性的数量与分布式存储***的容错之间存在折衷。
因此,按照下面完成对在分布式存储***中存储的文件的重构。以数学术语,已经这样根据来自k个数据块的随机线性组合创建的n个编码数据块Xj中的每个都可以表示为k个数据块跨越的子空间的随机矢量。因此,对于文件X的重构,足以在该子空间中获得k个独立的矢量。因为相关联的随机系数先前在文件X的存储期间已由上述随机数发生器生成,所以满足独立性要求。实际上,每族线性独立的k个矢量形成可以反转的非奇异矩阵,因此,可以以非常高的概率(亦即,接近于1)重构文件X,或者以更加形式化的方式:设D是表示属于的n个冗余块Xj或者以其他方式的所述n个随机矢量跨越的子空间的维度的随机变量。则可以示出:
该公式给出m个随机矢量跨越的子空间的维度恰好为n,使得这n个矢量的族是线性独立的。当使用实际的域大小(典型地,28或216)时,示出该概率对于每个n都非常地接近于1。如上所述,域大小是有限域Fq中的元素的数量。因为有限域的一个元素分别对应于一个或两个字节(8比特或16比特),所以值28或216是实际的值。例如,对于作为经典且实际的值的216的域大小以及n=16,当恰好联系n=16个存储设备时,能够重构文件X的概率是0.999985。因此,随机(MDS)码提供了灵活的方式对数据进行最优的编码。相比于使用固定编码矩阵并且因此具有固定速率k/n的经典纠删码,亦即冗余***于是无法创建多于固定数量的冗余且独立的块,它们是不同的。实际上,当使用如本发明中所提出的随机码时,速率的概念消失,因为可以仅仅通过对文件X的k个块Xj进行新的随机组合来生成所需数量的冗余块Xj。这种性质使得随机码是无速率(rate less)码,也称为喷泉码。这种无速率性质使得这些码非常适合于分布式存储***的环境中,因为如将进一步讨论的那样,其使得重新整合错误地“丢失”的存储设备成为可能。
结合所述的使丢失数据的修复容易且高效的(如上所述的参数k、n的)MDS纠删码的使用,本发明提出采用具体的数据聚簇方法,其利用属于多个文件的丢失数据的同时修复。簇的大小取决于码的类型。更精确地,如果MDS码正生成出自k个块的n个编码数据,则簇的大小应当恰好为n。图2例示了根据本发明的存储方法的这种聚簇的示例。所有存储设备的集合被划分成不相交的簇。因此,每个存储设备只属于一个簇。然后,把要存储到这样组织的分布式存储***中的每个文件存储到具体的簇中。簇包含来自不同文件的数据。存储设备包含来自不同文件的数据。此外,存储设备包含来自存储该簇上的每个文件的一个数据块。图2给出六个文件X1至X6的示例,每个文件包含n=3个作为这些文件的k个块的随机线性组合的编码数据块Xj。两个存储簇每个都包含三个存储设备的集合:第一簇1(20)包含存储设备1、2和3(200、201和202),第二簇2(21)包含三个存储设备4、5和6(210、211和212)。文件X1的三个(n=3)编码数据块Xj存储在簇1(20)中:存储设备1(200)上的第一块(2000)、存储设备2(201)上的第二块(2010)以及存储设备3(202)上的第三块(2020)。文件X2的三个(n=3)编码数据块Xj存储在簇2(21)中:存储设备4(210)上的第一块2100、存储设备5(211)上的第二块2110以及存储设备6(212)上的第三块2120。类似地,簇1还在存储设备1、2和3(分别为200、201、202)上存储文件X3的编码数据块Xj(2001、2011、2021)以及文件X5的编码数据块Xj(2002、2012、2022)。类似地,簇2还在存储设备4、5和6(分别为210、211和212)上存储文件X4的编码数据块Xj(2101、2111和2121)以及文件X6的编码数据块Xj(2102、2112和2122)。根据所选取的负载平衡策略以到达顺序(例如,簇1上的文件X1、簇2上的文件X2、簇1上的文件X3等)存储文件。
为了管理文件,保持两个指数就足够了:将每个文件映射到簇的一个,以及将每个存储设备映射到簇的一个。根据本发明的具体实施例,存储设备可以通过它们的IP(Internet Protocol,因特网协议)地址标识。
本发明的数据块放置策略包含有简单文件管理,如将进一步解释的那样,其随着分布式存储***中所存储的文件的数量很好地扩展,同时直接用于这种***的维护过程。注意,可以根据任何策略(例如均匀采样或使用特定协议)给出如何构造簇以及如何用不同文件填充簇的方式。实际上,在现有技术中存在多种放置策略,例如,一些关注于负载平衡,而另一些关注于可用性。
放置策略和维护(修复)过程被视为通常独立设计的两种构建块的方式。
关于本发明,如将进一步解释的那样,放置策略直接用于维护处理。分布式数据存储***仅仅由于这种***的商业实现方式的规模就容易出现故障。典型地,用于存储来自针对该服务的因特网订户的数据的分布式数据存储***采用数千个装配有硬盘驱动的存储设备。因此,需要可靠的维护机制以便修复因这些故障造成的数据丢失。为此,该***需要监视存储设备,并且传统地使用基于超时的触发机制来决定是否必须执行修复。本发明的聚簇方法的第一实用点在于,通过在需要时创建监视并再生其自身(亦即,修复数据丢失)的自治簇,存储设备的簇容易管理并且可以以完全分散的方式实现。这与当前的存储***不同,在当前的存储***中,为了修复故障存储设备,替换故障存储设备的存储设备需要访问与该故障存储设备正存储的每个冗余块相关联的所有文件;然后,要联系的存储设备可能位于任意位置处,要求替换存储设备在修复之前首先询问它们的位置。这在本发明中不会出现,因为放置被构造在给定的簇中。
如果根据该现有技术将对每个所存储的文件的访问视为独立事件,典型地,这是在使用在存储设备的足够大的集合上的数据的均匀随机放置时的情况,则如果在存储设备的同一集合上未存储不同文件的冗余块,则成功联系集合中的所有这些存储设备的概率随着块的数量而降低。这来自以下事实:每个主机存储设备在实际中以一定概率可用,则访问增加数量的这些主机存储设备降低能够在给定的时间点访问所有所需的块的概率。与上述现有技术解决方案相比,使用本发明的聚簇放置方法,修复成功的概率不再取决于故障存储设备所存储的块的数量,因为对存储设备以如下这样的方式进行了分组:它们合作地承载用于替换存储设备的关键块。此外,替换存储设备需要连接的存储设备的数量不取决于故障存储设备所存储的块的数量。替代地,该数量取决于由***操作者预先定义的并且固定的簇大小,从而减少了替换存储设备需要维护的连接的数量。
借助图3最好地解释存储方法的具体效率,图3例示故障存储设备的修复并且将被进一步地论述。
与通过图3例示的本发明的方法不同,在使用经典纠删码时的现有技术修复过程如下:为了修复给定文件的一个数据块,替换存储设备必须下载足够冗余的经纠删码编码的块以能够对它们进行解码,从而重新创建(未编码的、明文数据)文件。一旦完成了该操作,替换存储设备就可以对文件重新编码,并且再生丢失的冗余数据块,其中,必须对每个丢失块重复重新编码。该现有技术方法具有因使用这些类型的码造成的以下缺点:
1.为了修复一个块,亦即文件的小部分,替换存储设备必须下载由存储文件的块的其它存储设备所存储的所有的块。因为当该第一步骤未完成时第二步骤(在下文中)无法开始,所以这关于通信成本很高并且费时;
2.一旦完成第一步骤,替换存储设备就必须拼凑所下载的块以能够再生未编码的明文数据文件。这是计算密集型运算,对于大文件更是如此;
3.然后,使用编码算法,丢失的块必须通过从再生的明文数据文件对其进行编码来重新创建。
与该现有技术方法不同,本发明的存储方法的聚簇放置策略以及随机码的使用使得能够在修复过程期间得到重大的益处。如已经示出的那样,根据现有技术修复方法,对同一文件的多个块在它们之间进行组合。根据本发明的方法,网络编码不是在文件级别而是在***级别使用,亦即,本发明的修复方法包含组合多个文件的数据块,从而显著地减少了在修复期间在存储设备之间交换的消息的数量。由存储设备存储的编码数据块Xj仅为可以执行代数运算的代数元素。
在修复过程结束时,在修复处理结束时获得的是对故障存储设备的修复。在本发明的背景下,修复故障存储设备表示创建故障存储设备针对其存储了编码数据块Xj的每个文件的随机矢量。任何随机矢量都是冗余或编码数据块。因此,故障存储设备的修复过程所需的操作将不替换故障存储设备所存储的确切数据,而是将再生故障存储设备所丢失的数据量。将进一步论述的是,这种选择提供了被称为存储设备重新整合的附加优点。
图3例示了根据本发明的故障存储设备的修复,其基于使用本发明的存储数据的方法的分布式数据存储***。在此,簇(30000)最初包含四个存储设备(30、31、32、33)。每个存储设备存储2个文件(文件X和文件Y)的随机码块Xj。对于这两个文件X和Y,k=2(亦即,将文件X和Y组块化k=两个块)。第一存储设备(30)存储随机码块(=编码数据块)300和301。第二存储设备(31)存储随机码块310和311。第三存储设备(32)存储随机码块320和321。第四存储设备(33)存储随机码块330和331。假设第四存储设备(33)出故障并且必须被修复。按照如下进行:
1.将第五即替换存储设备(39)添加到簇(30000)。替换存储设备从簇中的k+1个剩余存储设备接收从每个存储设备所存储的这些随机码生成的随机码的新的随机线性组合(具有相关联的系数α)。用矩形34-36和箭头3000-3005示出该情况。
2.以如下方式对作为结果的所生成的新的随机线性组合在它们之间进行组合:保留分别对因子X和Y进行了消元的两个线性组合,亦即,一个线性组合仅与X有关,另一个仅与Y有关。通过仔细地选取这些组合的系数,例如使用经典的“高斯消元”代数运算,来完成这种消元。
3.将剩余的两个线性组合存储在替换存储设备39中。箭头3012和3013示出该情况。
现在,完成修复操作,并且***被认为再次处于稳定且运行的状态下。
在多数分布式存储***中,使用超时执行将存储设备宣称为故障存储设备的决定。问题在于,这是一种在不确定性下的决定,容易出错。实际上,存储设备可能错误地超时,并且可能在已经完成修复之后意外地重新连接。当然,超时越长,出现错误就越少。然而,使用长超时是危险的,因为存储***的反应度减少,从而可能导致当故障突发出现时的无法挽回的数据丢失。重新整合的想法是,重新整合已经错误地超时的存储设备。当使用纠删码时,尚未解决重新整合。如果不实现重新整合,则修复被错误地视为出故障的存储设备是不必要的,并且由于其无法有助于容忍另外的故障,因此是资源的浪费。这来自如下事实:修复的存储设备不包含来自其它存储设备的独立冗余性,因此其不会带来附加的冗余性效益。
本发明的具体的有利的实施例包含重新整合错误故障存储设备,亦即,重新整合例如在检测到的连接超时的时候被分布式数据存储视为出故障但重新连接到***的设备。通过本发明,这种重新整合是可行的,因为其只将更多的冗余数据添加到簇,错误故障存储设备的修复增加簇的冗余性(虽然乍一看没有必要),这样,在下一次同一簇的任何存储设备出故障时,不必执行修复。这得自随机码的性质以及根据本发明的聚簇方案。因此,关于分布式数据存储***的资源使用,重新整合增加了效率。
利用存储设备重新整合的这种想法的本发明的不同的变型实施例是可能的。
根据第一变型实施例,簇的大小恰好维持在n个存储设备。如果存储设备出故障,则用装配有根据本发明的修复故障存储设备的方法的编码数据块的替换存储设备进行替换。如果故障存储设备恢复(亦即,其仅是临时不可用的),则不将其作为簇的存储设备之一重新整合到簇中,反而将其作为自由设备整合到在需要时可以用作该簇(或者根据变型,用于另外的簇)的替换设备的存储设备的池中。
根据第二变型实施例,修复后的(亦即,用另外的替换存储设备替换的)并且返回到簇的故障设备将被重新整合到簇中。这意味着,簇现在将在一定时间段内(亦即,一直到下一个故障)维持在n+1个存储设备的级别,其中,其先前具有n个存储设备。适用两种情况:在故障设备临时地不存在的期间,在n个节点上没有数据改变,可以简单地将节点添加到已经是簇的部分的n个存储节点。反之,如果数据改变,则故障节点需要与簇中的剩余n个节点同步。该同步(而不需要故障节点的完全修复所需的操作)仅需要生成簇在设备不存在的期间存储的每个新文件的一个块的新的随机线性组合,如借助于图1所描述的那样,并且由故障存储设备存储所生成的新的随机线性组合。当然,如果簇保持在n+1个存储设备的级别,则添加到簇的任何新文件必须散布在簇的n+1个节点上。这只要没有设备故障就继续。在下一个设备故障之后,簇的大小将再次减少到n。
如所描述的那样,根据变型实施例,簇可以包含n+1个存储设备,或n+2或n+10或n+10或n+m(m是任何整数),而不是包含n个存储设备。这不改变本发明的存储数据的方法,也不改变修复方法,只是在存储方法中必须考虑从被拆分成k个数据块的文件将创建不是n个而是n+m个编码数据块,并且散布在簇的n+m个存储设备部分上。使得在簇中具有多于n个存储设备的优点是在簇中具有更多的冗余性,但是产生了更多的数据存储开销。
图4示出可以用作实现根据本发明存储数据项的方法的分布式存储***中的存储设备的设备。设备400可以是起到存储设备的管理设备作用的通用设备。该设备包含数字数据和地址总线414互连的以下组件:
-处理单元411(或作为中央处理单元的CPU);
-非易失性存储器NVM 410;
-易失性存储器VM 420;
-时钟412,提供用于设备400的组件之间的操作的同步以及定时目的的基准时钟信号。
-网络接口413,用于设备400经由连接415互连到在网络中连接的其它设备。
注意,存储器410和420的描述中所使用的词语“寄存器”是指在每个所提到的存储器中的能够存储一些二进制数据的低容量存储器区域以及能够存储可执行程序或整个数据集的高容量存储器区域。
处理单元411可以实现为微处理器、定制芯片、专用(微)控制器等。非易失性存储器NVM 410可以实现为任何形式的非易失性存储器,诸如硬盘、非易失性随机存取存储器、EPROM(可擦除可编程ROM)等。
非易失性存储器NVM 410特别包含:寄存器4201,其承载表示包含根据本发明的确切修复方法的可执行程序的程序;以及寄存器4202,包含持久参数。当加电时,处理单元411载入NVM寄存器4101中所包含的指令,将它们复制到VM寄存器4201,并且执行它们。
VM存储器420特别包含:
-寄存器4201,包含NVM寄存器4101的程序“prog”的复制;
-数据存储4202。
诸如设备400这样的设备适合于实现存储数据项的本发明的方法,所述设备包含:
-用于将数据文件拆分成k个数据块的部件(CPU 411、VM寄存器4202),并且用于从这k个块通过k个数据块的随机线性组合创建n个编码数据块;
-用于在作为同一存储设备簇的部分的所述n个存储设备上散布所述文件的所述n个编码数据块的部件(CPU 411、网络接口413),每个簇包含存储设备的独特的集合,所述文件的所述至少n个编码数据块分布在存储设备簇的所述n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。
根据变型实施例,本发明完全以硬件实现,例如作为专用组件(例如作为ASIC、FPGA或VLSI)(分别指<<专用集成电路>>、<<现场可编程门阵列>>和<<超大规模集成电路>>),或者集成在设备中的独特的电子组件,或者以硬件和软件混合的形式。
图5a以流程图形式示出根据本发明在分布式数据存储***中存储数据文件的方法。
在第一步骤500中,对方法进行初始化。该初始化包含初始化应用所述方法所需的变量和存储器空间。在步骤501中,将要存储的文件拆分成k个数据块,并且从这k个数据块通过k个数据块的随机线性组合创建n个编码数据块。在步骤502中,在作为同一存储设备簇的部分的分布式数据存储***中的存储设备上散布文件的n个数据块。分布式数据存储***中的每个簇包含存储设备的独特的集合。文件的n个编码数据块分布(或者使用先前使用的用语“散布”)在同一存储设备簇上,使得每个存储设备簇存储来自两个或多个文件的编码数据块,并且存储设备簇的存储设备中的每个都存储来自至少两个文件的编码数据,还参见图2及其描述。在步骤503中,方法完成。
可以通过不同方式由这样的***中的设备完成根据本发明的分布式数据存储***中的这些步骤的执行。
例如,由管理设备(亦即,管理分布式数据存储***的管理设备或者管理具体簇的管理设备)执行步骤501。代替特殊设备,这样的管理设备可以是还起到管理设备的作用的诸如存储设备这样的任何设备。
图5b以流程图的形式示出修复在将文件拆分成k个数据块并且根据本发明的存储方法存储数据的分布式数据存储***中的故障存储设备的方法。
在第一步骤600中,对方法进行初始化。初始化包含初始化应用所述方法所需的变量和存储器空间。在步骤601中,将替换存储设备添加到故障存储设备所属的存储设备簇。然后,在步骤602中,替换存储设备从存储设备簇中的所有k+1个剩余存储设备接收随机线性组合。这些组合从来自两个不同文件X和Y的两个编码数据块生成(注意,依照根据本发明的存储数据的方法,每个存储设备存储来自至少两个不同文件的编码数据块)。然后,在步骤603中,对这些接收到的新的随机线性组合在它们之间进行组合,使得获得两个线性组合,一个仅与文件X有关,另一个仅与文件Y有关。在到数第二个(forelast)步骤604中,将这两个组合存储在替换设备中,修复完成(步骤605)。
可以通过检测数据冗余性的期望级别降至预定级别以下来触发修复方法。
图6a是用于管理分布式数据***中的数据文件的存储的设备700,所述分布式数据***包含网络中互连的存储设备。设备700还将称为存储管理设备。存储管理设备包含具有用于连接到网络的网络连接705的网络接口703。存储管理设备700还包含:数据拆分器701,用于将所述数据文件拆分成k个数据块,并且用于从这k个数据块通过所述k个数据块的随机线性组合创建至少n个编码数据块。存储管理设备700还包含:存储分配器702,用于通过在作为同一存储设备簇的部分的至少n个存储设备上散布所述文件的所述至少n个编码数据块来存储所述至少n个编码数据块。每个簇包含存储设备的独特的集合,通过以下方式分配所述文件的所述至少n个编码数据块:使分配所述文件的所述至少n个编码数据块分布在存储设备簇的所述至少n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。数据拆分器701、存储分配器702和网络接口703经由存储管理设备700内部的通信总线互连。
根据具体的实施例,存储管理设备本身是分布式数据***中的存储设备之一。
图6b是用于管理修复根据本发明的存储方法存储数据并且将所存储的文件拆分成k个数据块的分布式数据存储***中的故障存储设备的设备710。设备710还将称为修复管理设备。修复管理设备710包含:网络接口713,用于经由连接715连接分布式数据存储***内的设备;替换器711,用于将替换存储设备添加到故障存储设备所属的存储设备簇;分配器712,用于从所述存储设备簇中的k+1个剩余的存储设备中的任何一个向所述替换存储设备分配k+1个新的随机线性组合,所述k+1个新的随机线性组合根据来自由所述k+1个存储设备中的每个所存储的两个不同文件X和Y的两个编码数据块生成。修复管理设备710还包含:组合器716,用于使用代数运算对所接收的所述新的随机线性组合在它们之间进行组合以获得两个线性组合,其中,获得两个块,一个仅与X有关,另一个仅与Y有关。最后,修复管理设备包含:数据写入器717,用于将所述两个线性组合存储在所述替换存储设备中。网络接口713、分配器712、替换器711、组合器716和数据写入器717经由内部通信总线714互连。
根据具体的实施例,存储修复管理设备本身是分布式数据***中的存储设备之一。
Claims (5)
1.一种在包含网络中互连的存储设备的分布式数据存储***中存储数据文件的方法,其特征在于,所述方法包含对要存储在所述分布式数据存储***中的每个数据文件执行的以下步骤:
将所述数据文件拆分成k个数据块,并且从这k个数据块通过所述k个数据块的随机线性组合创建至少n个编码数据块;以及
通过在作为同一存储设备簇的部分的至少n个存储设备上散布所述文件的所述至少n个编码数据块来存储所述至少n个编码数据块,每个簇包含存储设备的独特的集合,所述文件的所述至少n个编码数据块分布在存储设备簇的所述至少n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。
2.一种修复在分布式数据存储***中的故障存储设备的方法,在所述分布式数据存储***中根据权利要求1来存储数据并且将所存储的文件拆分成k个数据块,其特征在于,所述方法包含以下步骤:
将替换存储设备添加到所述故障存储设备所属的存储设备簇;
由所述替换存储设备从所述存储设备簇中的k+1个剩余的存储设备中的任何一个接收k+1个新的随机线性组合,所述k+1个新的随机线性组合根据来自由所述k+1个存储设备中的每个所存储的两个不同文件X和Y的两个编码数据块生成;
使用代数运算对所接收的所述新的随机线性组合在它们之间进行组合以获得两个线性组合,其中,获得两个块,一个仅与X有关,另一个仅与Y有关;以及
将所述两个线性组合存储在所述替换存储设备中。
3.根据权利要求2所述的方法,其中,所述修复方法包含将返回到所述分布式数据***的故障存储设备重新整合到所述存储设备簇中。
4.一种用于管理在包含网络中互连的存储设备的分布式数据存储***中的数据文件的存储的设备(700),其特征在于,所述设备包含以下部件:
数据拆分器(701),用于将所述数据文件拆分成k个数据块,并且从这k个数据块通过所述k个数据块的随机线性组合创建至少n个编码数据块;以及
存储分配器(702),用于通过在作为同一存储设备簇的部分的所述至少n个存储设备上散布所述文件的所述至少n个编码数据块来存储所述至少n个编码数据块,每个簇包含存储设备的独特的集合,所述文件的所述至少n个编码数据块分布在存储设备簇的所述至少n个存储设备上,使得每个存储设备簇存储来自至少两个不同文件的编码数据块,并且存储设备簇的所述存储设备中的每个都存储来自至少两个不同文件的编码数据块。
5.一种用于管理修复在分布式数据存储***中的故障存储设备的设备(710),在所述分布式数据存储***中根据权利要求1来存储数据并且将所存储的文件拆分成k个数据块,其特征在于,所述设备包含以下部件:
替换器(711),用于将替换存储设备添加到所述故障存储设备所属的存储设备簇;
分配器(712),用于从所述存储设备簇中的k+1个剩余的存储设备中的任何一个向所述替换存储设备分配k+1个新的随机线性组合,所述k+1个新的随机线性组合根据来自由所述k+1个存储设备中的每个所存储的两个不同文件X和Y的两个编码数据块生成;
组合器(716),用于使用代数运算对所接收的所述新的随机线性组合在它们之间进行组合以获得两个线性组合,其中,获得两个块,一个仅与X有关,另一个仅与Y有关;以及
数据写入器(717),用于将所述两个线性组合存储在所述替换存储设备中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12166706.7 | 2012-05-03 | ||
EP12166706.7A EP2660723A1 (en) | 2012-05-03 | 2012-05-03 | Method of data storing and maintenance in a distributed data storage system and corresponding device |
PCT/EP2013/058430 WO2013164227A1 (en) | 2012-05-03 | 2013-04-24 | Method of data storing and maintenance in a distributed data storage system and corresponding device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104364765A true CN104364765A (zh) | 2015-02-18 |
Family
ID=48227226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380026373.XA Pending CN104364765A (zh) | 2012-05-03 | 2013-04-24 | 分布式数据存储***中的数据存储和维护的方法以及对应设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150089283A1 (zh) |
EP (2) | EP2660723A1 (zh) |
JP (1) | JP2015519648A (zh) |
KR (1) | KR20150008440A (zh) |
CN (1) | CN104364765A (zh) |
WO (1) | WO2013164227A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062419A (zh) * | 2018-01-06 | 2018-05-22 | 深圳市网心科技有限公司 | 一种文件存储方法、电子设备、***和介质 |
CN108432170A (zh) * | 2016-01-29 | 2018-08-21 | 麻省理工学院 | 用于多码分布式存储的装置和方法 |
CN111095864A (zh) * | 2017-09-25 | 2020-05-01 | 联邦印刷有限公司 | 数据微粒结构和防篡改存储数据的方法 |
Families Citing this family (154)
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 |
US20150142863A1 (en) * | 2012-06-20 | 2015-05-21 | Singapore University Of Technology And Design | System and methods for distributed data storage |
US9367562B2 (en) | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US9323615B2 (en) * | 2014-01-31 | 2016-04-26 | Google Inc. | Efficient data reads from distributed storage systems |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
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 |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
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 |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA 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 |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
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 |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
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 |
US20220027064A1 (en) * | 2015-04-10 | 2022-01-27 | Pure Storage, Inc. | Two or more logical arrays having zoned drives |
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 |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
WO2017007945A1 (en) * | 2015-07-08 | 2017-01-12 | Cloud Crowding Corp | System and method for secure transmission of signals from a camera |
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 |
KR101621752B1 (ko) | 2015-09-10 | 2016-05-17 | 연세대학교 산학협력단 | 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법 |
US10007585B2 (en) | 2015-09-21 | 2018-06-26 | TigerIT Americas, LLC | Fault-tolerant methods, systems and architectures for data storage, retrieval and distribution |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
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 |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
KR101701131B1 (ko) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템 |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
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 |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
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 |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D 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 |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
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 |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
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 |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
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 |
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 |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
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 |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
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 |
EP3713094A1 (en) * | 2019-03-22 | 2020-09-23 | Zebware AB | Application of the mojette transform to erasure correction for distributed storage |
US11151093B2 (en) * | 2019-03-29 | 2021-10-19 | International Business Machines Corporation | Distributed system control for on-demand data access in complex, heterogenous data storage |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
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 |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
CN110825791A (zh) * | 2019-11-14 | 2020-02-21 | 北京京航计算通讯研究所 | 基于分布式***的数据访问性能优化*** |
CN110895451A (zh) * | 2019-11-14 | 2020-03-20 | 北京京航计算通讯研究所 | 基于分布式***的数据访问性能优化方法 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
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 |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
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 |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
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 |
CN112445656B (zh) * | 2020-12-14 | 2024-02-13 | 北京京航计算通讯研究所 | 分布式存储***中数据的修复方法及装置 |
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 |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
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 |
---|---|---|---|---|
CN1481635A (zh) * | 2000-10-26 | 2004-03-10 | 普里斯梅迪亚网络有限公司 | 网络中大有效负载分布的方法和装置 |
US20070177739A1 (en) * | 2006-01-27 | 2007-08-02 | Nec Laboratories America, Inc. | Method and Apparatus for Distributed Data Replication |
US20080313241A1 (en) * | 2007-06-15 | 2008-12-18 | Microsoft Corporation | Distributed data storage using erasure resilient coding |
US20100199123A1 (en) * | 2009-02-03 | 2010-08-05 | Bittorrent, Inc. | Distributed Storage of Recoverable Data |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009135630A2 (en) * | 2008-05-05 | 2009-11-12 | B-Virtual Nv | Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method |
US8874775B2 (en) * | 2008-10-15 | 2014-10-28 | Aster Risk Management Llc | Balancing a distributed system by replacing overloaded servers |
US20100138717A1 (en) * | 2008-12-02 | 2010-06-03 | Microsoft Corporation | Fork codes for erasure coding of data blocks |
US8458287B2 (en) * | 2009-07-31 | 2013-06-04 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
US8631269B2 (en) * | 2010-05-21 | 2014-01-14 | Indian Institute Of Science | Methods and system for replacing a failed node in a distributed storage network |
EP2793130B1 (en) * | 2010-12-27 | 2015-12-23 | Amplidata NV | Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable |
US8645799B2 (en) * | 2010-12-31 | 2014-02-04 | Microsoft Corporation | Storage codes for data recovery |
US8538029B2 (en) * | 2011-03-24 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Encryption key fragment distribution |
WO2013164228A1 (en) * | 2012-05-04 | 2013-11-07 | Thomson Licensing | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices |
CN104583965B (zh) * | 2012-08-16 | 2017-08-11 | 英派尔科技开发有限公司 | 将编码数据文件存储在多个文件服务器上 |
US9647698B2 (en) * | 2013-02-26 | 2017-05-09 | Peking University Shenzhen Graduate School | Method for encoding MSR (minimum-storage regenerating) codes and repairing storage nodes |
CN105359113B (zh) * | 2013-03-14 | 2018-05-22 | 加州理工学院 | 用于异构***的分布式存储分配 |
-
2012
- 2012-05-03 EP EP12166706.7A patent/EP2660723A1/en not_active Withdrawn
-
2013
- 2013-04-24 CN CN201380026373.XA patent/CN104364765A/zh active Pending
- 2013-04-24 KR KR1020147033940A patent/KR20150008440A/ko not_active Application Discontinuation
- 2013-04-24 JP JP2015509372A patent/JP2015519648A/ja not_active Withdrawn
- 2013-04-24 US US14/398,502 patent/US20150089283A1/en not_active Abandoned
- 2013-04-24 WO PCT/EP2013/058430 patent/WO2013164227A1/en active Application Filing
- 2013-04-24 EP EP13719477.5A patent/EP2845099A1/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1481635A (zh) * | 2000-10-26 | 2004-03-10 | 普里斯梅迪亚网络有限公司 | 网络中大有效负载分布的方法和装置 |
US20070177739A1 (en) * | 2006-01-27 | 2007-08-02 | Nec Laboratories America, Inc. | Method and Apparatus for Distributed Data Replication |
US20080313241A1 (en) * | 2007-06-15 | 2008-12-18 | Microsoft Corporation | Distributed data storage using erasure resilient coding |
US20100199123A1 (en) * | 2009-02-03 | 2010-08-05 | Bittorrent, Inc. | Distributed Storage of Recoverable Data |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108432170A (zh) * | 2016-01-29 | 2018-08-21 | 麻省理工学院 | 用于多码分布式存储的装置和方法 |
CN108432170B (zh) * | 2016-01-29 | 2021-08-17 | 麻省理工学院 | 用于多码分布式存储的装置和方法 |
US11463113B2 (en) | 2016-01-29 | 2022-10-04 | Massachusetts Institute Of Technology | Apparatus and method for multi-code distributed storage |
CN111095864A (zh) * | 2017-09-25 | 2020-05-01 | 联邦印刷有限公司 | 数据微粒结构和防篡改存储数据的方法 |
CN111095864B (zh) * | 2017-09-25 | 2023-06-13 | 联邦印刷有限公司 | 防篡改存储数据的方法、电子数据存储***和电信*** |
CN108062419A (zh) * | 2018-01-06 | 2018-05-22 | 深圳市网心科技有限公司 | 一种文件存储方法、电子设备、***和介质 |
WO2019134211A1 (zh) * | 2018-01-06 | 2019-07-11 | 深圳市网心科技有限公司 | 一种文件存储方法、电子设备、***和介质 |
CN108062419B (zh) * | 2018-01-06 | 2021-04-20 | 深圳市网心科技有限公司 | 一种文件存储方法、电子设备、***和介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2015519648A (ja) | 2015-07-09 |
US20150089283A1 (en) | 2015-03-26 |
EP2845099A1 (en) | 2015-03-11 |
WO2013164227A1 (en) | 2013-11-07 |
EP2660723A1 (en) | 2013-11-06 |
KR20150008440A (ko) | 2015-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104364765A (zh) | 分布式数据存储***中的数据存储和维护的方法以及对应设备 | |
EP2394220B1 (en) | Distributed storage of recoverable data | |
US10379951B2 (en) | Hierarchic storage policy for distributed object storage systems | |
El Rouayheb et al. | Fractional repetition codes for repair in distributed storage systems | |
US20150127974A1 (en) | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices | |
CN102624866B (zh) | 一种存储数据的方法、装置及分布式网络存储*** | |
CN104052576B (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
Shum et al. | Exact minimum-repair-bandwidth cooperative regenerating codes for distributed storage systems | |
US9104603B2 (en) | Method of exact repair of pairs of failed storage nodes in a distributed data storage system and corresponding device | |
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及*** | |
CN103019614B (zh) | 分布式存储***管理装置及方法 | |
CN106776129A (zh) | 一种基于最小存储再生码的多节点数据文件的修复方法 | |
JP2002268952A (ja) | データの分散保存システム、プログラムおよびサーバ | |
CN109739436A (zh) | Raid重构方法、存储介质和装置 | |
CN108279995A (zh) | 一种基于安全再生码的分布式存储***的存储方法 | |
Ivanichkina et al. | Mathematical methods and models of improving data storage reliability including those based on finite field theory | |
CN105007286B (zh) | 解码方法和装置及云存储方法和*** | |
CN115543693B (zh) | 数据恢复方法及相关设备 | |
JP2018536220A (ja) | データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム | |
CN111045853A (zh) | 一种提高纠删码恢复速度的方法、装置及后台服务器 | |
Wei et al. | expanCodes: Tailored LDPC codes for big data storage | |
Chen et al. | The repair problem under connectivity constraints: Explicit MSR codes for the rack-aware model of distributed storage | |
TW201351126A (zh) | 分佈式資料儲存系統內資料檔案之儲存方法和管理裝置以及故障儲存裝置之修理方法和修理管理裝置 | |
Rai | On adaptive (functional MSR code based) distributed storage systems | |
KR20240056400A (ko) | 에러 정정 코드 기반 블록체인 데이터 저장 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150218 |