CN104123102A - 一种ip硬盘及其数据处理方法 - Google Patents
一种ip硬盘及其数据处理方法 Download PDFInfo
- Publication number
- CN104123102A CN104123102A CN201410362354.0A CN201410362354A CN104123102A CN 104123102 A CN104123102 A CN 104123102A CN 201410362354 A CN201410362354 A CN 201410362354A CN 104123102 A CN104123102 A CN 104123102A
- Authority
- CN
- China
- Prior art keywords
- value
- hard disk
- bloom filter
- hash
- fingerprint
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims description 29
- 238000012217 deletion Methods 0.000 abstract description 8
- 230000037430 deletion Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种网络互连协议IP硬盘及其数据处理方法,所述IP硬盘中预设有第一布隆过滤器;该方法包括:所述IP硬盘获得第一数值Value;所述IP硬盘获得所述第一Value对应的第一哈希值;所述IP硬盘判断所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值是否为1;若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,所述IP硬盘判断所述第一Value是否为重复数据;若所述第一Value为重复数据,所述IP硬盘对所述第一Value执行重复数据的删除操作。根据本发明实施例提供的技术方案,IP硬盘可以实现主动删除重复数据,节省存储空间。
Description
【技术领域】
本发明涉及存储技术领域,尤其涉及一种IP硬盘及其数据处理方法。
【背景技术】
目前,有一种基于键-值(Key-Value)的硬盘,如网络互连协议(InternetProtocol,IP)硬盘,与传统硬盘通过小型计算机系统接口(Small ComputerSystem Interface,SCSI)与主机进行通信的方式不同,这种硬盘采用以太网口与外部设备进行通信,而且这种硬盘是一种自包含硬盘,可以没有主机对其进行控制,可以自发完成数据的读/写操作,而传统硬盘必须连接到主机并在主机的控制下进行相应的读写操作。
目前,IP硬盘没有删除重复数据的功能,导致IP硬盘中会存储重复的数据,浪费IP硬盘的存储空间。
【发明内容】
有鉴于此,本发明实施例提供了一种IP硬盘及其数据处理方法,IP硬盘可以实现主动删除重复数据,节省存储空间。
第一方面,本发明实施例提供了一种IP硬盘的数据处理方法,所述IP硬盘中预设有第一布隆过滤器;包括:
所述IP硬盘获得第一数值Value;
所述IP硬盘获得所述第一Value对应的第一哈希值;
所述IP硬盘判断所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值是否为1;
若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,所述IP硬盘判断所述第一Value是否为重复数据;
若所述第一Value为重复数据,所述IP硬盘对所述第一Value执行重复数据的删除操作。
在第一方面的第一种可能的实现方式中,所述IP硬盘获得第一Value,包括:
所述IP硬盘依据所述IP硬盘中预先存储的Value,获得所述第一Value;或者,
所述IP硬盘依据客户端通过以太网口发送的Value,获得所述第一Value。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述IP硬盘判断所述第一Value是否为重复数据,包括:
所述IP硬盘获得所述第一Value对应的第一指纹和每个所述第二Value对应的第二指纹;
所述IP硬盘利用与所述第二布隆过滤器对应的哈希算法,获得所述第一指纹对应的第二哈希值和每个所述第二指纹对应的第三哈希值,所述第二布隆过滤器的二进制位的数目大于所述第一布隆过滤器的二进制位的数目;
所述IP硬盘将所述第二布隆过滤器中每个所述第三哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
所述IP硬盘获得所述第三布隆过滤器中所述第二哈希值对应的二进制位,若所述第三布隆过滤器中所述第二哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述IP硬盘判断所述第一Value是否为重复数据,包括:
所述IP硬盘获得所述第一Value对应的第三指纹和每个所述第二Value对应的第四指纹;
所述IP硬盘将所述第三指纹和每个所述第四指纹分别拆分成R个第五指纹和R个第六指纹,R=2n,n为大于或者等于1的整数;
所述IP硬盘利用与所述第二布隆过滤器对应的哈希算法,获得所述R个第五指纹对应的R个第四哈希值和每个第六指纹对应的R个第五哈希值;所述第二布隆过滤器的二进制位的数目是所述第一布隆过滤器的二进制位的数目的R倍;
所述IP硬盘将所述第二布隆过滤器中每个所述第五哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
所述IP硬盘获得所述第三布隆过滤器中R个所述第四哈希值对应的二进制位,若所述第三布隆过滤器中R个所述第四哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述IP硬盘对所述第一Value执行重复数据的删除操作,包括:
IP硬盘删除所述IP硬盘中所述第一Value的存储地址中存储的所述第一Value;
IP硬盘获得与所述第一Value相同的第二Value对应的Key;
IP硬盘在所述IP硬盘中所述第一Value的存储地址中写入所述第二Value对应的Key。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述IP硬盘对所述第一Value执行重复数据的删除操作,包括:
IP硬盘获得与所述第一Value相同的第二Value对应的Key;
IP硬盘在所述IP硬盘中所述第一Value在的存储地址中写入所述第二Value对应的Key。
第二方面,本发明实施例提供了一种IP硬盘,所述IP硬盘中预设有第一布隆过滤器;所述IP硬盘包括:
获取单元,用于获得第一数值Value;以及获得所述第一Value对应的第一哈希值;
处理单元,用于判断所述第一布隆过滤器中与所述获取单元获得的所述第一哈希值对应的二进制位的数值是否为1;若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,判断所述第一Value是否为重复数据;
执行单元,用于若所述处理单元判定所述第一Value为重复数据,对所述第一Value执行重复数据的删除操作。
在第二方面的第一种可能的实现方式中,所述获取单元具体用于:
依据所述IP硬盘中预先存储的Value,获得所述第一Value;或者,
依据客户端通过以太网口发送的Value,获得所述第一Value。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述处理单元具体用于:
获得所述第一Value对应的第一指纹和每个所述第二Value对应的第二指纹;
利用与所述第二布隆过滤器对应的哈希算法,获得所述第一指纹对应的第二哈希值和每个所述第二指纹对应的第三哈希值,所述第二布隆过滤器的二进制位的数目大于所述第一布隆过滤器的二进制位的数目;
将所述第二布隆过滤器中每个所述第三哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
获得所述第三布隆过滤器中所述第二哈希值对应的二进制位,若所述第三布隆过滤器中所述第二哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述处理单元具体用于:
获得所述第一Value对应的第三指纹和每个所述第二Value对应的第四指纹;
将所述第三指纹和每个所述第四指纹分别拆分成R个第五指纹和R个第六指纹,R=2n,n为大于或者等于1的整数;
利用与所述第二布隆过滤器对应的哈希算法,获得所述R个第五指纹对应的R个第四哈希值和每个第六指纹对应的R个第五哈希值;所述第二布隆过滤器的二进制位的数目是所述第一布隆过滤器的二进制位的数目的R倍;
将所述第二布隆过滤器中每个所述第五哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
获得所述第三布隆过滤器中R个所述第四哈希值对应的二进制位,若所述第三布隆过滤器中R个所述第四哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述执行单元具体用于:
删除所述IP硬盘中所述第一Value的存储地址中存储的所述第一Value;
获得与所述第一Value相同的第二Value对应的Key;
在所述IP硬盘中所述第一Value的存储地址中写入所述第二Value对应的Key。
结合第二方面的第一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述执行单元具体用于:
获得与所述第一Value相同的第二Value对应的Key;
在所述IP硬盘中所述第一Value在的存储地址中写入所述第二Value对应的Key。
由以上技术方案可以看出,本发明实施例具有以下有益效果:
IP硬盘能够利用布隆过滤器判断Value是否属于重复数据,并在判定Value为重复数据时对Value执行删除操作,因此,IP硬盘可以自行主动删除重复数据,从而可以节省IP硬盘的存储空间。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是现有技术中客户端与IP硬盘的通信示意图;
图2是本发明实施例所提供的IP硬盘的数据处理方法的流程示意图;
图3是本发明实施例中第一布隆过滤器的示意图;
图4是本发明实施例中第二布隆过滤器的示意图;
图5是本发明实施例中布隆过滤器的计数器的示意图;
图6是本发明实施例所提供的IP硬盘的功能方块图;
图7是本发明实施例所提供的IP硬盘的结构示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例给出一种IP硬盘的数据处理方法,请参考图2,其为本发明实施例所提供的IP硬盘的数据处理方法的流程示意图,如图所示,该方法包括以下步骤:
步骤201,IP硬盘获得第一数值Value。
具体的,IP硬盘中会存储大量的Value,然而,这些Value中可能会存在相同的Value,为了节省IP硬盘的存储空间,需要对IP硬盘中的重复的Value进行删除,因此IP硬盘需要找到重复的Value。例如,IP硬盘可以对最近一个周期内存储的Value遍历,依次判断遍历到的Value是否与IP硬盘中存储的其他Value相同;再例如,IP硬盘也可以在每次接收到的Value时,就判断IP硬盘中已经存储的Value中是否存在与该接收到的Value相同的Value。其中,IP硬盘对最近一个周期内存储的Value进行遍历时,依次将遍历到的Value作为第一Value,或者,IP硬盘将接收到的Value直接作为第一Value。
因此,所述IP硬盘可以依据所述IP硬盘中预先存储的Value,获得所述第一Value;或者,所述IP硬盘也可以依据客户端通过以太网口发送的Value,获得所述第一Value。
例如,IP硬盘可以依据所述IP硬盘中预先存储的Value,获得所述第一Value的方法可以包括:
首先,IP硬盘接收客户端通过以太网口发送的M个Key以及每个所述Key对应的Value,即IP硬盘可以接收客户端提供的M个Key和M个Value,Key与Value是一一对应的,其中,M为大于或者等于1的整数。然后,IP硬盘依据每个Key,获得每个Key对应的Value的存储地址;最后,IP硬盘将每个Value写入IP硬盘中相应的存储地址,这样IP硬盘中就写入M个Value,IP硬盘将已经存储的这M个Value依次作为所述第一Value。
其中,IP硬盘可以利用数据布局算法获得每个Key对应Value的存储地址,例如,数据布局算法可以是哈希算法。
第一种方法相当于上述IP硬盘对最近一个周期内存储的Value进行遍历,依次将遍历到的Value作为第一Value,也就是说,IP硬盘查找是否存在重复Value的操作是周期地进行,IP硬盘可以依据预设的周期,统一对最近一个周期内存储的M个Value进行逐一判断是否为重复数据。
再例如,IP硬盘依据客户端通过以太网口发送的Value,获得所述第一Value的方法可以包括:
IP硬盘接收客户端通过以太网口发送的Key和所述Key对应的Value,IP硬盘直接将接收到的Key对应的Value作为所述第一Value,以判断IP硬盘已经存储的Value中是否存在与该第一Value相同的Value。
第二种方法相当于上述IP硬盘直接将接收到的Value作为第一Value,也就是说,IP硬盘在每次接收到客户端提供的Key和对应的Value时,就即时判断IP硬盘中存储的Value中是否存在与接收到的Value相同的Value。
步骤202,IP硬盘获得所述第一Value对应的第一哈希值。
具体的,IP硬盘中预先设置第一布隆过滤器(Bloom Filter),该第一布隆过滤器中包括N个二进制位,N为大于或者等于1的整数;依据第一布隆过滤器获得对应的K个哈希算法,K为大于或者等于1的整数。例如,请参考图3,其为本发明实施例中第一布隆过滤器的示意图,图3所示意的第一布隆过滤器中包括6个二进制位,对应的哈希算法可以是对6取模。
IP硬盘在获得第一Value后,依据该第一Value,获得该第一Value对应的K个第一指纹(Finger Print),然后依据每个第一指纹,并利用预设的第一布隆过滤器对应的K个哈希算法,计算对应的第一哈希值,从而可以获得第一Value对应的K个第一哈希值。
优选的,可以在将第一Value写入对应的存储地址之前,获得该第一Value对应的K个第一指纹,也可以在将第一Value写入对应的存储地址之后,获得该第一Value对应的K个第一指纹。
优选的,IP硬盘可以依据第一Value,利用预设的指纹算法计算第一Value对应的K个第一指纹,每个第一指纹对应的指纹算法不同。其中,所述指纹算法可以包括:循环冗余校验码(Cyclic Redundancy Check,CRC)、消息摘要算法第五版(Message Digest Algorithm-5,MD5)或者安全散列算法-1(SecureHash Algorithm-1,SHA-1)等。
步骤203,IP硬盘判断预设的第一布隆过滤器中与所述第一哈希值对应的二进制位的数值是否为1。
具体的,IP硬盘中预先设置有第一布隆过滤器,IP硬盘可以将存储的所有Value对应的指纹都映射到第一布隆过滤器的二进制位上,被映射到的二进制位的数值将由0设置为1,且数值已经为1的二进制位如果再次被映射到,其数值保持为1;如此,当IP硬盘获得第一Value对应的K个第一哈希值后,就可以依据第一Value对应的K个第一哈希值,判断第一布隆过滤器中与K个第一哈希值对应的K个二进制位的数值是否已经全部是1。
例如,如图3所示,对于Value1~Value M,分别有对应的K个指纹FingerPrint1[Value1~Value M]~Finger Print K[Value1~Value M],以及对应的K个哈希值H1{Finger Print1[Value1~Value M]}~HK{Finger Print K[Value1~Value M]},依据这些哈希值,IP硬盘将第一布隆过滤器相应的二进制位的数值置为1。
如果第一布隆过滤器中与K个第一哈希值对应的K个二进制位的数值已经全部是1,表示第一Value可能是重复数据,IP硬盘中可能已经存储与第一Value相同的第二Value;但是,这里也只能认为第一Value是可能的重复数据,因为第一布隆过滤器中二进制位的数目有限,而客户端提供的Value的数目较多,从而导致会出现较小的重复数据的误判概率,因此,为了降低重复数据的误判概率,IP硬盘在确定第一布隆过滤器中与K个第一哈希值对应的K个二进制位的数值已经全部是1的情况下,并不直接判定第一Value是重复数据,而是需要进一步的判断,才能确定第一Value是否为重复数据,即执行步骤204。
相反的,如果第一布隆过滤器中与K个第一哈希值对应的K个二进制位的数值不全部是1,即第一布隆过滤器中与K个第一哈希值对应的K个二进制位的数值存在至少一个0,则IP硬盘可以直接确定第一Value不是重复数据,IP硬盘中不存在与第一Value相同的第二Value。另外,IP硬盘还需要将第一布隆过滤器中与K个第一哈希值对应的数值为0的二进制位的数值设置为1,然后执行步骤201,IP硬盘继续判断下一个第一Value是否为可能的重复数据。
例如,第一Value对应第一指纹等于8,哈希算法是对6取模,利用该哈希算法计算第一指纹的第一哈希值,则第一哈希值等于2,则可以映射到第一布隆过滤器的6个二进制位的第2个二进制位,若该第2个二进制位的数值是0,则将该第2个二进制位的数值由0改为1,若该第2个二进制位的数值已经是1,则该第2个二进制位的数值保持为1。再例如,若第一Value对应有3个第一指纹以及3个第一哈希值,依据3个第一哈希值映射到的第一布隆过滤器的6个二进制位中第3、4和5个二进制位,若第3、4和5个二进制位的数值已经全部是1,则执行步骤204,若第3、4和5个二进制位的数值不是全部是1,则执行步骤201。
步骤204,若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,IP硬盘判断所述第一Value是否为重复数据。
具体的,当所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1时,表示第一Value可能是重复数据,为了降低IP硬盘对重复数据的误判概率,需要进一步判断第一Value是否为重复数据,即判断IP硬盘中是否存在与所述第一Value相同的第二Value。
可以理解的,假设两个Value在第一布隆过滤器中映射的二进制位完全相同的概率是p,p较小,如p可以为0.1%,为了能够进一步降低p,可以通过在IP硬盘的第一布隆过滤器的基础上,增加第一布隆过滤器的二进制位的数目来进一步降低p,或者,也可以在IP硬盘中另外再设置一个布隆过滤器,可以将新设置的布隆过滤器称为第二布隆过滤器。
IP硬盘中存储有P个第二Value,P为大于或者等于1的整数,其中,若硬盘是周期判断是否有重复数据的操作,该第二Value中可以包括除遍历到的第一Value外的其他第一Value,若IP硬盘是每次对收到的第一Value进行判断重复数据的操作,该第二Value可以是IP硬盘中已经存储的所有Value。
优选的,IP硬盘判断所述第一Value是否为重复数据的方法可以包括以下两种:
第一种:首先,IP硬盘获得所述第一Value对应的K个第一指纹以及P个第二Value中每个第二Value对应的K第二指纹,从而可以获得P*K个第二指纹。
然后,IP硬盘利用与第二布隆过滤器对应的哈希算法,获得每个第一指纹对应的第二哈希值和每个第二指纹对应的第三哈希值,优选的,第二布隆过滤器的二进制位的数目大于所述第一布隆过滤器的二进制位的数目,即本方法中,仅通过增加布隆过滤器的二进制位的数目来降低重复数据的误判概率。
接着,IP硬盘将所述第二布隆过滤器中每个所述第三哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器。
最后,IP硬盘依据第二哈希值,获得所述第三布隆过滤器中所述第二哈希值对应的二进制位,若所述第三布隆过滤器中,所述第二哈希值对应的二进制位的数值已经全部为1,则IP硬盘确定所述第一Value为重复数据。
第二种:首先,IP硬盘获得所述第一Value对应的第三指纹以及每个所述第二Value对应的第四指纹;并将所述第三指纹和每个所述第四指纹分别拆分成R个第五指纹和R个第六指纹;其中,R=2n,n为大于或者等于1的整数。
然后,IP硬盘利用与预设的第二布隆过滤器对应的哈希算法,获得所述R个第五指纹对应的R个第四哈希值,以及每个第六指纹对应的R个第五哈希值。优选的,本方法中,第二布隆过滤器的二进制位的数目是第一布隆过滤器的二进制位的数目的R倍。
接着,IP硬盘将所述第二布隆过滤器中每个所述第五哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器。
最后,IP硬盘依据R个第四哈希值,确定第三布隆过滤器中R个所述第四哈希值对应的二进制位,若第三布隆过滤器中,R个第四哈希值对应的二进制位的数值已经全部为1,则IP硬盘确定所述第一Value为重复数据。
例如,请参考图4,其为本发明实施例中第二布隆过滤器的示意图,如图所示,将图3中的K个指纹中每个指纹都拆分成2个指纹,得到2K个指纹,可以利用2K个不同的散列函数计算该2K个指纹,然后再利用2K个哈希算法计算这些指纹对应的哈希值,依据计算得到的哈希值,将第二布隆过滤器中12个二进制位中相应的二进制位的数值置为1。
再例如,第一Value对应的第三指纹A1以及第二Value对应的第四指纹A2,将第三指纹A1拆分成2个第五指纹,即A11和A12,将第四指纹A2拆分成2个第六指纹,即A21和A22,然后利用第二布隆过滤器对应的哈希算法,获得A11、A12、A21和A22分别对应的哈希值,第二布隆过滤器中A11和A12对应的二进制位与A21和A22对应的二进制位完全相同的概率会呈指数级降低,如果第二布隆过滤器中A11和A12对应的二进制位与A21和A22对应的二进制位还是完全相同,IP硬盘就可以确定第一Value与第二Value是相同,第一Value是重复数据。
再例如,如果指纹都是8字节,可以将指纹以4字节、2字节或1字节为单位进行拆分,对应的布隆过滤器的二进制位的数目分别是2R、4R、8R,其中R为大于或者等于1的整数,拆分单位越小,重复数据的误判概率越低,布隆过滤器的二进制位的数目越多,重复数据的误判概率也是越低。
需要说明的是,上述IP硬盘判断所述第一Value是否为重复数据的两种方法,全局指纹匹配会将输入的指纹与已有的指纹中每个指纹逐个比对,若已有的指纹总数为S,则平均比对次数为S/2。如果利用布隆过滤器,对于非重复指纹,可通过布隆过滤器对应的哈希算法实现指纹对比,可以迅速比对出重复的指纹,不用与已有的S个指纹进行一一对比,从可以减少全局指纹匹配次数。
步骤205,若所述第一Value为重复数据,IP硬盘对所述第一Value执行重复数据的删除操作。
具体的,当判定第一Value为重复数据时,IP硬盘可以对所述第一Value执行重复数据的删除操作。
优选的,IP硬盘对所述第一Value执行重复数据的删除操作的方法包括以下两种:
第一种:首先,删除所述IP硬盘中所述第一Value的存储地址中存储的所述第一Value。然后,获得与所述第一Value相同的第二Value对应的Key。最后,在所述IP硬盘中所述第一Value的存储地址中写入所述第二Value对应的Key。也就是说,如果步骤201利用第一种方法实现,表示第一Value已经存储在对应的存储地址中,那么对于是重复数据的第一Value需要先执行删除操作,再在第一Value的存储地址中写入与第一Value相同的第二Value对应的Key。
例如,可以在IP硬盘中预先建立指纹索引<指纹,Value,Key列表>,如果发现Value1是重复数据,则对指纹索引进行遍历,需要找到与Value1相同的其他Value,并且该其他Value对应的指纹需要与Value1对应的指纹也相同,如果能够找到,则将Value1对应的Key保存在指纹索引<指纹,Value,Key列表>的Key列表中。
第二种:首先,获得与所述第一Value相同的第二Value对应的Key;在所述IP硬盘中所述第一Value在的存储地址中写入所述第二Value对应的Key。如果步骤201利用第二种方法实现,表示第一Value是新接收到的Value,对于是重复数据的第一Value不需要进行存储,直接丢弃该第一Value,同时在第一Value的存储地址中写入与第一Value相同的第二Value对应的Key。
可以理解的,由于第一Value与第二Value相同,因此没有必要重复保存相同的数据,为了节省IP硬盘的存储空间,可以将第一Value的存储地址中存储第二Value的Key,这样,当客户端想要读取该第一Value时,IP硬盘依据客户端提供的第一Value的Key找到第一Value的存储地址,然后在该存储地址读取到Key,依据该Key找到第二Value的存储地址,从而获得第二Value,并将第二Value返回给客户端,第一Value的存储地址中写入的Key起到指针作用。
实施例
IP硬盘接收客户端输入的Key1和对应的Value1,然后依据Value1计算对应的指纹,如指纹1=指纹算法(Value1)。
IP硬盘依据指纹1,利用K个哈希算法计算指纹1的K个哈希值,依据K个哈希值,将指纹1映射到布隆过滤器的二进制位上,被映射到得二进制位的数值由0设置为1。
另外,数值已经为1的二进制位如果再次被映射到,其数值保持为1,但该二进制位对应的计数器的数值为2,请参考图5,其为本发明实施例中布隆过滤器的计数器的示意图,如图所示,计数器的数值表示该二进制位被映射到的次数,需要删除某指纹时,将对应的二进制位的计数器的数值减去该指纹映射到该二进制位的次数。
IP硬盘保存(指纹1、Value1、计数器1),计数器1的数值表示(指纹1、Value1)被重复使用的次数,当前计数器1的数值为1;如果计数值由1变为0,则可以将该指纹与对应的Value删除,同时在布隆过滤器中该指纹对应的二进制位的计数值也相应减少。
IP硬盘保存(Key1、Value1在IP硬盘的存储地址)。
IP硬盘接收客户端输入的Key和对应的Value2,然后依据Value2计算对应的指纹,如指纹2=指纹算法(Value2)。
IP硬盘依据指纹2,利用K个哈希算法计算指纹2的K个哈希值,依据K个哈希值,将指纹2映射到布隆过滤器的二进制位上,被映射到得二进制位的数值由0设置为1。
如果指纹2映射到得二进制位已经全部是1,表示Value2可能是重复数据,则IP硬盘将(指纹2、Value2)与已经存入的(指纹1、Value1)进行比较,如果比较结果是Value2是重复数据,则IP硬盘保存(Key2、Value1在IP硬盘的存储地址),同时,IP硬盘中保存的(指纹1、Value1、计数值1)中的计数值加1,表示被重复使用了2次。如果比较结果是Value2不是重复数据,执行非重复数据的处理流程,如将布隆过滤器中相应的二进制位的值置为1,且被映射到的二进制位的计数器的数值加1,然后保存(指纹2、Value2、计数器2),计数器2表示(指纹2、Value2)被重复使用的次数,当前计数器2的数值为1,最后IP硬盘保存将(Key2、Value2在IP硬盘的存储地址)。
本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
请参考图6,其为本发明实施例所提供的IP硬盘的功能方块图,所述IP硬盘中预设有第一布隆过滤器;如图所示,该IP硬盘包括:
获取单元601,用于获得第一数值Value;以及获得所述第一Value对应的第一哈希值;
处理单元602,用于判断所述第一布隆过滤器中与所述获取单元501获得的所述第一哈希值对应的二进制位的数值是否为1;若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,判断所述第一Value是否为重复数据;
执行单元603,用于若所述处理单元602判定所述第一Value为重复数据,对所述第一Value执行重复数据的删除操作。
优选的,所述获取单元601具体用于:
依据所述IP硬盘中预先存储的Value,获得所述第一Value;或者,
依据客户端通过以太网口发送的Value,获得所述第一Value。
优选的,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述处理单元602具体用于:
获得所述第一Value对应的第一指纹和每个所述第二Value对应的第二指纹;
利用与所述第二布隆过滤器对应的哈希算法,获得所述第一指纹对应的第二哈希值和每个所述第二指纹对应的第三哈希值,所述第二布隆过滤器的二进制位的数目大于所述第一布隆过滤器的二进制位的数目;
将所述第二布隆过滤器中每个所述第三哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
获得所述第三布隆过滤器中所述第二哈希值对应的二进制位,若所述第三布隆过滤器中所述第二哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
优选的,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述处理单元602具体用于:
获得所述第一Value对应的第三指纹和每个所述第二Value对应的第四指纹;
将所述第三指纹和每个所述第四指纹分别拆分成R个第五指纹和R个第六指纹,R=2n,n为大于或者等于1的整数;
利用与所述第二布隆过滤器对应的哈希算法,获得所述R个第五指纹对应的R个第四哈希值和每个第六指纹对应的R个第五哈希值;所述第二布隆过滤器的二进制位的数目是所述第一布隆过滤器的二进制位的数目的R倍;
将所述第二布隆过滤器中每个所述第五哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
获得所述第三布隆过滤器中R个所述第四哈希值对应的二进制位,若所述第三布隆过滤器中R个所述第四哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
优选的,所述执行单元603具体用于:
删除所述IP硬盘中所述第一Value的存储地址中存储的所述第一Value;
获得与所述第一Value相同的第二Value对应的Key;
在所述IP硬盘中所述第一Value的存储地址中写入所述第二Value对应的Key。
优选的,所述执行单元603具体用于:
获得与所述第一Value相同的第二Value对应的Key;
在所述IP硬盘中所述第一Value在的存储地址中写入所述第二Value对应的Key。
请参考图7,其为本发明实施例所提供的IP硬盘的结构示意图。如图所示,该IP硬盘包括:
存储器701,用于存储一组或多组程序代码;
处理器702,与存储器701耦合,用于调用存储器701中存储的程序代码,以执行以下图2所示的方法,具体包括:获得第一数值Value;以及获得所述第一Value对应的第一哈希值;判断所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值是否为1;若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,判断所述第一Value是否为重复数据;若所述第一Value为重复数据,对所述第一Value执行重复数据的删除操作。
由于本实施例中的处理器能够执行图2所示的方法,本实施例未详细描述的部分,可参考对图2的相关说明。
本发明实施例的技术方案具有以下有益效果:
1、IP硬盘能够利用布隆过滤器判断Value是否属于重复数据,并在判定Value为重复数据时对Value执行删除操作,因此,IP硬盘可以自行主动删除重复数据,从而可以节省IP硬盘的存储空间。
2、传统技术中,由与硬盘连接的主机对硬盘中重复数据的进行判断、删除等操作,或者由重删服务器统一对若干硬盘进行重复数据的判断、删除等操作,重复数据的删除操作过渡集中于主机或者重删服务器,处理效率比较低,存在处理瓶颈;本发明实施例提供的技术方案中,由IP硬盘自己进行重复数据的判定、删除等操作,实现分布式的重复数据的处理,能够及时进行重复数据的删除,大大提高处理效率,提高IP硬盘性能和硬盘可靠性。
3、本发明实施例中,IP硬盘对Value进行重复数据的多重判断操作,能够降低重复数据的误判概率,减少IP硬盘的误删除事件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种网络互连协议IP硬盘的数据处理方法,其特征在于,所述IP硬盘中预设有第一布隆过滤器;所述方法包括:
所述IP硬盘获得第一数值Value;
所述IP硬盘获得所述第一Value对应的第一哈希值;
所述IP硬盘判断所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值是否为1;
若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,所述IP硬盘判断所述第一Value是否为重复数据;
若所述第一Value为重复数据,所述IP硬盘对所述第一Value执行重复数据的删除操作。
2.根据权利要求1所述的方法,其特征在于,所述IP硬盘获得第一Value,包括:
所述IP硬盘依据所述IP硬盘中预先存储的Value,获得所述第一Value;或者,
所述IP硬盘依据客户端通过以太网口发送的Value,获得所述第一Value。
3.根据权利要求1或2所述的方法,其特征在于,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述IP硬盘判断所述第一Value是否为重复数据,包括:
所述IP硬盘获得所述第一Value对应的第一指纹和每个所述第二Value对应的第二指纹;
所述IP硬盘利用与所述第二布隆过滤器对应的哈希算法,获得所述第一指纹对应的第二哈希值和每个所述第二指纹对应的第三哈希值,所述第二布隆过滤器的二进制位的数目大于所述第一布隆过滤器的二进制位的数目;
所述IP硬盘将所述第二布隆过滤器中每个所述第三哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
所述IP硬盘获得所述第三布隆过滤器中所述第二哈希值对应的二进制位,若所述第三布隆过滤器中所述第二哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
4.根据权利要求1或2所述的方法,其特征在于,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述IP硬盘判断所述第一Value是否为重复数据,包括:
所述IP硬盘获得所述第一Value对应的第三指纹和每个所述第二Value对应的第四指纹;
所述IP硬盘将所述第三指纹和每个所述第四指纹分别拆分成R个第五指纹和R个第六指纹,R=2n,n为大于或者等于1的整数;
所述IP硬盘利用与所述第二布隆过滤器对应的哈希算法,获得所述R个第五指纹对应的R个第四哈希值和每个第六指纹对应的R个第五哈希值;所述第二布隆过滤器的二进制位的数目是所述第一布隆过滤器的二进制位的数目的R倍;
所述IP硬盘将所述第二布隆过滤器中每个所述第五哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
所述IP硬盘获得所述第三布隆过滤器中R个所述第四哈希值对应的二进制位,若所述第三布隆过滤器中R个所述第四哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
5.根据权利要求2所述的方法,其特征在于,所述IP硬盘对所述第一Value执行重复数据的删除操作,包括:
IP硬盘删除所述IP硬盘中所述第一Value的存储地址中存储的所述第一Value;
IP硬盘获得与所述第一Value相同的第二Value对应的Key;
IP硬盘在所述IP硬盘中所述第一Value的存储地址中写入所述第二Value对应的Key。
6.根据权利要求2所述的方法,其特征在于,所述IP硬盘对所述第一Value执行重复数据的删除操作,包括:
IP硬盘获得与所述第一Value相同的第二Value对应的Key;
IP硬盘在所述IP硬盘中所述第一Value在的存储地址中写入所述第二Value对应的Key。
7.一种IP硬盘,其特征在于,所述IP硬盘中预设有第一布隆过滤器;所述IP硬盘包括:
获取单元,用于获得第一数值Value;以及获得所述第一Value对应的第一哈希值;
处理单元,用于判断所述第一布隆过滤器中与所述获取单元获得的所述第一哈希值对应的二进制位的数值是否为1;若所述第一布隆过滤器中与所述第一哈希值对应的二进制位的数值为1,判断所述第一Value是否为重复数据;
执行单元,用于若所述处理单元判定所述第一Value为重复数据,对所述第一Value执行重复数据的删除操作。
8.根据权利要求7所述的IP硬盘,其特征在于,所述获取单元具体用于:
依据所述IP硬盘中预先存储的Value,获得所述第一Value;或者,
依据客户端通过以太网口发送的Value,获得所述第一Value。
9.根据权利要求7或8所述的IP硬盘,其特征在于,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述处理单元具体用于:
获得所述第一Value对应的第一指纹和每个所述第二Value对应的第二指纹;
利用与所述第二布隆过滤器对应的哈希算法,获得所述第一指纹对应的第二哈希值和每个所述第二指纹对应的第三哈希值,所述第二布隆过滤器的二进制位的数目大于所述第一布隆过滤器的二进制位的数目;
将所述第二布隆过滤器中每个所述第三哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
获得所述第三布隆过滤器中所述第二哈希值对应的二进制位,若所述第三布隆过滤器中所述第二哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
10.根据权利要求7至8所述的IP硬盘,其特征在于,所述IP硬盘中预设有第二布隆过滤器;所述IP硬盘存储有P个第二Value,P为大于或者等于1的整数,所述处理单元具体用于:
获得所述第一Value对应的第三指纹和每个所述第二Value对应的第四指纹;
将所述第三指纹和每个所述第四指纹分别拆分成R个第五指纹和R个第六指纹,R=2n,n为大于或者等于1的整数;
利用与所述第二布隆过滤器对应的哈希算法,获得所述R个第五指纹对应的R个第四哈希值和每个第六指纹对应的R个第五哈希值;所述第二布隆过滤器的二进制位的数目是所述第一布隆过滤器的二进制位的数目的R倍;
将所述第二布隆过滤器中每个所述第五哈希值对应的二进制位的数值置为1,以获得第三布隆过滤器;
获得所述第三布隆过滤器中R个所述第四哈希值对应的二进制位,若所述第三布隆过滤器中R个所述第四哈希值对应的二进制位的数值全部为1,确定所述第一Value为重复数据。
11.根据权利要求8所述的IP硬盘,其特征在于,所述执行单元具体用于:
删除所述IP硬盘中所述第一Value的存储地址中存储的所述第一Value;
获得与所述第一Value相同的第二Value对应的Key;
在所述IP硬盘中所述第一Value的存储地址中写入所述第二Value对应的Key。
12.根据权利要求8所述的IP硬盘,其特征在于,所述执行单元具体用于:
获得与所述第一Value相同的第二Value对应的Key;
在所述IP硬盘中所述第一Value在的存储地址中写入所述第二Value对应的Key。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410362354.0A CN104123102B (zh) | 2014-07-25 | 2014-07-25 | 一种ip硬盘及其数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410362354.0A CN104123102B (zh) | 2014-07-25 | 2014-07-25 | 一种ip硬盘及其数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104123102A true CN104123102A (zh) | 2014-10-29 |
CN104123102B CN104123102B (zh) | 2017-06-20 |
Family
ID=51768528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410362354.0A Active CN104123102B (zh) | 2014-07-25 | 2014-07-25 | 一种ip硬盘及其数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104123102B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016082560A1 (zh) * | 2014-11-26 | 2016-06-02 | 华为技术有限公司 | 一种检测键的方法和服务器 |
CN105760413A (zh) * | 2015-12-07 | 2016-07-13 | 重庆川仪自动化股份有限公司 | 基于哈希表的rfid数据在mes系统中的管理方法 |
CN109074226A (zh) * | 2016-09-28 | 2018-12-21 | 华为技术有限公司 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
CN112162975A (zh) * | 2020-09-25 | 2021-01-01 | 华南理工大学 | 基于单哈希均分布隆过滤器的重复数据删除技术实现方法 |
CN114139181A (zh) * | 2021-11-30 | 2022-03-04 | 四川效率源信息安全技术股份有限公司 | 一种设置、清除及打开固态硬盘密码的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030117302A1 (en) * | 2001-12-21 | 2003-06-26 | Suh Sang Woon | Method and apparatus of converting a series of data words into modulated signals |
CN102185889A (zh) * | 2011-03-28 | 2011-09-14 | 北京邮电大学 | 基于iSCSI的重复数据删除方法 |
CN103345472A (zh) * | 2013-06-04 | 2013-10-09 | 北京航空航天大学 | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 |
-
2014
- 2014-07-25 CN CN201410362354.0A patent/CN104123102B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030117302A1 (en) * | 2001-12-21 | 2003-06-26 | Suh Sang Woon | Method and apparatus of converting a series of data words into modulated signals |
CN102185889A (zh) * | 2011-03-28 | 2011-09-14 | 北京邮电大学 | 基于iSCSI的重复数据删除方法 |
CN103345472A (zh) * | 2013-06-04 | 2013-10-09 | 北京航空航天大学 | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 |
Non-Patent Citations (1)
Title |
---|
周正达: "信息存储系统中重复数据删除技术的研究", 《计算机系统结构》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016082560A1 (zh) * | 2014-11-26 | 2016-06-02 | 华为技术有限公司 | 一种检测键的方法和服务器 |
CN104461817B (zh) * | 2014-11-26 | 2017-08-11 | 华为技术有限公司 | 一种检测键的方法和服务器 |
CN105760413A (zh) * | 2015-12-07 | 2016-07-13 | 重庆川仪自动化股份有限公司 | 基于哈希表的rfid数据在mes系统中的管理方法 |
CN105760413B (zh) * | 2015-12-07 | 2018-10-23 | 重庆川仪自动化股份有限公司 | 基于哈希表的rfid数据在mes系统中的管理方法 |
CN109074226A (zh) * | 2016-09-28 | 2018-12-21 | 华为技术有限公司 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
CN109074226B (zh) * | 2016-09-28 | 2020-03-20 | 华为技术有限公司 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
CN112162975A (zh) * | 2020-09-25 | 2021-01-01 | 华南理工大学 | 基于单哈希均分布隆过滤器的重复数据删除技术实现方法 |
CN114139181A (zh) * | 2021-11-30 | 2022-03-04 | 四川效率源信息安全技术股份有限公司 | 一种设置、清除及打开固态硬盘密码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104123102B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10496489B1 (en) | Storage system configured for controlled transition between asynchronous and synchronous replication modes | |
US10353884B2 (en) | Two-stage front end for extent map database | |
US10303797B1 (en) | Clustering files in deduplication systems | |
CN110489059B (zh) | 数据集群存储的方法、装置及计算机设备 | |
US10534547B2 (en) | Consistent transition from asynchronous to synchronous replication in hash-based storage systems | |
CN104123102B (zh) | 一种ip硬盘及其数据处理方法 | |
US9569357B1 (en) | Managing compressed data in a storage system | |
EP3376393B1 (en) | Data storage method and apparatus | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
US10146786B2 (en) | Managing deduplication in a data storage system using a Bloomier filter data dictionary | |
US20150127621A1 (en) | Use of solid state storage devices and the like in data deduplication | |
US20100199065A1 (en) | Methods and apparatus for performing efficient data deduplication by metadata grouping | |
US10387271B2 (en) | File system storage in cloud using data and metadata merkle trees | |
US10929047B2 (en) | Storage system with snapshot generation and/or preservation control responsive to monitored replication data | |
US10108644B1 (en) | Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration | |
WO2014037767A1 (en) | Multi-level inline data deduplication | |
WO2014094479A1 (zh) | 重复数据删除方法和装置 | |
WO2017020576A1 (zh) | 一种键值存储系统中文件压实的方法和装置 | |
US10503609B1 (en) | Replication link smoothing using historical data | |
US10838923B1 (en) | Poor deduplication identification | |
US10884650B1 (en) | Opportunistic compression of replicated data in a content addressable storage system | |
US20200341672A1 (en) | Methods to reduce storage capacity | |
US10909001B1 (en) | Storage system with snapshot group split functionality | |
US10929239B2 (en) | Storage system with snapshot group merge functionality | |
CN111522811B (zh) | 数据库的处理方法及装置、存储介质、终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |