掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法及相关装置

文献发布时间:2023-06-19 19:33:46


一种数据处理方法及相关装置

技术领域

本申请实施例涉及存储领域,尤其涉及一种数据处理方法及相关装置。

背景技术

目前的数据备份场景中,计算机设备接收输入的数据之后,计算机设备生成数据的唯一指纹,并根据生成的指纹在指纹表中进行查重,该指纹表中包括指纹到物理地址的映射关系。当计算的指纹与指纹表中的指纹无重复时,计算机设备在指纹表中分配指纹与物理地址的映射关系,并且该指纹对应的数据存储到分配的物理地址。

当计算机设备对备份的数据进行恢复时,计算机设备根据逻辑地址顺序读取数据,由于数据写入时是根据指纹存储的,因此在数据读取过程中,计算机设备需要根据数据的指纹查询指纹表从而获取物理地址,而指纹不具有连续性,计算机设备在数据过程每个指纹都要查询指纹表,指纹表查询次数多从而导致数据恢复过程中的读取速度慢。

发明内容

本申请实施例提供了一种数据处理方法以及相关装置,用于提升数据读取的速度。

本申请实施例第一方面提供了一种数据处理方法,该方法由计算机设备执行,也可以由计算机设备的部件,例如计算机设备的处理器、芯片、或芯片系统等执行,还可以由能实现全部或部分计算机设备功能的逻辑模块或软件实现。以计算机设备为例,第一方面提供的方法包括:计算机设备根据第一数据的逻辑地址在逻辑单元号LUN映射表中获取第一标识符ID序列,第一ID序列中的ID是基于物理地址的顺序分配的,第一数据为ID连续的多个数据,LUN映射表包括逻辑地址与ID之间的映射关系。当第一ID序列中的ID连续时,计算机设备根据第一ID序列中的一个ID在ID映射表获取第一物理地址,该一个ID可以是连续的ID中的首个ID,ID映射表包括ID与物理地址的映射关系,第一物理地址为第一ID序列对应的多个物理地址。计算机设备根据第一物理地址读取第一数据。

本申请实施例中提供了一种备份存储索引结构,即LUN映射表和ID映射表,其中LUN映射表包含逻辑地址与ID序列的映射关系,ID映射表包含ID序列与物理地址的映射关系,由于物理地址分配与ID序列分配顺序一致,而ID序列具有连续性,因此计算机设备在读取ID序列连续的数据时,只需要查询ID序列的中的一个ID就可以批量获取连续的物理地址,无需多次查表,从而提升数据的读取速度。

基于第一方面,一种可能的实施方式中,计算机设备接收第二数据,第二数据为计算机设备要批量存储的数据。计算机设备生成第二数据的指纹,并根据第二数据的指纹进行查重,当第二数据的指纹与FP映射表中的指纹无重复时,计算机设备为第二数据分配连续的第二ID和连续的第二物理地址,FP映射表包括指纹与ID的映射关系。

本申请实施例中计算机设备在数据写入过程中,当写入数据的指纹在指纹映射表中无重复时,计算机设备为数据的指纹分配连续ID和连续的物理地址,由于ID与物理地址的分配顺序一致,因此计算机设备在数据读取的过程中可以基于ID的连续性批量读取数据的物理地址,从而减少查询指纹映射表的次数,从而提升数据的读取性能。

基于第一方面,一种可能的实施方式中,当第二数据的指纹与FP映射表中的指纹重复,且第二数据的指纹与ID映射表中的指纹无重复时,计算机设备为第二数据分配第二ID和第二物理地址。

基于第一方面,一种可能的实施方式中,FP映射表中的指纹为完整指纹的部分指纹,ID映射表中的指纹为完整指纹。

本申请实施例中计算机设备在数据指纹的查重过程中,计算机设备优先在FP映射表中查询部分指纹,当FP映射表中的部分指纹重复时,计算机设备继续在ID映射表查询完整指纹。本申请实施例中计算机设备优先查询部分指纹提升了计算机设备的查重效率。

