CN115543979A - 重复数据的删除方法、装置、设备、存储介质和程序产品 - Google Patents
重复数据的删除方法、装置、设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN115543979A CN115543979A CN202211200405.0A CN202211200405A CN115543979A CN 115543979 A CN115543979 A CN 115543979A CN 202211200405 A CN202211200405 A CN 202211200405A CN 115543979 A CN115543979 A CN 115543979A
- Authority
- CN
- China
- Prior art keywords
- data
- group
- fingerprint
- quotient
- block
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种重复数据的删除方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的;依次将各组的指纹作为目标指纹;若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。采用本方法能够有效提高备份时的重复数据删除率。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种重复数据的删除方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在对数据文件进行备份的时候,需要对其进行重复数据删除,能压缩备份的文件大小以节省存储空间。在以数据块为单位进行重复数据删除的过程中,通过将所需备份数据块的指纹和指纹数据库里的指纹进行对比,就能确定所需备份数据块里的数据是否为重复数据,并对重复数据进行删除。为了降低指纹数据库中存储的指纹条数,可以将多个数据块划分为一组,然后根据每组数据块的指纹进行重复数据删除。
但是,在传统的分组方式中,每组的数据块的数量是固定的,如果存在数据块不连续的情况,就会出现分块偏移的问题,导致数据文件中的重复数据被确定为非重复数据,从而导致备份时的重复数据删除率下降。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决分块偏移问题的重复数据的删除方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
本申请提供了一种重复数据的删除方法,该方法包括:
对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的;
依次将各组的指纹作为目标指纹;
若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;
若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。
本申请还提供了一种重复数据的删除装置,该装置包括:
数据块分组模块,用于对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;依次将各组的指纹作为目标指纹;其中,每次求商所用的除数是一样的;
重复数据删除模块,用于若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;
非重复数据存储模块,用于若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。
本申请还提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的;
依次将各组的指纹作为目标指纹;
若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;
若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的;
依次将各组的指纹作为目标指纹;
若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;
若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。
本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的;
依次将各组的指纹作为目标指纹;
若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;
若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。
上述重复数据的删除方法、装置、计算机设备、存储介质和计算机程序产品,在对数据文件进行备份的时候,对多个数据块的块号进行求商,根据求得的商对数据块进行分组,并依次根据各组数据块的指纹,确定各组数据块里的数据是否为重复数据,不存储所确定的重复数据,存储所确定的非重复数据。通过上述方法,对数据流中的数据块进行了分组,降低了指纹条数,节省了存储空间,并且按照块号的求商结果,对数据块进行分组,使得数据块能够被合理划分,避免了对数据流进行分块时出现的分块偏移问题,从而在备份时有效提高了重复数据删除率。
附图说明
图1为一个实施例中重复数据的删除的方法的流程示意图;
图2为一个实施例中确定除数的步骤的流程示意图;
图3为另一个实施例中重复数据的删除的方法的流程示意图;
图4为一个实施例中重复数据的删除的装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种重复数据的删除方法,以该方法应用于计算机设备进行说明,包括以下步骤:
步骤S101,对数据文件进行备份的时候,对所述数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的。
数据备份是指为防止数据文件丢失、损坏或对数据文件进行及时更新,而将原来存储的数据文件进行复制、处理并生成新的数据文件进行存储的过程。数据备份的策略,即确定所需备份的内容、备份时间及备份方式,主要包括完全备份和增量备份等。不同备份策略下,所需备份的数据文件内容不同。完全备份是对数据文件中已使用的数据进行备份,而增量备份是对数据文件中自上次备份以来新增的或被修改过的数据进行备份。所需备份的数据文件内容被称为有效数据。
在对数据文件基于数据块大小进行备份的时候,所需备份的数据文件内容将按照有效数据流的方式进行读取,需要先将有效数据流划分为多个数据块。每个数据块的块号不同,连续的数据块的块号也连续,而不连续的数据块之间的块号不连续。
具体的,本方案通过固定大小的除数对数据块的块号进行求商处理,并根据各数据块求得的商的不同,将各数据块划分到不同的组。将同组内的数个数据块作为一个整体,计算得到各组的指纹。其中,除数的大小是预设的,其在每次求商过程中数值不会发生改变。
步骤S102,依次将各组的指纹作为目标指纹。
具体的,由于数据文件中的数据块,是按照数据流的方式,即按照一定顺序,进行读取。同理,对于多个数据块的分组也是按一定顺序进行的。因此,在完成数据块的一个分组后,便可计算得到该组数据块的指纹,并将该指纹作为目标指纹。
步骤S103,若指纹数据库所存的其中一个指纹与所述目标指纹相同,则确定所述目标指纹对应组内的数据块里的数据为重复数据,不存储所述重复数据。
具体的,指纹数据库中存有当前数据库中已存储的全部数据对应的全部指纹,若得到的目标指纹与指纹数据库中所存的一个指纹相同,则表明目标指纹对应组内的数据块里的数据与该指纹在当前数据库中对应的数据相同,便可确定目标指纹对应组内的数据块里的数据为重复数据。不存储该重复数据,便可保证数据库中已存储数据的唯一性,即实现对重复数据的删除。
步骤S104,若指纹数据库所存的指纹均与所述目标指纹不同,则确定所述目标指纹对应组内的数据块里的数据为非重复数据,存储所述非重复数据,并将所述目标指纹存储到所述指纹数据库。
具体的,若得到的目标指纹与指纹数据库中所存的指纹均不相同,则表明当前数据库中已存储的全部数据中不包含目标指纹对应组内的数据块里的数据,便可确定目标指纹对应组内的数据块里的数据为非重复数据。存储该非重复数据,并将目标指纹存储到指纹数据库中,便可实现对非重复数据文件的备份。
示例性的,假设有效数据流中的一段数据包含15个数据块,其块号为0~6、8~15。
若用本申请提供的方式进行分组,以除数为4对数据块的块号进行求商,对这15个数据块进行分组,且指纹数据库中包括指纹A、B,具体为:
首先,按顺序对数据块0~3的块号进行求商,由于其求商结果均为0,将数据块0~3分到第一组,根据数据块0~3里的数据,计算得到第一组的指纹A。将指纹A作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中包括指纹A,因此确认第一组中数据块0~3里的数据为重复数据,不存储数据块0~3。
其次,按顺序对数据块4~6的块号进行求商,由于其求商结果均为1,将数据块4~6分到第二组,根据数据块4~6里的数据,计算得到第二组的指纹C。将指纹C作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中不包括指纹C,因此确认第二组中数据块4~6里的数据为非重复数据,存储数据块4~6,并存储指纹C到指纹数据库中。
其中,虽然第一组和第二组中数据块的数量不同,但计算得到的指纹A和指纹C的长度是相同的。
然后,按顺序对数据块8~11的块号进行求商,由于其求商结果均为2,将数据块8~11分到第三组,根据数据块8~11里的数据,计算得到第三组的指纹B。将指纹B作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中包括指纹B,因此确认第三组中数据块8~11里的数据为重复数据,不存储数据块8~11。
最后,按顺序对数据块12~15的块号进行求商,由于其求商结果均为3,将数据块12~15分到第四组,根据数据块12~15里的数据,计算得到第四组的指纹A。将指纹A作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中包括指纹A,因此确认数据块12~15与数据块0~3里的数据相同,则第四组中数据块12~15里的数据为重复数据,不存储数据块12~15。
若用原有的分组方式进行分组,每组包含四个数据块,对这15个数据块进行分组,且指纹数据库中包括指纹A、B,具体为:
首先,按顺序将数据块0~3分到第一组,根据数据块0~3里的数据,计算得到第一组的指纹A。将指纹A作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中包括指纹A,因此确认第一组中数据块0~3里的数据为重复数据,不存储数据块0~3。
其次,按顺序将数据块4、5、6和8分到第二组,根据数据块4、5、6和8里的数据,计算得到第二组的指纹D。将指纹D作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中不包括指纹D,因此确认第二组中数据块4、5、6和8里的数据为非重复数据,存储数据块4、5、6和8,并存储指纹D到指纹数据库中。
然后,按顺序将数据块9~12分到第三组,根据数据块9~12里的数据,计算得到第三组的指纹E。将指纹E作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中不包括指纹E,因此确认第三组中数据块9~12里的数据为非重复数据,存储数据块9~12,并存储指纹E到指纹数据库中。
对比可得,由于备份时不存在数据块7,数据块0~6和数据块8~15之间存在数据块不连续的情况,因此出现了存在分块偏移的问题,并使重复数据,即数据块8~11里的数据,被确定为了非重复数据而进行存储,从而降低了备份时的重复数据删除率。
最后,按顺序将数据块13~15以及后续的一个数据块分到第四组,根据数据块13~15以及后续的一个数据块里的数据,计算得到第四组的指纹F。将指纹F作为目标指纹,与指纹数据库所存的指纹进行比较。由于指纹数据库中不包括指纹F,因此确认第四组中数据块13~15以及后续的一个数据块里的数据为非重复数据,存储数据块13~15以及后续的一个数据块,并存储指纹F到指纹数据库中。对比可得,由于备份时出现了分块偏移的问题,数据块13~15本应为重复数据,但被确定为非重复数据。同理,对后续的数据块进行重复数据删除时,重复数据的确定也将产生错误。因此,在原有的分组方式下,分块偏移问题会降低备份时的重复数据删除率。
而本申请提供的方式,按照块号的求商结果,对数据块进行分组,即便数据块不连续,也不会出现分块偏移的问题,使得数据块能够被合理划分,从而在备份时有效提高了重复数据删除率。
在一个实施例中,如图2所示,可通过如下步骤,确定所述除数,包括:
步骤S201,获取数据块大小,以及预设的单组数据容量大小。
步骤S202,将单组数据容量大小除以所述数据块大小,将求得的值作为所述除数。
具体的,首先获取每个数据块的大小,并预设分组时所期望的单组数据容量大小,之后通过将单组数据容量大小除以所述数据块大小,得到的值即为单组最多包括的数据块的数量,最后将该值作为除数,用于对数据块的块号进行求商的过程中。
示例性的,数据块的大小一般为4KB,假设预设的单组数据容量大小为64KB,将64KB除以4KB,得到的值为16,将16作为除数用于上述对数据文件的多个数据块的块号进行求商的过程中。
本实施例中,通过数据块大小和预设的单组数据容量大小,得到在对数据块的块号进行求商的过程的除数,便于根据数据块的块号对数据块进行合理的分组,并可以通过调整除数的值,来调整单组最多包括的数据块的数量。
在一个实施例中,对所述数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,具体可以包括:按照块号从小到大的顺序,对各数据块的块号进行求商,并依次判断求得的商与当前组号是否相同;若求得的商与当前组号相同,则确定与该商对应的数据块属于当前组;若求得的商与当前组号不同,则确定当前组的划分结束,并对当前组号进行自增,进行下组的划分,以确定各数据块所属的组。
具体的,有效数据流中的多个数据块的块号按升序排列,在求商时,就按照块号从小到大的顺序,对各数据块的块号进行求商。每个组都有对应的组号。依次判断数据块的块号求得的商以及当前组号是否相同,通过将判断结果为相同的数据块划分到当前组,在判断结果为不同时,改变当前组号,并将数据块划分新的当前组号对应的下组,便可依次将有效数据流中的各数据块划分到不同的组中。
本实施例中,通过设定当前组号的方式并按照块号从小到大的顺序,能够依次将有效数据流中的各数据块划分到不同的组中。同时,防止了数据块排序混乱时对数据块分组造成严重影响,也避免了本应分入一组的数据块并未分入一组的情况的出现。
进一步地,若求得的商与当前组号相同,则在确定与该商对应的数据块属于当前组之后,计算机设备还可以执行如下步骤:将该商对应的数据块加入缓冲区。
具体的,在确定与该商对应的数据块属于当前组之后,将该商对应的数据块划分到当前组的方式是将其加入缓冲区。
若求得的商与当前组号不同,则在确定当前组的划分结束之后,计算机设备还可以执行如下步骤:根据所述缓冲区里的数据块里的数据,得到当前组的指纹,并清空所述缓冲区里的数据块,以便存储下组的数据块。
具体的,在确定当前组的划分结束之后,将对缓冲区里的数据块进行处理。根据缓冲区里的数据块里的数据,可以计算得到当前组的指纹,即当前缓冲区中数据块里的数据对应的指纹。之后将该指纹作为目标指纹进行步骤S103和S104。之后,需要重置缓冲区,即清空缓冲区里的数据块,以便存储下组的数据块,从而不断地对后续的数据块进行分组。
本实施例中,通过缓冲区暂存数据块来实现对数据块的分组,能够减少对数据库的操作次数,提高重复数据的删除方法的运行速率。
在一个实施例中,根据同组内的数据块里的数据,得到各组的指纹,具体可以包括:通过密码散列函数对同组内的数据块里的数据进行转换,得到各组的指纹。
指纹是以较小的数据表示数据块里较大的数据,其通常是对数据块里的数据进行数学运算获得的,目前常用密码散列函数的方式对数据块里的数据进行转换,以此得到数据对应的指纹。两个数据块指纹不同,则表征数据块里的数据不同。
具体的,在完成一组数据块的划分后,便需要根据该组内的数据块里的数据,计算得到出该组数据块中的数据对应的指纹,转换计算是通过密码散列函数来进行的。
示例性的,采用MD5或SHA-1等密码散列函数可以将不同大小(4KB、8KB、16KB等)数据都转换为128B的指纹。
本实施例中,通过密码散列函数计算出各组的指纹,便于根据指纹数据所存的指纹,查找出各组中的重复数据。
在一个实施例中,若指纹数据库所存的其中一个指纹与所述目标指纹相同,则在确定所述目标指纹对应组内的数据块里的数据为重复数据,不存储所述重复数据之后,还包括:存储所述重复数据的指针,以根据所述指针复现所述备份的数据块。
具体的,在确定目标指纹对应组内的数据块里的数据为重复数据,不存储所述重复数据之后,还需要存储在数据库中的重复数据的指针,以在后续读取该备份的数据文件时,根据指针读取出所备份的数据块。
示例性的,若数据库中包含有数据块0~3里的数据,指纹数据库中包含有指纹A。将数据块0~3分为第一组后,根据数据块0~3里的数据,计算得到第一组的指纹A。由于指纹A已经存在于指纹数据库中,则确定数据块0~3里的数据为重复数据,在备份时仅存储数据库中数据块0~3的指针P。在读取备份的数据文件,读取到数据块0~3时,便可仅根据该指针P,读取出数据库里的数据块0~3,从而进一步减少了备份时存储空间的使用。
本实施例中,通过存储重复数据的指针,能够根据指针读取备份的数据块,有效地减少了备份时的存储空间,并保持了备份文件的完整性。
为了更好地理解上述方法,结合附图中的图3,以下详细阐述一个本申请重复数据的删除方法的应用实例。
步骤S301,根据数据块大小以及预设的单组数据容量大小,计算出每组最多包含的数据块的数量,并确认除数为N。数据流中的数据块按块号从小到大的顺序进行排列。假设当前组号为M。
步骤S302~S305,从数据流中读取一块数据块,获取其块号Num。以N作为除数对数据块的块号Num进行求商,判断求得的商与当前组号M是否相同;若求得的商与当前组号M相同,则确定与该数据块属于当前组,将该数据块加入缓冲区,并对读取到的下一个数据块按步骤S302进行处理。
步骤S306~S308,若求得的商与当前组号M不同,则确定当前组的划分结束,并对当前组号进行自增,即M=M+1,当前组号=M。通过密码散列函数计算当前缓冲区里的数据块里的数据的指纹,判断该指纹是否存在于指纹数据库中。
步骤S309~S310,若该指纹与指纹数据库所存的其中一个指纹相同,即该指纹存在于指纹数据库中,则确定当前缓冲区里的数据块的数据为重复数据,不存储该重复数据,仅存储该指纹对应的数据在存储系统中的指针;若该指纹与指纹数据库所存的全部指针均不相同,即该指纹不存在于指纹数据库中,则确定当前缓冲区里的数据块的数据为非重复数据,存储该非重复数据,并存储该指纹到指纹数据库中,同时存储该非重复数据在存储系统中的指针。
步骤S311,清空缓冲区里的数据块,并进入步骤S304,将下一个数据块加入缓冲区,存储下组的数据块,从而不断地对数据流中的数据块进行分组处理,直到数据流中没有剩余的数据块。
本实施例中,对多个数据块的块号进行求商,根据求得的商对数据块进行分组,并依次根据各组数据块的指纹,确定各组数据块里的数据是否为重复数据,不存储所确定的重复数据,存储所确定的非重复数据,并将备份文件用指针的形式进行存储。通过上述方法,对数据流中的数据块进行了分组,降低了指纹条数,节省了存储空间,同时避免了对数据流进行分块时出现的分块偏移问题,在备份时有效提高了重复数据删除率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种重复数据的删除装置,包括:
数据块分组模块401,用于对数据文件进行备份的时候,对数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;依次将各组的指纹作为目标指纹;其中,每次求商所用的除数是一样的;
重复数据删除模块402,用于若指纹数据库所存的其中一个指纹与目标指纹相同,则确定目标指纹对应组内的数据块里的数据为重复数据,不存储重复数据;
非重复数据存储模块403,用于若指纹数据库所存的指纹均与目标指纹不同,则确定目标指纹对应组内的数据块里的数据为非重复数据,存储非重复数据,并将目标指纹存储到指纹数据库。
在一个实施例中,该装置还包括除数设置模块,用于获取数据块的大小,以及预设的单组数据容量大小;将单组数据容量大小除以数据块大小,将求得的值作为除数。
在一个实施例中,数据块分组模块401,还用于按照块号从小到大的顺序,对各数据块的块号进行求商,并依次判断求得的商与当前组号是否相同;若求得的商与当前组号相同,则确定与该商对应的数据块属于当前组;若求得的商与当前组号不同,则确定当前组的划分结束,并对当前组号进行自增,进行下组的划分,以确定各数据块所属的组。
在一个实施例中,数据块分组模块401,还用于在确定与该商对应的数据块属于当前组之后,将该商对应的数据块加入缓冲区;在确定当前组的划分结束之后,根据缓冲区里的数据块里的数据,得到当前组的指纹,并清空缓冲区里的数据块,以便存储下组的数据块。
在一个实施例中,数据块分组模块401,还用于通过密码散列函数对同组内的数据块里的数据进行转换,得到各组的指纹。
在一个实施例中,重复数据删除模块402,还用于存储重复数据的指针,以根据指针读取备份的数据块。
关于重复数据的删除装置的具体限定可以参见上文中对于重复数据的删除方法的限定,在此不再赘述。上述重复数据的删除装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据块的指纹和数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种重复数据的删除方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,处理器执行计算机程序时实现上述各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时上述各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,其上存储有计算机程序,所述计算机程序被处理器执行上述各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种重复数据的删除方法,其特征在于,所述方法包括:
对数据文件进行备份的时候,对所述数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;其中,每次求商所用的除数是一样的;
依次将各组的指纹作为目标指纹;
若指纹数据库所存的其中一个指纹与所述目标指纹相同,则确定所述目标指纹对应组内的数据块里的数据为重复数据,不存储所述重复数据;
若指纹数据库所存的指纹均与所述目标指纹不同,则确定所述目标指纹对应组内的数据块里的数据为非重复数据,存储所述非重复数据,并将所述目标指纹存储到所述指纹数据库。
2.根据权利要求1所述的方法,其特征在于,确定所述除数的步骤,包括:
获取数据块的大小,以及预设的单组数据容量大小;
将单组数据容量大小除以所述数据块大小,将求得的值作为所述除数。
3.根据权利要求1所述的方法,其特征在于,所述对所述数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,包括:
按照块号从小到大的顺序,对各数据块的块号进行求商,并依次判断求得的商与当前组号是否相同;
若求得的商与当前组号相同,则确定与该商对应的数据块属于当前组;
若求得的商与当前组号不同,则确定当前组的划分结束,并对当前组号进行自增,进行下组的划分,以确定各数据块所属的组。
4.根据权利要求3所述的方法,其特征在于,若求得的商与当前组号相同,则确定与该商对应的数据块属于当前组之后,所述方法还包括:
将该商对应的数据块加入缓冲区;
若求得的商与当前组号不同,确定当前组的划分结束之后,所述方法还包括:
根据所述缓冲区里的数据块里的数据,得到当前组的指纹,并清空所述缓冲区里的数据块,以便存储下组的数据块。
5.根据权利要求1所述的方法,其特征在于,所述根据同组内的数据块里的数据,得到各组的指纹,包括:
通过密码散列函数对同组内的数据块里的数据进行转换,得到各组的指纹。
6.根据权利要求1所述的方法,其特征在于,
若指纹数据库所存的其中一个指纹与所述目标指纹相同,则确定所述目标指纹对应组内的数据块里的数据为重复数据,不存储所述重复数据之后,所述方法还包括:
存储所述重复数据的指针,以根据所述指针复现所述备份的数据块。
7.一种重复数据的删除装置,其特征在于,所述装置包括:
数据块分组模块,用于对数据文件进行备份的时候,对所述数据文件的多个数据块的块号进行求商,根据求得的商确定各数据块所属的组,根据同组内的数据块里的数据,得到各组的指纹;依次将各组的指纹作为目标指纹;其中,每次求商所用的除数是一样的;
重复数据删除模块,用于若指纹数据库所存的其中一个指纹与所述目标指纹相同,则确定所述目标指纹对应组内的数据块里的数据为重复数据,不存储所述重复数据;
非重复数据存储模块,用于若指纹数据库所存的指纹均与所述目标指纹不同,则确定所述目标指纹对应组内的数据块里的数据为非重复数据,存储所述非重复数据,并将所述目标指纹存储到所述指纹数据库。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211200405.0A CN115543979B (zh) | 2022-09-29 | 2022-09-29 | 重复数据的删除方法、装置、设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211200405.0A CN115543979B (zh) | 2022-09-29 | 2022-09-29 | 重复数据的删除方法、装置、设备、存储介质和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115543979A true CN115543979A (zh) | 2022-12-30 |
CN115543979B CN115543979B (zh) | 2023-08-08 |
Family
ID=84731860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211200405.0A Active CN115543979B (zh) | 2022-09-29 | 2022-09-29 | 重复数据的删除方法、装置、设备、存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543979B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783873A (zh) * | 2004-12-02 | 2006-06-07 | 华为技术有限公司 | 一种数据分段级联和重组的方法 |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
CN102982180A (zh) * | 2012-12-18 | 2013-03-20 | 华为技术有限公司 | 数据存储方法及设备 |
CN103365745A (zh) * | 2013-06-07 | 2013-10-23 | 上海爱数软件有限公司 | 一种基于内容地址存储的块级备份方法及系统 |
CN103609091A (zh) * | 2013-06-24 | 2014-02-26 | 华为技术有限公司 | 一种数据传输的方法和装置 |
US20160026653A1 (en) * | 2014-07-23 | 2016-01-28 | International Business Machines Corporation | Lookup-based data block alignment for data deduplication |
CN105335530A (zh) * | 2015-12-11 | 2016-02-17 | 上海爱数信息技术股份有限公司 | 一种提升大数据块重复数据删除性能的方法 |
CN105897921A (zh) * | 2016-05-27 | 2016-08-24 | 重庆大学 | 一种结合指纹抽样和减少数据碎片的数据块路由方法 |
CN108874585A (zh) * | 2018-05-25 | 2018-11-23 | 北京极秒科技有限公司 | 文件备份方法、装置及系统 |
CN110799959A (zh) * | 2017-05-26 | 2020-02-14 | 深圳配天智能技术研究院有限公司 | 一种数据压缩方法与解压方法以及相关设备 |
CN111597178A (zh) * | 2020-05-18 | 2020-08-28 | 山东浪潮通软信息科技有限公司 | 一种清洗重复数据的方法、系统、设备及介质 |
CN112698990A (zh) * | 2021-01-04 | 2021-04-23 | 浪潮云信息技术股份公司 | 一种备份数据时在线删除重复数据的方法 |
CN113037440A (zh) * | 2021-05-25 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 数据重传处理方法、装置、计算机设备和存储介质 |
US20210342070A1 (en) * | 2020-04-29 | 2021-11-04 | EMC IP Holding Company LLC | Method, electronic device, and computer storage medium for information processing |
-
2022
- 2022-09-29 CN CN202211200405.0A patent/CN115543979B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783873A (zh) * | 2004-12-02 | 2006-06-07 | 华为技术有限公司 | 一种数据分段级联和重组的方法 |
CN102222085A (zh) * | 2011-05-17 | 2011-10-19 | 华中科技大学 | 一种基于相似性与局部性结合的重复数据删除方法 |
CN102982180A (zh) * | 2012-12-18 | 2013-03-20 | 华为技术有限公司 | 数据存储方法及设备 |
CN103365745A (zh) * | 2013-06-07 | 2013-10-23 | 上海爱数软件有限公司 | 一种基于内容地址存储的块级备份方法及系统 |
CN103609091A (zh) * | 2013-06-24 | 2014-02-26 | 华为技术有限公司 | 一种数据传输的方法和装置 |
US20160026653A1 (en) * | 2014-07-23 | 2016-01-28 | International Business Machines Corporation | Lookup-based data block alignment for data deduplication |
CN105335530A (zh) * | 2015-12-11 | 2016-02-17 | 上海爱数信息技术股份有限公司 | 一种提升大数据块重复数据删除性能的方法 |
CN105897921A (zh) * | 2016-05-27 | 2016-08-24 | 重庆大学 | 一种结合指纹抽样和减少数据碎片的数据块路由方法 |
CN110799959A (zh) * | 2017-05-26 | 2020-02-14 | 深圳配天智能技术研究院有限公司 | 一种数据压缩方法与解压方法以及相关设备 |
CN108874585A (zh) * | 2018-05-25 | 2018-11-23 | 北京极秒科技有限公司 | 文件备份方法、装置及系统 |
US20210342070A1 (en) * | 2020-04-29 | 2021-11-04 | EMC IP Holding Company LLC | Method, electronic device, and computer storage medium for information processing |
CN111597178A (zh) * | 2020-05-18 | 2020-08-28 | 山东浪潮通软信息科技有限公司 | 一种清洗重复数据的方法、系统、设备及介质 |
CN112698990A (zh) * | 2021-01-04 | 2021-04-23 | 浪潮云信息技术股份公司 | 一种备份数据时在线删除重复数据的方法 |
CN113037440A (zh) * | 2021-05-25 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 数据重传处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115543979B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886704B2 (en) | System and method for granular deduplication | |
US9778881B2 (en) | Techniques for automatically freeing space in a log-structured storage system based on segment fragmentation | |
US8898121B2 (en) | Merging entries in a deduplication index | |
US10936228B2 (en) | Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data | |
CN111125033B (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
US20120310936A1 (en) | Method for processing duplicated data | |
JPWO2003091872A1 (ja) | 並列マージソート処理装置及び方法並びにプログラム | |
CN105095027A (zh) | 一种数据备份方法及装置 | |
CN110795508A (zh) | 数据的复制方法、装置、设备和存储介质 | |
CN110618974A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN113687975A (zh) | 数据处理方法、装置、设备及存储介质 | |
US11307788B2 (en) | Sampling fingerprints in bins | |
US11468030B2 (en) | Indirect block containing references to blocks of a persistent fingerprint index | |
CN113253932B (zh) | 一种分布式存储系统的读写控制方法和系统 | |
CN111124259A (zh) | 一种基于全闪存阵列的数据压缩方法及系统 | |
CN111124940A (zh) | 一种基于全闪存阵列的空间回收方法及系统 | |
US11403020B2 (en) | Increasing sizes of buckets of a fingerprint index | |
CN112835511B (zh) | 分布式存储集群的数据写入方法、装置、设备和介质 | |
CN115543979B (zh) | 重复数据的删除方法、装置、设备、存储介质和程序产品 | |
KR20210024751A (ko) | 이종 메모리 장치를 포함하는 그래프 처리 시스템 및 그래프 처리 시스템의 동작방법 | |
CN115269558A (zh) | 数据存储方法、装置、设备、存储介质和程序产品 | |
CN108984343B (zh) | 一种基于内容分析的虚拟机备份及存储管理方法 | |
US20210133174A1 (en) | Merging buffered fingerprint index entries | |
US10191678B1 (en) | System and method for data re-protection with erasure coding | |
CN117435135B (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 |