CN113076068A - 一种数据存储方法、装置、电子设备及可读存储介质 - Google Patents

一种数据存储方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113076068A
CN113076068A CN202110460957.4A CN202110460957A CN113076068A CN 113076068 A CN113076068 A CN 113076068A CN 202110460957 A CN202110460957 A CN 202110460957A CN 113076068 A CN113076068 A CN 113076068A
Authority
CN
China
Prior art keywords
data
target
container
repeated
newly added
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
CN202110460957.4A
Other languages
English (en)
Other versions
CN113076068B (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.)
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Shenzhen Graduate School Harbin Institute of Technology
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 Shenzhen Graduate School Harbin Institute of Technology filed Critical Shenzhen Graduate School Harbin Institute of Technology
Priority to CN202110460957.4A priority Critical patent/CN113076068B/zh
Publication of CN113076068A publication Critical patent/CN113076068A/zh
Application granted granted Critical
Publication of CN113076068B publication Critical patent/CN113076068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据存储方法、装置、电子设备及计算机可读存储介质,该方法包括:获取并拆分目标数据,得到多个目标数据块;判断目标数据块中是否存在已经被存储的重复数据块;若存在重复数据块,则将各个重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将目标数据块中的非重复数据块存入第二新增容器;若不存在重复数据块,则将目标数据块存入第三新增容器;建立新增容器与目标数据之间的目标容器对应关系;该方法在进行数据存储时,将各个数据块按照其生命周期进行排列;在进行数据读取时,可以只读出需要的数据块而不附带任何其他数据,避免出现读放大现象,提高了数据读取速度。

Description

一种数据存储方法、装置、电子设备及可读存储介质
技术领域
本申请涉及存储技术领域,特别涉及一种数据存储方法、数据存储装置、电子设备及计算机可读存储介质。
背景技术
在数据存储、数据备份场景中,数据的多版本备份往往存在大量的重复数据,需要引入数据去重(或称为重删)机制以减少存储开销。相关技术在将数据重删后对数据的存储方式非常简单,其将重删后相邻的数据按顺序摆放到多个数据容器中,并将各个版本的数据容器依次摆放。然而,由于数据重删会破坏数据的局部性,这样的数据和容器摆放方式会造成数据恢复性能差,在进行数据读取时会出现读放大的现象,导致数据恢复速度较慢,无法发挥存储设备的吞吐性能。
发明内容
有鉴于此,本申请的目的在于提供一种数据存储方法、数据存储装置、电子设备及计算机可读存储介质,在进行数据读取时,可以只读出需要的数据块而不附带任何其他数据,避免出现读放大现象,提高了数据读取速度。
为解决上述技术问题,本申请提供了一种数据存储方法,包括:
获取并拆分目标数据,得到多个目标数据块;
判断所述目标数据块中是否存在已经被存储的重复数据块;
若存在所述重复数据块,则将各个所述重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将所述目标数据块中的非重复数据块存入第二新增容器;
若不存在所述重复数据块,则将所述目标数据块存入第三新增容器;
建立新增容器与所述目标数据之间的目标容器对应关系;所述新增容器为所述第一新增容器和所述第二新增容器,或者为所述第三新增容器。
可选地,所述判断所述目标数据块中是否存在已经被存储的重复数据块,包括:
确定所述目标数据对应的历史版本信息,并利用所述历史版本信息得到对应的历史指纹索引;
生成各个所述目标数据块分别对应的数据块指纹,并判断所述历史指纹索引中是否存在所述数据块指纹;
若存在所述数据块指纹,则确定存在所述重复数据块;
若不存在所述数据块指纹,则确定不存在所述重复数据块。
可选地,还包括:
基于所述历史指纹索引,利用所述非重复数据块对应的目标数据块指纹进行索引生成处理,得到所述目标数据对应的新增指纹索引;
建立并存储所述目标数据的新增版本信息和所述新增指纹索引之间的对应关系。
可选地,还包括:
确定所述目标数据对应的历史版本数据,并确定所述历史版本数据对应的非重复历史数据块;
将所述目标数据中不存在的非重复历史数据块确定为目标历史数据块,并将存储有所述目标历史数据块的数据容器确定为所述历史版本数据对应的归档容器;
若检测到目标历史版本数据对应的删除指令,则删除所述目标历史版本数据对应的目标归档容器。
可选地,所述将各个所述重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,包括:
判断所述源数据容器中是否仅包括所述重复数据块;
若不仅包括所述重复数据块,则将处于同一个所述源数据容器的所述重复数据块迁移至同一个所述第一新增容器;
建立所述第一新增容器与目标历史版本数据之间的历史容器对应关系;所述目标历史版本数据为所述源数据容器对应的历史版本数据;
若仅包括所述重复数据块,则将所述源数据容器确定为所述第一新增容器。
可选地,所述目标数据的读取过程,包括:
若检测到所述目标数据对应的目标读取指令,则获取所述目标容器对应关系;
根据所述目标容器对应关系读取所述新增容器,并利用所述新增容器中的所述目标数据块组成所述目标数据。
可选地,在判断所述目标数据块中是否存在已经被存储的重复数据块之前,还包括:
判断是否存在历史版本数据;
若不存在,则将所述目标数据块存入第四新增容器;
若存在,则确定执行判断所述目标数据块中是否存在已经被存储的重复数据块的步骤。
本申请还提供了一种数据存储装置,包括:
拆分模块,用于获取并拆分目标数据,得到多个目标数据块;
重复判断模块,用于判断所述目标数据块中是否存在已经被存储的重复数据块;
第一存储模块,用于若存在所述重复数据块,则将各个所述重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将所述目标数据块中的非重复数据块存入第二新增容器;
第二存储模块,用于若不存在所述重复数据块,则将所述目标数据块存入第三新增容器;
关系建立模块,用于建立新增容器与所述目标数据之间的目标容器对应关系;所述新增容器为所述第一新增容器和所述第二新增容器,或者为所述第三新增容器。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的数据存储方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的数据存储方法。
本申请提供的数据存储方法,获取并拆分目标数据,得到多个目标数据块;判断目标数据块中是否存在已经被存储的重复数据块;若存在重复数据块,则将各个重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将目标数据块中的非重复数据块存入第二新增容器;若不存在重复数据块,则将目标数据块存入第三新增容器;建立新增容器与目标数据之间的目标容器对应关系;新增容器为第一新增容器和第二新增容器,或者为第三新增容器。
可见,该方法在对目标数据进行存储时,先对其进行拆分得到多个目标数据块,并判断各个目标数据块是否已经被存入,即是否为已经被存储的重复数据块。若目标数据块中不存在重复数据块,则说明其均为新增的数据块,因此可以直接将其存入第三新增容器。若目标数据块中存在重复数据块,则说明目标数据中的部分内容已经被存储过,这些重复数据块在多个版本的数据中均存在,在这种情况下,可以将重复数据块从原本所处的源数据容器中迁出,迁入新增的第一新增容器。通过迁移重复数据块,可以将重复数据块与原本存储在一起的历史数据块分离,进而在读取重复数据块时可以单独将其读出,不会顺带读出其他不需要的数据。此外,还可以将目标数据块中的非重复数据块存入第二新增容器。当所有目标数据块均存储完毕后,建立新增容器与目标数据之间的对应关系,即目标容器对应关系。目标容器对应关系可以表明目标数据块存储于哪些容器,通过建立目标容器对应关系,可以在后续基于其进行数据读取。当新增容器为第三新增容器时,由于第三新增容器中仅存储了全部的目标数据块,因此可以直接读出全部目标数据块且不附带其他数据。当新增容器为第一新增容器和第二新增容器时,由于第一新增容器中仅存储了目标数据涉及到的重复数据块,第二新增容器中仅存储了目标数据中的非重复数据块,因此基于目标容器对应关系读出数据时,可以将读出全部的目标数据块且不附带任何其他数据。通过在检测到重复数据块时将其从源数据容器中迁出并建立新增容器与目标数据之间的目标容器对应关系,可以将各个数据块按照其生命周期进行排列。在进行数据读取时,可以只读出需要的数据块而不附带任何其他数据,避免出现读放大现象,提高了数据读取速度,尽可能地发挥存储设备的吞吐性能。
此外,本申请还提供了一种数据存储装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据存储方法流程图;
图2为本申请实施例提供的一种具体的数据存储方法流程图;
图3为本申请实施例提供的另一种具体的数据存储方法流程图;
图4为本申请实施例提供的一种数据容器分布示意图;
图5为本申请实施例提供的一种数据存储装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种数据存储方法流程图。该方法包括:
S101:获取并拆分目标数据,得到多个目标数据块。
目标数据是指需要被存入存储系统的数据,其具体可以为新增数据,或者可以为备份数据,或者可以为基于已经存储的其他版本数据更新得到的新版本数据。本实施例并不限定目标数据的获取方式,在一种实施方式中,可以从指定的路径下读取数据作为目标数据,该指定的路径可以为云端路径、可移动存储介质的存储路径或设备本地对应的某一个存储路径。在另一种实施方式中,可以接收其他电子设备发送的信息,并从中得到目标数据。获取目标数据的操作可以实施执行,或者可以按照预设周期执行。每次获取到的目标数据的数量不做限定,当同时获取到的目标数据为多个时,各个目标数据的大小、数据类型等可以相同也可以不同。例如可以设置多个获取目标数据的标准,并在每次获取目标数据时更新本次所采用的标准。
在获取到目标数据后对其进行拆分,得到多个目标数据块。对于拆分目标数据的方式,在一种实施方式中,可以按照预设的数据块大小对目标数据进行拆分,得到目标数据块;在另一种实施方式中,可以按照目标数据中数据内容的类别对其进行拆分,例如可以按照数据段的类型进行拆分,或者可以按照数据内容的字符类型进行拆分,得到多个目标数据块。除此以外,还可以采用其他任意已有的拆分方式对目标数据进行拆分,不同类型的目标数据对应的拆分方式可以不同,也可以相同。
S102:判断目标数据块中是否存在已经被存储的重复数据块。
重复数据块是指当前存储系统中已经存在的目标数据块,即在存储目标数据之前存储系统中已经存在的目标数据块。在将目标数据块进行存储之前,由于其中可能有部分数据块已经被存储于存储系统中,而为了避免存储空间因存有大量重复数据而造成浪费,因此需要判断目标数据块中是否存在重复数据块。
对于重复数据块的判断方式,在一种实施方式中,可以将某个目标数据块的数据内容与当前已经存储的数据块进行比对,若二者一致,则确定该目标数据块为重复数据块。在另一种实施方式中,为了提高判断速度,提高存储效率,可以引入指纹机制,即记录各个数据块对应的数据块指纹,在判断是否存在重复数据块时,可以判断目标数据块的指纹与已经记录过的指纹是否相同,若相同,则说明该目标数据块为重复数据块。
当确定不存在重复数据块时,可以进入S104步骤,当确定存在重复数据块时,可以进入S103步骤。
S103:将各个重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将目标数据块中的非重复数据块存入第二新增容器。
当确定存在重复数据块时,相关技术通常将重复数据块剔除,仅保留身份为非重复数据块的目标数据块,并将目标数据块按照预设的顺序摆放在一个或多个数据容器中。然而,这种方式虽然起到了数据重删的效果,但是由于数据读取是以数据容器为单位进行的,在对目标数据进行恢复(即读出)时,不仅需要将存储有非重复数据块的数据容器读出,还需要将存储有重复数据块的数据容器读出,而存储有重复数据块的数据容器中通常还存储有目标数据中不存在的数据。在这种情况下,对目标数据的恢复过程中需要读出大量目标数据不需要的数据,造成读放大的问题,无法利用系统全部的吞吐性能对目标数据进行恢复,最终导致目标数据恢复速度较慢。
为了解决上述问题,本申请在确定存在重复数据块后,若干个重复数据块从源数据容器迁移至第一新增容器,第一新增容器是指用于存储重复数据块的数据容器。通过将重复数据块进行迁移,起到了对重复数据块的生命周期进行更新的效果,即该重复数据块已经不再与原本存储在一起的非目标数据块继续存储在一起,而是进行了独立存储,其数据周期与原本存储在一起的非目标数据块不相同。在进行数据读取时,第一新增容器和源数据容器也可以分开读取,进一步体现了重复数据块与原本存储在一起的非目标数据块二者之间生命周期不相同的特点。
第一新增容器的数量可以为一个或多个,具体的,当所有的重复数据块均处于一个源数据容器时,由于各个重复数据块原本的生命周期相同,二者同时被存入,同时被读出,因此可以将其存入同一个第一新增容器。在另一种实施方式中,若一个完整数据(即先前被存入的目标数据)在存入时,所有的非重复数据块均被存入同一个数据容器,在这种情况下,若存在若干个重复数据块处于不同的源数据容器中,则说明这些重复数据块存入的时间不同,对应的完整数据也不同,因此需要分别将其存入不同的第一新增容器。在另一种实施方式中,若一个完整数据在存入时,所有的非重复数据块可能被存入不同的数据容器,在这种情况下,若存在若干个重复数据块处于不同的源数据容器中,则需要确定其对应的完整数据是否为同一个,若是同一个,则可以将其存入一个第一新增容器,否则需要存入若干个第一新增容器。
在完成重复数据块的迁移之后,目标数据块中可能还存在不是重复数据块的非重复数据块,在这种情况下,还需要将非重复数据块存入对应的第二新增容器。第二新增容器是指在目标数据块中存在重复数据块的情况下,用于存储非重复数据块的数据容器,其数量可以为一个或多个。在将费重复数据块存储完毕后,即可确定完成了对目标数据块的存储。
S104:将目标数据块存入第三新增容器。
若目标数据块中不存在非重复数据块,则说明所有目标数据块都无法通过重删去除。在这种情况下,可以直接将目标数据块存入第三新增容器。第三新增容器是指在目标数据块中不存在重复数据块的情况下,用于存储非重复数据块的数据容器,其数量同样可以为一个或多个。
需要说明的是,第一、第二和第三新增容器可以为预先构建好的空白数据容器,在需要存入数据时直接调用;或者可以为实时构建的空白数据容器。,此外,第一数据容器在某些场景下还可以为重复数据块原本所处的源数据容器。例如当源数据容器中仅存储有重复数据块,而不存在任何目标数据不包括的其他数据块时,可以将源数据容器标记为第一新增容器,无需进行真正的数据迁移。此时,对重复数据块进行迁移的过程实际上是源数据容器到第一新增容器的身份转变过程。
S105:建立新增容器与目标数据之间的目标容器对应关系。
需要说明的是,本实施例中的新增容器可以为第一新增容器和第二新增容器,或者可以为第三新增容器。在将目标数据块存入完毕后,通过建立新增容器与目标数据之间的对应关系,即目标容器对应关系,可以在后续基于目标容器对应关系进行准确地数据恢复。目标容器对应关系的具体形式不做限定,其具体为目标数据的身份信息(例如数据名称、数据序号等)与新增容器的身份信息(例如容器编号、容器存储路径等)之间的对应关系。由于目标容器对应关系记录的新增容器中仅存储了目标数据块,而不存在任何与目标数据无关的其他数据,因此在进行数据恢复时,可以只读出需要的数据块而不附带任何其他数据,避免出现读放大现象,提高了数据读取速度。
应用本申请实施例提供的数据存储方法,在对目标数据进行存储时,先对其进行拆分得到多个目标数据块,并判断各个目标数据块是否已经被存入,即是否为已经被存储的重复数据块。若目标数据块中不存在重复数据块,则说明其均为新增的数据块,因此可以直接将其存入第三新增容器。若目标数据块中存在重复数据块,则说明目标数据中的部分内容已经被存储过,这些重复数据块在多个版本的数据中均存在,在这种情况下,可以将重复数据块从原本所处的源数据容器中迁出,迁入新增的第一新增容器。通过迁移重复数据块,可以将重复数据块与原本存储在一起的历史数据块分离,进而在读取重复数据块时可以单独将其读出,不会顺带读出其他不需要的数据。此外,还可以将目标数据块中的非重复数据块存入第二新增容器。当所有目标数据块均存储完毕后,建立新增容器与目标数据之间的对应关系,即目标容器对应关系。目标容器对应关系可以表明目标数据块存储于哪些容器,通过建立目标容器对应关系,可以在后续基于其进行数据读取。当新增容器为第三新增容器时,由于第三新增容器中仅存储了全部的目标数据块,因此可以直接读出全部目标数据块且不附带其他数据。当新增容器为第一新增容器和第二新增容器时,由于第一新增容器中仅存储了目标数据涉及到的重复数据块,第二新增容器中仅存储了目标数据中的非重复数据块,因此基于目标容器对应关系读出数据时,可以将读出全部的目标数据块且不附带任何其他数据。通过在检测到重复数据块时将其从源数据容器中迁出并建立新增容器与目标数据之间的目标容器对应关系,可以将各个数据块按照其生命周期进行排列。在进行数据读取时,可以只读出需要的数据块而不附带任何其他数据,避免出现读放大现象,提高了数据读取速度,尽可能地发挥存储设备的吞吐性能。
基于上述实施例,后续本实施例将对上述实施例中的若干步骤或新增步骤进行具体的阐述。其中,在一种具体的实施方式中,目标数据可能为最先存入的数据,在这种情况下,对其进行重复数据块的判断则没有任何意义,造成计算资源的浪费。为了解决上述问题,在判断目标数据块中是否存在已经被存储的重复数据块之前,还可以包括如下步骤:
步骤11:判断是否存在历史版本数据。
步骤12:若不存在,则将目标数据块存入第四新增容器。
步骤13:若存在,则确定执行判断目标数据块中是否存在已经被存储的重复数据块的步骤。
在一种实施方式中,数据重删和恢复的范围为整个存储系统。此时,历史版本数据即为目标数据存入前整个存储系统中已经被存入的数据。在另一宗实施方式中,数据重删和恢复的范围涉及存储系统中不同的存储范围,不同存储范围内的数据分别进行重删和恢复。在这种情况下,历史版本数据即为目标数据存入前数据存储范围内已经被存入的数据。若不存在历史版本数据,则无需进行重复数据块的判断,可以直接将目标数据块存入第四新增容器。若存在历史版本数据,则说明可能存在重复数据块,因此可以确定需要执行判断目标数据块中是否存在已经被存储的重复数据块的步骤。
本实施例并不限定判断是否存在历史版本数据的判断方式,在一种实施方式中,可以判断与目标数据相对应的写入请求中是否存在历史版本信息,历史版本信息是指与目标数据对应的历史版本数据的身份信息。若不存在历史版本信息,则确定不存在历史版本数据。在另一种实施方式中,还可以确定目标数据对应的存储范围,并通过判断该存储范围内是否存在数据来判断是否存在历史版本数据。
基于上述实施例,在一种实施方式中,为了提高重复数据块的检测速度,进而提高数据存储速度,可以利用指纹索引检测重复数据块。此时,判断所述目标数据块中是否存在已经被存储的重复数据块的过程具体可以包括如下步骤:
步骤21:确定目标数据对应的历史版本信息,并利用历史版本信息得到对应的历史指纹索引。
需要说明的是,历史版本信息是指历史指纹索引对应的版本信息,通过采用不同版本的历史指纹索引,同样可以起到控制重删范围的效果。例如在一种实施方式中,新存储的数据都是在已存储的数据上进行更新得到的,在这种情况下,历史版本信息可以指向记录了目标数据存入之前,最新存入的历史数据对应的数据块指纹的指纹索引;或者可以指向记录了目标数据存入之前,所有已存入的历史数据对应的数据块指纹的指纹索引。本实施例并不限定历史版本信息的获取方式,例如可以从与目标数据相对应的写入请求中获取历史版本信息。
步骤22:生成各个目标数据块分别对应的数据块指纹,并判断历史指纹索引中是否存在数据块指纹。
本实施例并不限定数据块指纹的具体形式,可以采用任意指纹算法得到数据块指纹。需要说明的是,为了保证重删的效果,指纹算法在被确定后应当保持不变。
步骤23:若存在数据块指纹,则确定存在重复数据块。
步骤24:若不存在数据块指纹,则确定不存在重复数据块。
通过指纹的比对,可以快速判断两个数据块的内容是否相同,进而快速判断目标数据块中是否存在重复数据块。
可以理解的是,目标数据存储完毕后,同样需要生成其对应的指纹索引,为后续重删提供依据。因此在将目标数据存储完毕后,还可以包括如下步骤:
步骤31:基于历史指纹索引,利用非重复数据块对应的目标数据块指纹进行索引生成处理,得到目标数据对应的新增指纹索引。
步骤32:建立并存储目标数据的新增版本信息和新增指纹索引之间的对应关系。
由于重复数据块的指纹索引已经被记录在历史指纹索引中,因此无需再次计算重复数据块的指纹。在得到非重复数据块的目标数据块指纹后,基于历史指纹索引进行索引生成处理,即从中提取部分数据,与目标数据块索引共同构成新增指纹索引。目标数据对应的版本信息即为新增版本信息,建立新增版本信息与新增指纹索引之间的对应关系并存储,为后续重删提供依据。
基于上述实施例,在一种实施方式中,当源数据容器中仅存储有重复数据块,而不存在任何目标数据不包括的其他数据块时,可以通过对数据容器进行身份转换完成数据迁移,提高数据迁移速度。将各个重复数据块分别从源数据容器迁移至若干个第一新增容器中存储的过程可以包括如下步骤:
步骤41:判断源数据容器中是否仅包括重复数据块。
在进行数据迁移时,先判断重复数据块所处的源数据容器中是否仅仅存储了重复数据块,即判断其中是否还存在其他数据。在一种可能的情况中,源数据容器中仅存在重复数据块而不存在其他数据。
步骤42:若不仅包括重复数据块,则将处于同一个源数据容器的重复数据块迁移至同一个第一新增容器。
若不仅包括重复数据块,即还包括其他数据块,为了对重复数据块的生命周期进行更新,需要将其与其他数据块进行分离并单独存储。同一个源数据容器中可能存在不止一个重复数据块,为了减少数据容器的数量,进而减少容器对应关系的复杂程度,可以将处于同一个源数据容器的重复数据块迁移至同一个第一新增容器。需要说明的是,处于不同源数据容器的重复数据块不能被存储于同一个第一新增容器。
步骤43:建立第一新增容器与目标历史版本数据之间的历史容器对应关系。
其中,目标历史版本数据为源数据容器对应的历史版本数据。由于目标版本历史数据中同样存在重复数据块,而将重复数据块迁移后,目标版本历史数据对应的历史容器对应关系则无法覆盖到重复数据块。为了能够进行正常的数据恢复,需要建立第一新增容器和目标历史版本数据之间的历史容器对应关系,即将第一新增容器和目标历史版本数据之间的对应关系添加至原本的历史容器对应关系中,实现对历史容器对应关系的更新。利用更新后的历史容器对应关系可以准确的进行目标历史版本数据的恢复。
步骤44:若仅包括重复数据块,则将源数据容器确定为第一新增容器。
若仅包括重复数据块,若利用空白的第一新增容器进行数据迁移,则将重复数据块迁移到空白的第一新增容器后,源数据容器则变为空白容器,数据迁移后的第一新增容器与数据迁移前的源数据容器的状态相同,且还需要更新目标历史版本数据对应的历史容器对应关系。但是事实上,源数据容器本身即可作为第一新增容器,无需对重复数据块进行迁移。在这种情况下,可以直接将源数据容器确定为第一新增容器,只需要将第一新增容器设置为源数据容器,例如将第一新增容器的序号设置为源数据容器,则对于目标数据来说,既可以认为已经完成了重复数据块的迁移,减少了数据存储所需的时间。
基于上述实施例,在一种实施方式中,对目标数据进行恢复的过程可以包括如下步骤:
步骤51:若检测到目标数据对应的目标读取指令,则获取目标容器对应关系。
步骤52:根据目标容器对应关系读取新增容器,并利用新增容器中的目标数据块组成目标数据。
目标读取指令是指用于读取目标数据的指令,其具体形式不做限定。在得到针对目标数据的读取指令(即目标读取指令)后,可以获取目标容器对应关系。基于上述实施例的描述可知,目标容器对应关系记录了目标数据与存储有目标数据块的数据容器之间的对应关系,因此可以利用其读取新增容器,并利用其中的目标数据块组成目标数据。本实施例并不限定目标数据的具体组成方式,在一种实施方式中,对目标数据进行拆分时得到各个目标数据块之间的顺序关系,在生成目标容器对应关系时同时将数据块顺序关系加入。在读出时,可以利用该数据块顺序关系对各个目标数据块进行拼接,得到目标数据。
基于上述实施例,存在以下可能的实施场景:每次存入的新的目标数据均在上一版本数据的基础上进行修改,在这种情况下,每个目标数据均对应的历史版本数据即为上一次存入的数据。在这种场景下,可能会需要将某一个已经存入系统的数据(即历史版本数据)删除,而历史版本数据中的部分数据块可能需要用于参与其他数据的恢复。为了避免删除了其他数据所需的数据块,相关技术引入了垃圾回收机制,在每次进行删除时判断被删除数据中的数据块是否被其他数据使用,并在确定某一数据块单独属于被删除数据时才将其删除。然而,垃圾回收机制下的数据删除过程需要大量时间进行删除判断,效率较低。为了解决上述问题,本申请提供的数据存储方法还可以包括如下步骤:
步骤61:确定目标数据对应的历史版本数据,并确定历史版本数据对应的非重复历史数据块。
可以理解的是,在删除某一版本的数据时,仅删除其独有的数据块即可,而在本实施例的场景下,一个版本数据独有的数据块即为与历史版本数据不同,且与下一次存入的目标数据也不同的数据块。
非重复历史数据块,是指历史版本数据在存入时确定的非重复数据块,因此可以确定,非重复历史数据块为历史版本数据的上一版本数据所不具有的数据块。本实施例并不限定确定非重复历史数据块的具体方式,例如可以在每次存入数据时,对其中的非重复数据块进行记录,例如可以记录非重复数据块所处的第二新增容器或第三新增容器对应的容器序号,或者可以记录各个非重复数据块的数据块指纹。
步骤62:将目标数据中不存在的非重复历史数据块确定为目标历史数据块,并将存储有目标历史数据块的数据容器确定为历史版本数据对应的归档容器。
在确定非重复历史数据块后,将其与目标数据块进行比对,将不属于目标数据块的非重复历史数据块确定为目标历史数据块。由于目标历史数据块为历史版本数据的上一版本数据所不具有的数据块,且其在目标数据(即历史版本数据的下一版本数据)中也不出现,因此可以确定,目标历史数据块是历史版本数据所独有的数据块。由于进行了重复数据块迁移,因此存储有目标历史数据块的数据容器中必然仅存储有目标历史数据块,此时,可以将该数据容器称为归档容器,步骤61和步骤62的过程也可以称为数据块的归档。
步骤63:若检测到目标历史版本数据对应的删除指令,则删除目标历史版本数据对应的目标归档容器。
删除指令用于指定被删除的历史版本数据,即目标历史版本数据。在删除目标历史版本数据时,仅删除其独有的数据块即可,而其对应的目标归档容器中存储了其独有的数据块,因此删除目标历史版本数据对应的目标归档容器即可完成对目标历史版本数据的删除。该方法在删除时,直接根据目标历史版本数据与目标归档容器之间的对应关系删除目标归档容器即可,无需利用垃圾回收机制进行是否需要删除某一数据块的判断,提高了数据删除的效率。
基于上述实施例,请参考图2,图2为本申请实施例提供的一种具体的数据存储方法流程图,其具体为在数据备份的场景下进行的数据存储,每次存入的新的目标数据均在上一版本数据的基础上进行修改。在本实施例中,目标数据即为需要备份的对象,在进行备份存储时,将该对象进行分块和指纹计算,并基于版本分离的指纹索引,利用计算得到的数据块指纹进行重复检测,判断是否存在重复数据块。在确定重复数据块和非重复数据块后,对前一个版本的数据布局进行调整,即进行重复数据块的迁移和非重复数据块的存入,得到现版本的数据布局。同时生成文件谱,用于记录目标容器对应关系。
进一步的,请参考图3,图3为本申请实施例提供的另一种具体的数据存储方法流程图。以连续对版本1、版本2和版本3共三个版本的数据进行重删的过程为例,对整个数据存储过程进行详细说明。数据处理的过程分别是在图3中的①②③④⑤共五个步骤。步骤①是版本1的存入和在线重删过程。由于当前只有一个版本的数据被保存,因此剑气全部存入,得到活跃的块类(1,1)的数据布局,无需进行离线整理过程。步骤②是版本2的存入和在线重删过程,在这个过程中,会识别出重复数据块和版本2中独有的数据块(即非重复数据块),并将非重复数据块进行但单独保存(即存入第二新增容器,具体为活跃的块类(2,2))。在存入版本2中独有的数据块后,开始步骤③离线整理过程。在这个过程中,版本1数据里被版本2所共有的数据块(即重复数据块)被迁移到了一个新的数据容器(即第一新增容器,具体为活跃的块类(1,2))中,其他的数据块则被归档到归档卷(即归档容器,具体为块类(1,1))中。然后开始步骤④,版本3的存入和在线重删过程,同样是将版本3的独有数据块进行单独保存(存入了活跃的块类(3,3)),最后开始步骤⑤离线整理过程,所有未被归档的数据块中与版本3共享的被分别迁入新的数据容器(即活跃的块类(2,3)和活跃的块类(1,3)),而剩下的数据块则被按顺序放入归档卷(即块类(2,2))中。
请参考图4,图4为本申请实施例提供的一种数据容器分布示意图。其具体即为上述数据存储过程完毕后得到的数据容器分布情况,同时还记录了相关技术得到的数据容器分布情况。可以看出,若采用相关技术进行数据存储,在重建版本3数据时,那么需要将数据容器1、数据容器2、数据容器3和数据容器5全都读取出来,才能够获取所有所需的数据块。在这个过程中,会有大量不需要的数据块也被读取,这种现象被称为“读放大”,使得数据恢复过程性能底下。而采用本申请提供的数据存储方式存储数据后,同样重建版本3数据,只需要读取数据容器1、数据容器4和数据容器5,读出的数据不包含任何不需要的数据,不会产生任何读放大。
下面对本申请实施例提供的数据存储装置进行介绍,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照。
请参考图5,图5为本申请实施例提供的一种数据存储装置的结构示意图,包括:
拆分模块110,用于获取并拆分目标数据,得到多个目标数据块;
重复判断模块120,用于判断目标数据块中是否存在已经被存储的重复数据块;
第一存储模块130,用于若存在重复数据块,则将各个重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将目标数据块中的非重复数据块存入第二新增容器;
第二存储模块140,用于若不存在重复数据块,则将目标数据块存入第三新增容器;
关系建立模块150,用于建立新增容器与目标数据之间的目标容器对应关系;新增容器为第一新增容器和第二新增容器,或者为第三新增容器。
可选地,重复判断模块120,包括:
指纹索引确定单元,用于确定目标数据对应的历史版本信息,并利用历史版本信息得到对应的历史指纹索引;
指纹判断单元,用于生成各个目标数据块分别对应的数据块指纹,并判断历史指纹索引中是否存在数据块指纹;
第一判定单元,用于若存在数据块指纹,则确定存在重复数据块;
第二判定单元,用于若不存在数据块指纹,则确定不存在重复数据块。
可选地,还包括:
索引生成模块,用于基于历史指纹索引,利用非重复数据块对应的目标数据块指纹进行索引生成处理,得到目标数据对应的新增指纹索引;
对应关系建立模块,用于建立并存储目标数据的新增版本信息和新增指纹索引之间的对应关系。
可选地,还包括:
非重复历史数据块确定模块,用于确定目标数据对应的历史版本数据,并确定历史版本数据对应的非重复历史数据块;
归档容器确定模块,用于将目标数据中不存在的非重复历史数据块确定为目标历史数据块,并将存储有目标历史数据块的数据容器确定为历史版本数据对应的归档容器;
删除模块,用于若检测到目标历史版本数据对应的删除指令,则删除目标历史版本数据对应的目标归档容器。
可选地,第一存储模块130,包括:
容器内容判断单元,用于判断源数据容器中是否仅包括重复数据块;
迁移单元,用于若不仅包括重复数据块,则将处于同一个源数据容器的重复数据块迁移至同一个第一新增容器;
历史容器对应关系更新单元,用于建立第一新增容器与目标历史版本数据之间的历史容器对应关系;目标历史版本数据为源数据容器对应的历史版本数据;
第一新增容器身份确定单元,用于若仅包括重复数据块,则将源数据容器确定为第一新增容器。
可选地,包括:
关系获取模块,用于若检测到目标数据对应的目标读取指令,则获取目标容器对应关系;
容器读取模块,用于根据目标容器对应关系读取新增容器,并利用新增容器中的目标数据块组成目标数据。
可选地,还包括:
历史判断模块,用于判断是否存在历史版本数据;
直接存入模块,用于若不存在,则将目标数据块存入第四新增容器;
相应的,重复判断模块120为确定存在历史版本数据后,判断目标数据块中是否存在已经被存储的重复数据块的模块。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的数据存储方法可相互对应参照。
请参考图6,图6为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的数据存储方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的数据存储方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的数据存储方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的数据存储方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据存储方法,其特征在于,包括:
获取并拆分目标数据,得到多个目标数据块;
判断所述目标数据块中是否存在已经被存储的重复数据块;
若存在所述重复数据块,则将各个所述重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将所述目标数据块中的非重复数据块存入第二新增容器;
若不存在所述重复数据块,则将所述目标数据块存入第三新增容器;
建立新增容器与所述目标数据之间的目标容器对应关系;所述新增容器为所述第一新增容器和所述第二新增容器,或者为所述第三新增容器。
2.根据权利要求1所述的数据存储方法,其特征在于,所述判断所述目标数据块中是否存在已经被存储的重复数据块,包括:
确定所述目标数据对应的历史版本信息,并利用所述历史版本信息得到对应的历史指纹索引;
生成各个所述目标数据块分别对应的数据块指纹,并判断所述历史指纹索引中是否存在所述数据块指纹;
若存在所述数据块指纹,则确定存在所述重复数据块;
若不存在所述数据块指纹,则确定不存在所述重复数据块。
3.根据权利要求2所述的数据存储方法,其特征在于,还包括:
基于所述历史指纹索引,利用所述非重复数据块对应的目标数据块指纹进行索引生成处理,得到所述目标数据对应的新增指纹索引;
建立并存储所述目标数据的新增版本信息和所述新增指纹索引之间的对应关系。
4.根据权利要求1所述的数据存储方法,其特征在于,还包括:
确定所述目标数据对应的历史版本数据,并确定所述历史版本数据对应的非重复历史数据块;
将所述目标数据中不存在的非重复历史数据块确定为目标历史数据块,并将存储有所述目标历史数据块的数据容器确定为所述历史版本数据对应的归档容器;
若检测到目标历史版本数据对应的删除指令,则删除所述目标历史版本数据对应的目标归档容器。
5.根据权利要求1所述的数据存储方法,其特征在于,所述将各个所述重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,包括:
判断所述源数据容器中是否仅包括所述重复数据块;
若不仅包括所述重复数据块,则将处于同一个所述源数据容器的所述重复数据块迁移至同一个所述第一新增容器;
建立所述第一新增容器与目标历史版本数据之间的历史容器对应关系;所述目标历史版本数据为所述源数据容器对应的历史版本数据;
若仅包括所述重复数据块,则将所述源数据容器确定为所述第一新增容器。
6.根据权利要求1所述的数据存储方法,其特征在于,所述目标数据的读取过程,包括:
若检测到所述目标数据对应的目标读取指令,则获取所述目标容器对应关系;
根据所述目标容器对应关系读取所述新增容器,并利用所述新增容器中的所述目标数据块组成所述目标数据。
7.根据权利要求1所述的数据存储方法,其特征在于,在判断所述目标数据块中是否存在已经被存储的重复数据块之前,还包括:
判断是否存在历史版本数据;
若不存在,则将所述目标数据块存入第四新增容器;
若存在,则确定执行判断所述目标数据块中是否存在已经被存储的重复数据块的步骤。
8.一种数据存储装置,其特征在于,包括:
拆分模块,用于获取并拆分目标数据,得到多个目标数据块;
重复判断模块,用于判断所述目标数据块中是否存在已经被存储的重复数据块;
第一存储模块,用于若存在所述重复数据块,则将各个所述重复数据块分别从源数据容器迁移至若干个第一新增容器中存储,并将所述目标数据块中的非重复数据块存入第二新增容器;
第二存储模块,用于若不存在所述重复数据块,则将所述目标数据块存入第三新增容器;
关系建立模块,用于建立新增容器与所述目标数据之间的目标容器对应关系;所述新增容器为所述第一新增容器和所述第二新增容器,或者为所述第三新增容器。
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的数据存储方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据存储方法。
CN202110460957.4A 2021-04-27 2021-04-27 一种数据存储方法、装置、电子设备及可读存储介质 Active CN113076068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110460957.4A CN113076068B (zh) 2021-04-27 2021-04-27 一种数据存储方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110460957.4A CN113076068B (zh) 2021-04-27 2021-04-27 一种数据存储方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113076068A true CN113076068A (zh) 2021-07-06
CN113076068B CN113076068B (zh) 2022-10-21

