CN110888918A - 相似数据检测方法及装置、计算机设备和存储介质 - Google Patents
相似数据检测方法及装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110888918A CN110888918A CN201911168386.6A CN201911168386A CN110888918A CN 110888918 A CN110888918 A CN 110888918A CN 201911168386 A CN201911168386 A CN 201911168386A CN 110888918 A CN110888918 A CN 110888918A
- Authority
- CN
- China
- Prior art keywords
- data block
- data
- similar
- super
- characteristic values
- 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.)
- Pending
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- 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/211—Schema design and management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种相似数据检测方法及装置,具体包括:将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。本发明能够对存在相似数据的数据块进行逐一无遗漏的检测,并且便于后续备份数据块的相似数据检测,提高了数据冗余检测能力,继而有利于数据存储和恢复读取效率。
Description
技术领域
本发明涉及数据存储技术领域,尤指一种相似数据检测方法及装置、计算机设备和存储介质。
背景技术
随着网络技术的块速发展和互联网的迅速普及,全球信息总量呈爆炸式增长。据国际数据资讯公司(IDC,International Data Corporation)预测,2020年全球信息总量将达到44ZB,之后全球信息总量将以每两年翻一番的速度继续增长。存储和传输如此海量的数据给学术界和企业界提出了挑战。IDC同时指出,备份存储系统中存在大量的冗余数据。因此,数据去重和差量压缩等冗余数据消除技术获得了越来越多的关注。
数据去重可以消除完全相同的数据块,但是无法消除相似数据块之间的冗余数据,而差量压缩可以消除相思数据块的冗余数据。给定两个相似数据块A和B,A是已经存储过的数据块,B是当前要处理的数据块,则B称为目标数据块,而A称为引用数据块;差量压缩会计算出在目标数据块B中存在而在引用数据块A中不存在的内容,称为差量块。显然,差量的大小远小于数据块B,因此可以通过存储差量块而不是目标数据块B来减少占用的存储空间。而目标数据块B可以通过对差量块和引用数据块A进行差量解码来重建。
同时,使用数据去重和差量压缩技术的备份系统会将需要存储的数据(包括数据块和差量块)封装成定长的容器(一般为4MB),并以容器为单位写入磁盘。数据恢复的时系统读取数据的单位同样是容器。数据恢复时,系统在内存中维护一个恢复缓存,所需数据块或差量块所在的容器被读取到恢复缓存中;由于容器中包含的数据块是连续写入的,因此后续数据块很可能直接在恢复缓存中找到,从而减少磁盘读取次数。
备份系统中的目标数据块的引用数据块需要通过计算来查找,这个过程叫做相似数据检测。一般来说,相似数据检测可分为三个环节:特征值计算、特征值打包和相似数据查找。传统相似数据检测方法从目标数据块中提取N个特征值,其特征值计算环节包括如下几个步骤:
(1)将目标数据块划分成N个等长的子区;
(2)采用滑动窗口技术对数据块计算哈希值,各个子区域中最小(或最大)的哈希值即为一个特征值,由此得到N个特征值。
传统相似数据检测方法的特征值打包环节将目标数据块的N个特征值打包成M个超级特征值,如果两个数据块有一个超级特征值相等,则表示两个数据块相似。传统相似数据检测方法的特征值打包环节包括如下几个步骤:
(1)将目标数据块的N个特征值划分成M个组,每个组中包含的特征值个数相等,且均匀分布于整个数据块;
(2)将每个组中的所有特征值拼接在一起,并对拼接后内容计算一个哈希函数,每个哈希值即为一个超级特征值,由此得到M个超级特征值。
例如,特征值计算环节从目标数据块中提取出9个特征值F1,F2,…,F9,打包成3个超级特征值。首先将9个超级特征值分为三组,第一组为{F1,F4,F7},第二组为{F2,F5,F8},第三组为{F3,F6,F9};然后将每个组中的所有特征值拼接在一起,并对拼接后内容计算一个SpookyHash,由此得到三个哈希值SH1,SH2和SH3,即为三个超级特征值。
在相似数据检测环节,系统中已处理过的所有数据块的超级特征值会分别组成M个查找表:T1,T2,…,TM;Ti表示所有数据块的第i个超级特征值组成的查找表,其关键码为第i个超级特征值,值为对应的数据块的存储位置或指纹值。传统相似数据检测方法的相似数据查找环节主要有两种查找方法,首次匹配法和最佳匹配法。
首次匹配法会将目标数据块的超级特征值逐个输入对应的查找表,当有一个超级特征值在对应的查找表中存在匹配时停止后续的查找,并将被匹配到的数据块视为引用数据块。如果所有超级特征值都没有找到匹配的数据块,则表示目标数据块不存在引用数据块。
最佳匹配法会将目标数据块的超级特征值逐个输入对应的查找表,输出所有匹配数据块。如果匹配数据块只有一个,则该数据块即为相似数据块;如果匹配数据块有多个,且匹配次数不同,则次数最多的数据块被视为引用数据块;如果匹配数据块有多个,且被匹配次数相同,则第一个匹配到的数据块被视为相引用数据块。
假设目标数据块有三个超级特征值SH1,SH2和SH3,三个特征值分别输入T1,T2和T3进行查找,假设T1中查找到数据块A,T2和T3中查找到数据块B,则数据块A被匹配次数为1,数据块B的匹配次数为2。首次匹配法会将数据块A视为引用数据块,而最佳匹配法会将数据块B视为引用数据块。
传统的相似数据检测方法存在两个不足之处。第一个不足之处是精度不够,传统方法的特征值打包环节的特征值是根据子区域的位置进行分组;由于两个相似数据块的子区域顺序可能不同,内容也可能略有不同,因此可能导致分到同一组的特征值不同,生成的超级特征值也不同,从而不能被传统相似数据检测方法被检测为相似。
第二个不足之处是传统相似数据检测方法采用的首次匹配法和最佳匹配法无法准确查找到与目标数据块最相似的数据块。一般来说,备份系统中存在的备份版本较多,目标数据块可能存在多个与之相似的数据块;因为所有与目标数据块相似的数据块的超级特征值都会更新到查找表中,所以现有方法能否找到最相似的数据块存在一定的随机性。
发明内容
本发明实施例的目的是提供一种相似数据检测方法及装置、计算机设备和存储介质,用以解决当数据块中存在局部内容顺序不同而不能被传统相似数据检测方法检测到相似数据块的技术问题,特别地,当存在数据插入或删除从而导致特征值发生偏移时,传统相似数据检测方法检测不到相似数据块的问题。
为了解决上述技术问题,本发明提供的技术方案如下:
第一方面,本发明实施例提供了一种相似数据检测方法,所述方法包括:
S1.将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;
S2.将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;
S3.通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
优选地,所述将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里具体包括:
S201.将N个特征值从小到大或从大到小的方式进行排序;
S203.将每个组中的特征值按从小到大或从大到小的顺序排列,并对组内所有特征值计算一个哈希函数,该哈希函数即被称为超级特征值,M个组可得到M个超级特征值。
优选地,S3中,所述通过匹配所述M个超级特征值来查找相似数据块具体包括:
将所有数据块的超级特征值分别组成M个查找表:T1,T2,…,TM;其中,Ti表示所有数据块的第i个超级特征值组成的查找表,关键码为第i个超级特征值,值为对应的数据块的存储位置或指纹值;
用链表CIDList记录每个数据块的容器号,查找目标数据块的匹配数据块的容器号,并判断是否与链表CIDList中某个容器号相同,若相同则被选为引用数据块,则相似数据检测完成。
优选地,所述链表CIDList通过如下步骤生成:
S301.初始化一个以LRU为替换算法的链表CIDList;
S302.在目标数据块被写入容器时,判断目标数据块是否重复;
S3021.如果重复,用重复数据块的容器号更新CIDList;
S3022.如果不重复,判断目标数据块是否做了差量压缩;
S30221.如果做了差量压缩,先用引用数据块的容器号更新CIDList;
S30222.如果没做差量压缩,不更新CIDList。
优选地,所述查找目标数据块的匹配数据块的容器号,并判断是否与链表CIDList中某个容器号相同,若相同则被选为引用数据块,则相似数据检测完成具体包括:
S001.将i初始化为1;
S002.检测目标数据块的第i个超级特征值是否存在于第i个哈希表Ti中;
S0021.如果存在,判断匹配数据块的容器号是否存在于链表CIDList中;
S00211.如果存在,返回该数据块作为引用数据块,执行步骤S004;
S00212.如果不存在,执行步骤S003;
S0022.如果不存在,执行步骤S003;
S003.检测i的值;
S0031.如果i小于M,i的值加1,执行步骤S002;
S0032.如果i等于M,目标数据块的相似数据块不存在,执行步骤S004;
S004.目标数据块的相似数据检测结束。
第二方面,本发明实施例还提供了一种相似数据检测装置,所述装置具体包括:
特征值计算模块,用于将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;
特征值打包模块,用于将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;
相似数据查找模块,用于通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
第三方面,本发明实施例提供了一种用于实现相似数据检测的计算机设备,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如第一方面所述相似数据检测方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述相似数据检测方法的步骤。
通过本发明实施例的上述技术方案,可以实现当数据块中存在局部内容顺序不同时,同样可以检测到相似数据块,特别地,当存在数据插入或删除从而导致特征值发生偏移时也能方便地检测到相似数据块,同时,本发明实施例的相似数据检测基于局部特征值,在相似数据检测中,能够对存在相似数据的数据块进行逐一无遗漏的检测,并且便于后续备份数据块的相似数据检测,提高了数据冗余检测能力,继而有利于数据存储和读取效率。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对异步系统的实现方法、计算机设备和存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为本发明实施例的相似数据检测方法的流程图
图2为传统的相似数据检测原理和方法;
图3为本发明实施例提出的特征值分组方法;
图4为因为局部内容顺序不同而不能被传统相似数据检测方法检测到的相似数据块;
图5为因为数据插入导致的特征值发生偏移而不能被传统相似数据检测方法检测到的相似数据块;
图6为本发明实施例的相似数据检测装置的结构框图;
图7为本发明实施例的计算机设备的结构框图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
为了实现上述目的,如图1所示,本发明实施例提供了一种高效的相似数据检测方法,所述方法包括:
通过三个环节来检测相似数据块:特征值计算、特征值打包和相似数据查找。
S1.在特征值计算中,将长度为L的数据块划分成长度相等的N个子区域,从每个子区域中提取一个特征值,从而获得N个特征值。
通过将数据块进行划分为子数据块,可以将数据块进行细化,从而可以较为精细地获取数据块中的特征值,为后续相似数据检测获得较为准确的数据基础。
本发明实施例从子区域中提取一个特征值的方法可以采取两种:最大特征值法和最小特征值法。
以最大特征值法为例,特征值计算环节包括以下步骤:
S101.将滑动窗口置于数据块起始位置,设置该窗口的位置P为0,并对窗口内容计算一个固定的哈希函数得到一个哈希值V,将此窗口的哈希值V赋值给临时最大值Vmax;
S102.将滑动窗口向前滑动一个字节,设置当前窗口的位置P的值为前一个窗口的位置P加1,对当前滑动窗口内容计算哈希函数得到哈希值Vcurr,并将Vcurr和Vmax的值进行比较,如果Vcurr>Vmax,则将Vcurr赋值给Vmax;
在本发明的一个实施例中,假设所述滑动窗口大小为32字节,所述固定的哈希函数是Rabin哈希函数。
以最小特征值法为例,特征值计算环节包括以下步骤:
S110.将滑动窗口置于数据块起始位置,设置该窗口的位置P为0,并对窗口内容计算一个固定的哈希函数得到一个哈希值V,将此窗口的V赋值给临时最小值Vmin;
S111.将滑动窗口向前滑动一个字节,设置当前窗口的位置P的值为前一个窗口的位置P加1,对当前滑动窗口内容计算哈希函数得到哈希值Vcurr,并将Vcurr和Vmin的值进行比较,如果Vcurr<Vmin,则将Vcurr赋值给Vmin;
在本发明的一个实施例中,所述滑动窗口大小可设为32字节,所述的固定的哈希函数是Rabin哈希函数,本发明实施例并不限定使用哪种哈希函数。
特征值计算环节结束后,会获得N个特征值,F1到FN。
通过特征值计算,可以准确地获取每个子数据块的局部特征值,有利于后续的基于局部特征值的相似数据检测地进行。在本发明的一个实施例中,所述的哈希表中记录的值也可以是数据块的指纹或指向对应数据块的指针。
S2.将N个特征值F1到FN打包到M个超级特征值里;
如图2所示,现有技术认为相似的两个数据块中对应的子块也相同或相似。假设需要提取的是9个特征值,并打包成3个超级特征值,传统方法会将数据块划分成等长度的9个子块,并从每个子块中提取一个特征值,最后将9个特征值打包成3个超级特征值;打包到同一个超级特征值内的特征值必须均匀分布在数据块内,因此生成第一个超级特征值的分组中包含的是第1、4和7个特征值,生成第一个超级特征值的分组中包含第2、5和8个特征值,生成第一个超级特征值的分组中包含第3、6和9个特征值。
如图3所示,为本发明实施例的数据块特征值的分组打包方法,将特征值进行排序之后,分组方式与现有技术并不相同。
图4为因为局部内容顺序不同而不能被传统相似数据检测方法检测到的相似数据块。因为数据块A和B显然是相似的,但是由于内部子区域的顺序不同导致对应的分组中包含的特征值不相同,进而导致对应的超级特征值不同,因此无法被传统方法检测为相似数据块;
图5为因为数据插入导致的特征值发生偏移而不能被传统相似数据检测方法检测到的相似数据块。数据块B是在数据块A的基础上插入了少量内容而形成的。数据块B的长度比数据块A更大,因此子区域的长度也更大,两个数据块间子区域的差异导致特征值F2从数据块A的第二个子区域偏移到数据块B的第三个子区域;假设F2大于F3,数据块B的第三个子区域特征值则为F2,而数据块B中第二个子区域会产生一个新的特征值F5。显然数据块A和数据块B相似,但是由于数据插入而导致两个分组内的特征值都不相等,从而无法被检测为相似。如果采用本发明的方法,则两个数据块的分组1都会等于{F1,F2},进而两个数据块会被检测为相似。
本发明实施例的特征值打包环节包括以下步骤:
将N个特征值打包到M个超级特征值的过程中,对特征值进行排序,排序可分为两种方法:从小到大和从大到小。
本发明实施例的特征值打包环节包括以下步骤:
S21.将N个特征值从小到大(或从大到小)进行排序;
S23.将每个组中的特征值按从小到大(或从大到小)的顺序排列,并对组内所有特征值计算一个哈希函数,该哈希函数即被称为超级特征值;M个组可得到M个超级特征值。
在本发明的一个实施例中,所述的计算超级特征值的哈希函数为SpookyHash。
S3.获得了M个超级特征值后,本发明实施例通过匹配超级特征值来查找相似数据块。如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
将所有数据块的超级特征值分别组成M个查找表:T1,T2,…,TM;Ti表示所有数据块的第i个超级特征值组成的查找表,其关键码为第i个超级特征值,值为对应的数据块的存储位置或指纹值。
通过设置哈希表,可以建立数据块特征值的排查表,从而为后续数据检测提供数据依据,提高数据冗余检测的效率和准确性。
本发明实施例的相似数据块查找,借助数据去重过程中查找到的重复数据块的信息来辅助选择最相似的数据块。
数据去重会导致单个备份中的数据块被分散存储于大量不同的容器中,这种现象称为碎片化。恢复某个备份时,所有包含该备份数据块的容器都需要被读入内存。由于磁盘随机读性能较差,容器读取是系统恢复的性能瓶颈。碎片化增加了需读入内存的容器个数,因此会降低恢复性能。对于单个备份来说,某些容器中仅包含了少量有效数据块,这些数据块即被称为碎片块。重写算法可通过将碎片块再一次写入内存来减少恢复时需读入内存的容器个数(即仅与包含较多重复数据块的容器进行去重,而放弃其他容器的去重),从而提高系统的恢复性能。因此,基于数据去重的备份系统一般都会采用重写算法来提高恢复性能。
备份系统的相似数据检测过程中,当目标数据块有多个与之相似的数据块时,最相似的数据块的周边的数据块往往与目标数据块的周边的数据块也最相似,即周边相同或相似的数据块越多,则表示中间匹配到的数据块与目标数据块的相似度越高。如前所述,采用了重写算法的数据去重技术会找到拥有最多重复数据块的容器进行去重,因此,数据去重选择的容器信息可以帮助引用数据块的选择。
本发明的相似数据块查找环节会在备份时用一个链表CIDList记录每个处理过的数据块的容器号(一个整型值,可通过该值找到对应的容器),当目标数据块的匹配数据块的容器号与CIDList中某个容器号相同,则被选为引用数据块。
CIDList的生成方法如下:
S301.初始化一个以LRU为替换算法的链表CIDList;
S302.在目标数据块被写入容器时,判断目标数据块是否重复;
S3021.如果重复,用重复数据块的容器号更新CIDList;
S3022.如果不重复,判断目标数据块是否做了差量压缩;
S30221.如果做了差量压缩,先用引用数据块的容器号更新CIDList;
S30222.如果没做差量压缩,不更新CIDList;
本发明实施例的相似数据块查找环节包括如下几个步骤:
S001.将i初始化为1;
S002.检测目标数据块的第i个超级特征值是否存在于第i个哈希表Ti中;
S0021.如果存在,判断匹配数据块的容器号是否存在于CIDList中;
S00211.如果存在,返回该数据块作为引用数据块,执行步骤(4);
S00212.如果不存在,执行步骤S003;
S0022.如果不存在,执行步骤S003;
S003.检测i的值;
S0031.如果i小于M,i的值加1,执行步骤S002;
S0032.如果i等于M,目标数据块的相似数据块不存在,执行步骤S004;
S004.目标数据块的相似数据检测结束。
本发明实施例提出的相似数据检测方法可以检测到局部内容顺序不同而不能被传统相似数据检测方法检测到的引用数据块;并可以检测到由于数据插入或删除导致的特征值发生偏移而不能被传统相似数据检测方法检测到的引用数据块,从而检测到的引用数据块与目标数据块的相似度高于传统相似数据检测方法检测到的引用数据块。
如图6所示,本发明实施例还提供了一种相似数据检测装置,所述装置具体包括:
特征值计算模块101,用于将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;
特征值打包模块102,用于将N个特征值F1到FN打包到M个超级特征值里;
相似数据查找模块103,用于通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
优选地,所述特征值打包模块具体包括:
哈希计算单元,用于将每个组中的特征值按从小到大或从大到小的顺序排列,并对组内所有特征值计算一个哈希函数,该哈希函数即被称为超级特征值,M个组可得到M个超级特征值。
优选地,相似数据查找模块103具体用于:
将所有数据块的超级特征值分别组成M个查找表:T1,T2,…,TM;Ti表示所有数据块的第i个超级特征值组成的查找表,其关键码为第i个超级特征值,值为对应的数据块的存储位置或指纹值。
通过设置哈希表,可以建立数据块特征值的排查表,从而为后续数据检测提供数据依据,提高数据冗余检测的效率和准确性。
本发明实施例的相似数据块查找,借助数据去重过程中查找到的重复数据块的信息来辅助选择最相似的数据块。
一般来说,当目标数据块有多个与之相似的数据块时,最相似的数据块的周边的数据块会与目标数据块的周边的数据块也最相似,即周边相同或相似的数据块越多,则表示中间匹配到的数据块与目标数据块的相似度越高。数据去重会找到拥有最多重复数据块的容器进行去重,因此,数据去重选择的容器信息可以帮助引用数据块的选择。
本发明实施例的相似数据块查找模块会在备份时用一个链表CIDList记录每个处理过的数据块的容器号(一个整型值,可通过该值找到对应的容器),当目标数据块的匹配数据块的容器号与CIDList中某个容器号相同,则被选为引用数据块。
CIDList的生成方法如下:
S301.初始化一个以LRU为替换算法的链表CIDList;
S302.在目标数据块被写入容器时,判断目标数据块是否重复;
S3021.如果重复,用重复数据块的容器号更新CIDList;
S3022.如果不重复,判断目标数据块是否做了差量压缩;
S30221.如果做了差量压缩,先用引用数据块的容器号更新CIDList;
S30222.如果没做差量压缩,不更新CIDList;
本发明实施例的相似数据块查找模块103的相似数据查找如下几个步骤:
S001.将i初始化为1;
S002.检测目标数据块的第i个超级特征值是否存在于第i个哈希表Ti中;
S0021.如果存在,判断匹配数据块的容器号是否存在于CIDList中;
S00211.如果存在,返回该数据块作为引用数据块,执行步骤(4);
S00212.如果不存在,执行步骤S003;
S0022.如果不存在,执行步骤S003;
S003.检测i的值;
S0031.如果i小于M,i的值加1,执行步骤S002;
S0032.如果i等于M,目标数据块的相似数据块不存在,执行步骤S004;
S004.目标数据块的相似数据检测结束。
这里的相似数据检测装置的实施方式如数据检测方法的实施相同,不再一一赘述。
通过本发明实施例的上述技术方案,可以实现当数据块中存在局部内容顺序不同时,同样可以检测到相似数据块,特别地,当存在数据插入或删除从而导致特征值发生偏移时也能方便地检测到相似数据块,同时,本发明实施例的相似数据检测基于局部特征值,在相似数据检测中,能够对存在相似数据的数据块进行逐一无遗漏的检测,并且便于后续备份数据块的相似数据检测,提高了数据冗余检测能力,继而有利于数据存储和读取效率。
图7为本发明实施例提供的计算机设备的实体结构示意图,所述计算机设备架设于第三方设备中,例如移动终端、便携式计算机、IPAD等,如图7所示,该服务器可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行如下方法:将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
通信总线940是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器910通过通信总线940从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器930可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序程序编程接口(Application Programming Interface,API)和应用程序。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。通信接口920将该计算机设备与其它网络设备、客户端、移动设备、网络进行连接。例如,通信接口920可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(WiFi),蓝牙(BT),近距离无线通信技术(NFC),全球卫星定位系统(GPS)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(USB),高清晰度多媒体接口(HDMI),异步传输标准接口(RS-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。计算机设备可以通过通信接口920连接网络,计算机设备和其它网络设备通信所用的协议可以被应用程序、应用程序程序编程接口(API)、中间件、内核和通信接口920至少一个支持。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
本领域普通技术人员可以理解:此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制,上述实施例均可根据需要自由组合;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种相似数据检测方法,其特征在于,所述方法包括:
S1.将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;
S2.将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;
S3.通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
3.如权利要求1所述的相似数据检测方法,其特征在于,S3中,所述通过匹配所述M个超级特征值来查找相似数据块具体包括:
将所有数据块的超级特征值分别组成M个查找表:T1,T2,…,TM;其中,Ti表示所有数据块的第i个超级特征值组成的查找表,关键码为第i个超级特征值,值为对应的数据块的存储位置或指纹值;
用链表CIDList记录每个数据块的容器号,查找目标数据块的匹配数据块的容器号,并判断是否与链表CIDList中某个容器号相同,若相同则被选为引用数据块,则相似数据检测完成。
4.如权利要求3所述的相似数据检测方法,其特征在于,所述链表CIDList通过如下步骤生成:
S301.初始化一个以LRU为替换算法的链表CIDList;
S302.在目标数据块被写入容器时,判断目标数据块是否重复;
S3021.如果重复,用重复数据块的容器号更新CIDList;
S3022.如果不重复,判断目标数据块是否做了差量压缩;
S30221.如果做了差量压缩,先用引用数据块的容器号更新CIDList;
S30222.如果没做差量压缩,不更新CIDList。
5.如权利要求3所述的相似数据检测方法,其特征在于,所述查找目标数据块的匹配数据块的容器号,并判断是否与链表CIDList中某个容器号相同,若相同则被选为引用数据块,则相似数据检测完成具体包括:
S001.将i初始化为1;
S002.检测目标数据块的第i个超级特征值是否存在于第i个哈希表Ti中;
S0021.如果存在,判断匹配数据块的容器号是否存在于链表CIDList中;
S00211.如果存在,返回该数据块作为引用数据块,执行步骤S004;
S00212.如果不存在,执行步骤S003;
S0022.如果不存在,执行步骤S003;
S003.检测i的值;
S0031.如果i小于M,i的值加1,执行步骤S002;
S0032.如果i等于M,目标数据块的相似数据块不存在,执行步骤S004;
S004.目标数据块的相似数据检测结束。
6.一种相似数据检测装置,其特征在于,所述装置具体包括:
特征值计算模块,用于将长度为L的数据块划分成长度相等的N个子数据块,从每个子数据块中提取一个特征值,所述每个子数据块对应一个子区域,从而获得N个特征值F1到FN;
特征值打包模块,用于将N个特征值F1到FN按照从小到大或者从大到小的顺序进行排序,并打包到M个超级特征值里;
相似数据查找模块,用于通过匹配所述M个超级特征值来查找相似的数据块,如果两个数据块对应的某个超级特征值相等,则两个数据块相似。
8.如权利要求5所述的相似数据检测装置,其特征在于,所述相似数据查找模块具体用于:
将所有数据块的超级特征值分别组成M个查找表:T1,T2,…,TM;其中,Ti表示所有数据块的第i个超级特征值组成的查找表,关键码为第i个超级特征值,值为对应的数据块的存储位置或指纹值;
用链表CIDList记录每个数据块的容器号,查找目标数据块的匹配数据块的容器号,并判断是否与链表CIDList中某个容器号相同,若相同则被选为引用数据块,则相似数据检测完成。
9.一种用于实现相似数据检测的计算机设备,其特征在于,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如权利要求1至5任一所述相似数据检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一所述相似数据检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168386.6A CN110888918A (zh) | 2019-11-25 | 2019-11-25 | 相似数据检测方法及装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168386.6A CN110888918A (zh) | 2019-11-25 | 2019-11-25 | 相似数据检测方法及装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110888918A true CN110888918A (zh) | 2020-03-17 |
Family
ID=69748667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911168386.6A Pending CN110888918A (zh) | 2019-11-25 | 2019-11-25 | 相似数据检测方法及装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110888918A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835361A (zh) * | 2020-07-17 | 2020-10-27 | 国网上海市电力公司 | 一种数据相似性检测方法、装置、电子设备和存储介质 |
CN112269804A (zh) * | 2020-11-06 | 2021-01-26 | 厦门美亚亿安信息科技有限公司 | 一种用于内存数据的模糊检索方法和系统 |
CN113360324A (zh) * | 2021-08-10 | 2021-09-07 | 北京华科海讯科技有限公司 | 基于分布式文件数据的数据备份装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411815B1 (en) * | 2013-09-26 | 2016-08-09 | Emc Corporation | System and method for improving data compression in a deduplicated storage system |
CN106066896A (zh) * | 2016-07-15 | 2016-11-02 | 中国人民解放军理工大学 | 一种应用感知的大数据重复删除存储系统及方法 |
US9514146B1 (en) * | 2013-09-26 | 2016-12-06 | Emc Corporation | System and method for improving data compression of a storage system in an online manner |
CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
US10216754B1 (en) * | 2013-09-26 | 2019-02-26 | EMC IP Holding Company LLC | System and method for balancing compression and read performance in a storage system |
CN110083487A (zh) * | 2019-04-08 | 2019-08-02 | 湖北工业大学 | 一种基于数据局部性的引用数据块碎片消除方法及系统 |
CN110083743A (zh) * | 2019-03-28 | 2019-08-02 | 哈尔滨工业大学(深圳) | 一种基于统一采样的快速相似数据检测方法 |
-
2019
- 2019-11-25 CN CN201911168386.6A patent/CN110888918A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411815B1 (en) * | 2013-09-26 | 2016-08-09 | Emc Corporation | System and method for improving data compression in a deduplicated storage system |
US9514146B1 (en) * | 2013-09-26 | 2016-12-06 | Emc Corporation | System and method for improving data compression of a storage system in an online manner |
US10216754B1 (en) * | 2013-09-26 | 2019-02-26 | EMC IP Holding Company LLC | System and method for balancing compression and read performance in a storage system |
CN106066896A (zh) * | 2016-07-15 | 2016-11-02 | 中国人民解放军理工大学 | 一种应用感知的大数据重复删除存储系统及方法 |
CN107682016A (zh) * | 2017-09-26 | 2018-02-09 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN110083743A (zh) * | 2019-03-28 | 2019-08-02 | 哈尔滨工业大学(深圳) | 一种基于统一采样的快速相似数据检测方法 |
CN110083487A (zh) * | 2019-04-08 | 2019-08-02 | 湖北工业大学 | 一种基于数据局部性的引用数据块碎片消除方法及系统 |
Non-Patent Citations (1)
Title |
---|
张宇成: "基于冗余数据消除的备份系统性能优化研究", 《万方数据》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835361A (zh) * | 2020-07-17 | 2020-10-27 | 国网上海市电力公司 | 一种数据相似性检测方法、装置、电子设备和存储介质 |
CN111835361B (zh) * | 2020-07-17 | 2024-04-30 | 国网上海市电力公司 | 一种数据相似性检测方法、装置、电子设备和存储介质 |
CN112269804A (zh) * | 2020-11-06 | 2021-01-26 | 厦门美亚亿安信息科技有限公司 | 一种用于内存数据的模糊检索方法和系统 |
CN112269804B (zh) * | 2020-11-06 | 2022-05-20 | 厦门美亚亿安信息科技有限公司 | 一种用于内存数据的模糊检索方法和系统 |
CN113360324A (zh) * | 2021-08-10 | 2021-09-07 | 北京华科海讯科技有限公司 | 基于分布式文件数据的数据备份装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170038978A1 (en) | Delta Compression Engine for Similarity Based Data Deduplication | |
US8924366B2 (en) | Data storage deduplication systems and methods | |
US9851917B2 (en) | Method for de-duplicating data and apparatus therefor | |
US20180196609A1 (en) | Data Deduplication Using Multi-Chunk Predictive Encoding | |
US10938961B1 (en) | Systems and methods for data deduplication by generating similarity metrics using sketch computation | |
EP3896564A1 (en) | Data processing method and device, and computer readable storage medium | |
CN110888918A (zh) | 相似数据检测方法及装置、计算机设备和存储介质 | |
US8898351B2 (en) | Dynamic compression of an I/O data block | |
US9864542B2 (en) | Data deduplication using a solid state drive controller | |
US9632720B2 (en) | Data de-duplication | |
CN105446964A (zh) | 用于文件的重复数据删除的方法及装置 | |
US11995050B2 (en) | Systems and methods for sketch computation | |
US20160147800A1 (en) | Data Processing Method and System and Client | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
US11675768B2 (en) | Compression/decompression using index correlating uncompressed/compressed content | |
US10120875B1 (en) | Method and system for detecting boundaries of data blocks for deduplication | |
US8909606B2 (en) | Data block compression using coalescion | |
US8868584B2 (en) | Compression pattern matching | |
CN111796969B (zh) | 一种数据差量压缩检测方法、计算机设备和存储介质 | |
US20210191640A1 (en) | Systems and methods for data segment processing | |
US20170337204A1 (en) | Differencing engine for moving pictures | |
CN116738510A (zh) | 有效地获得存储在地址空间中的信息的系统和方法 | |
US20230138113A1 (en) | System for retrieval of large datasets in cloud environments | |
US11347423B2 (en) | System and method for detecting deduplication opportunities | |
US20170048303A1 (en) | On the fly statistical delta differencing engine |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200317 |