CN104424256A - 布隆过滤器生成方法和装置 - Google Patents
布隆过滤器生成方法和装置 Download PDFInfo
- Publication number
- CN104424256A CN104424256A CN201310382258.8A CN201310382258A CN104424256A CN 104424256 A CN104424256 A CN 104424256A CN 201310382258 A CN201310382258 A CN 201310382258A CN 104424256 A CN104424256 A CN 104424256A
- Authority
- CN
- China
- Prior art keywords
- file
- combined
- bloom filter
- merged
- merging
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种布隆过滤器生成方法和装置,所述方法包括:获取待合并文件;当所述待合并文件中,删除记录的数量满足误判允许范围时,获取每一待合并文件的布隆过滤器Bloom filter,其中,不同待合并文件的Bloom filter容量相同;将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter。通过本申请实施例减少了布隆过滤器生成时的处理运算量,节约了系统资源,降低了资源开销。
Description
技术领域
本申请涉及数据处理技术领域,更具体的说是涉及一种布隆过滤器生成方法和装置。
背景技术
信息技术的迅猛发展,使得数据量爆炸性增长,能够保证数据存储的安全性、高可靠性以及高扩展性等的数据存储系统成为未来主要的研究重点。
在数据存储系统中,为了保证高性能的写操作,包括插入、更新和删除,现有技术中采用的一种实现方式是append-only,append-only方式是指数据的更新和删除不会修改已有的数据,而是类似于插入操作,更新数据和删除数据也会写入存储介质中,最后再通过数据合并的方式得到最终的数据。
数据插入、更新和删除时,通常以文件形式进行,每一文件可能包括多条记录,通过数据主键能够唯一标识一条记录。因此,按照上述方式进行数据写操作时,会生成很多的记录,包括插入记录、更新记录、删除记录等,在进行数据查询时,还未进行合并的记录也会被加载查询。
为了便于数据查询,现有技术中,通常利用Bloom filter(布隆过滤器),将文件中的数据主键单独存储在Bloom filter中。Bloom filter是一种空间效率很高的随机数据结构,它利用位数组表示一个集合,当一个元素加入该集合时,通过K个哈希函数将该元素映射到位数组的K个位置处,该K个位置对应的位值置为1。进行数据查询时,首先查询该Bloom Filter中是否存储有待查询数据的数据主键,若存在,加载该Bloom Filter对应的文件进行查询即可,若不存在,即结束本次查询。
而发明人在实现本发明的过程中发现,现有技术中,由于文件数量很多,每一文件均会生成对应的Bloom filter,存储数据主键,从而生成不同的Bloomfilter,而由于每一数据主键存储时,均需要经过若干个哈希函数进行多次哈希运算,并根据得到的哈希值修改Bloom filter对应的位值,处理运算量较大,特别是文件中数据主键较多时,会占用过多的系统资源。
发明内容
有鉴于此,本申请提供了一种布隆过滤器生成方法,用以解决现有技术中布隆过滤器生成处理运算量大,占用系统资源多的技术问题。
本申请还提供了一种布隆过滤器生成装置,用以保证上述方法在实际应用中的实现。
为实现上述目的,本申请提供如下技术方案:
第一方面,提供了一种布隆过滤器生成方法,包括:
获取待合并文件,其中,所述待合并文件包括删除记录;
当所述待合并文件中,所述删除记录的数量满足误判允许范围时,获取每一待合并文件的布隆过滤器Bloom filter,其中,不同待合并文件的Bloomfilter容量相同;
将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为所述不同待合并文件进行合并后的合并文件的Bloom filter。
在所述第一方面的第一种可能实现方式中,所述待合并文件中,所述删除记录的数量满足误判允许范围具体是所述删除记录与所述待合并文件的所有记录的数量比例小于或等于预设门限值。
在所述第一方面的第二种可能实现方式中,所述获取每一待合并文件的布隆过滤器Bloom filter包括:
获取每一待合并文件的按照预设容量,生成的布隆过滤器Bloom filter,其中,所述预设容量根据预期合并文件个数确定。
结合所述第一方面的第二种可能实现方式,还提供了所述第一方面的第三种可能实现方式,所述将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作包括:
当所述待合并文件的数量小于或等于所述预期合并文件个数时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作。
结合所述第一方面的第一种可能实现方式,还提供了所述第一方面的第四种可能实现方式,所述方法还包括:
检测存储介质的输出输入IO压力是否大于承载压力;
如果是,降低所述预设门限值;
如果否,增加所述预设门限值。
结合所述第一方面的第四种可能实现方式,还提供了所述第一方面的第五种可能实现方式,所述检测所述存储介质的输入输出IO压力是否大于承载压力具体是:
测试存储介质的最大读速度;
检测所述存储介质实时读速度是否大于所述最大读速度,当大于所述最大读速度时,确定IO压力大于承载压力。
在所述第一方面的第六种可能实现方式中,将不同待合并文件的Bloomfilter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter包括:
将所述待合并文件进行合并的同时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter。
结合所述第一方面的第三种可能实现方式,还提供了所述第一方面的第七种可能实现方式,当所述删除记录的数量不满足误判允许范围,或者所述待合并文件的数量大于所述预期合并文件个数时,所述方法还包括:
当所述待合并文件进行合并时,确定合并过程中得到的每一条记录的数据主键;
将所述数据主键的键值进行哈希运算,并将得到的哈希值映射到预设合并Bloom filter的相应位置处。
第二方面,提供了一种布隆过滤器生成装置,包括:
第一获取模块,用于获取待合并文件,其中,所述待合并文件包括删除记录;
第一判断模块,用于判断所述第一获取模块获取的待合并文件中,所述删除记录的数量是否满足误判允许范围;
第二获取模块,用于当所述第一判断模块结果为是时,获取每一待合并文件的布隆过滤器Bloom filter,其中,不同待合并文件的Bloom filter容量相同;
第一生成模块,用于将不同待合并文件的Bloom filter中的相同位置处的位置进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的的合并文件的Bloom filter。
在所述第二方面的第一种可能实现方式中,所述第一判断模块判断所述第一获取模块获取的待合并文件中,所述删除记录的数量是否满足误判允许范围具体是判断所述删除记录与所述待合并文件的所有记录的数量比例是否小于或等于预设门限值。
在所述第二方面的第二种可能实现方式中,所述第二获取模块获取每一待合并文件的布隆过滤器Bloom filter具体是获取每一待合并文件的按照预设容量,生成的布隆过滤器Bloom filter,其中,所述预设容量根据预期合并文件个数确定。
结合所述第二方面的第二种可能实现方式,还提供了所述第二方面的第三种可能实现方式,所述第一生成模块包括:
第二判断模块,用于判断所述待合并文件的数量是否小于或等于所述预期合并文件个数;
第一生成子模块,用于当所述第二判断模块结果为是时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloomfilter,作为不同待合并文件进行合并后的合并文件的Bloom filter。
结合所述第二方面的第一种可能实现方式,在所述第二方面的第四种可能实现方式中,还包括:
检测模块,用于检测存储介质的输出输入IO压力是否大于预设承载压力;
调整模块,用于当所述检测模块结果为是时,降低所述预设门限值;当所述检测模块结果为否时,增加所述预设门限值。
结合所述第二方面的第四种可能实现方式,还提供了所述第二方面的第五种可能实现方式,所述检测模块包括:
测试模块,用于测试存储介质的最大读速度;
检测子模块,用于检测所述存储介质实时读速度是否大于所述最大读速度,当大于所述最大读速度时,确定IO压力大于承载压力。
结合所述第二方面的第三种可能实现方式,还提供了所述第二方面的第六种可能实现方式,还包括:
确定模块,用于当所述第一判断模块结果为否,或者所述第二判断模块结果为否时,当所述待合并文件进行合并时,确定合并过程中得到的每一条记录的数据主键;
第二生成模块,将所述数据主键的键值进行哈希运算,并将得到的哈希值映射到预设合并Bloom filter的相应位置处。
经由上述的技术方案可知,与现有技术相比,本申请提供了一种布隆过滤器生成方法和装置,对获取的待合并文件,当其中删除记录的数量满足误判允许范围时,将每一待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到的目标Bloom filter,作为合并文件的Bloom filter,本申请无需将合并文件中每一元素,即每一数据主键进行多次哈希函数运算,并进行映射以及修改Bloom filter位值等操作,直接采用合并方式即可得到合并文件的Bloom filter,减小了运算处理量,特别是当合并文件中数据主键较多时,可以大大减小运算处理量,减少系统资源的占用,降低资源开销。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请一种布隆过滤器生成方法一个实施例的流程图;
图1a为本申请中布隆过滤器的一种示意图;
图1b为本申请中布隆过滤器的一种合并示意图;
图2为本申请一种布隆过滤器生成方法另一个实施例的流程图;
图3为本申请一种布隆过滤器生成装置一个实施例的结构示意图;
图4为本申请一种布隆过滤器生成装置另一个实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的主要思想之一可以包括:
获取待合并文件,每一待合并文件包括至少一条记录,当待合并文件中,删除记录的数量满足误判允许范围时,将每一待合并文件的布隆过滤器Bloomfilter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter,作为合并文件的Bloom filter,因此无需将合并文件中每一元素,即每一数据主键进行多次哈希函数运算,并进行映射以及修改Bloom filter位值等操作,直接采用合并方式即可得到合并文件的Bloom filter,减小了运算处理量,减少了系统资源占用,降低了资源开销。
图1为本申请一种布隆过滤器生成方法一个实施例的流程图,该方法可以包括以下几个步骤:
步骤101:获取待合并文件。
所述待合并文件包括多个,每一待合并文件包括至少一条记录,该记录可能为插入记录、更新记录或删除记录。本申请实施例中,所述待合并文件中包括删除记录。还可能包括插入记录和/或更新记录。
在采用append-only方式的写操作中,待合并文件即是不同时刻执行写操作时生成的文件。在append-only方式中,数据的更新操作和删除操作不会直接修改存储介质中的已有数据,而是以追加的方式写入存储介质中,最后通过合并的方式得到最终数据,因此待合并文件即是后续需要进行合并的文件。
如下表所示表示三个待合并文件:
T1:
User001 | Mike | 35 | 175 | User002 | Jane | 32 | 160 |
T2:
User001 | 36 |
T3:
User002(Delete) |
T1时刻的文件包括两条插入记录,用于插入记录User001和User002,T2时刻的文件包括更新记录,用于更新记录User001。T3时刻的文件包括删除记录,用于删除记录User002。由T2和T3时刻的文件可知,其更新和删除操作并没有直接修改存储介质中的数据,而是生成了新的文件。
上述三个待合并文件合并后的合并文件为:
User001 | Mike | 36 | 175 |
其中,文件中的删除记录可以设置相应的删除标签(如上例中文件T3中记录User002中的Delete标签),以与其他类型文件进行区别。
每一待合并文件至少包括一条记录,上例T1时刻文件中的User001对应的数据和User002对应的数据即是两条记录,记录中的数据具有不同的数据属性,如上例中,Mike属性为名称、35属性为年龄,175为身高等,通过数据主键,即数据主属性可以唯一标识一条记录,上例中User001和User002的属性为用户标识,其即为数据主键,User001和User002为该数据主键的键值。
其中,该待合并文件的获取可以采用多种方式,一种可能方式为获取一定时间范围内产生的文件作为待合并文件。不同待合并文件的生成时刻可能不同。
此外,获取待合并文件具体可以是获取文件大小相近的待合并文件,即获取的待合并文件的文件大小的差值在预设范围内。
获取的待合并文件的数量可以大于第一预设值,且不小于第二预设值。
当然该待合并文件的获取也可以采用其他方式,在下面实施例中会详细介绍。
步骤102:当所述待合并文件中,删除记录的数量满足误判允许范围时,获取每一待合并文件的Bloom filter(布隆过滤器)。
每一待合并文件包括至少一条记录,多个待合并文件即包括多条记录。本实施例中删除记录的数量是指所有待合并文件包括的所有记录中的删除记录的数量。
其中,不同待合并文件的Bloom filter容量相同。
误判允许范围是根据通过Bloom filter进行数据查询时的预期误判率确定的,实际查询时的误判率若在该误判允许范围内,则可以认为查询是准确的。
在利用Bloom filter实现数据查询的存储系统中,由于待合并文件在未进行合并时,数据查询的文件也包括这些待合并文件,因此为每一待合并文件,均会生成其对应的Bloom filter。
Bloom filter是利用位数组表示的集合,其容量可以用数组位宽表示,单位为比特。
图1a示出了Bloom filter的一种示意图,图1a所示Bloom filter容量为18比特,初始时每一位置处的位值为0。假设该Bloom filter使用3个相互独立的哈希函数,将每个元素映射到该集合的范围中,图1a中,对于元素x、元素y和元素z分别映射到了该集合的相应位置中,相应位置处的位值即置为1。在进行数据查询时,例如查询元素w,可以先将w利用该3个相互独立的哈希函数映射到该集合中,映射位置处若均为1,则表示该Bloom filter对应的文件中包括该元素w,若有一个0,则表明不存在该元素w。
本实施中,每一待合并文件的Bloom filter容量需相同,该Bloom filter容量可以预先设置。由于在判断一个元素是否属于Bloom filter的集合时会存在误判情况,而Bloom filter容量与数据查询时的误判率有关,Bloom filter容量越大,误判率越小。因此该Bloom filter容量可以根据预期误判率来确定,以使得实际的误判率能够在误判允许范围内,以提高数据查询准确度。
步骤103:将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter。
在所述待合并文件中,删除记录的数量满足误判允许范围时,表明该删除记录可以忽略不计,其存在不会影响数据查询的准确度。在该情况下,本申请实施例中,待合并文件进行合并后的合并文件的Bloom filter,不需针对合并文件的每一数据主键通过哈希函数进行哈希运算,以及映射、修改位值等操作,而是将不同待合并文件的Bloom filter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter即可作为该合并文件的Bloom filter。从而使得在既保证了数据查询时的误判率的前提下,简化了合并文件的Bloomfilter的生成。
待合并文件中的删除记录可以根据记录中是否携带删除标签确定,进而可以确定出删除记录的数量与待合并文件中的所有记录的数量的关系。
删除记录的数量满足误判允许范围,一种可能方式为删除记录与所述待合并文件的所有记录的数量比例小于或等于预设门限值。即删除记录的数量与待合并文件所有记录的数量的比值小于或等于预设门限值。删除记录数量越小,查询结果就会越精确,误判率也就越小,预设门限值可以是根据预期误判率所确定。
删除记录的数量满足误判允许范围时,合并文件的Bloom filter的位值即是不同待合并文件的Bloom filter的相同位置处的位值分别进行按位或操作得到的。
如图1b所示为Bloom filter的一种合并示意图,一待合并文件的Bloomfilter1,与另一待合并文件的Bloom filter2,相同位置处的位值分别进行按位或操作,从而即可得到合并后的Bloom filter3。
其中,本实施例中,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter,可以是在待合并文件进行合并的同时进行,也可以是在待合并文件合并完成后再执行。
待合并文件合并完成生成合并文件后,待合并文件即在存储介质中删除,进行数据查询时,只有合并文件被加载查询。
在本实施例中,对于待合并文件,当待合并文件中,删除记录的数量满足误判允许范围时,即将不同待合并文件的Bloom filter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter即作为合并文件的Bloomfilter,因此无需将合并文件中每一元素,即每一数据主键进行多次哈希函数运算,并进行映射以及修改Bloom filter位值等操作,采用合并方式即可得到合并文件的Bloom filter,从而可以减小运算处理量,减少系统资源的占用,降低了资源开销。
图2为本申请一种布隆过滤器生成方法另一个实施例的流程图,该方法可以包括以下几个步骤:
步骤201:获取待合并文件。
其中,所述待合并文件包括删除记录。
为了能够获得大小相近的待合并文件,该获取待合并文件可以具体按照下述方式执行:
按照文件生成时刻,将文件依次存储到预设文件集合中;
当所述预设文件集合中的目标文件大小小于或等于所述目标文件之前的存储文件平均大小的第一预设倍数,且大于或等于所述目标文件之前的存储文件平均大小的第二预设倍数,确定所述目标文件为待合并文件。
其中,该第一预设倍数和该第二预设倍数可以根据实际应用情况具体设定。
在获取待合并文件时,首先预设一文件集合。根据文件生成的不同时刻,将文件依次插入该文件集合中。对于文件集合中的任一文件,若其大小小于或等于其之前的存储文件(也即该文件集合中的其生成之前的已生成文件)平均大小的第一预设倍数,且大于或等于其之前的存储文件平均大小的第二预设倍数,即作为待合并文件。按照该方式所确定的待合并文件即是大小相近的文件。
步骤202:判断删除记录与所述待合并文件的所有记录的数量比例是否小于或等于预设门限值,如果是,进入步骤203,如果否,进入步骤206。
待合并文件中的删除记录数量越小,后续的查询就会越精确,误判率也就越小,预设门限值可以是根据预期误判率所确定,该预期误判率为数据查询时可以接受的误判率。
其中,该预设门限值还可以根据存储介质的IO(Input/Output,输入输出)压力而动态调整,若IO压力过大,说明可能是误判率增大而导致存储介质读取次数增加,则可降低该预设门限值;若IO压力过小,则可以增大该预设门限值,具体执行过程为:
检测存储介质的IO压力是否大于承载压力;
如果是,降低所述预设门限值;
如果否,增加所述预设门限值。
该检测存储介质的IO压力可以实时进行,从而使得预设门限值能够较准确,使得后续生成的Bloom filter更准确,可以降低数据查询时的误判率。
其中,降低预设门限值或增加预设门限值可以采用多种方式实现,比如每次将当前预设门限值降低或增加预设值,或者是降低或增加当前预设门限值至特定值等。本申请并不对此做具体限定。
其中,检测存储介质的IO压力是否大于承载压力,一种可能的实现方式为:
测试存储介质的最大读速度;
检测所述存储介质实时读速度是否到达所述最大读速度,当到达所述最大读速度时,确定IO压力大于承载压力。
该最大读速度可以利用iometer测试工具进行测试,iometer是一个工作在单系统和集群系统上用来衡量和描述IO的工具,它可以检查并且记录IO操作的性能和对系统的影响。
当存储介质的实时读速度到达所述最大读速度时,则可以认为IO压力较大,有可能是误判率上升导致的误读磁盘的次数上升,因此可降低预设门限值,反之则可增加预设门限值。
步骤203:获取每一待合并文件按照预设容量,生成的Bloom filter。
步骤204:判断所述待合并文件的数量是否小于或等于预期合并文件个数,如果是,进入步骤205,如果否,进入步骤206。
步骤205:将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter。
其中,不同待合并文件的Bloom filter的预设容量相同。该预设容量与预期合并文件个数有关。
数据查询时的误判率与文件以及文件的Bloom filter具有如下关系:
f=(1-e-kn/m)k (
其中,f表示误判率,k为哈希函数个数,n为文件中的数据主键个数,m为该文件的Bloom filter的容量。
因此根据上述关系式,可以得到Bloom filter最小容量的计算公式即:
m=n*log2e*log2(1/f)
≈n*1.44*log2(1/f)
由上述可知,在误判率确定的情况下,文件Bloom filter的最小容量与该文件中的数据主键个数有关。
由于本实施例中,合并文件的Bloom filter可以通过将不同待合并文件的Bloom filter合并得到,由上述可知为了保证一定的误判率,可以设定预期误判率,此时Bloom filter的最小容量与数据主键个数有关,为了使得本申请中,待合并文件进行合并后的合并文件的Bloom filter,能够满足该预期误判率,因此本实施例中,对于每一文件,其Bloom filter容量,即该预设容量的计算公式为:
M≥N*m
≥N*n*log2e*log2(1/f)
≥N*n*1.44*log2(1/f)
N为预期合并文件个数,m为一个文件的Bloom filter最小容量,由上式可知,该预设容量与预期合并文件的个数有关,也即在一个文件的数据主键个数确定时,文件Bloom filter最小容量即确定,该预设容量即与预期合并文件个数有关。
由于待合并文件中包含的数据主键个数有一定的差异,为了保证合并后的合并文件的Bloom filter的容量满足预期误判率要求,该数据主键个数n可以根据包含数据主键个数最多的待合并文件来确定。
在预设容量确定的情况下,每一待合并文件采用的哈希函数也可以确定,即为:
m和n均可以是数据主键个数最多的待合并文件对应的相应值。
结合上述描述,预设容量是根据预期合并个数确定的能够保证预期误判率的容量,因此当待合并文件的个数小于或等于该预期合并文件个数时,可以采用步骤205的方式生成合并文件的Bloom filter。
步骤206:当所述待合并文件进行合并时,确定合并过程中得到的每一条记录的数据主键。
步骤207:将所述数据主键的键值进行哈希运算,并将得到的哈希值映射到预设合并Bloom filter的相应位置处。
当删除记录与所述待合并文件中所有记录的数量比例小于或等于预设门限值,或者所述待合并文件的数量大于所述预期合并文件个数时,按照步骤205方式所确定的合并文件的Bloom filter将不能满足预期误判率要求,因此可以根据待合并文件进行合并时所确定的合并文件的数据主键,通过哈希运算生成合并文件的Bloom filter。在预期误判率确定时,该预设合并Bloom filter的容量即可以根据公式m=n*log2e*log2(1/f)≈n*1.44*log2(1/f)来确定。
待合并文件进行合并时,是采用递归合并方式进行合并,如下表所述三文件,每一文件包括4个数据主键,每一文件中数据主键是按照键值大小排序。
文件1:
User001 | User003 | User005 | User006 |
文件2:
User001 | User002 | User006 | User007 |
文件3:
User002 | User003 | User008 | User009 |
在进行待合并文件合并时,T1时刻,依次迭代读取各自待合并文件中的一个数据主键,分别为{User001,User001,User002},其中最小值为“User001”,将这两个User001分别对应的记录数据进行合并,将合并结果写入合并文件中。
T2时刻,依次迭代读取各自待合并文件中的一个数据主键,由于文件3中User002在T1时刻未用到,因此T1时刻读取的数据主键包括{User003,User002,User003},“User002”最小,而且User002只有一个,将User002对应的记录数据直接写入到合并文件中;
依此类推,将每次迭代读取的数据主键,选择键值最小的数据主键对应的数据进行合并,写入到合并文件中,最终即可得到合并文件。
每次迭代读取得到的合并文件的数据主键,如T1时刻的“User001”,T2时刻的“User002”,会同时将该数据主键的键值通过K个哈希函数进行哈希运算,将得到的哈希值映射到预设合并Bloom filter的相应位置处,修改Bloom filter的位值,当合并文件合并完成后,其对应的Bloom filter也即建立完成。
在本实施例中,对于待合并文件,当待合并文件中的删除记录与待合并文件的所有记录的数量比例小于或等于预设门限值,且待合并文件的数量小于预期合并文件个数时,即将每一待合并文件的按照预设容量生成的Bloomfilter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter作为合并文件的Bloom filter,因此无需将合并文件中每一元素,即数据主键进行多次哈希函数运算,并进行映射以及修改Bloom filter位值等操作,直接采用合并方式即可得到合并文件的Bloom filter,减小了运算处理量,减少了处理器和内存资源的占用,降低了开销。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请技术方案特别适用于Key-Value(键-值)分布式存储系统中,Key-Value分布式存储系统由于其高可用性、高扩展性等优势性能而被广泛应用。在Key-Value分布式存储系统中,为了支持更快的写操作,数据文件的写操作只支持append-only的方式,因此按照本申请技术方案生成Bloom filter,既可以保证数据查询时的误判率,保证查询准确度,同时可以减少运算处理量,减少了系统资源的占用,降低资源开销。
图3为本申请一种布隆过滤器生成装置一个实施例的结构示意图,该装置可以包括:
第一获取模块301,用于获取待合并文件。
所述待合并文件删除记录,本申请实施例中,所述待合并文件还可能包括插入记录和/或更新记录。
第一判断模块302,用于判断所述第一获取模块301获取的待合并文件中,删除记录的数量是否满足误判允许范围。
误判允许范围是根据通过Bloom filter进行数据查询时的预期误判率确定的,实际查询时的误判率若在该误判允许范围内,则可以认为查询是准确的。
第二获取模块303,用于当所述第一判断模块结果为是时,获取每一待合并文件的布隆过滤器Bloom filter。
其中,不同待合并文件的Bloom filter容量相同。
在利用Bloom filter实现数据查询的存储系统中,由于待合并文件在未进行合并时,数据查询的文件也包括这些待合并文件,因此为每一待合并文件,均会生成一Bloom filter。
Bloom filter是利用位数组表示的集合,其容量可以用数组位宽表示,单位为比特。
每一待合并文件的Bloom filter容量需相同,该Bloom filter容量可以预先设置。由于在判断一个元素是否属于Bloom filter时会存在一定的误判率,该Bloom filter容量可以根据预期误判率来确定,以使得实际的误判率能够在误判允许范围内
第一生成模块304,用于将不同待合并文件的Bloom filter中的相同位置处的位值分别进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的的合并文件的Bloom filter。
待合并文件中,删除记录的数量满足误判允许范围时,表明该删除记录可以忽略不计,其存在不会影响数据的查询。在该情况下,待合并文件进行合并后的合并文件的Bloom filter,不需针对合并文件的每一数据主键通常哈希函数进行哈希运算,以及映射等操作,而是将不同待合并文件的Bloom filter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter即可作为该合并文件的Bloom filter。从而使得在保证了误判率的前提下,简化了合并文件的Bloom filter的生成。
删除记录可以根据待合并文件中的记录是否携带删除标签确定,进而可以确定出删除记录的数量与待合并文件的所有记录的数量的关系。
将不同待合并文件的Bloom filter中的相同位置处的位值分别进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter,可以是在待合并文件进行合并的同时进行,也可以是在待合并文件合并完成后再执行。
在本实施中,对于待合并文件,当待合并文件中,删除记录的数量满足误判允许范围时,即将不同待合并文件对应的Bloom filter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter即作为合并文件的Bloomfilter,因此无需将合并文件中每一元素,即数据主键进行多次哈希函数运算,并进行映射以及修改Bloom filter位值等操作,通过本实施例所述装置直接采用合并方式即可得到合并文件的Bloom filter,减小了运算处理量,减少了处理器和内存资源的占用,降低了开销。
图4为本申请一种布隆过滤器生成装置另一个实施例的结构示意图,该装置可以包括:
第一获取模块401,用于获取待合并文件。
所述待合并文件包括删除记录。
该获取待合并文件可以具体按照下述方式执行:
按照文件生成时刻,将文件依次存储到预设文件集合中;
当所述预设文件集合中的目标文件大小小于或等于所述目标文件之前的存储文件平均大小的第一预设倍数,且大于或等于所述目标文件之前的存储文件平均大小的第二预设倍数,确定所述目标文件为待合并文件。
按照该方式所确定的待合并文件即是大小相近的文件。
第一判断模块402,用于判断所述第一获取模块获取的待合并文件中,删除记录与所述待合并文件的所有记录的数量比例是否小于或等于预设门限值。
删除记录数量越小,后续的查询就会越精确,误判率也就越小,预设门限值可以是根据预期误判率所确定的极限值。
第二获取模块403,用于当所述第一判断模块结果为是时,获取每一待合并文件的按照预设容量,生成的布隆过滤器Bloom filter。
第一生成模块404,用于将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter。
其中,该第一生成模块404可以包括:
第二判断模4041,用于判断所述待合并文件的数量是否小于或等于所述预期合并文件个数。
第一生成子模块4042,用于当所述第二判断模块结果为是时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为不同待合并文件进行合并后的合并文件的Bloom filter。
其中,预设容量是根据预期合并个数确定的能够保证预期误判率的容量,因此当待合并文件的个数小于或等于该预期合并文件个数时,可以通过第一生成子模块生成合并文件的Bloom filte。
预设容量与预期文件个数的具体关系可以参见方法实施例中所述,在此不再赘述。
确定模块406,用于当所述第一判断模块结果402为否,或者所述第二判断模块4042结果为否时,当所述待合并文件进行合并时,确定合并过程中得到的每一条记录的数据主键。
第二生成模块407,将所述数据主键的键值进行哈希运算,并将得到的哈希值映射到预设合并Bloom filter的相应位置处。
当删除记录与所述待合并文件的所有记录的数量比例小于或等于预设门限值,或者所述待合并文件的数量大于所述预期合并文件个数时,第一生成模块所生成的合并文件的Bloom filter将不能满足预期误判率要求,因此可以根据待合并文件进行合并时所确定的合并文件的数据主键,通过哈希运算,采用现有的方式生成合并文件的Bloom filter。在预期误判率确定时,该预设合并Bloom filter的容量即可以根据公式m=n*log2e*log2(1/f)≈n*1.44*log2(1/f)来确定。
待合并文件进行合并时,是采用递归合并方式进行合并。
其中,预设门限值可以根据存储介质的IO(Input/Output,输入输出)压力而动态调整,因此本申请实施例所述装置还可以包括:
检测模块408,用于检测存储介质的输出输入IO压力是否大于预设承载压力;
调整模块409,用于当所述检测模块结果为是时,降低所述预设门限值;当所述检测模块结果为否时,增加所述预设门限值。
该检测存储介质的IO压力可以实时进行,从而使得预设门限值能够较准确,从而使得后续生成的Bloom filter更准确。
其中,降低预设门限值或增加预设门限值可以采用多种方式实现,比如每次将当前预设门限值降低或增加预设值,或者是降低或增加预设门限值至目标门限值等。本申请并不对此做具体限定。
其中,检测存储介质的IO压力是否大于承载压力可以采用多种实现方式,在一种可能的实现方式中,该检测模块408可以包括:
测试模块4091,用于测试存储介质的最大读速度;
检测子模块4092,用于检测所述存储介质实时读速度是否大于所述最大读速度,当大于所述最大读速度时,确定IO压力大于承载压力。
该最大读速度可以利用iometer测试工具进行测试,Iometer是一个工作在单系统和集群系统上用来衡量和描述IO的工具,它可以检查并且记录IO操作的性能和对系统的影响。
当存储介质的实时读速度到达所述最大读速度时,则可以认为IO压力较大,有可能是误判率上升导致的误读磁盘的次数上升,因此可降低预设门限值,反之则可增加预设门限值。
在本实施例中,对于待合并文件,当待合并文件中,删除记录的数量比例小于或等于预设门限值,且待合并文件的数量小于预期合并文件个数时,即将不同的待合并文件的按照预设容量生成的Bloom filter中的相同位置处的位值分别进行按位或操作,得到的目标Bloom filter作为合并文件的Bloomfilter,因此无需将合并文件中每一元素,即数据主键进行多次哈希函数运算,并进行映射以及修改Bloom filter位值等操作,直接采用合并方式即可得到合并文件的Bloom filter,减小了运算处理量,减少了系统资源的占用,降低了资源开销。
本申请上述几个实施例所述的布隆过滤器生成装置,在实际应用中可以集成到包括存储介质的存储设备中,在Key-Value(键-值)分布式存储系统中,包括多个存储节点,本申请所述的布隆过滤器生成装置即可集成到任一存储节点中。部署本申请所述装置的存储设备对于合并文件的Bloom filter,可以采用合并方式得到,无需经过多次哈希运算、映射以及修改位值等操作,可以减小了运算处理量,减少了系统资源的占用,降低了资源开销。
通过以上描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。因此本申请还提供了一种存储设备,该存储设备主要包括存储器和通过总线与存储器连接的处理器。
该存储器存储布隆过滤器生成程序。
该处理器运行该布隆过滤器生成程序。
该生成程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
该布隆过滤器生成程序具体可以包括:
第一获取模块、第一判断模块、第二获取模块以及第一生成模块等。
该布隆过滤器生成程序各模块具体实现可以参见图3~图4所示的相应模块,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种布隆过滤器生成方法,其特征在于,包括:
获取待合并文件,其中,所述待合并文件包括删除记录;
当所述待合并文件中,所述删除记录的数量满足误判允许范围时,获取每一待合并文件的布隆过滤器Bloom filter,其中,不同待合并文件的Bloomfilter容量相同;
将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为所述不同待合并文件进行合并后的合并文件的Bloom filter。
2.根据权利要求1所述方法,其特征在于,所述待合并文件中,所述删除记录的数量满足误判允许范围具体是所述删除记录与所述待合并文件的所有记录的数量比例小于或等于预设门限值。
3.根据权利要求1所述的方法,其特征在于,所述获取每一待合并文件的布隆过滤器Bloom filter包括:
获取每一待合并文件的按照预设容量,生成的布隆过滤器Bloom filter,其中,所述预设容量根据预期合并文件个数确定。
4.根据权利要求3所述的方法,其特征在于,所述将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作包括:
当所述待合并文件的数量小于或等于所述预期合并文件个数时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
检测存储介质的输出输入IO压力是否大于承载压力;
如果是,降低所述预设门限值;
如果否,增加所述预设门限值。
6.根据权利要求5所述的方法,其特征在于,所述检测所述存储介质的输入输出IO压力是否大于承载压力具体是:
测试存储介质的最大读速度;
检测所述存储介质实时读速度是否大于所述最大读速度,当所述存储介质实时读速度大于所述最大读速度时,确定IO压力大于承载压力。
7.根据权利要求1所述的方法,其特征在于,将不同待合并文件的Bloomfilter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为所述不同待合并文件进行合并后的合并文件的Bloom filter包括:
将所述待合并文件进行合并的同时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为所述不同待合并文件进行合并后的合并文件的Bloom filter。
8.根据权利要求4所述的方法,其特征在于,当所述删除记录的数量不满足误判允许范围,或者所述待合并文件的数量大于所述预期合并文件个数时,所述方法还包括:
当所述待合并文件进行合并时,确定合并过程中得到的每一条记录的数据主键;
将所述数据主键的键值进行哈希运算,并将得到的哈希值映射到预设合并Bloom filter的相应位置处。
9.一种布隆过滤器生成装置,其特征在于,包括:
第一获取模块,用于获取待合并文件,其中,所述待合并文件包括删除记录;
第一判断模块,用于判断所述第一获取模块获取的待合并文件中,所述删除记录的数量是否满足误判允许范围;
第二获取模块,用于当所述第一判断模块结果为是时,获取每一待合并文件的布隆过滤器Bloom filter,其中,不同待合并文件的Bloom filter容量相同;
第一生成模块,用于将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloom filter,作为所述不同待合并文件进行合并后的合并文件的Bloom filter。
10.根据权利要求9所述的装置,其特征在于,所述第一判断模块判断所述第一获取模块获取的待合并文件中,所述删除记录的数量是否满足误判允许范围具体是判断所述删除记录与所述待合并文件的所有记录的数量比例是否小于或等于预设门限值。
11.根据权利要求9所述的装置,其特征在于,所述第二获取模块获取每一待合并文件的布隆过滤器Bloom filter具体是获取每一待合并文件的按照预设容量,生成的布隆过滤器Bloom filter,其中,所述预设容量根据预期合并文件个数确定。
12.根据权利要求11所述的装置,其特征在于,所述第一生成模块包括:
第二判断模块,用于判断所述待合并文件的数量是否小于或等于所述预期合并文件个数;
第一生成子模块,用于当所述第二判断模块结果为是时,将不同待合并文件的Bloom filter中的相同位置处的位值进行按位或操作,得到目标Bloomfilter,作为所述不同待合并文件进行合并后的合并文件的Bloom filter。
13.根据权利要求10所述的装置,其特征在于,还包括:
检测模块,用于检测存储介质的输出输入IO压力是否大于预设承载压力;
调整模块,用于当所述检测模块结果为是时,降低所述预设门限值;当所述检测模块结果为否时,增加所述预设门限值。
14.根据权利要求13所述的装置,其特征在于,所述检测模块包括:
测试模块,用于测试存储介质的最大读速度;
检测子模块,用于检测所述存储介质实时读速度是否大于所述最大读速度,当所述存储介质实时读速度大于所述最大读速度时,确定IO压力大于承载压力。
15.根据权利要求12所述的装置,其特征在于,还包括:
确定模块,用于当所述第一判断模块结果为否,或者所述第二判断模块结果为否时,当所述待合并文件进行合并时,确定合并过程中得到的每一条记录的数据主键;
第二生成模块,将所述数据主键的键值进行哈希运算,并将得到的哈希值映射到预设合并Bloom filter的相应位置处。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382258.8A CN104424256B (zh) | 2013-08-28 | 2013-08-28 | 布隆过滤器生成方法和装置 |
PCT/CN2014/079853 WO2015027731A1 (zh) | 2013-08-28 | 2014-06-13 | 布隆过滤器生成方法和装置 |
US15/044,273 US10664445B2 (en) | 2013-08-28 | 2016-02-16 | Bloom filter generation method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382258.8A CN104424256B (zh) | 2013-08-28 | 2013-08-28 | 布隆过滤器生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104424256A true CN104424256A (zh) | 2015-03-18 |
CN104424256B CN104424256B (zh) | 2017-12-12 |
Family
ID=52585508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310382258.8A Active CN104424256B (zh) | 2013-08-28 | 2013-08-28 | 布隆过滤器生成方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10664445B2 (zh) |
CN (1) | CN104424256B (zh) |
WO (1) | WO2015027731A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649346A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据重复性校验方法及装置 |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN109783443A (zh) * | 2018-12-25 | 2019-05-21 | 西安交通大学 | 一种分布式存储系统中海量数据的冷热判断方法 |
CN110990640A (zh) * | 2019-11-15 | 2020-04-10 | 北京浪潮数据技术有限公司 | 一种数据判定方法、装置、设备及计算机可读存储介质 |
CN114281862A (zh) * | 2021-11-18 | 2022-04-05 | 厦门市美亚柏科信息股份有限公司 | 一种基于向量的数据比对方法、终端设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7367623B2 (ja) * | 2020-06-25 | 2023-10-24 | 横河電機株式会社 | データ管理システム、データ管理方法、および、データ管理プログラム |
US11630818B2 (en) * | 2021-06-11 | 2023-04-18 | Bmc Software, Inc. | Iterative performance analysis with interval expansion |
CN116258524B (zh) * | 2023-03-14 | 2024-02-02 | 深圳乐信软件技术有限公司 | 基于布隆过滤器的广告投放方法、装置、设备及存储介质 |
CN117201193B (zh) * | 2023-11-06 | 2024-01-26 | 新华三网络信息安全软件有限公司 | 病毒检测方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
US8032529B2 (en) * | 2007-04-12 | 2011-10-04 | Cisco Technology, Inc. | Enhanced bloom filters |
CN102799617A (zh) * | 2012-06-19 | 2012-11-28 | 华中科技大学 | 多层Bloom Filter的构建及查询优化方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006020658A1 (en) * | 2004-08-09 | 2006-02-23 | Johnny Yau | Method and apparatus for ad hoc mesh routing |
CN101609449A (zh) * | 2009-06-16 | 2009-12-23 | 浪潮电子信息产业股份有限公司 | 一种基于布鲁姆过滤器的数据块快速比较系统 |
US20120287934A1 (en) * | 2010-01-29 | 2012-11-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet Routing in a Network by Modifying In-Packet Bloom Filter |
CN103116599A (zh) * | 2012-11-30 | 2013-05-22 | 浙江工商大学 | 一种基于改进Bloom Filter结构的城市海量数据流快速冗余消除方法 |
-
2013
- 2013-08-28 CN CN201310382258.8A patent/CN104424256B/zh active Active
-
2014
- 2014-06-13 WO PCT/CN2014/079853 patent/WO2015027731A1/zh active Application Filing
-
2016
- 2016-02-16 US US15/044,273 patent/US10664445B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032529B2 (en) * | 2007-04-12 | 2011-10-04 | Cisco Technology, Inc. | Enhanced bloom filters |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN101923568A (zh) * | 2010-06-23 | 2010-12-22 | 北京星网锐捷网络技术有限公司 | 布隆过滤器的元素增加、删除方法以及布隆过滤器 |
CN102799617A (zh) * | 2012-06-19 | 2012-11-28 | 华中科技大学 | 多层Bloom Filter的构建及查询优化方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649346A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据重复性校验方法及装置 |
CN108874803A (zh) * | 2017-05-09 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN109783443A (zh) * | 2018-12-25 | 2019-05-21 | 西安交通大学 | 一种分布式存储系统中海量数据的冷热判断方法 |
CN110990640A (zh) * | 2019-11-15 | 2020-04-10 | 北京浪潮数据技术有限公司 | 一种数据判定方法、装置、设备及计算机可读存储介质 |
CN110990640B (zh) * | 2019-11-15 | 2022-07-05 | 北京浪潮数据技术有限公司 | 一种数据判定方法、装置、设备及计算机可读存储介质 |
CN114281862A (zh) * | 2021-11-18 | 2022-04-05 | 厦门市美亚柏科信息股份有限公司 | 一种基于向量的数据比对方法、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104424256B (zh) | 2017-12-12 |
WO2015027731A1 (zh) | 2015-03-05 |
US20160162506A1 (en) | 2016-06-09 |
US10664445B2 (en) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424256A (zh) | 布隆过滤器生成方法和装置 | |
WO2020147488A1 (zh) | 异常群体识别方法及装置 | |
CN111813805A (zh) | 一种数据处理方法及装置 | |
CN110825737A (zh) | 索引创建和数据查询方法、装置及设备 | |
CN105224237A (zh) | 一种数据存储方法及装置 | |
CN104021161A (zh) | 一种聚簇存储方法及装置 | |
CN104156380A (zh) | 一种分布式存储器哈希索引方法及系统 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
CN102945275B (zh) | 文件碎片整理方法、装置及设备 | |
CN112328688B (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN104750432A (zh) | 一种数据存储方法及装置 | |
US9311348B2 (en) | Method and system for implementing an array using different data structures | |
CN104572917A (zh) | 数据锁定方法、装置及分布式存储系统 | |
CN103530322A (zh) | 数据处理方法和装置 | |
CN105677645A (zh) | 一种数据表比对方法和装置 | |
US10303655B1 (en) | Storage array compression based on the structure of the data being compressed | |
CN113177021B (zh) | 一种不同数据源的数据导出方法及装置 | |
CN110750533A (zh) | 一种基于多条业务属性的数据存储方法、装置及设备 | |
CN109542877A (zh) | 电池管理系统的参数管理方法及装置 | |
CN104636432A (zh) | 一种日志文件压缩和解压的方法及装置 | |
CN106528436B (zh) | 数据储存装置及其数据维护方法 | |
CN109918074B (zh) | 编译链接优化方法 | |
CN110221778A (zh) | 酒店数据的处理方法、系统、存储介质以及电子设备 | |
CN110362570A (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 |