Family

ID=76618918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110460957.4A Active CN113076068B (zh) 2021-04-27 2021-04-27 一种数据存储方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113076068B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090125A (zh) * 2017-11-14 2018-05-29 西北工业大学 一种非查询式的重复数据删除方法及装置
CN109407985A (zh) * 2018-10-15 2019-03-01 郑州云海信息技术有限公司 一种数据管理的方法以及相关装置
US10503717B1 (en) * 2014-12-30 2019-12-10 EMC IP Holding Company LLC Method for locating data on a deduplicated storage system using a SSD cache index
US20200250080A1 (en) * 2017-10-25 2020-08-06 Huawei Technologies Co., Ltd. Data Read/Write Method and Apparatus, and Storage Server
CN111708497A (zh) * 2020-06-19 2020-09-25 汪礼君 一种基于hdfs的云环境数据存储优化方法
CN111767289A (zh) * 2020-09-02 2020-10-13 成都四方伟业软件股份有限公司 一种基于内存数据库的数据存储方法及装置
CN112684975A (zh) * 2019-10-17 2021-04-20 华为技术有限公司 一种数据存储方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503717B1 (en) * 2014-12-30 2019-12-10 EMC IP Holding Company LLC Method for locating data on a deduplicated storage system using a SSD cache index
US20200250080A1 (en) * 2017-10-25 2020-08-06 Huawei Technologies Co., Ltd. Data Read/Write Method and Apparatus, and Storage Server
CN108090125A (zh) * 2017-11-14 2018-05-29 西北工业大学 一种非查询式的重复数据删除方法及装置
CN109407985A (zh) * 2018-10-15 2019-03-01 郑州云海信息技术有限公司 一种数据管理的方法以及相关装置
CN112684975A (zh) * 2019-10-17 2021-04-20 华为技术有限公司 一种数据存储方法及装置
CN111708497A (zh) * 2020-06-19 2020-09-25 汪礼君 一种基于hdfs的云环境数据存储优化方法
CN111767289A (zh) * 2020-09-02 2020-10-13 成都四方伟业软件股份有限公司 一种基于内存数据库的数据存储方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贺秦禄等: "移动闪存的重复数据删除技术", 《西安电子科技大学学报》 *

Also Published As

Publication number Publication date
CN113076068B (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
CN107832406B (zh) 海量日志数据的去重入库方法、装置、设备及存储介质
US11176102B2 (en) Incremental virtual machine metadata extraction
CN108460045B (zh) 一种快照的处理方法及分布式块存储系统
US20120296878A1 (en) File set consistency verification system, file set consistency verification method, and file set consistency verification program
CN109739828B (zh) 一种数据处理方法、设备及计算机可读存储介质
CN108205560B (zh) 一种数据同步方法以及装置
US11593315B2 (en) Data cluster migration using an incremental synchronization
US11514010B2 (en) Deduplication-adapted CaseDB for edge computing
US9940066B2 (en) Snapshot management in hierarchical storage infrastructure
US10114579B2 (en) Data migration tool with intermediate incremental copies
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
CN117369731B (zh) 一种数据的缩减处理方法、装置、设备及介质
CN113076068B (zh) 一种数据存储方法、装置、电子设备及可读存储介质
CN111176901B (zh) 一种hdfs删除文件恢复方法、终端设备及存储介质
CN110543485B (zh) 一种基于快照的区块链预约归档方法
CN116226681A (zh) 一种文本相似性判定方法、装置、计算机设备和存储介质
JP2016122485A (ja) 情報記録プログラム、情報記録方法、および情報記録装置
CN111984600B (zh) 一种文件聚合方法、装置、设备及可读存储介质
CN114896641A (zh) 数据校验方法、装置、电子设备及计算机可读存储介质
CN110222105B (zh) 数据汇总处理方法及装置
CN111125012A (zh) 一种快照生成方法、装置、设备及可读存储介质
US20190303359A1 (en) Custom object paths for object storage management
CN110569231A (zh) 数据迁移方法、装置、设备和介质
JPWO2020065778A1 (ja) 情報処理装置、制御方法、及びプログラム
CN114138198B (zh) 一种数据重删的方法、装置、设备及可读介质

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