CN106610794B - 数据去重的收敛分块方法及装置 - Google Patents
数据去重的收敛分块方法及装置 Download PDFInfo
- Publication number
- CN106610794B CN106610794B CN201611041876.6A CN201611041876A CN106610794B CN 106610794 B CN106610794 B CN 106610794B CN 201611041876 A CN201611041876 A CN 201611041876A CN 106610794 B CN106610794 B CN 106610794B
- Authority
- CN
- China
- Prior art keywords
- block
- sliding window
- current
- length
- preset
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据去重的收敛分块方法。所述方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置。本发明还公开了一种数据去重的收敛分块装置。本发明在分块时通过引入所述当前分块的长度作为分块参数,动态地选择放宽或者紧缩分块判断条件,控制了数据块的平均块长,也减少了数据块的总数,提高了去重分块效率。
Description
技术领域
本发明涉及计算机领域,尤其涉及存储系统数据去重的收敛分块方法及装置。
背景技术
目前数据流去重领域采取分块获取哈希值进行比对判断数据流是否重复,在分块后平均块长越大,数据流去重的粒度也就越大,去重率下降;平均块长越小,去重效率低。而目前广泛采用的基于内容分块方法采用的是逐个字节滑动窗口,然后计算和判断窗口内容哈希值的方法,由于基于内容分块算法中哈希值的随机性特征,导致分块后产生的块长数量与块长成指数分布:既有非常多的超小的数据块和超大的数据块;其中分块出非常多的小的数据块,会导致分块的数据块的总数很大,从而导致计算和判断窗口内容哈希值的次数增加,降低了分块效率。
发明内容
本发明的主要目的在于提供一种数据去重的收敛分块方法,旨在控制超小的数据块和超大的数据块的数量的同时控制数据块的总数,提高分块效率。
为实现上述目的,本发明提供的一种数据去重的收敛分块方法包括以下步骤:
记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;
当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;
若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;
当所述滑动窗口所在的当前位置是所述数据流的结束位置时,则记录所述结束位置为一个分块位置,并结束分块操作。
优选地,所述当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
判断所述当前分块的长度是否小于标准预设长度;
若是,则使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。
优选地,所述当前分块的长度小于标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;
判断所述对比值与预设哈希值是否匹配;
若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则使所述滑动窗口向前移动一步。
优选地,当所述当前分块的长度不小于标准预设长度时,所述使用放宽分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;
判断所述对比值与预设哈希值是否匹配;
若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则使所述滑动窗口向前移动一步。
优选地,在所述判断所述当前分块的长度是否小于标准预设长度之前还包括:
跳跃移动所述滑动窗口一个预设跳跃长度;
当跳跃移动所述滑动窗口一个预设跳跃长度后,判断所述滑窗口的位置是否是所述数据流的结束位置;
若是,则记录所述结束位置为一个分块位置,并结束分块操作;
若否,则使所述滑动窗口向前移动一步。
此外,为实现上述目的,本发明还提供一种一种数据去重的收敛分块装置包括:
启动模块,用于记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;
判断模块,用于当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是数据流的结束位置;
第一分块模块,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;
结束模块,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作。
优选地,所述第一分块模块包括:
第一判断单元,用于判断所述当前分块的长度是否小于标准预设长度;
第二分块模块,用于当所述当前分块的长度小于所述标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第三分块模块,用于当所述当前分块的长度不小于所述标准预设长度时,使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。
优选地,所述第二分块模块包括:
第一获取单元,用于获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;
第二判断单元,用于判断所述对比值与预设哈希值是否匹配;
第一分块单元,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第一移动单元,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。
优选地,所述第三分块模块包括:
第二获取单元,获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;
第三判断单元,用于判断所述对比值与预设哈希值是否匹配;
第二分块单元,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第二移动单元,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。
优选地,所述第一分块模块还包括:
跳跃单元,用于跳跃移动所述滑动窗口一个预设跳跃长度;
第四判断单元,用于当跳跃移动所述滑动窗口后,判断所述滑窗口的位置是否是所述数据流的结束位置;
结束单元,用于当所述滑窗口的位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作;
第四移动单元,用于当所述滑窗口的位置是所述数据流的结束位置时,使所述滑动窗口向前移动一步。
本发明公开了一种数据去重的收敛分块方法及装置,所述数据去重的收敛分块方法包括以下步骤:记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;若否,则根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块。在分块时通过引入所述当前分块的长度作为分块参数,动态地选择放宽或者紧缩分块判断条件,使得可以根据不同的当前分块的长度选择判断分块条件减少了超小和超大数据块的数量,控制了数据块的平均块长,也减少了分块的总数,提高了去重分块效率。
附图说明
图1为本发明数据去重的收敛分块方法第一实施例的流程示意图;
图2为本发明数据去重的收敛分块方法第二实施例的流程示意图;
图3为本发明数据去重的收敛分块方法第三实施例中所述当前分块的长度小于标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步的细化流程示意图;
图4为本发明数据去重的收敛分块方法第四实施例中当所述当前分块的长度不小于标准预设长度时,所述使用放宽分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步的细化流程示意图;
图5为本发明数据去重的收敛分块方法第四实施例中在所述判断所述当前分块的长度是否小于标准预设长度之前进行跳跃移动的细化流程示意图;
图6为本发明数据去重的收敛分块装置第一实施例的功能模块示意图;
图7为本发明数据去重的收敛分块装置第二实施例中第一分块模块的细化功能模块示意图;
图8为本发明数据去重的收敛分块装置第三实施例中第二分块模块的细化功能模块示意图;
图9为本发明数据去重的收敛分块装置第四实施例中第三分块模块的细化功能模块示意图;
图10为本发明数据去重的收敛分块装置第五实施例中第一分块模块的细化功能模块示意图;
图11为采用本发明数据去重的收敛分块方法第一实施例得到的分块结果中分块长度分布示意图;
图12为采用现有技术基于内容分块方法得到的分块结果中分块长度分布示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据去重的收敛分块方法,参照图1,在第一实施例中,该数据去重的收敛分块方法包括:
步骤S10,记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;
针对给定的一个需要被分块的文件或数据流开始分块操作,设置当前位置为Cur,取所述滑动窗口的长度为48字节,从Cur位置开始逐步移动所述滑动窗口至所述数据流的结束位置,在本实施例中所述逐步移动中的每步为1个字节。
步骤S20,当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;
如果所述文件或数据流的最后一位在所述滑动窗口内时,即可判断所述滑动窗口是在数据流的结束位置。
若否,则执行步骤S30,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;
在分块时,会根据预定义数据流产生的哈希值,如果所述哈希值和当前所述滑动窗口内的数据的哈希值匹配,则在当前位置进行分块处理。但是由于哈希值是随机的,可能会在当前分块长度很小或者当前分块长度很大的时候判定当前位置为分块位置。为了避免这种现象的发生,如存在前分块小于标准预设长度的时,收紧判断条件,使得匹配概率降低,尽量使所述滑动窗口移动到下个位置再进行处理;同理,当所述滑动窗口已经移动了很多步后,所述当前块长已经很大时,有可能还没有出现与所述预定义的哈希值相匹配的内容而判断当前位置不是分块位置,所以为了不使分块长度继续变大,应该放宽分块条件尽可能的在当前位置进行分块操作,通过根据所述当前分块的长度动态选择放宽还是收紧匹配条件来控制分块的长短,减少分块中分块长度极大值或极小值的出现的数量,控制所述分块长度的大小,避免出现过长分块情况导致的去重率下降的问题;同时因为减少了分块长度过短情况的出现,降低了分块的整体数量,提高了去重分块效率。
所述当前分块的长度为数据流起点或者上个分块位置到所述滑动窗口当前位置之间包含数据的长度,本发明数据去重的收敛分块方法通过引入所述当前分块的长度作为分块参数,根据当前分块的长度,动态地选择放宽或者紧缩判断条件,使得整个分块过程中数据块的长度可控;同时因为数据流的总长度不变,小数据块的数量的减少,也减少了分块的总数。
当所述滑动窗口所在的当前位置是所述数据流的结束位置时,则执行步骤S40,记录所述结束位置为一个分块位置,并结束分块操作。
具体地:所述滑动窗从起始位置Cur开始每步一个字节向数据流结束位置移动,在每步都判断当前位置是否可以作为分块位置,当所述当前分块长度小于4KB时,选取紧缩的,更为苛刻的判断条件来判断所述滑动窗口位置是否为分块位置;当所述当前分块长度大于8KB时,采取宽松的判断条件来判断所述滑动窗口位置是否为分块位置;直至所述滑动窗口移动到数据流的结束位置,并在所述全部数据流的结束位置进行分块操作并完成分块操作。使得所述分块完成后的数据块的长度大部分都在4KB至8KB附近,减少了超小长度数据块的数量,也减少了超大数据块的数量,保证了去重率;相比现有技术中,具体如图12,使用传统的Rabin哈希算法得出的数据块中有22%的数据块长度小于2KB,而本实施例中的数据块长度都集中收敛在4KB至8KB附近,通过提高数据块的平均长度,极大地减小了数据块的数量,提高了去重分块效率。
进一步地,请参照图2,基于本发明数据去重的收敛分块方法第一实施例,在本发明数据去重的收敛分块方法第二实施例中,所述当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
步骤S31,判断所述当前分块的长度是否小于标准预设长度;
若是,则执行步骤S32,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则执行步骤S33,使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。
具体地:开始分块,针对文件的初始位置设置为Cur,记做0,所述标准预设长度为8KB(需要说明的是,标准预设块长可以变化为4KB、16KB不等,应根据实际问题进行选择)从零开始移动所述滑动窗口,所述滑动窗口为48字节,在所述滑动窗口开始移动到Cur+8192字节之前(即所述分块长度小于8KB),例如:当所述滑动窗体移动到Cur+7168时,因为当前分块长度为7KB,还不到8KB,使用收紧分块条件,即相对苛刻的条件来判断是否在当前位置可以进行分块操作,尽量使得判断结果为不能分块,使所述滑动窗体向数据流的结束位置移动一个字节成为大概率事件;当所述滑动窗体移动到Cur+9216字节时,此时当前分块长度为9KB,因为超过了8KB,所以采用放宽分块判断条件来使在此分块成为大概率事件,尽量在当前位置进行分块操作,以防止分块的长度进一步变大;在本实施例中因为所述分块的成功率在所述当前分块长度为8KB时最高,当长度与8KB越接近时,分块成功概率越大,当前分块长度与8KB相差越多,分块成功概率越小,所以最后数据块的长度如图11,近似正态分布,数据块的长度8KB为正态分布的高峰,且大部分数据块的块长在8KB附近,避免了过多短数据块的出现,减少了分块数量,提高了去重分块效率;也避免了过多长数据块的出现,提高了去重率;
进一步地,请参照图3,基于本发明数据去重的收敛分块方法第二实施例,在本发明数据去重的收敛分块方法第三实施例中,所述当前分块的长度小于标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
步骤S321,获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;
所述预设位数为提前设置好的位数,需要说明的是,在有些实施例中所述预设位数为一个集合,根据不同的所述当前分块的块长来选取。对比值选取的位数越多,匹配的概率会越小。
步骤S322,判断所述对比值与预设哈希值是否匹配;
本实施例中,如果所述对比值和预设的哈希值相等,则认为所述对比值与所述预设哈希值匹配。所述预设哈希值为指定数据计算出的哈希值,通过使用指定位数来对比,提高了去重分块效率。
若是,则执行步骤S323,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则执行步骤S324,使所述滑动窗口向前移动一步。
具体地:设置预设位数为13位,假定当前分块长度为4KB时,因为小于标准预设长度8KB,所以选取比13位多的15位进行比较,即计算得到所述滑动窗口对应内容的哈希值fp后,选取所述fp的最后15位和预设哈希值进行匹配,因为从概率上分析:在13位时是8KB(即213)个中有一个满足分块要求,而选取15位时是32KB(即215)个中才有一个满足分块要求,所以极大地降低了分块成功的概率,增大了使所述滑动窗口向数据流结尾移动一个字节的概率,并降低了在该位置分块的概率。减少了小分块的数量,减少了后的数据块数量,提高了去重分块效率。
进一步地,请参照图4,基于本发明数据去重的收敛分块方法第二实施例,在本发明数据去重的收敛分块方法第四实施例中,当所述当前分块的长度不小于标准预设长度时,所述使用放宽分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
步骤S331,获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;
所述预设位数为提前设置好的位数,需要说明的是,在有些实施例中所述预设位数为一个集合,根据不同的所述当前分块的块长来选取。对比值选取的位数越少,匹配的概率会越高
步骤S332,判断所述对比值与预设哈希值是否匹配;
若是,则执行步骤S333,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则执行步骤S334,则使所述滑动窗口向前移动一步。
具体地:设置预设位数为13位,当前分块长度为9KB时,因为大于标准预设长度8KB,所以选取比13位少的11位进行比较,即计算得到所述滑动窗口对应内容的哈希值fp后,选取所述fp的最后11位和预设哈希值进行匹配,因为从概率上分析:在11位时是8KB(即213)个中才有一个满足分块要求,而选取11位时是2KB(即211)个中就有一个满足分块要求。使得分块在当前位置进行成为大概率事件,避免了分块过大,导致的去重率下降的问题。
进一步地,请参照图5,基于本发明数据去重的收敛分块方法第二实施例,在本发明数据去重的收敛分块方法第五实施例中,在所述判断所述当前分块的长度是否小于标准预设长度之前还包括:
步骤S34,跳跃移动所述滑动窗口一个预设跳跃长度;
步骤S35,当跳跃移动所述滑动窗口一个预设跳跃长度后,判断所述滑窗口的位置是否是所述数据流的结束位置;
若是,则执行步骤S36,记录所述结束位置为一个分块位置,并结束分块操作;
若否,则执行步骤S37,使所述滑动窗口向前移动一步。
所述预设跳跃长度为预设的最小块长,应该根据实际需要进行设定。有些待分块的数据流可能很短,不到一个预设跳跃长度时,则只移动所述滑动窗口一次即可结束整个分块操作。
具体地:在每个分块位置后,都不进行判断所述当前分块的长度是否小于标准预设长度,而是先移动所述滑动窗口跳跃移动2KB(该预设跳跃块长可以设置为小于平均预设块长,比如1KB、2KB、4KB不等),在此段距离内不做哈希计算,也不进行哈希匹配或判断在此距离内是否存在分块位置,如果数据流剩余的长度不够2KB,则以数据流的结束位置为分块位置分块;如果数据流剩余的长度大于2KB,则所述滑动窗口继续向数据流结尾处移动一个字节,并开始每步都进行判断所述当前分块的长度是否小于标准预设长度,如果判断当前位置为分块位置,则下一步又开始步骤S34。因为移动到下个字节后的当前分块长度还小于标准预设长度8KB,所以选取紧缩的判断条件来判断所述滑动窗口位置是否为分块位置,因此分块的概率很小,立即触发步骤S34的概率也很小。因为省去了预设跳跃长度内区域的哈希计算和判断计算操作,进一步地提高整体分块的平均块长,减少分块的总数目,在分块开始使用此种跳跃分块,减少分块的CPU开销,提升分块速度。因为后续还使用依赖于当前块长而选择分块判断条件来实现分块,所以此种跳跃分块没有破坏基于内容分块的内容依赖属性。
本发明提供一种数据去重的收敛分块装置,参照图6,在第一实施例中,该数据去重的收敛分块装置包括:
启动模块10,用于记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;
针对给定的一个需要被分块的文件或数据流开始分块操作,设置当前位置为Cur,取所述滑动窗口的长度为48字节,从Cur位置开始逐步移动所述滑动窗口至所述数据流的结束位置,在本实施例中所述逐步移动中的每步为1个字节。
判断模块20,用于当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是数据流的结束位置;
如果所述文件或数据流的最后一位在所述滑动窗口内时,即可判断所述滑动窗口是在数据流的结束位置。
第一分块模块30,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择判断条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;
在分块时,会根据预定义数据流产生的哈希值,如果所述哈希值和当前所述滑动窗口内的数据的哈希值匹配,则在当前位置进行分块处理。但是由于哈希值是随机的,可能会在当前分块长度很小或者当前分块长度很大的时候判定当前位置为分块位置。为了避免这种现象的发生,如存在当前分块小于标准预设长度的时,收紧判断条件,使得匹配概率降低,尽量使所述滑动窗口移动到下个位置再进行处理;同理,当所述滑动窗口已经移动了很多步后,所述当前块长已经很大时,有可能还没有出现与所述预定义的哈希值相匹配的内容而判断当前位置不是分块位置,所以为了不使分块长度继续变大,应该放宽分块条件尽可能的在当前位置进行分块操作,通过根据所述当前分块的长度动态选择放宽还是收紧匹配条件来控制分块的长短,减少分块中分块长度极大值或极小值的出现的数量,控制所述分块长度的大小,避免出现过长分块情况导致的去重率下降的问题;同时因为减少了分块长度过短情况的出现,降低了分块的整体数量,提高了去重分块效率。
所述当前分块的长度为数据流起点或者上个分块位置到所述滑动窗口当前位置之间包含数据的长度,本发明数据去重的收敛分块方法通过引入所述当前分块的长度作为分块参数,根据当前分块的长度,动态地选择放宽或者紧缩判断条件,使得整个分块过程中数据块的长度可控;同时因为数据流的总长度不变,小数据块的数量的减少,也减少了分块的总数目。
结束模块40,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作。
具体地:所述启动模块10操作所述滑动窗从起始位置Cur开始每步一个字节向数据流结束位置移动,在每步都判断当前位置是否可以作为分块位置,当所述判断模块20判断所述当前分块长度小于4KB时,第一分块模块30选取紧缩的,更为苛刻的判断条件来判断所述滑动窗口位置是否为分块位置;当所述判断模块20判断所述当前分块长度大于8KB时,第一分块模块30采取宽松的判断条件来判断所述滑动窗口位置是否为分块位置;直至所述滑动窗口移动到全部数据流的结束位置,启动所述结束模块40在所述数据流的结束位置并完成分块操作。使得所述分块完成后的数据块的长度大部分都在4KB至8KB附近之间,减少了超小长度数据块的数量,也减少了超大数据块的数量,保证了去重率;相比现有技术中,具体如图12,使用传统的Rabin哈希算法得出的数据块中有22%的数据块长度小于2KB,而本实施例中的数据块长度都收敛集中在4KB至8KB附近,通过提高数据块的平均长度,极大地减小了数据块的数量,提高了去重分块效率。
进一步地,请参照图7,基于本发明数据去重的收敛分块装置第一实施例,在本发明数据去重的收敛分块装置第二实施例中,所述第一分块模块30包括:
第一判断单元31,用于判断所述当前分块的长度是否小于标准预设长度;
第二分块模块32,当所述当前分块的长度小于所述标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第三分块模块33,用于当所述当前分块的长度不小于所述标准预设长度时,使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。
具体地:开始分块,针对文件的初始位置设置为Cur,记做0,所述标准预设长度为8KB,从零开始移动所述滑动窗口,所述滑动窗口为48字节,在所述滑动窗口开始移动到Cur+8192字节之前(即所述分块长度小于8KB),例如:当所述滑动窗体移动到Cur+7168时,因为当前分块长度为7KB,第一判断单元31判断小于8KB,调用第二分块模块32使用收紧分块条件,即相对苛刻的条件来判断是否在当前位置可以进行分块操作,尽量使得判断结果为不能分块,使所述滑动窗体向数据流的结束位置移动一个字节成为大概率事件;当所述滑动窗体移动到Cur+9216字节时,此时当前分块长度为9KB,第一判断单元31判断大于8KB,调用第三分块模块33采用放宽分块判断条件来使在此分块成为大概率事件,尽量在当前位置进行分块操作,以防止分块的长度进一步变大;在本实施例中因为所述分块的成功率在所述当前分块长度为8KB时最高,当长度与8KB越接近时,分块成功概率越大,当前分块长度与8KB相差越多,分块成功概率越小,所以最后数据块的长度如图11,近似正态分布,数据块的长度8KB为正态分布的高峰,且大部分数据块的块长在8KB附近,避免了过多短数据块的出现,提高了去重分块效率;也避免了过多长数据块的出现,提高了去重率;
进一步地,请参照图8,基于本发明数据去重的收敛分块装置第二实施例,在本发明数据去重的收敛分块装置第三实施例中,所述第二分块模块32包括:
第一获取单元321,用于获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;
所述预设位数为提前设置好的位数,需要说明的是,在有些实施例中所述预设位数为一个集合,根据不同的所述当前分块的块长来选取。对比值选取的位数越多,匹配的概率会越小。
第二判断单元322,用于判断所述对比值与预设哈希值是否匹配;
本实施例中,如果所述对比值和预设的哈希值相等,则认为所述对比值与所述预设哈希值匹配。所述预设哈希值为指定数据计算出的哈希值,通过使用指定位数来对比,提高了去重分块效率。
第一分块单元323,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第一移动单元324,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。
具体地:第一获取单元321获取预设位数为13位,假定当前分块长度为4KB时,因为小于标准预设长度8KB,所以调用第二判断单元322选取比13位多的15位进行比较,即计算得到所述滑动窗口对应内容的哈希值fp后,选取所述fp的最后15位和预设哈希值进行匹配,因为从概率上分析:在13位时是8KB(即213)个中有一个满足分块要求,并调用第一分块单元323进行分块操作。而选取15位时是32KB(即215)个中才有一个满足分块要求,并调用第一分块单元323进行分块操作,所以极大地降低了分块成功的概率,增大了启动第一移动单元324使所述滑动窗口向数据流结尾移动一个字节的概率,并降低了在该位置分块的概率。减少了小分块的数量,减少了分块后的数据块数量,提高了去重分块效率。
进一步地,请参照图9,基于本发明数据去重的收敛分块装置第二实施例,在本发明数据去重的收敛分块装置第四实施例中,所述第三分块模块33包括:
第二获取单元331,获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;
所述预设位数为提前设置好的位数,需要说明的是,在有些实施例中所述预设位数为一个集合,根据不同的所述当前分块的块长来选取。对比值选取的位数越少,匹配的概率会越高
第三判断单元332,用于判断所述对比值与预设哈希值是否匹配;
第二分块单元333,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第二移动单元334,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。
具体地第一获取单元321获取预设位数为13位,当前分块长度为9KB时,因为大于标准预设长度8KB,调用第二获取单元331选取比13位少的11位进行比较,即计算得到所述滑动窗口对应内容的哈希值fp后,选取所述fp的最后11位和预设哈希值进行匹配,因为从概率上分析:在11位时是8KB(即213)个fp中才有一个满足分块要求,调用第二分块单元333进行分块操作;而选取11位时是2KB(即211)个fp中就有一个满足分块要求,调用第二分块单元333进行分块操作。使使得分块在当前位置进行成为大概率事件,避免了分块过大,导致的去重率下降的问题。
进一步地,请参照图10,基于本发明数据去重的收敛分块装置第一实施例,在本发明数据去重的收敛分块装置第五实施例中,所述第一分块模块还包括:
跳跃单元34,用于跳跃移动所述滑动窗口一个预设跳跃长度;
第四判断单元35,用于当跳跃移动所述滑动窗口后,判断所述滑窗口的位置是否是所述数据流的结束位置;
结束单元36,用于当所述滑窗口的位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作;
第四移动单元37,用于当所述滑窗口的位置是所述数据流的结束位置时,使所述滑动窗口向前移动一步。
所述预设跳跃长度为预设的最小块长,应该根据实际需要进行设定。有些待分块的数据流可能很短,不到一个预设跳跃长度时,则只移动所述滑动窗口一次即可结束整个分块操作。
具体地:在每个分块位置后,都不进行判断所述当前分块的长度是否小于标准预设长度,而是跳跃单元34使得所述滑动窗口移动2KB(该预设跳跃块长可以设置为小于标准预设块长,比如1KB、2KB、4KB不等),在此段距离内不做哈希计算,也不进行哈希匹配或判断在此距离内是否存在分块位置,第四判断单元35判断如果在数据流剩余的长度不够2KB,则结束单元36以数据流的结束位置为分块位置分块;如果数据流剩余的长度大于2KB,则调用第四移动单元37使得所述滑动窗口继续向数据流结尾处移动一个字节,并开始每步都进行判断所述当前分块的长度是否小于标准预设长度,如果判断当前位置为分块位置,则下一步又开始步骤S34。因为移动到下个字节后的当前分块长度还小于标准预设长度8KB,所以选取紧缩的判断条件来判断所述滑动窗口位置是否为分块位置,因此分块的概率很小,立即触发步骤S34的概率也很小。因为省去了预设跳跃长度内区域的哈希计算和判断计算操作,进一步的提高整体分块的平均块长,减少分块的总数目,在分块开始使用此种跳跃分块,减少分块的CPU开销,提升分块速度。因为后续还使用依赖于当前块长而选择分块判断条件来实现分块,所以此种跳跃分块没有破坏基于内容分块的内容依赖属性。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据去重的收敛分块方法,其特征在于,所述数据去重的收敛分块方法包括以下步骤:
记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;
当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是所述数据流的结束位置;
若否,则根据当前分块的长度,动态选择放宽或紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;其中,选择放宽分块条件时,对比值为根据所述滑动窗口内的数据计算出的哈希值中比预设位数少的位数;选择紧缩分块条件时,对比值为根据所述滑动窗口内的数据计算出的哈希值中比预设位数多的位数;所述预设位数用于哈希匹配运算,所述对比值用于判断其是否与预设哈希值匹配;
当所述滑动窗口所在的当前位置是所述数据流的结束位置时,则记录所述结束位置为一个分块位置,并结束分块操作。
2.如权利要求1所述的数据去重的收敛分块方法,其特征在于,所述当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择放宽或紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
判断所述当前分块的长度是否小于标准预设长度;
若是,则使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。
3.如权利要求2所述的数据去重的收敛分块方法,其特征在于,所述当前分块的长度小于标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;
判断所述对比值与预设哈希值是否匹配;
若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则使所述滑动窗口向前移动一步。
4.如权利要求2所述的数据去重的收敛分块方法,其特征在于,当所述当前分块的长度不小于标准预设长度时,所述使用放宽分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步包括:
获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;
判断所述对比值与预设哈希值是否匹配;
若是,则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
若否,则使所述滑动窗口向前移动一步。
5.如权利要求2至4任一项所述的数据去重的收敛分块方法,其特征在于,在所述判断所述当前分块的长度是否小于标准预设长度之前还包括:
跳跃移动所述滑动窗口一个预设跳跃长度;
当跳跃移动所述滑动窗口一个预设跳跃长度后,判断所述滑动窗口的位置是否是所述数据流的结束位置;
若是,则记录所述结束位置为一个分块位置,并结束分块操作;
若否,则使所述滑动窗口向前移动一步。
6.一种数据去重的收敛分块装置,其特征在于,所述数据去重的收敛分块装置包括:
启动模块,用于记录数据流的起始位置为一个分块位置,并使滑动窗口从所述起始位置开始逐步向前移动;
判断模块,用于当所述滑动窗口每移动一步后,判断所述滑动窗口所在的当前位置是否是数据流的结束位置;
第一分块模块,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置不是所述数据流的结束位置时,根据当前分块的长度,动态选择放宽或紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步,所述当前分块为所述滑动窗口当前位置对应所述数据流的位置到所述数据流的上一个分块位置之间的数据块;其中,选择放宽分块条件时,对比值为根据所述滑动窗口内的数据计算出的哈希值中比预设位数少的位数;选择紧缩分块条件时,对比值为根据所述滑动窗口内的数据计算出的哈希值中比预设位数多的位数;所述预设位数用于哈希匹配运算,所述对比值用于判断其是否与预设哈希值匹配;
结束模块,用于当所述滑动窗口每移动一步后,所述滑动窗口所在的当前位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作。
7.如权利要求6所述的数据去重的收敛分块装置,其特征在于,所述第一分块模块包括:
第一判断单元,用于判断所述当前分块的长度是否小于标准预设长度;
第二分块模块,用于当所述当前分块的长度小于所述标准预设长度时,使用紧缩分块条件判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第三分块模块,用于当所述当前分块的长度不小于所述标准预设长度时,使用放宽分块条件来判断所述当前位置是否为分块位置,如果所述当前位置是分块位置则记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步。
8.如权利要求7所述的数据去重的收敛分块装置,其特征在于,所述第二分块模块包括:
第一获取单元,用于获取用于哈希匹配运算的预设位数,并设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数多的位数为对比值;
第二判断单元,用于判断所述对比值与预设哈希值是否匹配;
第一分块单元,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第一移动单元,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。
9.如权利要求7所述的数据去重的收敛分块装置,其特征在于,所述第三分块模块包括:
第二获取单元,获取用于哈希匹配运算的预设位数,设置根据所述滑动窗口内的数据计算出的哈希值中比所述预设位数少的位数为对比值;
第三判断单元,用于判断所述对比值与预设哈希值是否匹配;
第二分块单元,用于当所述对比值与预设哈希值匹配时,记录所述当前位置为分块位置,并使所述滑动窗口向前移动一步;
第二移动单元,用于当所述对比值与预设哈希值不匹配时,使所述滑动窗口向前移动一步。
10.如权利要求7至9任一项所述的数据去重的收敛分块装置,其特征在于,所述第一分块模块还包括:
跳跃单元,用于跳跃移动所述滑动窗口一个预设跳跃长度;
第四判断单元,用于当跳跃移动所述滑动窗口后,判断所述滑动窗口的位置是否是所述数据流的结束位置;
结束单元,用于当所述滑动窗口的位置是所述数据流的结束位置时,记录所述结束位置为一个分块位置,并结束分块操作;
第四移动单元,用于当所述滑动窗口的位置是所述数据流的结束位置时,使所述滑动窗口向前移动一步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611041876.6A CN106610794B (zh) | 2016-11-21 | 2016-11-21 | 数据去重的收敛分块方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611041876.6A CN106610794B (zh) | 2016-11-21 | 2016-11-21 | 数据去重的收敛分块方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106610794A CN106610794A (zh) | 2017-05-03 |
CN106610794B true CN106610794B (zh) | 2020-05-15 |
Family
ID=58636285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611041876.6A Active CN106610794B (zh) | 2016-11-21 | 2016-11-21 | 数据去重的收敛分块方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106610794B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506153B (zh) * | 2017-09-26 | 2021-07-02 | 深信服科技股份有限公司 | 一种数据压缩方法、数据解压方法及相关系统 |
CN109408475B (zh) * | 2018-10-19 | 2019-07-26 | 广州鼎甲计算机科技有限公司 | 重复数据删除过程中的数据处理方法和系统 |
CN111722787B (zh) * | 2019-03-22 | 2021-12-03 | 华为技术有限公司 | 一种分块方法及其装置 |
CN111399768A (zh) * | 2020-02-21 | 2020-07-10 | 苏州浪潮智能科技有限公司 | 一种数据的存储方法、系统、设备及计算机可读存储介质 |
CN112115108A (zh) * | 2020-09-11 | 2020-12-22 | 哈尔滨工业大学(威海) | 一种车辆物联网云存储系统重复数据删除方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102682086A (zh) * | 2012-04-23 | 2012-09-19 | 华为技术有限公司 | 数据分块方法及设备 |
CN103324699A (zh) * | 2013-06-08 | 2013-09-25 | 西安交通大学 | 一种适应大数据应用的快速重复数据删除方法 |
CN104572872A (zh) * | 2014-12-19 | 2015-04-29 | 华中科技大学 | 一种基于极值的数据去重分块方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9047305B2 (en) * | 2012-11-12 | 2015-06-02 | Quantum Corporation | Methods and systems for vectored data de-duplication |
US8645333B2 (en) * | 2008-05-29 | 2014-02-04 | International Business Machines Corporation | Method and apparatus to minimize metadata in de-duplication |
-
2016
- 2016-11-21 CN CN201611041876.6A patent/CN106610794B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
CN102682086A (zh) * | 2012-04-23 | 2012-09-19 | 华为技术有限公司 | 数据分块方法及设备 |
CN103324699A (zh) * | 2013-06-08 | 2013-09-25 | 西安交通大学 | 一种适应大数据应用的快速重复数据删除方法 |
CN104572872A (zh) * | 2014-12-19 | 2015-04-29 | 华中科技大学 | 一种基于极值的数据去重分块方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106610794A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106610794B (zh) | 数据去重的收敛分块方法及装置 | |
US10133679B2 (en) | Read cache management method and apparatus based on solid state drive | |
US9564918B2 (en) | Real-time reduction of CPU overhead for data compression | |
US10305512B2 (en) | Encoding method and apparatus | |
KR20200024193A (ko) | 데이터 전송의 단일 패스 엔트로피 검출 장치 및 방법 | |
CN102682086B (zh) | 数据分块方法及设备 | |
US10210044B2 (en) | Storage controller, data processing chip, and data processing method | |
US20160335024A1 (en) | Assisting data deduplication through in-memory computation | |
WO2015024160A1 (zh) | 一种数据对象处理方法与装置 | |
US8862560B1 (en) | Compression system pause and auto-resume | |
CN105204781A (zh) | 压缩方法、装置和设备 | |
US20200311026A1 (en) | File processing method and server | |
JP2014132750A (ja) | データ圧縮方法と、該方法を行う装置 | |
CN112463066B (zh) | 一种控制分布式块存储逻辑卷突发服务质量的方法和设备 | |
CN111930307B (zh) | 一种数据读取方法、装置、设备及计算机可读存储介质 | |
US8117343B2 (en) | Landmark chunking of landmarkless regions | |
CN106708927B (zh) | 文件的去重处理方法和装置 | |
JP7299334B2 (ja) | チャンキング方法および装置 | |
CN110442557B (zh) | 数据压缩及解压缩方法、电子设备和计算机可读存储介质 | |
CN107239226B (zh) | 一种数据去重方法及终端、服务器 | |
US10270683B2 (en) | Communication method, communication device, and recording medium for streaming | |
WO2018036290A1 (zh) | 一种数据压缩方法及终端 | |
JP5778595B2 (ja) | データ圧縮方法及び装置 | |
CN111176570A (zh) | 一种厚置备卷创建方法、装置、设备及介质 | |
CN115129253A (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 | ||
CB02 | Change of applicant information |
Address after: Nanshan District Xueyuan Road in Shenzhen city of Guangdong province 518000 No. 1001 Nanshan Chi Park building A1 layer Applicant after: SANGFOR TECHNOLOGIES Inc. Address before: Nanshan District Xueyuan Road in Shenzhen city of Guangdong province 518052 No. 1001 Nanshan Chi Park building A1 layer Applicant before: Sangfor Technologies Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |