一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于消除重复数据删除中的碎片整理的设备和方法与流程

2021-11-09 18:00:00 来源:中国专利 TAG:


1.本公开涉及一种用于存储数据,特别是用于存储重复数据的设备和方法。为了解决在重复数据删除过程中引起的碎片化问题,本公开实施例提供了一种简化碎片整理过程的解决方案。为此,本公开提出了一种允许消除备份存储器中的碎片整理的设备和方法。


背景技术:

2.重复数据删除是消除存储中重复数据的过程。由于重复数据删除存储器中数据的保存方式的性质,重复数据删除经常会出现碎片化问题。这是软件层面的碎片化,在较低层硬件顶部完成,该硬件也进行了部分碎片整理。碎片化也是引起进一步读取扩增的原因。
3.在重复数据删除中,用户数据被存储为指向实际数据的指针。实际数据被存储在某种容器中。当用户删除数据时,容器的块会过时。因此,当执行重复数据删除时,存储库中经常有需要收集的过时数据块。这通常需要脱机/后台过程处理大量工作,还包括大量计算,有时还包括复杂过程,以允许防止出错的方式更新引用计数。
4.传统上,为兑换空间,可以将数据复制到另一个位置,试图保持引用的局部性,也可以将空间重用于新数据,以防止复制的复杂性。以常规方式处理过时数据,可能要等到容器或区域中的一定数量的数据过时,然后将剩余数据复制到新的容器中,并将所有引用从旧位置更新到新位置。该过程需要锁定容器的元数据、容器本身、可能还包括其他结构。很难并行执行碎片整理过程,因此容易出错,并且也可能影响备份和还原速度。


技术实现要素:

5.鉴于上述问题,本公开实施例的目的是分别提供一种设备和方法,用于消除重复数据删除备份系统中的碎片整理的需求。特别地,一个目的是避免在删除过时数据时锁定和/或更新元数据引用。另一个目的是在应用程序层上兑换空间。此外,还可以期望能够同时执行正常的备份和还原操作。
6.通过所附独立权利要求所述的本公开实施例来实现。从属权利要求中进一步定义了本公开实施例的有利实现。
7.本公开的第一方面提供了一种用于存储重复数据块的设备,所述设备被配置为:存储一个或多个压缩容器,其中,每个容器包括多个片段,其中,一个或多个重复数据块存储在所述一个或多个容器的多个片段中;并且通过解压缩片段,用所述片段中的零替换第一重复数据块,重新压缩所述片段,以删除存储所述片段中的第一重复数据块。
8.第一个方面的设备具有减少或消除重复数据删除备份系统中对碎片整理的需求的优点。这是用零替换和片段压缩的优点。
9.在第一方面的实施方式中,该设备被进一步配置为保持一个或多个存储的重复数据块的元数据,其中,每个存储的重复数据块的元数据包括对存储重复数据块的位置的引用。
10.元数据可用于将存储的数据块映射到其物理地址。
11.在第一方面的实施方式中,每个容器还包括用于每个片段的片段元数据,该片段元数据包括数据片段在容器中的位置。
12.已知片段元数据,就可以找到存储的数据片段。
13.在第一方面的实施方式中,该设备被进一步配置为:获得一个或多个重复数据块;将一个或多个重复数据块填充到一个或多个容器的多个片段中;并且压缩一个或多个容器的多个片段。
14.基于重复数据删除的备份系统可以将备份流分为可变大小的数据块。可以将需要写入的数据块聚合到容器中,特别是聚合到容器的片段中。根据本发明实施例,每个片段在容器中被压缩。
15.在第一方面的实施方式中,该设备被进一步配置为根据第一重复数据块的元数据,检索存储的第一重复数据块。
16.例如,在数据恢复期间,将基于元数据来定位和读取数据块。
17.在第一方面的实施方式中,每个重复数据块与指示重复数据块正在被更新的频率的参考值相关联。
18.可选地,该参考值可以用于区分存储器中的热数据和冷数据。
19.在第一方面的实施方式中,该设备被进一步配置为在不同的容器中存储参考值高于预设值的重复数据块和参考值低于预设值的重复数据块。
20.优选地,可以期望将冷数据和热数据分别保留在不同的容器中。可以基于特定的实施方式或要求来配置预设值。
21.在第一方面的实施方式中,该设备包括磁盘,以及一个或多个容器被存储在磁盘上。
22.本公开的第二方面提供了一种用于存储重复数据块的方法,包括:存储一个或多个压缩容器,其中,每个容器包括多个片段,其中,一个或多个重复数据块存储在一个或多个容器的多个片段中;并且通过解压缩片段,用片段中的零替换第一个重复数据块,重新压缩片段,以删除存储在片段中的第一个重复数据块。
23.在第二方面的实施方式中,该方法还包括保持一个或多个存储的重复数据块的元数据,其中,每个存储的重复数据块的元数据包括对存储重复数据块的位置的引用。
24.在第二方面的实施方式中,每个容器还包括用于每个片段的片段元数据,该片段元数据包括数据片段在容器中的位置。
25.在第二方面的实施方式中,该方法还包括:获得一个或多个重复数据块;将一个或多个重复数据块填充到一个或多个容器的多个片段中;并且压缩一个或多个容器的多个片段。
26.在第二方面的实施方式中,该方法还包括根据第一重复数据块的元数据,检索存储的第一重复数据块。
27.在第二方面的实施方式中,每个重复数据块与指示重复数据块正在被更新的频率的参考值相关联。
28.在第二方面的实施方式中,该方法包括在不同的容器中存储参考值高于预设值的重复数据块和参考值低于预设值的重复数据块。
29.第二方面的方法及其实施方式提供与第一方面及其相应实施方式中的设备相同
的上述优点和效果。
30.本公开的第三方面提供一种包括程序代码的计算机程序,用于执行在处理器上实现时根据第二方面或其任何实施方式所述的方法。
31.本公开的第四方面提供了一种存储可执行程序代码的非暂时性存储介质,所述可执行程序代码在由处理器执行时致使根据第二方面的方法或其任何实施方式得以执行。
32.需要注意,本技术中描述的所有设备、元件、单元和装置都可以在软件或硬件元件或其任何类型的组合中实现。由本技术中描述的各种实体执行的所有步骤以及由各种实体执行的功能旨在表示相应实体适用于或用于执行相应的步骤和功能。即使在以下特定实施例的描述中,由外部实体执行的特定功能或步骤未反映在执行该特定步骤或功能的实体的特定详细元素的描述中,技术人员应该清楚可以在相应的软件或硬件元件或其任何种类的组合中实现这些方法和功能。
附图说明
33.结合附图,将在下面对具体实施例的描述中解释上述方面和实施方式,其中
34.图1示出了根据本发明实施例的设备。
35.图2示出了典型的重复数据删除结构。
36.图3示出了将数据复制到新容器时的数据结构示例。
37.图4示出了重用被兑换的空间时的数据结构示例。
38.图5示出了根据本发明实施例的文件结构。
39.图6示出了根据本发明实施例的方法。
具体实施方式
40.参照附图,描述了用于在通信系统中用于有效的分组传输的方法、设备和程序产品的说明性实施例。尽管该描述提供了可能的实施方式的详细示例,但应注意,这些细节仅是示例性的,绝不限制本技术的范围。
41.另外,一个实施例/示例可以指示其他实施例/示例。例如,在一个实施例/示例中提到的包括但不限于术语、要素、过程、说明和/或技术优势的任何描述适用于其他实施例/示例。
42.图1示出了根据本发明实施例的设备100。设备100适于存储重复数据块。设备100被配置为存储一个或多个压缩容器101。特别地,每个容器101包括多个片段,其中,一个或多个重复数据块存储在一个或多个容器的多个片段101中。此外,设备100被配置为特别地通过解压缩片段,用片段中的零替换第一个重复数据块,重新压缩片段,以删除存储在片段中的第一个重复数据块。
43.设备100可以包括被配置为执行、进行或发起本文描述的设备100的各种操作的处理电路(未示出)。处理电路可以包括硬件和软件。硬件可以包括模拟电路或数字电路、或模拟和数字电路。数字电路可以包括专用集成电路(asic)、现场可编程阵列(fpga)、数字信号处理器(dsp)或多功能处理器等组件。设备100可以进一步包括存储器电路,该存储器电路存储一个或多个可以由处理器或由处理电路执行,特别是在软件的控制下执行的指令。例如,存储器电路可以包括存储可执行软件代码的非暂时性存储介质,该可执行软件代码在
由处理器或处理电路执行时,致使设备100的各种操作得以执行。在一个实施例中,处理电路包括一个或多个处理器以及连接到一个或多个处理器的非暂时性存储器。非暂时性存储器可以携带可执行程序代码,当由一个或多个处理器执行时,该可执行程序代码致使设备100执行、进行或发起本文描述的操作或方法。
44.值得注意的是,重复数据删除过程存储某种形式的引用,例如指向已存储重复数据的位置的指针,作为图2所示的典型的重复数据删除结构的示例。对重复数据块存储位置的引用通常被称为元数据。
45.特别地,根据本发明实施例,设备100被进一步配置为保持一个或多个存储的重复数据块的元数据,其中,每个存储的重复数据块的元数据包括对存储重复数据块的位置的引用。
46.基于重复数据删除的备份系统将备份分为可变大小的数据块或数据片段。当用户删除数据时,容器的块会过时。当以常规解决方案处理过时数据时,剩余数据将被复制或移动到新的容器中,如图3的示例所示。这样,需要将所有来自旧位置的引用更新到新位置。更改数据位置时,需要锁定引用数据位置的所有元数据,直到事务完成。否则,可以保留指向已移动数据的指针。这也会影响备份和还原速度。
47.例如,如果容器最初具有来自备份x的块:x1、x2、x3、x4和x5,然后删除x2、x3和x5。随后,如果将来自另一个备份y的一些数据写入该容器,则数据可能已包含在容器中:x1 y1 y2 x4 y3,并删除其中一部分。如果容器被重新使用,最终可能会出现如图4所示的情况。
48.如图4所示的例子,说明了在系统中长时间重用容器的效果。重用容器中的数据来自各种不同且可能不相关的备份,每个备份用户数据也散布在大量容器中。
49.值得注意的是,当在这种情况下执行数据备份时,吞吐量性能和重复数据删除性能都会降低。执行数据恢复时,需要从不同位置读取随机块,这是一个已知的问题和瓶颈,降低了重复数据删除数据的恢复速度。
50.本公开实施例设计一个备份,并删除重复数据删除系统的过程,以兑换应用级别上的空间,这消除了对碎片整理的需求。值得注意的是,每个容器被分为多个部分。根据本发明实施例,每个容器还可以包括用于每个片段的片段元数据,该片段元数据包括数据片段在容器中的位置。
51.可以用标识符标识每个片段。片段元数据可用于将片段标识符映射到其物理地址。
52.在备份期间,需要写入的数据块被聚合到容器中,以保留备份流的空间局部性。可选地,根据本发明实施例,设备100可以进一步被配置为获得一个或多个重复数据块。因此,设备100可以被配置为将一个或多个重复数据块填充到一个或多个容器101的多个片段中。此外,设备100可以被配置为压缩一个或多个容器101的多个片段。
53.在还原期间,根据数据重建备份流。可选地,根据本发明实施例,设备100可以被进一步配置为根据第一重复数据块的元数据,检索存储的第一重复数据块。
54.可选地,根据本发明实施例,存储在设备100中的容器可以是大容器。例如,容器的大小可以大于50mb。在设备100中压缩每个片段。片段的报头可以包括片段在文件(或对象)中的位置。通过这种方案,可以通过读取包含被兑换的块的片段,解压缩片段,将被兑换的部分替换为零,将旧片段压缩并替换为重新压缩的片段,以实现从物理存储中删除数据。特
别地,用零替换被兑换的部分意味着用零替换需要删除的数据块的每个比特。作为图5所示的根据本公开实施例的文件结构,在被删除的数据被零替换并进一步被压缩之后,保存压缩容器101中的空间。
55.这样,由于片段的位置保持不变,因此无需更新元数据引用。此外,还保留了引用的局部性。由于属于同一备份的区域保持在一起,因此读取放大得到了改善。读取放大是指每个查询的磁盘读取数,是请求的数据量与实际需要读取的数据量之间的比率。值得注意的是,以常规方式来重用被兑换的空间,当容器被重用时,将丢失引用的局部性。根据本发明提供的实施例,不重用容器,因此可以保持引用的局部性。
56.由于保留了数据(尤其是冷数据)的局部性,因此这也有助于重复数据删除。值得注意的是,冷数据是指经由多个(例如,数百个)备份保存的数据,热数据是指经常在备份之间替换的数据。该过程还隐藏地将冷数据和热数据分别保存在不同的容器中。
57.特别地,根据本发明实施例,其中,每个重复数据块与指示重复数据块正在被更新的频率的参考值相关联。
58.优选地,根据本发明实施例,设备100可以被进一步配置为在不同的容器中存储参考值高于预设值的重复数据块和参考值低于预设值的重复数据块。
59.可以看出,该过程不需要锁定,也不需要坏路径处理。回收数据的过程可以在任何容器上独立完成。不需要锁定意味着可以照常进行备份和数据恢复。也不需要锁定元数据,并且没有需要更新的公共区域,因此可以并行完成和/或在任意数量的线程、进程或计算机之间进行分配。
60.另外,即使对于某些奇怪的极端情况,例如,两个实体在同一个容器上工作,也没有数据损坏的风险,不需要处理特殊情况。
61.在上述实施例中,交叉引用保存在系统中,可以独立并行地进行验证或重建。但是,该方案也可以在任何其他重复数据删除系统中工作。
62.可能地,根据本发明实施例,设备100包括磁盘,以及一个或多个容器被存储在磁盘上。
63.图6示出了根据本公开实施例的用于存储重复数据块的方法600。在本公开的特定实施例中,方法300由图1所示的设备100执行。方法600包括:存储一个或多个压缩容器,其中,每个容器包括多个片段,其中,一个或多个重复数据块存储在一个或多个容器的多个片段中的步骤601;以及通过解压缩片段,用片段中的零替换第一个重复数据块,重新压缩片段,以删除存储在片段中的第一个重复数据块的步骤602。
64.可选地,根据本公开实施例,方法600还包括保持一个或多个存储的重复数据块的元数据,其中,每个存储的重复数据块的元数据包括对存储重复数据块的位置的引用。
65.可选地,根据本发明实施例,每个容器还包括用于每个片段的片段元数据,该片段元数据包括数据片段在容器中的位置。
66.可选地,根据本公开实施例,方法600还包括获得一个或多个重复数据块。因此,方法可以包括将一个或多个重复数据块填充到一个或多个容器的多个片段中。然后,方法还包括压缩一个或多个容器的多个片段。
67.可选地,根据本公开实施例,方法600还包括根据第一重复数据块的元数据,检索存储的第一重复数据块。
68.可选地,根据本公开实施例,每个重复数据块与指示所述重复数据块正在被更新的频率的参考值相关联。
69.可选地,根据本公开实施例,方法600可以包括在不同的容器中存储参考值高于预设值的重复数据块和参考值低于预设值的重复数据块。
70.重复数据删除系统是专用的,在设计此类系统时需要考虑大量权衡。基于本公开实施例中提出的设计,可获得以下效果:
71.1、消除碎片整理的需求。
72.2、删除过时数据,而无需元数据更新。
73.3、减少整体读取放大,并增加数据局部性。
74.4、增加具有冷数据的容器的生命周期,并减少具有热数据的容器的生命周期。
75.5、无需脱机碎片整理。
76.6、每个容器的过程是完全独立的,因此无需费力即可完全分布式和并行化。
77.已经结合各种实施例作为示例以及实施方式描述了本发明。然而,通过对附图、本公开和独立权利要求的研究,本领域的技术人员可以理解和实现其它变化,并实施所要求保护的发明。在权利要求以及说明书中,“包括”一词不排除其他元件或步骤,不定冠词“一”或“一个”不排除多个。单个元件或其他单元可以实现权利要求中记载的若干实体或项目的功能。彼此不同的从属权利要求中记载的某些手段的事实并不表示这些手段的组合不能用于有利的实施方式。
78.此外,根据本公开实施例的任何方法可以在具有代码部件的计算机程序中实现,当由处理部件运行时,该计算机程序致使处理部件执行方法的步骤。该计算机程序被包括在计算机程序产品的计算机可读介质中。计算机可读介质基本包括任何存储器,例如rom(只读存储器)、prom(可编程只读存储器)、eprom(可擦除prom)、闪存、eeprom(电可擦除prom)或硬盘驱动器。
79.另外,本领域技术人员认识到,设备100的实施例包括用于以例如功能、部件、单元、元件等形式执行解决方案的必要通信能力。其他这种部件、单元、元件和功能的示例有:处理器、存储器、缓冲器、控制逻辑、编码器、解码器、速率匹配器、降速率匹配器、映射单元、乘法器、决策单元、选择单元、开关、交织器,解交织器,调制器,解调器,输入,输出,天线,放大器,接收器单元,发送器单元,dsp、网格编码调制(tcm)编码器、tcm解码器、电源单元、供电器、通信接口、通信协议等适当地布置在一起以执行解决方案。
80.特别地,设备100的处理器可以包括例如中央处理单元(cpu)、处理单元、处理电路、处理器、专用集成电路(asic)、微处理器或其他可以解释和执行指令的处理逻辑的一个或多个实例。因此,“处理器”这一表述可以表示包括多个处理电路的处理电路,例如,上述中任何一个、一些或全部。处理电路可以进一步执行用于数据的输入、输出和处理的数据处理功能,包括数据缓冲和设备控制功能,例如呼叫处理控制、用户界面控制等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献