基于第一方面,一种可能的实施方式中,计算机设备为第二数据分配连续的第二ID和连续的第二物理地址之后,计算机设备将第二数据存储至第二物理地址。计算机设备在ID映射表中增加第二ID、第二数据的指纹和第二物理地址之间映射关系。计算机设备在FP映射表中增加第二数据的部分指纹和第二ID之间映射关系。

本申请实施例中计算机设备为无重复的数据分配连续的ID和连续物理地址之后,更新LUN映射表、ID映射表和FP映射表,从而提升计算机设备后续查重的准确性。

基于第一方面,一种可能的实施方式中,计算机设备根据第二数据的部分指纹在FP映射表查重之后,当第二数据的部分指纹与FP映射表中的指纹重复时,计算机设备将与FP映射表中重复的指纹对应ID邻近的多个ID所对应的表项加载到内存。

本申请实施例中计算机设备在FP映射表查重之后,如果指纹与FP映射表中的指纹重复,则计算机设备将重复的指纹对应的ID临近的指纹与ID的映射表项加载到内存,由于写入的数据重复往往是连续重复的,因此,计算机设备将临近的指纹与ID的映射表项加载到内存,进一步提升了计算机设备的查重效率。

基于第一方面,一种可能的实施方式中,ID映射表中不同属性数据的ID分段中预留部分ID,以使得存在输入间隔的同属性数据的ID能够连续分配。

本申请实施例中计算机设备为相同属性的数据预留ID分配空间,从而将相同属性的数据连续分配,使得计算机设备在数据读取的过程中可以基于ID的连续性批量获取物理地址,提升了数据读取的速度。

基于第一方面,一种可能的实施方式中,当LUN映射表中的ID被覆盖时,计算机设备删除ID映射表中不存在于LUN映射表中的ID。具体的,计算机设备在系统闲时或定时触发ID回收,计算机设备扫描LUN映射表中的所有存在映射关系的ID,同时扫描ID映射表中的ID,并删除只存在于ID映射表而不存在于LUN映射表的中的ID表项。

本申请实施例中计算机设备发生写覆盖时,即LUN映射表中的ID被覆盖时且被覆盖的ID没有重复时,计算机设备删除存在于ID映射表中但是不存在于LUN映射表中的ID表项,提升ID映射表的空间利用率。

基于第一方面,一种可能的实施方式中,LUN映射表的ID集合可以用布隆过滤器实现,计算机设备在布隆过滤器中查找ID映射表中的ID是否存在,如果不存在,计算机设备在ID映射表删除该ID的表项。进一步,计算机设备在布隆过滤器中查找ID映射表中的ID的过程中可以更换哈希函数。

本申请实施例中LUN映射表可以通过布隆过滤器实现,从提升了LUN映射表的空间效率,另外,ID回收的过程中更换哈希函数能够避免哈希冲突引发的布隆过滤器误判,避免ID实际不存在判定存在的问题,提升了ID回收的扫描效率。

基于第一方面,一种可能的实施方式中,每次ID回收可以限制ID范围对ID回收任务进行分段,防止ID回收过多影响业务读写。

本申请实施例第二方面提供了一种数据处理装置,该数据处理装置包括接口单元和处理单元。处理单元用于根据第一数据的逻辑地址在逻辑单元号LUN映射表中获取第一标识符ID序列,第一ID序列中的ID是基于物理地址的顺序分配的,第一数据为ID连续的多个数据,LUN映射表包括逻辑地址与ID之间的映射关系。当第一ID序列中的ID连续时,处理单元还用于根据第一ID序列中的一个ID在ID映射表获取第一物理地址,ID映射表包括ID与物理地址的映射关系,第一物理地址为第一ID序列对应的多个物理地址。处理单元还用于根据第一物理地址读取第一数据。

基于第二方面,一种可能的实施方式中,接口单元用于接收第二数据,第二数据为计算机设备要批量存储的数据。当第二数据的指纹与FP映射表中的指纹无重复时,处理单元还用于为第二数据分配连续的第二ID和连续的第二物理地址,FP映射表包括指纹与ID的映射关系。

基于第二方面,一种可能的实施方式中,处理单元还用于当第二数据的指纹与FP映射表中的指纹重复,且第二数据的指纹与ID映射表中的指纹无重复时,处理单元为第二数据分配第二ID和第二物理地址。

