CN108228081A - 用于数据保护的方法和设备 - Google Patents

用于数据保护的方法和设备 Download PDF

Info

Publication number
CN108228081A
CN108228081A CN201611193307.3A CN201611193307A CN108228081A CN 108228081 A CN108228081 A CN 108228081A CN 201611193307 A CN201611193307 A CN 201611193307A CN 108228081 A CN108228081 A CN 108228081A
Authority
CN
China
Prior art keywords
data
data portion
slot
data slot
machine
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
Application number
CN201611193307.3A
Other languages
English (en)
Other versions
CN108228081B (zh
Inventor
蔡雨
孙骜
吴佳磊
雷璐
王晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201611193307.3A priority Critical patent/CN108228081B/zh
Priority to US15/846,339 priority patent/US10521299B2/en
Publication of CN108228081A publication Critical patent/CN108228081A/zh
Priority to US16/706,269 priority patent/US11068346B2/en
Application granted granted Critical
Publication of CN108228081B publication Critical patent/CN108228081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的实施例涉及用于数据保护的方法和设备。例如,提出了一种计算机实现的方法。根据该计算机实现方法,在生成针对改变后的待保护数据的冗余数据部分的过程中,只需读取改变的待保护数据,而非整个待保护数据。因此可以减少I/O和存储器的消耗。

Description

用于数据保护的方法和设备
技术领域
本公开的实施例总体涉及数据保护,更具体地,涉及用于数据保护的方法和设备。
背景技术
数据冗余是在数据存储技术中用于确保数据正确性和一致性的技术。例如,消除编码(Erasure Code,EC)常常被用来实现高效和持久的存储。近几年,云存储技术在不断地发展。例如,弹性云存储(ECS)利用软件构架和发展中的最新技术来达到出色的可扩展性、可用性以及性能。随着云存储的发展,越来越多的技术被应用于云存储来实现扩展性,可用性和高性能。EC可被广泛地应用于ECS场景中。然而,当存储的数据部分改变时,重写消除编码需要消耗资源。其他冗余码同样面临着类似问题。
发明内容
本公开的实施例提供了数据保护存储的方法和设备。
根据本公开的第一方面,提供了一种计算机可实现的方法。该方法包括:响应于确定第一数据部分中的第一数据片段发生改变,来获取改变后的第一数据片段和第二数据部分,第一数据部分包含待保护的原数据,第二数据部分包含基于所述原数据而生成的冗余数据;生成第二数据片段,该第二数据片段中的位指示第一数据片段与改变后的第一数据片段中的相应位是否相同;通过扩展第二数据片段来获得第三数据部分,第三数据部分与所述第一数据部分具有相同的长度;生成针对所述第三数据部分的冗余数据作为第四数据部分;生成第五数据部分,该第五数据部分中的位指示第二数据部分与所述第四数据部分中的相应位是否相同;利用生成的第五数据部分来更新所述第二数据部分。
在某些实施例中,生成该第二数据片段包括:将第一数据片段与改变后的第一数据片段应用异或操作。
在某些实施例中,扩展第二数据片段来获得第三数据部分包括:使用利用零位数据片段来扩展该第二数据片段。
在某些实施例中,生成第五部分包括:将第二部分与第四部分应用异或操作。
在某些实施例中,第二数据部分是通过对第一数据部分执行消除编码操作而生成的。
根据本公开的第二方面,提供了一种电子设备。该设备包括:至少一个处理单元;以及至少一个存储器,其耦合至该至少一个处理单元并且存储有机器可执行指令,当该指令由该至少一个处理单元执行时,使得该至少一个处理单元被配置为:响应于确定第一数据部分中的第一数据片段发生改变,来获取改变后的第一数据片段和第二数据部分,第一数据部分包含待保护的原数据,第二数据部分包含基于所述原数据而生成的冗余数据;生成第二数据片段,该第二数据片段中的位指示第一数据片段与改变后的第一数据片段中的相应位是否相同;通过扩展第二数据片段来获得第三数据部分,第三数据部分与所述第一数据部分具有相同的长度;生成针对所述第三数据部分的冗余数据作为第四数据部分;生成第五数据部分,该第五数据部分中的位指示第二数据部分与所述第四数据部分中的相应位是否相同;利用生成的第五数据部分来更新所述第二数据部分。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据先前技术的数据保护存储的示意图;
图2示出了根据本公开的实施例的数据保护存储的示意图;
图3示出了根据本公开实施例的数据保护存储的过程或方法的流程图;
图4示出了根据本公开的实施例的用于数据保护存储的设备的示意性框图;以及
图5示出了根据本公开的实施例的用于数据保护的装置的示意性框图
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
在基于数据冗余的数据保护方案中,经过数据保护操作后的数据通常具有两部分:原数据部分和冗余数据部分。冗余数据部分通常是基于原数据生成的。因此,当原数据中的数据片段发生了改变,需要更新冗余数据部分,使得更新后的数据及其冗余数据部分仍然能够提供数据保护的功能。
图1示出了基于冗余数据的保护存储的机制的示意图。数据100包含两个部分:待保护的原数据101和根据待保护生成的冗余数据102。当原数据101中的数据片段1011发生了改变,包括改变的数据片段1011在内的原数据101中所有的数据片段被读取(110)。继而,对所读取的所有数据片段应用冗余保护操作(120),从而获得了新的冗余数据部分103以替换原来的冗余数据部分102。
在上述传统过程中,I/O消耗相当大。而且,当重写EC时,需要存储所有的数据片段和计算的冗余数据部分,因此存储器消耗也很大。例如,假设原数据部分101具有k个数据片段,原冗余数据部分具有m个数据片段。当原数据部分101中的一个数据片段1011发生改变时,需要读出k-1个未改变的数据片段。对所读取的k-1个原数据片段应用冗余保护操作(120),生成了新的冗余数据部分103,新的冗余数据部分103具有m个数据片段。对新的冗余数据部分103应用更新操作(130),从而更新了原冗余数据部分102。该更新操作(130)需要写入新的冗余数据部分103的m个数据片段。以上过程需要k-1次读取和m次写入,所以I/O的总消耗为k-1+m。
另外一种传统方法是对原数据片段和改变后的新数据片段进行异或操作来得到更新量,然后与EC矩阵对应列相乘,继而将相乘的结果依次与原冗余数据部分进行异或操作来得到新的冗余数据部分。该方法需要改变EC库中的逻辑,这会使得EC库更加的复杂。除此以外,如果EC库是来自第三方的,即使库的源是公开的,如果不回馈自己的改变或者改变不被库的维持者接受,这样的方法仍会带来维持的问题。更不必说用来进行EC操作的源库是关闭的。
为了至少部分地解决上述以及其他潜在的问题和缺陷,本公开的实施例提供了一种数据保护存储的方法。图2示出了根据本公开的实施例的数据保护存储的示意图。数据200包括第一数据部分201和第二数据部分202。第一数据部分201包含待保护的原数据。第二数据部分202包含基于原数据而生成的冗余数据。在某些实施例中,第二数据部分202可以是通过对第一数据部分201应用EC操作而生成的。
假设第一数据部分201中的数据片段2011发生了改变。响应于数据片段2011发生改变,改变后的数据片段2011’和第二数据部分202被读取出来,而不是读取整个第一数据部分201。
第二数据片段2012基于所读取的改变后的数据片段2011’和第二数据部分202而被生成(210)。第二数据片段2012中的位指示第一数据片段2011和改变后的第一数据片段2011’中相应位是否相同。在某些实施例中,操作210可以是异或操作,将第一数据片段2011和改变后的第一数据片段2011’应用异或操作生成(210)第二数据片段2012。本领域的一般技术人员将理解生成第二数据片段2012的方式不局限于对第一数据片段2011和改变后的第一数据片段2011’应用异或操作。
第二数据片段2012继而被扩展(220),从而获得第三数据部分203,使得第三数据部分203与第一数据部分201具有相同的长度。在图2中,数据片段2013是扩展的数据片段。在某些实施例中,数据片段2013可以是全零位数据片段。当然,填充其他位也是可行的。
通过对第三数据部分203应用保护操作(230),第四数据部分204被生成。可以理解,第四数据部分204是第三数据部分203的冗余数据。在某些实施例中,在230处可以执行EC操作。当然,其他任何适当的用于生成冗余数据的技术也可以在此使用,本公开的范围在此不受限制。
第五数据部分205基于第二数据部分202和第四数据部分204而被生成(240)。第五数据部分205中的位指示第二数据部分202和第四数据部分204中的相应为是否相同。在某些实施例中,可以在240对第二数据部分202和第四数据部分204应用异或操作。第五数据部分205继而被用来更新(250)第二数据部分202。例如,第二数据部分202被第五数据部分205所替换。
图3示出了根据本公开实施例的数据保护存储的过程或方法300的流程图。在某些实施例中,方法300可以在图4示出的设备中实现。现参照图2,描述图3示出的根据本公开实施例的数据保护存储的过程或300。
在302,响应于确定第一数据部分中201的第一数据片段2011发生改变,改变后的第一数据片段2011’和第二数据部分202被读取出来,而非读取整个第一数据部分201。第一数据部分201包括待保护的原数据,第二数据部分202包含基于原数据而生成的冗余数据。在某些实施例中,第二数据部分202是通过对第一数据部分201执行EC操作而生成的。
在304,第二数据片段2012基于所读取的改变后的数据片段2011’和第二数据部分202而被生成。第二数据片段2012中的位指示第一数据片段2011和改变后的第一数据片段2011’中的相应位是否相同。在某些实施例中,可以通过将第一数据片段2011与改变后的第一数据片段2011’应用异或操作来生成第二数据片段2012。本领域的一般技术人员将理解生成第二数据片段2012的方式不局限于对第一数据片段2011和改变后的第一数据片段2011’应用异或操作。
在306,第二数据片段2012继而被扩展从而获得第三数据部分203,使得第三数据部分203和第一数据部分201具有相同的长度。在某些实施例中,可以利用零位来扩展第二数据片段2012。当然,填充其他位也是可行的。
在308,通过对第三数据部分203应用保护操作,第四数据部分204被生成。可以理解,第四数据部分204是第三数据部分203的冗余数据。在某些实施例中,第四数据部分204可以是通过对第三数据部分203执行EC操作而生成的。当然,其他任何适当的用于生成冗余数据的技术也可以在此使用,本公开的范围在此不受限制。
在310,第五数据部分205基于第二数据部分202和第四数据部分204而被生成。第五数据部分205中的位指示第二数据部分202和第四数据部分204中相应位是否相同。在某些实施例中,可以通过将第二数据部分202与第四数据部分204应用异或操作来生成第五数据部分205。
在312,第五数据部分205继而被用来更新第二数据部分202。例如,第二数据部分202被第五数据部分205所替换。
如上所示图4示出了适合于用来实现本公开实施例的电子设备400的示意性框图。如图所示,设备400包括中央处理单元(CPU)410,其可以根据存储在只读存储器(ROM)420中的计算机程序指令或者从存储单元480加载到随机访问存储器(RAM)430中的计算机程序指令,来执行各种适当的动作和处理。在RAM 430中,还可存储设备400操作所需的各种程序和数据。CPU 410、ROM 420以及RAM 430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
设备400中的多个部件连接至I/O接口450,包括:输入单元460,例如键盘、鼠标等;输出单元470,例如各种类型的显示器、扬声器等;存储单元480,例如磁盘、光盘等;以及通信单元490,例如网卡、调制解调器、无线通信收发机等。通信单元490允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程300,可由处理单元410执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元480。在一些实施例中,计算机程序的部分或者全部可以经由ROM 420和/或通信单元490而被载入和/或安装到设备400上。当计算机程序被加载到RAM 430并由CPU410执行时,可以执行上文描述的方法300的一个或多个步骤。备选地,在其他实施例中,CPU 401也可以以其他任何适当的方式被配置以实现上述过程。
图5示出了根据本公开的实施例的用于数据保护的装置的示意性框图。如图所示,装置500包括获取模块510、处理模块520和更新模块530。
获取模块510被配置为响应于确定第一数据部分中的第一数据片段发生改变,来获取改变后的第一数据片段和第二数据部分,第一数据部分包含待保护的原数据,第二数据部分包含基于原数据而生成的冗余数据。
处理模块520被配置为生成第二数据片段,第二数据片段中的位指示所述第一数据片段与所述改变后的第一数据片段中的相应位是否相同;通过扩展第二数据片段来获得第三数据部分,第三数据部分与第一数据部分具有相同的长度;生成针对第三数据部分的冗余数据作为第四数据部分;生成第五数据部分,第五数据部分中的位指示所述第二数据部分与第四数据部分中的相应位是否相同。在某些实施例中,处理模块520还被配置为将第一数据片段与改变后的第一数据片段应用异或操作。在某些实施例中,处理模块520还被配置为利用零位来扩展第二数据片段。在某些实施例中,处理模块520还被配置为将第二数据部分与第四数据部分应用异或操作。
更新模块530被配置为利用所述生成的第五数据部分来更新第二数据部分。
装置500中所包括的模块可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一个实施例中,一个或多个模块可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置500中的部分或者全部模块可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。
本公开的实施例可以应用在不同的环境中。作为非限制性的示例,本公开的实施例可以应用于磁盘容量管理,其几乎不依赖于文件系统。在该磁盘容量管理中,所有的磁盘被划分为被称为“数据块”的一组固定长度的块。所有的用户数据被存储在这些数据块中,并且这些数据块是共享的。一个数据块可以包括多个用户对象的片段。该数据块经过了EC操作具有存储头并且可以提供更高的数据持续性。当一些对象被删除,数据块的部分变为了垃圾并且相应的空间应当被返回用于再利用,并且在释放了垃圾之后,需要重新操作EC来适当地保护数据。使用传统的方法来进行操作的过程会非常缓慢,这是因为需求I/O和存储器。其导致了释放垃圾的延迟,以及在用户已经删除对象之后,磁盘空间不能够在短时间内再利用。应用根据本发明的实施例,可以很大程度上加速垃圾的释放。作为另一个非限制性示例,本公开的实施例可以应用于在远程区域内存储数据的次要备份。为了节约在区域之间运送的WAN通信量数据,运送的数据需要与存在的数据块进行异或操作。应用根据本发明的实施例,可以节约消耗。
与现有技术相比,本公开的实施例具有各种优点。例如,本公开的实施例不需要对EC库进行复杂的改变并且不需要支付维持费用。本公开的实施例还可以节约磁盘I/O和存储器使用。
通过以上描述和相关附图中所给出的教导,这里所给出的本公开的许多修改形式和其它实施方式将被本公开相关领域的技术人员所意识到。因此,所要理解的是,本公开的实施方式并不局限于所公开的具体实施方式,并且修改形式和其它实施方式意在包括在本公开的范围之内。此外,虽然以上描述和相关附图在部件和/或功能的某些示例组合形式的背景下对示例实施方式进行了描述,但是应当意识到的是,可以由备选实施方式提供部件和/或功能的不同组合形式而并不背离本公开的范围。就这点而言,例如,与以上明确描述的有所不同的部件和/或功能的其它组合形式也被预期处于本公开的范围之内。虽然这里采用了具体术语,但是它们仅以一般且描述性的含义所使用而并非意在进行限制。

Claims (15)

1.一种计算机实现的方法,包括:
响应于确定第一数据部分中的第一数据片段发生改变,来获取改变后的第一数据片段和第二数据部分,所述第一数据部分包含待保护的原数据,所述第二数据部分包含基于所述原数据而生成的冗余数据;
生成第二数据片段,所述第二数据片段中的位指示所述第一数据片段与所述改变后的第一数据片段中的相应位是否相同;
通过扩展所述第二数据片段来获得第三数据部分,所述第三数据部分与所述第一数据部分具有相同的长度;
生成针对所述第三数据部分的冗余数据作为第四数据部分;
生成第五数据部分,所述第五数据部分中的位指示所述第二数据部分与所述第四数据部分中的相应位是否相同;
利用所述生成的第五数据部分来更新所述第二数据部分。
2.根据权利要求1所述的方法,其中所述生成第二数据片段包括:
将所述第一数据片段与所述改变后的第一数据片段应用异或操作。
3.根据权利要求1所述的方法,其中扩展所述第二数据片段来获得第三数据部分包括:
利用零位来扩展所述第二数据片段。
4.根据权利要求1所述的方法,其中所述生成第五部分包括:
将所述第二数据部分与所述第四数据部分应用异或操作。
5.根据权利要求1所述的方法,其中所述第二数据部分是通过对所述第一数据部分执行消除编码操作而生成的。
6.一种电子设备,包括:
至少一个处理单元;以及
至少一个存储器,其耦合至所述至少一个处理单元并且存储有机器可执行指令,当所述指令由所述至少一个处理单元执行时,使得所述电子设备执行动作,所述动作包括:
响应于确定第一数据部分中的第一数据片段发生改变,来获取改变后的第一数据片段和第二数据部分,所述第一数据部分包含待保护的原数据,所述第二数据部分包含基于所述原数据而生成的冗余数据;
生成第二数据片段,所述第二数据片段中的位指示所述第一数据片段与所述改变后的第一数据片段中的相应位是否相同;
通过扩展所述第二数据片段来获得第三数据部分,所述第三数据部分与所述第一数据部分具有相同的长度;
生成针对所述第三数据部分的冗余数据作为第四数据部分;
生成第五数据部分,所述第五数据部分中的位指示所述第二数据部分与所述第四数据部分中的相应位是否相同;
利用所述生成的第五数据部分来更新所述第二数据部分。
7.根据权利要求6所述的设备,其中生成第二数据片段包括:
将所述第一数据片段与所述改变后的第一数据片段应用异或操作。
8.根据权利要求6所述的设备,其中扩展所述第二数据片段来获得第三数据部分包括:
利用零位来扩展所述第二数据片段。
9.根据权利要求1所述的设备,其中生成第五部分包括:
将所述第二数据部分与所述第四数据部分应用异或操作。
10.根据权利要求1所述的设备,其中所述第二数据部分是通过对所述第一数据部分执行消除编码操作而生成的。
11.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1所述的方法的步骤。
12.根据权利要求11所述的计算机程序产品,所述机器可执行指令在被执行时使机器执行根据权利要求2所述的方法的步骤。
13.根据权利要求11所述的计算机程序产品,所述机器可执行指令在被执行时使机器执行根据权利要求3所述的方法的步骤。
14.根据权利要求11所述的计算机程序产品,所述机器可执行指令在被执行时使机器执行根据权利要求4所述的方法的步骤。
15.根据权利要求11所述的计算机程序产品,所述机器可执行指令在被执行时使机器执行根据权利要求5所述的方法的步骤。
CN201611193307.3A 2016-12-21 2016-12-21 用于数据保护的方法和设备 Active CN108228081B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201611193307.3A CN108228081B (zh) 2016-12-21 2016-12-21 用于数据保护的方法和设备
US15/846,339 US10521299B2 (en) 2016-12-21 2017-12-19 Method and apparatus for data protection
US16/706,269 US11068346B2 (en) 2016-12-21 2019-12-06 Method and apparatus for data protection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611193307.3A CN108228081B (zh) 2016-12-21 2016-12-21 用于数据保护的方法和设备

Publications (2)

Publication Number Publication Date
CN108228081A true CN108228081A (zh) 2018-06-29
CN108228081B CN108228081B (zh) 2021-03-02

Family

ID=62561670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611193307.3A Active CN108228081B (zh) 2016-12-21 2016-12-21 用于数据保护的方法和设备

Country Status (2)

Country Link
US (2) US10521299B2 (zh)
CN (1) CN108228081B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220071618A (ko) * 2020-11-24 2022-05-31 삼성전자주식회사 컨벌루션 연산을 위한 데이터 공유 방법, 페처 및 컨벌루션 연산 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526886A (zh) * 2009-04-27 2009-09-09 杭州华三通信技术有限公司 一种独立磁盘冗余阵列的数据操作方法及装置
CN101840366A (zh) * 2010-05-13 2010-09-22 上海交通大学 环链式n+1位奇偶校验码的存储方法
CN102681793A (zh) * 2012-04-16 2012-09-19 华中科技大学 一种基于纠删码集群存储系统的局部式数据更新方法
CN103645997A (zh) * 2013-12-26 2014-03-19 深圳市迪菲特科技股份有限公司 一种数据保护的方法与系统
US20150370664A1 (en) * 2014-06-20 2015-12-24 Fujitsu Limited Redundant system and redundancy method
CN105335150A (zh) * 2014-08-13 2016-02-17 苏宁云商集团股份有限公司 纠删码数据的快速编解码方法和系统
US20160117222A1 (en) * 2014-10-27 2016-04-28 International Business Machines Corporation Time multiplexed redundant array of independent tapes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935268A (en) * 1997-06-03 1999-08-10 Bay Networks, Inc. Method and apparatus for generating an error detection code for a modified data packet derived from an original data packet
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US7392428B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
US20080172430A1 (en) * 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
CN101572125B (zh) * 2008-04-30 2013-02-27 扬智科技股份有限公司 错误更正电路及其方法
US9727414B2 (en) * 2010-12-01 2017-08-08 Seagate Technology Llc Fractional redundant array of silicon independent elements
US8904229B1 (en) 2012-06-29 2014-12-02 Emc Corporation Online recovery of a file system experiencing failure of redundant logical storage storing a single point of failure
WO2014003599A1 (en) 2012-06-29 2014-01-03 Ems Corparation Redundant disc encoding via erasure decoding
US10248623B1 (en) * 2015-03-30 2019-04-02 EMC IP Holding Company LLC Data deduplication techniques
GB201807877D0 (en) * 2018-05-15 2018-06-27 Palantir Technologies Inc Data storage system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526886A (zh) * 2009-04-27 2009-09-09 杭州华三通信技术有限公司 一种独立磁盘冗余阵列的数据操作方法及装置
CN101840366A (zh) * 2010-05-13 2010-09-22 上海交通大学 环链式n+1位奇偶校验码的存储方法
CN102681793A (zh) * 2012-04-16 2012-09-19 华中科技大学 一种基于纠删码集群存储系统的局部式数据更新方法
CN103645997A (zh) * 2013-12-26 2014-03-19 深圳市迪菲特科技股份有限公司 一种数据保护的方法与系统
US20150370664A1 (en) * 2014-06-20 2015-12-24 Fujitsu Limited Redundant system and redundancy method
CN105335150A (zh) * 2014-08-13 2016-02-17 苏宁云商集团股份有限公司 纠删码数据的快速编解码方法和系统
US20160117222A1 (en) * 2014-10-27 2016-04-28 International Business Machines Corporation Time multiplexed redundant array of independent tapes

Also Published As

Publication number Publication date
US20180173590A1 (en) 2018-06-21
CN108228081B (zh) 2021-03-02
US20200110664A1 (en) 2020-04-09
US11068346B2 (en) 2021-07-20
US10521299B2 (en) 2019-12-31

Similar Documents

Publication Publication Date Title
US10002039B2 (en) Predicting the reliability of large scale storage systems
US10175977B2 (en) User profile based code review
US9406023B2 (en) System recommendations based on incident analysis
KR102010312B1 (ko) 디펜던시들을 정리하고 리빌딩하는 시스템 및 방법
US20160371088A1 (en) Split-level history buffer in a computer processing unit
US10031781B2 (en) Estimating job start times on workload management systems
CN110389786A (zh) 内核管理方法、设备和计算机程序产品
CN103677806A (zh) 用于系统管理的方法和系统
CN105446952A (zh) 用于处理语义片段的方法和系统
US9250936B2 (en) Enhanced array class
CN109544392B (zh) 用于保险订单处理的方法、系统、设备以及介质
US10540737B2 (en) Processing unit performance projection using dynamic hardware behaviors
CN108733307B (zh) 存储管理方法、设备以及计算机可读介质
US20140156708A1 (en) Method and system for implementing an array using different data structures
US11836665B2 (en) Explainable process prediction
CN108228081A (zh) 用于数据保护的方法和设备
CN114995770B (zh) 一种数据处理方法、装置、设备、系统及可读存储介质
US20190197652A1 (en) On-the-fly scheduling of execution of dynamic hardware behaviors
US9519746B1 (en) Addressing early mode slack fails by book decomposition
JP2023507688A (ja) プロセスのエッジテーブル表現
US10693494B2 (en) Reducing a size of multiple data sets
US10838928B2 (en) Maintaining a master schema
US11150971B1 (en) Pattern recognition for proactive treatment of non-contiguous growing defects
CN112734312B (zh) 一种输出参考数据的方法及计算机设备
US20220171380A1 (en) Automated device maintenance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant