CN110532795A - 一种基于rabin指纹与异或计算的重复数据检测方法 - Google Patents
一种基于rabin指纹与异或计算的重复数据检测方法 Download PDFInfo
- Publication number
- CN110532795A CN110532795A CN201910625535.0A CN201910625535A CN110532795A CN 110532795 A CN110532795 A CN 110532795A CN 201910625535 A CN201910625535 A CN 201910625535A CN 110532795 A CN110532795 A CN 110532795A
- Authority
- CN
- China
- Prior art keywords
- value
- data block
- rabin fingerprint
- exclusive
- window
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Collating Specific Patterns (AREA)
Abstract
一种基于rabin指纹与异或计算的重复数据检测方法,计算当前数据块的rabin指纹值;查找当前数据块的rabin指纹值是否在数据库中存在,如果不存在,则判断当前数据块为新数据块;否则查找数据库中所有具有与当前数据块相同rabin指纹值的数据块并将其读出;将读出的数据块与当前数据块按照异或计算进行数据对比,如果所有数据块对比的异或结果为1,则当前数据块为新数据块,否则判断当前数据块为重复数据块。本发明能够显著降低新型非易失性存储器件中的指纹计算性能开销,并且能够消除传统重复数据检测方法存在的安全隐患。
Description
技术领域
本发明属于存储系统重复数据删除领域,涉及一种面向新型非易失性存储器件的重复数据检测方法,具体涉及一种基于rabin指纹与异或计算的重复数据检测方法。
背景技术
近年来,以PCM、STT-RAM和3DXpoint等为代表的非易失性存储器(NVM:non-volatile memory)得到了工业界与学术界越来越多的关注。NVM器件具有高带宽、低延迟的特性,读写性能可以媲美DRAM,并且能够像磁盘一样在断电后存储数据。目前,Intel基于3DXpoint技术的傲腾SSD已在市场上销售。相比传统flash介质,NVM对计算机系统结构带来的是颠覆性的改变。NVM可按字节寻址,并具有接近DRAM的读写性能,可作为内存使用,CPU能够直接访问持久化数据,无需再经过内存-外存的持久化I/O栈。
重复数据删除作为存储系统中的成熟数据精简技术,目前已经在存储系统中广泛应用。然而,传统重复数据删除方法在NVM存储系统中面临着新的挑战。研究者已经指出传统的重复数据删除方法在基于NVM的存储系统中存在着严重的性能退化。研究指出,在磁盘存储系统中,指纹计算仅占到总执行时间的21%。而在NVM存储系统中占到了44%。不同于传统基于磁盘存储系统中I/O操作是主要的性能瓶颈,在NVM存储系统中,指纹计算成为了新的系统性能瓶颈。因此,研究新型重复数据检测方法,消除传统SHA-1/MD5计算造成的性能开销成为了亟需解决的问题。
发明内容
本发明的目的在于针对由新型非易失性存储器件构成的存储系统中指纹计算成为了新的性能瓶颈,提出一种基于rabin指纹与异或计算的重复数据检测方法,该方法避免了传统重复数据删除方法计算MD5/SHA-1这类强哈希算法造成的严重性能开销,能够显著减少重复数据删除中指纹计算时间。
为达到上述目的,本发明采用的技术方案如下:
一种基于rabin指纹与异或计算的重复数据检测方法,包括以下步骤:
1)计算当前数据块的rabin指纹值;
2)查找当前数据块的rabin指纹值是否在数据库中存在,如果不存在,则判断当前数据块为新数据块;否则查找数据库中所有具有与当前数据块相同rabin指纹值的数据块并将其读出;
3)将读出的具有与当前数据块具有相同rabin指纹的数据块按照异或计算进行数据对比,如果所有数据块对比的异或结果为1,则当前数据块为新数据块,否则判断当前数据块为重复数据块。
本发明进一步的改进在于,计算数据块rabin指纹值的具体步骤为:
(1)在进行数据切分后,先一次读取48个字节到滑动窗口中并计算rabin指纹值,同时,构造一个计数器并将其值初始化为0;
(2)根据rabin指纹值判断当前窗口是否形成边界点;如果没有形成边界点,进行步骤(3);否则跳到步骤(5);
(3)如果计数器等于48,则将当前窗口的rabin指纹值暂存起来,并将计数器重新清零;
(4)将窗口滑动一个字节并为计数器加1,返回步骤(2);
(5)计算最后一个窗口的rabin指纹值,如果此时计数器等于48,则将其rabin指纹值保存下来,若果计数器值不等于48,则修正窗口内容,再将已修正的窗口的rabin指纹值进行相加与模运算,得到当前分块的rabin指纹值。
本发明进一步的改进在于,根据基于内容分块算法,判断窗口是否形成边界点。
本发明进一步的改进在于,判断窗口是否边界点的条件有两个:1)(rabin指纹值%掩码值==掩码值-1)&&块长度>最小值;2)块长度>最大值。
本发明进一步的改进在于,当掩码值取二进制值为11111111时,预期分块长度为28=256字节。
本发明进一步的改进在于,修正窗口内容的具体过程为,首先计算需要驱逐的字节数量,公式为expel=48-count,其中expel是需要驱逐的字节数量,count为当前计算器值,然后将当前窗口的前expel个字节逐出,从而得到正确的窗口w7。
与现有技术相比,本发明具有的有益效果:
1)本发明的核心思想是利用rabin指纹和异或计算替代MD5/SHA-1指纹计算,减少数据计算量,从而加速重复数据检测过程。
2)对于输入的数据流,利用基于内容分块过程中形成的窗口raibn指纹值计算数据块的rabin指纹值,减少计算量。
3)本发明的重复数据检测不完全依赖于指纹值,能够提高存储系统数据安全性。由于两个不同的数据块存在极小的概率产生相同的MD5/SHA1/Rabin指纹值,因此,完全依赖指纹值检测数据块是否重复存在一定的安全隐患。本发明的方法同时采用指纹值与异或计算相补充的重复数据检测方法,消除了传统方法的安全隐患。
附图说明
图1为本发明的原理图;
图2为本发明计算rabin指纹的示意图;其中,(a)为预期窗口分布情况,(b)为窗口滑动到最后一个字节的实际情况,(c)为修正后的窗口情况。
具体实施方式
下面结合附图对本发明做进一步详细描述:
参见图1,本发明的基于rabin指纹与异或计算的重复数据检测方法,包括以下步骤:
1)计算当前数据块的rabin指纹值,具体由以下步骤得到;
(1)在开始进行数据切分后,先一次读取48个字节到滑动窗口中并通过公式(1)计算rabin指纹值。同时,构造一个计数器并将其值初始化为0。
f(A)=A(t)mod P(t) (1)
其中,f(A)为rabin指纹值,
(2)根据rabin指纹值判断当前窗口是否形成边界点,根据重复数据删除系统经典的基于内容分块算法,判断窗口是否形成边界点的条件有两个:
1)(rabin指纹值%掩码值==掩码值-1)&&块长度>最小值,掩码值决定了预期分块的长度,例如当掩码值取二进制值为11111111时,预期分块长度为28=256字节;
2)块长度>最大值,当分块大小大于预定的最大值时,强制将当前窗口形成边界点。如果没有形成边界点,进行步骤(3);否则跳到步骤(5)。
(3)如果计数器等于48,则将当前窗口的rabin指纹值暂存起来,并将计数器重新清零。
(4)将窗口滑动一个字节并为计数器加1,返回步骤(2)。
(5)形成边界点后,要计算最后一个窗口w7的rabin指纹值,如图2所示。如果此时计数器正好等于48,则可以直接将其rabin指纹值保存下来,但是大多数情况下,计数器值不会等于48。此时的窗口与w7窗口并不相等,包含与w6窗口重叠的部分,因此需要修正窗口内容。修正方法为:首先计算需要驱逐的字节数量,公式为expel=48-count,其中expel是需要驱逐的字节数量,count为当前计算器值。之后,将当前窗口的前expel个字节逐出,从而得到正确的w7窗口。最后,根据公式(2),得到当前数据块的rabin指纹值。
其中,A为数据流,Wi为当前窗口数据,P为不可约多项式。
因此,将基于内容分块算法(CDC算法)在分块过程中形成的所有窗口rabin指纹值临时保存下来,当边界点被检测到后,计算所有已滑动窗口的rabin指纹值之和并做模运算得到当前数据块的rabin指纹值。
2)查找当前数据块的rabin指纹值是否在数据库中存在,如果不存在,则判断当前数据块为新数据块;否则查找数据库中所有具有与当前数据块相同rabin指纹值的数据块并将其读出。
3)将存储系统已存在,读出的具有与当前数据块具有相同rabin指纹的数据块按照异或计算进行数据对比,如果所有数据块对比的异或结果为1,则当前数据块为新数据块,否则判断当前数据块为重复数据块。
本发明具有以下优点:
1)本发明的核心思想是利用rabin指纹和异或计算替代MD5/SHA-1指纹计算,减少数据计算量,从而加速重复数据检测过程。
2)本发明的重复数据检测不完全依赖于指纹值,能够提高存储系统数据安全性。由于两个不同的数据块存在极小的概率产生相同的MD5/SHA1/Rabin指纹值,因此,完全依赖指纹值检测数据块是否重复存在一定的安全隐患。尤其我国王小云院士提出产生MD5/SHA-1的冲突方法后,恶意用户即使使用一台普通配置的计算机就能在半小时内产生指纹值冲突,当恶意用户将伪造数据块上传到存储系统后,所有具有与该指纹值相同的正常数据块都会被判断为重复而丢弃,造成用户数据丢失。而本发明的方法同时采用指纹值与异或计算相补充的重复数据检测方法,消除了传统方法的安全隐患。
Claims (6)
1.一种基于rabin指纹与异或计算的重复数据检测方法,其特征在于,包括以下步骤:
1)计算当前数据块的rabin指纹值;
2)查找当前数据块的rabin指纹值是否在数据库中存在,如果不存在,则判断当前数据块为新数据块;否则查找数据库中所有具有与当前数据块相同rabin指纹值的数据块并将其读出;
3)将读出的具有与当前数据块具有相同rabin指纹的数据块按照异或计算进行数据对比,如果所有数据块对比的异或结果为1,则当前数据块为新数据块,否则判断当前数据块为重复数据块。
2.根据权利要求1所述的一种基于rabin指纹与异或计算的重复数据检测方法,其特征在于,计算数据块rabin指纹值的具体步骤为:
(1)在进行数据切分后,先一次读取48个字节到滑动窗口中并计算rabin指纹值,同时,构造一个计数器并将其值初始化为0;
(2)根据rabin指纹值判断当前窗口是否形成边界点;如果没有形成边界点,进行步骤(3);否则跳到步骤(5);
(3)如果计数器等于48,则将当前窗口的rabin指纹值暂存起来,并将计数器重新清零;
(4)将窗口滑动一个字节并为计数器加1,返回步骤(2);
(5)计算最后一个窗口的rabin指纹值,如果此时计数器等于48,则将其rabin指纹值保存下来,若果计数器值不等于48,则修正窗口内容,再将已修正的窗口的rabin指纹值进行相加与模运算,得到当前分块的rabin指纹值。
3.根据权利要求2所述的一种基于rabin指纹与异或计算的重复数据检测方法,其特征在于,根据基于内容分块算法,判断窗口是否形成边界点。
4.根据权利要求2或3所述的一种基于rabin指纹与异或计算的重复数据检测方法,其特征在于,判断窗口是否边界点的条件有两个:1)(rabin指纹值%掩码值==掩码值-1)&&块长度>最小值;2)块长度>最大值。
5.根据权利要求4所述的一种基于rabin指纹与异或计算的重复数据检测方法,其特征在于,当掩码值取二进制值为11111111时,预期分块长度为28=256字节。
6.根据权利要求2所述的一种基于rabin指纹与异或计算的重复数据检测方法,其特征在于,修正窗口内容的具体过程为,首先计算需要驱逐的字节数量,公式为expel=48-count,其中expel是需要驱逐的字节数量,count为当前计算器值,然后将当前窗口的前expel个字节逐出,从而得到正确的窗口w7。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625535.0A CN110532795B (zh) | 2019-07-11 | 2019-07-11 | 一种基于rabin指纹与异或计算的重复数据检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625535.0A CN110532795B (zh) | 2019-07-11 | 2019-07-11 | 一种基于rabin指纹与异或计算的重复数据检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532795A true CN110532795A (zh) | 2019-12-03 |
CN110532795B CN110532795B (zh) | 2021-02-19 |
Family
ID=68659722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910625535.0A Active CN110532795B (zh) | 2019-07-11 | 2019-07-11 | 一种基于rabin指纹与异或计算的重复数据检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532795B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827619A (zh) * | 2023-01-06 | 2023-03-21 | 山东捷瑞数字科技股份有限公司 | 一种基于三维引擎的重复数据检测方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024065A (zh) * | 2011-01-18 | 2011-04-20 | 中南大学 | 基于simd优化的网页去重并行方法 |
CN102033962A (zh) * | 2010-12-31 | 2011-04-27 | 中国传媒大学 | 一种快速去重的文件数据复制方法 |
CN105677238A (zh) * | 2015-12-28 | 2016-06-15 | 国云科技股份有限公司 | 一种基于分布式存储重复数据删除的虚拟机系统盘的方法 |
US20160378355A1 (en) * | 2013-08-23 | 2016-12-29 | Nutanix, Inc. | Method and system for implementing performance tier de-duplication in a virtualization environment |
CN109684284A (zh) * | 2018-12-29 | 2019-04-26 | 南方电网科学研究院有限责任公司 | 基于边缘计算的滑动分块重复数据删除方法 |
CN109918018A (zh) * | 2017-12-13 | 2019-06-21 | 华为技术有限公司 | 一种数据存储方法及存储设备 |
-
2019
- 2019-07-11 CN CN201910625535.0A patent/CN110532795B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033962A (zh) * | 2010-12-31 | 2011-04-27 | 中国传媒大学 | 一种快速去重的文件数据复制方法 |
CN102024065A (zh) * | 2011-01-18 | 2011-04-20 | 中南大学 | 基于simd优化的网页去重并行方法 |
US20160378355A1 (en) * | 2013-08-23 | 2016-12-29 | Nutanix, Inc. | Method and system for implementing performance tier de-duplication in a virtualization environment |
CN105677238A (zh) * | 2015-12-28 | 2016-06-15 | 国云科技股份有限公司 | 一种基于分布式存储重复数据删除的虚拟机系统盘的方法 |
CN109918018A (zh) * | 2017-12-13 | 2019-06-21 | 华为技术有限公司 | 一种数据存储方法及存储设备 |
CN109684284A (zh) * | 2018-12-29 | 2019-04-26 | 南方电网科学研究院有限责任公司 | 基于边缘计算的滑动分块重复数据删除方法 |
Non-Patent Citations (1)
Title |
---|
王龙翔等: "《内容分块算法中预期分块长度》", 《西安交通大学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827619A (zh) * | 2023-01-06 | 2023-03-21 | 山东捷瑞数字科技股份有限公司 | 一种基于三维引擎的重复数据检测方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110532795B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102629258B (zh) | 重复数据删除方法和装置 | |
CN107004015B (zh) | 用于计算滚动散列的技术 | |
US9851917B2 (en) | Method for de-duplicating data and apparatus therefor | |
US9246511B2 (en) | Method and apparatus to process data based upon estimated compressibility of the data | |
CN110832590A (zh) | 在基于相变存储器的存储设备中减轻写入放大的方法和系统 | |
US10254989B2 (en) | Method and apparatus of data deduplication storage system | |
CN108027713B (zh) | 用于固态驱动器控制器的重复数据删除 | |
US20140358872A1 (en) | Storage system and method for performing deduplication in conjunction with host device and storage device | |
CN112559452B (zh) | 数据去重处理方法、装置、设备及存储介质 | |
CN103324699A (zh) | 一种适应大数据应用的快速重复数据删除方法 | |
Wei et al. | NRC: A nibble remapping coding strategy for NAND flash reliability extension | |
US20150227436A1 (en) | Techniques for deduplication of media content | |
CN110532795A (zh) | 一种基于rabin指纹与异或计算的重复数据检测方法 | |
CN111124939A (zh) | 一种基于全闪存阵列的数据压缩方法及系统 | |
CN109408288B (zh) | 一种打包文件备份过程中数据去重碎片消除方法 | |
US20140108727A1 (en) | Storage apparatus and data processing method | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
CN111796969A (zh) | 一种数据差量压缩检测方法、计算机设备和存储介质 | |
CN107943415B (zh) | 基于fat文件系统的查找空闲簇的方法和系统 | |
CN103049388B (zh) | 一种分页存储器件的压缩管理方法及装置 | |
CN111143110B (zh) | 一种逻辑卷管理中基于元数据的raid数据恢复方法 | |
CN114639437A (zh) | 存储器的测试方法、装置、设备及存储介质 | |
WO2020238750A1 (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN114327252A (zh) | 使用基于内容的块对齐实现基于块的存储系统中的数据简化 | |
US9501239B2 (en) | Grouping method and device for enhancing redundancy removing performance for storage unit |
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 |