基于第二方面,一种可能的实施方式中,FP映射表中的指纹为完整指纹的部分指纹,ID映射表中的指纹为完整指纹。

基于第二方面,一种可能的实施方式中,处理单元还用于将第二数据存储至第二物理地址,在ID映射表中增加第二ID、第二数据的指纹和第二物理地址之间映射关系,在FP映射表中增加第二数据的部分指纹和第二ID之间映射关系。

基于第二方面,一种可能的实施方式中,处理单元还用于当第二数据的部分指纹与FP映射表中的指纹重复时,处理单元将与FP映射表中重复的指纹对应ID邻近的多个ID所对应的表项加载到内存。

基于第二方面,一种可能的实施方式中,ID映射表中不同属性数据的ID分段中预留部分ID,以使得存在输入间隔的同属性数据的ID能够连续分配。

基于第二方面,一种可能的实施方式中,处理单元还用于当LUN映射表中的ID被覆盖时,处理单元删除ID映射表中不存在于LUN映射表中的ID。

本申请实施例第三方面提供了一种计算机设备,包括处理器,处理器与存储器耦合,处理器用于存储指令,当指令被处理器执行时,以使得计算机设备执行上述第一方面以及第一方面任意一种可能的实施方式所述的方法。

本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有指令,指令被执行时,以使得计算机执行上述第一方面以及第一方面任意一种可能的实施方式所述的方法。

本申请实施例第五方面一种计算机程序产品,计算机程序产品中包括指令,指令被执行时,以使得计算机实现执行上述第一方面以及第一方面任意一种可能的实施方式所述的方法。

可以理解,上述提供的任意一种数据处理装置、计算机设备、计算机可读介质或计算机程序产品等所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。

附图说明

图1为本申请实施例提供的一种存储系统架构示意图;

图2a为本申请实施例提供的一种数据处理方法的示意图;

图2b为本申请实施例提供的一种索引结构的示意图;

图3为本申请实施例提供的另一种数据处理方法的示意图;

图4为本申请实施例提供的另一种数据处理方法的示意图;

图5为本申请实施例提供的另一种数据处理方法的示意图;

图6为本申请实施例提供的另一种数据处理方法的示意图;

图7为本申请实施例提供的另一种数据处理方法的示意图;

图8为本申请实施例提供的另一种数据处理方法的示意图;

图9为本申请实施例提供的一种计算机设备的结构示意图;

图10为本申请实施例提供的另一种计算机设备的机构示意图。

具体实施方式

本申请实施例提供了一种数据处理方法以及相关装置,用于提升数据的读取速度。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

逻辑区块地址(logical block address,LBA)是描述计算机存储设备上数据所在区块的通用机制。逻辑区块地址可以指某个数据区块的地址或是某个地址所指向的数据区块。计算机设备上所谓一个逻辑区块通常是512或1024位组。

物理区块地址(physical block address,PBA)是指物理磁盘块的地址。物理区块地址指示存储介质上的物理位置。

指纹(finger print,FP)也称重删指纹。重删是指通过算法计算出数据集中的某部分数据的哈希值,以此哈希值作为此部分数据的唯一标识,该唯一标识即为指纹。当某两部分数据的指纹相同时,计算机设备就认为这两部分数据是一致的。

垃圾回收(garbage collection,GC)是一种自动的存储器管理机制。当一个计算机设备上的动态存储器不再需要时,就应该予以释放,以让出存储器,这种存储器资源管理,称为垃圾回收。

下面结合附图介绍本申请实施例提供的数据处理方法和相关装置。

请参阅图1,图1为本申请实施例提供的一种存储系统的结构示意图。如图1所示,存储系统10包括输入设备101、输出设备102、中央处理器103、内存104和外部存储器105,其中,中央处理器103包括控制器和运算器,中央处理器103分别与内存104和外部存储器105连接。

外部存储器105包括高速存储介质和底书存储介质,高速存储介质例如固态硬盘(solid state drive,SSD),低速存储介质例如硬盘驱动器(hard disk drive,HDD)。

本申请实施例提供的存储系统10可以应用于计算机设备,下面以计算机设备为例,介绍本申请实施例提供的数据处理方法。本申请实施例数据处理方法可以应用于数据的备份与恢复场景,包括数据写入过程和数据读取过程,下面分别进行介绍。

请参阅图2a,图2a为本申请实施例提供的一种数据读取过程的流程示意图。该方法由计算机设备执行,也可以由计算机设备的部件执行,还可以由能实现全部或部分计算机设备功能的逻辑模块或软件实现。图2a所示的一种数据处理方法流程包括:

201.计算机设备根据第一数据的逻辑地址在LUN映射表中获取第一ID序列,第一ID序列中的ID是基于物理地址的分配的,第一数据为ID连续的多个数据。

本申请实施例中计算机设备根据第一数据的逻辑地址在LUN映射表中获取第一ID序列,第一数据在LUN映射表中为ID连续的多个数据,LUN映射表包括逻辑地址与ID的映射关系。由于第一ID序列中的ID是计算机设备基于物理地址的顺序分配的,因此,ID的顺序与物理地址的顺序是一致的,连续的ID序列对应连续物理地址,ID的分配过程具体在数据写入过程的实施例中介绍。

本申请实施例中的数据读取过程是基于存储系统的索引结构进行的,下面对本申请实施例中的索引结构进行介绍,该索引结构包括逻辑单元号LUN映射表、标识符ID映射表和指纹FP映射表。其中,LUN映射表包括逻辑地址到ID的映射关系,ID映射表包括ID、完整指纹和物理地址的映射关系,FP映射表包括部分指纹和ID的映射关系。

请参阅图2b,图2b为本申请实施例提供的一种索引结构的示意图。如图2b所示,LUN映射表指示数据的逻辑地址序列与ID序列的映射关系,从图2b中可以看出,计算机设备将数据按照逻辑地址序列写入后,逻辑地址连续的数据对应的ID序列也连续。图2b所示的逻辑地址序列对应的数据为非重删数据,可以理解的是,当逻辑地址连续的数据为重删数据时,逻辑地址对应的ID序列重复且连续。

在图2b所示的示例中,ID映射表可以指示ID序列与物理地址序列之间的映射关系,从图2b中可知,连续ID序列对应连续的物理地址,ID映射表中每个ID都是唯一的,每个ID对应一个物理地址,因此,计算机数据设备读取物理地址的数据可以基于ID的连续性一次查询ID映射表就可以批量获取连续的物理地址。在图2b所示的示例中,FP映射表指示指纹与ID的映射关系,从图2b可以看出,由于指纹不具有连续性,因此,计算机设备无法基于指纹批量获取ID序列。

下面结合具体示例介绍本申请实施例提供的LUN映射表、标识符ID映射表和指纹FP映射表。

请参阅表1,表1为本申请实施例提供的一种逻辑单元号LUN映射表。如表1所示,LUN映射表包含数据的逻辑地址与ID之间的映射关系,例如,逻辑地址为“0x756FCD20”对应的ID为“1”,逻辑地址为“0x756FCD30”对应的ID为2。在数据备份和恢复的场景中,LUN映射表中重复ID序列往往也是连续的多个ID,例如,逻辑地址为0x756FCD20到0x756FCD60的数据段对应的ID序列为1到5,逻辑地址为0x756FCD70到0x756FCD90的数据段对应的ID序列为2到4。

表1 LUN映射表

请参阅表2,表2为本申请实施例提供的一种标识符ID映射表。如表2所示,ID映射表包含数据的ID、完整指纹和物理地址之间的映射关系,例如,ID为“1”的数据对应的指纹为“1564898754145”、对应的物理地址为“0x1FFF2000”,ID为“2”的数据对应的指纹为“4565131564545”、对应的物理地址为“0x1FFF2020”。由于ID映射表中的ID的序列是根据物理地址的顺序分配的,因此连续的ID对应连续的物理地址。

表2 ID映射表

请参阅表3,表3为本申请实施例提供的一种指纹映射表,如表3所示,FP映射表包含数据的部分指纹与ID之间的映射关系,例如,部分指纹为“156489875”的数据对应的ID为1,部分指纹为“456513156”的数据对应的ID为2。从FP映射表中可以看出,指纹序列布局有连续性,所以计算机设备无法根据指纹一次查询指纹到物理地址映射表,从而批量获取指纹对应的物理地址。

表3 FP映射表

202.计算机设备根据第一ID序列中的一个ID在ID映射表中获取第一物理地址,第一物理地址为第一ID序列对应的多个物理地址。

计算机设备根据第一数据的逻辑地址获取第一ID序列之后,计算机设备根据第一ID序列中的一个ID,在ID映射表中批量获取第一物理地址,第一物理地址为第一ID序列对应的多个物理地址。在第一物理地址的获取过程中,可以理解的是,计算机设备只需要一次查询ID映射表可以基于物理地址与ID序列的连续性批量获取一批连续的第一物理地址。

在数据备份和恢复的场景中,由于LUN映射表中重复ID序列往往也是连续的多个ID,而ID映射表中ID的序列是基于物理地址的顺序分配的,因此,计算机设备在数据读取的过程中,可以通过连续的ID序列中的一个ID在ID映射表查询物理地址,并基于ID的连续性一次查表批量获取多个物理地址,从而读取多个物理地址存储的数据。

203.计算机设备根据第一物理地址读取第一数据。

计算机设备根据第一ID序列中的一个ID在ID映射表中获取第一物理地址之后,计算机设备根据第一物理地址批量读取第一数据。

本申请实施例中提供了一种存储系统的索引结构,基于该存储索引结构,物理地址分配与ID序列分配顺序一致,而ID序列具有连续性,因此计算机设备在读取ID序列连续的数据时,只需要查询ID序列的中的一个ID就可以批量获取连续的物理地址,无需多次查表,从而提升数据的读取速度。

下面结合图3介绍本申请实施例数据写入过程中ID序列分配的过程。

请参阅图3,图3为本申请实施例提供的一种数据写入过程的流程示意图。该方法由计算机设备执行,也可以由计算机设备的部件执行,还可以由能实现全部或部分服务器功能的逻辑模块或软件实现。图3所示的一种数据处理方法流程包括:

301.计算机设备接收第二数据。

本申请实施例中计算机设备在数据写入过程中,计算机设备接收写入的第二数据,第二数据为计算机设备要批量存储的数据。计算机设备接收到第二数据之后,计算机设备对第二数据进行分块,之后生成第二数据中每个数据分块的指纹。

本申请数据写入过程的实施例中的第二数据和上述数据读取过程的实施例中的第一数据可以是相同的数据,也可也是不同数据,具体不做限定。

本申请实施例中计算机设备生成第二数据中每个数据分块的指纹之后,计算机设备根据第二数据的指纹在FP映射表和ID映射表中进行查重。

302.当第二数据的指纹与FP映射表中的指纹无重复时,或者,当第二数据的指纹与FP映射表中的指纹重复且第二数据的指纹与ID映射表中的指纹无重复时,计算机设备为第二数据分配连续的第二ID和连续的第二物理地址。

计算机设备根据第二数据的指纹进行查重时,计算机设备在FP映射表中查询第二数据的指纹,该FP映射表中包含部分指纹与ID之间的映射关系,若FP映射表中的部分指纹与第二数据的指纹没有重复,则该第二数据中该指纹对应的数据分块为非重删数据,计算机设备为第二数据的非重删数据分块分配连续的第二ID和连续的第二物理地址。

若FP映射表中的部分指纹与第二数据的指纹有重复,则计算机设备根据第二数据的指纹在ID映射表中查重。具体的,计算机设备根据FP映射表中有重复的部分指纹对应的ID,在ID映射表查询该ID的完整指纹,并对比第二数据的指纹,若第二数据的指纹与ID映射表中的完整指纹无重复时,则计算机设备为第二数据的非重删数据分块分配连续的第二ID和连续的第二物理地址。若第二数据的指纹与ID映射表中的完整指纹重复时,则计算机设备将ID更新至LUN映射表,即在LUN映射表中新增逻辑地址到该ID的映射关系。

本申请实施例中上述数据写入过程中的第二ID以及第二物理地址和上述数据读取过程的实施例中的第一ID以及第一物理地址可以是相同的数据,也可也是不同数据,具体不做限定。

请参阅图4,图4为本申请实施例提供的一种数据写入过程的流程示意图。下面结合图4所示的示例对本申请实施例中数据写入过程进行详细介绍,如图4所示,计算机设备接收要存储的数据流,计算设备接收数据流之后对数据流进行数据分块并计算每个分块的指纹。计算机设备在FP映射表查询每个分块的指纹,如果FP映射表中的部分指纹与该指纹无重复,则计算机设备为该指纹对应的数据分块分配ID和物理地址。

如果FP映射表中的部分指纹与该指纹有重复时,则计算机设备返回部分指纹对应的ID,并在ID映射表查询该ID对应的完整指纹,如果完整指纹与该指纹不重复,则计算机设备为该指纹对应的数据分块分配ID和物理地址,如果完整指纹与该指纹重复,则计算机设备在LUN映射表新增逻辑地址到该ID的映射。

本申请实施例中同一批的数据分配的ID和物理地址都是连续的,分配的ID在ID映射表中的记录也是连续的,ID在分配时候ID的连续性的由ID分块模块保证。本申请实施例中ID映射表中不同属性数据的ID分段中会预留部分ID,以使得存在输入间隔的同属性数据的ID能够连续分配。

本申请是实施例中计算机设备在ID分配时,根据非重删数据块的属性信息分配ID,计算机设备对于不同属性的数据分别预留一部分ID空间,当进行ID分配时,计算机设备查询待分配数据的属性是否已经分配过ID空间,如果已分配过ID空间且ID空间的ID足够用于当前批次的数据分配,则计算机设备直接在该ID空间中继续顺序分配ID,如果待分配数据的属性没有分配过ID空间或者ID空间的ID不够用于当前批次的数据分配,则计算机设备重新分配一段ID空间。因此,本申请实施例中即使同一属性的数据分块分别多个批次达到,同一属性的非重删的数据分块也可以分配连续的ID。

本申请实施例中写入数据的属性信息相同包括写入数据属于同一文件,或者写入数据为分成多个输入流输入的同一数据。

请参阅图5,图5为本申请实施例提供的一种ID空间分配的流程示意图。如图5所示,计算机设备为非重删数据分块分配ID时,计算机设备根据非重删数据分块的属性分配ID空间,若计算机设备为该非重删数据分块的属性分配过ID空间且ID空间足够,则计算机设备从已分配的ID空间中分配一段连续ID区间,若计算机设备为该非重删数据分块的属性没分配过ID空间或者分配过ID空间但是ID空间不够时,计算机设备分配一段ID空间,并返回本次所需的ID区间。

本申请实施例中计算机设备在接收第二数据并进行数据分块之后,可以根据抽样策略抽取部分数据块,抽样策略包括对数据块的顺序间隔相同的数据块进行抽样,或者对数据块的逻辑地址间隔相同的数据块进行抽样。计算机设备在FP映射表中查询抽取出的数据块的指纹,若FP映射表中指纹与该指纹无重复,则计算机设备将该抽样的数据块标记为非重删数据块。若FP映射表中指纹与该指纹重复,则计算机设备根据返回的ID继续查询ID映射表,并将该ID映射表中该ID临近的表项加载到内存,从而实现ID映射表中的表项预取。

具体的,计算机设备在查询ID映射表的过程中,根据ID在ID映射表中获取该ID临近的多个ID对应的表项,并临近的多个ID对应的表项保存在内存中,从而建立ID映射表缓存,后续计算机设备根据ID获取完整指纹是可以直接在ID映射表的缓存中获取,从而提升了计算机设备的查重效率。

请参阅图6,图6为本申请实施例提供的一种ID预取的查重流程示意图。如图6所示,计算机设备计算一批数据的指纹之后,数据抽样得到部分数据的指纹,并在FP映射表中查询部分指纹,若FP映射表中的部分指纹与该指纹无重复,计算机设备将该指纹对应的数据标记为非重删。若FP映射表中的部分指纹与该指纹重复,则计算机设备返回该重复指纹对应的ID,并根据该ID查询ID映射表。计算机设备在查询ID映射表的同时将ID映射表中该ID邻近的多个ID表项存储至内存,建立ID映射表缓存。计算机设备在ID映射表缓存中查询该ID对应的完整指纹,若完整指纹与该指纹重复,则标记数据为重删数据并返回ID。

可以理解的是,计算机设备在查询FP映射表的过程中,计算机设备根据指纹在FP映射表查重存在重复时,返回指纹对应的ID的同时,将该ID邻近的多个指纹到ID表项加载到内存,从而建立FP映射表缓存,后续计算机设备在查询FP映射表时先在FP映射表缓存中查询,查询不到再去磁盘介质中查找。

303.计算机设备将第二数据存储至第二物理地址。

计算机设备为第二数据分配连续的ID的连续的物理地址之后,计算机设备将第二数据存储至第二物理地址。具体的,计算机设备确定第二数据中数据分块的指纹无重复时,计算设备为该数据分块分配ID和物理地址,并将该数据分块存储至该物理地址。

304.计算机设备更新ID映射表、FP映射表和LUN映射表。

计算机设备将第二数据存储至物理地址之后,计算机设备更新ID映射表、FP映射表和LUN映射表。具体的,计算机设备将第二数据中数据分块存入对应的物理地址之后,计算机设备在ID映射表中按顺序新增该数据分块的ID、该数据分块的完整指纹和该数据分块的物理地址之间的映射。计算机设备在FP映射表中新增该数据分块的部分指纹和该数据分块的ID之间的映射关系。计算机设备在LUN映射表中新增该数据分块的逻辑地址到该数据分块的ID之间的映射关系。

本申请实施例中计算机设备更新ID映射、FP映射表和LUN映射表之后,第二数据中的非重删数据写入成功。计算机设备在更新ID映射表时,ID映射表的存储结构可以是B树、B+树或者任何其它基于ID排序的存储结构,从而保证连续ID在ID映射表中的存储位置也连续。本申请实施例中计算机设备更新ID映射表、FP映射表和LUN映射表先后顺序不做限定。

本申请实施例中计算机设备在发生写覆盖后,如果LUN映射表中的ID被覆盖,ID映射表中该ID的表项实际已经无效,计算机设备会对ID映射表中的表项进行回收。具体的,计算机设备定时或者由用户触发扫描LUN映射表,计算机设备扫描得到LUN映射表中的ID,之后计算机设备扫描ID映射表,删除只存在于ID映射表中但不存在于LUN映射表中的ID所在的表项。

请参阅图7,图7为本申请实施例提供的一种ID回收的流程示意图。如图7所示,计算机设备定时触发ID回收,ID回收时计算机设备扫描LUN映射表,得到所有存在映射关系的ID,计算机设备将这些ID依次插入布隆过滤器(bloom filter)结构。计算机设备扫描ID映射表,依次查询ID映射表中的ID是否在bloom filter中存在,计算机设备删除ID映射表中在bloom filter中不存在的ID对应的ID表项。

请参阅图8,图8为本申请实施例提供的一种写入覆盖场景的示意图。在图8所示的示例中,当计算机设备发生写入覆盖后,LUN映射表中的逻辑地址原本指向ID1变为指向ID2,假设ID1没有重删的数据,即ID1在LUN映射表中无重复,覆盖之后ID1在LUN映射表中存在,但是ID映射表中ID1的表项实际已经无效,但是ID映射表中的ID1并未被回收,从到时ID映射表中的存储空间被浪费。ID1指向的物理地址中的数据所占用的盘上空间也无法被回收。

本申请实施例中计算机设备删除存在于ID映射表中但是不存在于LUN映射表中的ID表项,提升ID映射表的空间利用率。

上面介绍本申请实施例提供的数据处理方法,下面结合附图介绍本申请实施例涉及的相关装置。

请参阅图9,图9为本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置用于实现上述各实施例中对应计算机设备的各个步骤,如图9所示,该数据处理装置900包括接口单元901和处理单元902。

处理单元902用于根据第一数据的逻辑地址在逻辑单元号LUN映射表中获取第一标识符ID序列,第一ID序列中的ID是基于物理地址的顺序分配的,第一数据为ID连续的多个数据,LUN映射表包括逻辑地址与ID之间的映射关系。当第一ID序列中的ID连续时,处理单元902还用于根据第一ID序列中的一个ID在ID映射表获取第一物理地址,ID映射表包括ID与物理地址的映射关系,第一物理地址为第一ID序列对应的多个物理地址。处理单元902还用于根据第一物理地址读取第一数据。

一种可能的实施方式中,接口单元901用于接收第二数据,第二数据为计算机设备要批量存储的数据。当第二数据的指纹与FP映射表中的指纹无重复时,处理单元902还用于为第二数据分配连续的第二ID和连续的第二物理地址,FP映射表包括指纹与ID的映射关系。

一种可能的实施方式中,处理单元902还用于当第二数据的指纹与FP映射表中的指纹重复,且第二数据的指纹与ID映射表中的指纹无重复时,处理单元902为第二数据分配第二ID和第二物理地址。

一种可能的实施方式中,FP映射表中的指纹为完整指纹的部分指纹,ID映射表中的指纹为完整指纹。

一种可能的实施方式中,处理单元902还用于将第二数据存储至第二物理地址,在ID映射表中增加第二ID、第二数据的指纹和第二物理地址之间映射关系,在FP映射表中增加第二数据的部分指纹和第二ID之间映射关系。

一种可能的实施方式中,处理单元902还用于当第二数据的部分指纹与FP映射表中的指纹重复时,处理单元902将与FP映射表中重复的指纹对应ID邻近的多个ID所对应的表项加载到内存。

一种可能的实施方式中,ID映射表中不同属性数据的ID分段中预留部分ID,以使得存在输入间隔的同属性数据的ID能够连续分配。

一种可能的实施方式中,处理单元902还用于当LUN映射表中的ID被覆盖时,处理单元902删除ID映射表中不存在于LUN映射表中的ID。

应理解以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以成为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。

在一个例子中,以上任一装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integratedcircuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。

请参阅图10,图10为本申请实施例提供的一种计算机设备示意图,用于实现以上实施例中计算机设备的操作。如图10所示,该计算机设备包括:处理器1010和接口1030,处理器1010与接口1030耦合。接口1030用于实现与其他设备进行通信。接口1030可以为收发器或输入输出接口。接口1030例如可以是接口电路。可选地,该计算机设备还包括存储器1020,用于存储处理器1010执行的指令或存储处理器1010运行指令所需要的输入数据或存储处理器1010运行指令后产生的数据。

以上实施例中计算机设备执行的方法可以通过处理器1010调用存储器(可以是计算机设备中的存储器1020,也可以是外部存储器)中存储的程序来实现。即,计算机设备可以包括处理器1010,该处理器1010通过调用存储器中的程序,以执行以上方法实施例中计算机设备执行的方法。这里的处理器可以是一种具有信号的处理能力的集成电路,例如CPU。计算机设备可以通过配置成实施以上方法的一个或多个集成电路来实现。例如:一个或多个ASIC,或,一个或多个微处理器DSP,或,一个或者多个FPGA等,或这些集成电路形式中至少两种的组合。或者,可以结合以上实现方式。

具体的,图9中的接口单元901和处理单元902的功能/实现过程可以通过图10所示的计算机设备1000中的处理器1010调用存储器1020中存储的计算机可执行指令来实现。

在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中计算机设备所执行的方法。

在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中计算机设备所执行的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 一种SDH数据处理方法、系统及相关装置
  • 一种技术评审数据处理方法及相关装置
  • 一种数据库的审计日志处理方法及相关装置
  • 一种数据处理方法以及相关装置
  • 一种数据处理方法、装置和用于数据处理的装置
  • 通过显示接口传送/接收压缩相关指示信息的数据处理装置与相关数据处理方法
  • 发送/接收图片的压缩的像素数据组和像素数据分组设定的指示信息的数据处理装置以及相关数据处理方法
技术分类

06120115951220