CN114625719A - 一种基于移动滤波框架的动态集合管理方法和系统 - Google Patents
一种基于移动滤波框架的动态集合管理方法和系统 Download PDFInfo
- Publication number
- CN114625719A CN114625719A CN202210268638.8A CN202210268638A CN114625719A CN 114625719 A CN114625719 A CN 114625719A CN 202210268638 A CN202210268638 A CN 202210268638A CN 114625719 A CN114625719 A CN 114625719A
- Authority
- CN
- China
- Prior art keywords
- data
- data slot
- fingerprint information
- slot
- bucket
- 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
- 238000001914 filtration Methods 0.000 title claims abstract description 183
- 238000007726 management method Methods 0.000 title claims abstract description 39
- 238000003780 insertion Methods 0.000 claims abstract description 105
- 230000037431 insertion Effects 0.000 claims abstract description 105
- 238000012217 deletion Methods 0.000 claims description 30
- 230000037430 deletion Effects 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 9
- 238000010276 construction Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 241000544061 Cuculus canorus Species 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 208000035126 Facies Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明涉及一种基于移动滤波框架的动态集合管理方法和系统,其中动态集合具有多个数据桶,每个数据桶均具有设定数量的数据槽,数据槽用于存储元素的指纹信息,管理方法包括:响应于接收到待插入元素的命令,获取待插入元素以及该待插入元素的指纹信息;根据第一哈希函数和掩码信息,并根据第一哈希函数、掩码信息、插入元素及其指纹信息,得到插入候选数据桶;获取第二哈希函数和与待插入元素的辅助信息相关联的偏移量,并根据第二哈希函数、偏移量和各数据桶中数据槽的数量,得到插入候选数据槽的位置;将待插入元素插入到所述插入候选数据桶内对应的候选数据槽中。本发明的技术方案能够提高动态集合的通用性差和空间效率。
Description
技术领域
本发明涉及动态集合管理方法的技术领域,具体涉及一种基于移动滤波框架的动态集合管理方法和系统。
背景技术
在计算机技术领域,数据集合是一种常用的数据存储工具,而动态集合是一种可以根据需求对其进行更新的数据集合。对于动态集合来说,其常见的操作包括数据的插入、删除和查询,其中常见的数据查询操作包括三种类型,分别为成员查询、关联查询和多重性查询,下面分别对各种查询的方式做详细的介绍。
成员查询是用于查询某个元素是否在集合中的查询方式,这种查询方式被广泛应用在许多网络和分布式系统中的缓存、路由器和存储系统上,以及各种IP地址查找和网络包分类的网络应用中,例如,采用这种成员查询方式查询某个IP地址是否在某个局域网内,或者某个数据是否存储在某个存储系统中等。
关联查询是用于查询两个给定集合之间是否存在关联关系的查询方式,这种查询方式是通过判断两个给定集合中是否存在交集,以及交集种元素数量的多少来确定其关联关系的。关联查询广泛应用在无线传感器网络、内容分发网络和区块链交易池的技术领域中,并且在数据中心索引、分布式文件系统、数据库索引和数据复制等技术领域中也有着广泛的应用。
多重性查询是用于查询给定元素在集合中出现频率的查询方式,即查询集合某个该元素的多重性,例如,网络流流量大小对于云和数据中心中的流量工程、网络诊断、网络取证、分布式数据流监控、网络异常检测和网络路由至关重要,因此需要在这些应用场景中,经常利用到这种查询方式对网络流量进行查询操作。另外,对于例如时延、突发检测、流量大小估计、流量分布、显要事物检测等网络测量任务,也经常使用多重性查询。
数据在动态集合中的插入方式直接影响到其查询的难易程度,而现有技术中动态集合的数据插入方式存在如下问题:(1)通用性差,现有动态集合的数据插入方式,使其仅能够支持部分查询类型,例如只能够进行成员查询而不便进行关联查询和多重性查询等,因此其通用性差,只能在特定的应用环境中使用;(2)空间利用率低,现有技术中的动态集合,其数据结构的空间友好性差,插入的数据时需要占用的空间较大,不便于在无线传感器网络和商品交换机等空间有限的设备上使用。
发明内容
本发明的目的是提供一种基于移动滤波框架的动态集合管理方法和系统,以至少解决现有技术中的动态集合通用性差、空间效率低的问题。
为实现上述目的,一方面,本发明提供了一种基于移动滤波框架的动态集合管理方法,所述动态集合具有多个数据桶,每个数据桶均具有设定数量的数据槽,所述数据槽用于存储元素的指纹信息,所述管理方法包括:响应于接收到待插入元素的命令,获取待插入元素以及该待插入元素的指纹信息;根据第一哈希函数和掩码信息,并根据所述第一哈希函数、掩码信息、所述插入元素及其指纹信息,得到插入候选数据桶;获取第二哈希函数和与所述待插入元素的辅助信息相关联的偏移量,并根据所述第二哈希函数、所述偏移量和各数据桶中数据槽的数量,得到插入候选数据槽的位置;将所述待插入元素插入到所述插入候选数据桶内对应的候选数据槽中。
根据本发明的一个实施例,所述插入候选数据桶的数量为四个,将所述待插入元素插入到所述插入候选数据槽中包括:从四个插入候选数据桶中随机选择一个作为待用数据桶,将待用数据桶中对应的候选数据槽作为待用数据槽;响应于所述待用数据槽没有被占用,将所述待插入元素的指纹信息插入到所述待用数据槽中;响应于所述待用数据槽被占用,首先将所述待用数据槽中的数据迁移,然后将所述待插入元素的指纹信息插入到所述待用数据槽中。
进一步地,根据本发明的另一个实施例,所述将所述待用数据槽中的数据迁移包括:获取所述待用数据槽的备用数据槽,所述备用数据槽为其他插入候选数据桶中与所述插入候选数据槽相对应的数据槽;响应于所述备用数据桶中具有空的数据槽,将所述待用数据槽中的数据迁移到该空的数据槽中,并对所述待用数据槽中的数据重新进行定位。
根据本发明的又一个实施例,还包括:响应于接收到元素查询命令,获取待查询元素并获取其指纹信息;根据所述第一哈希函数、掩码信息、待查询元素及其指纹信息得到查询候选数据桶;响应于待查询元素的指纹信息存储在所述查询候选数据桶中,获取所述待查询元素的指纹信息所在的数据槽,并根据该数据槽位置计算所述待查询元素的辅助信息。
根据本发明的另一个实施例,还包括:响应于接收到数据删除命令,获取待删除元素并获取其指纹信息;根据所述第一哈希函数、掩码信息、待删除元素及其指纹,得到删除候选数据桶;响应于所述删除候选数据桶中有数据槽中的数据与所述待删除元素的指纹信息相匹配,获取所述待删除元素的指纹信息所在的数据槽,并将该数据槽中的数据删除。
另一方面,本发明还提供了一种基于移动滤波框架的动态集合管理系统,包括处理器和插入器,所述插入器上插入有用于在所述处理器上执行的计算机指令,所述处理器执行所述计算机指令时,实现基于移动滤波框架的动态集合管理方法,所述动态集合具有多个数据桶,每个数据桶均具有设定数量的数据槽,所述数据槽用于插入元素的指纹信息,所述管理方法包括:响应于接收到待插入元素的命令,获取待插入元素以及该待插入元素的指纹信息;根据第一哈希函数和掩码信息,并根据所述第一哈希函数、掩码信息、所述插入元素及其指纹信息,得到插入候选数据桶;获取第二哈希函数和与所述待插入元素的辅助信息相关联的偏移量,并根据所述第二哈希函数、所述偏移量和各数据桶中数据槽的数量,得到插入候选数据槽的位置;将所述待插入元素插入到所述插入候选数据桶内对应的候选数据槽中。
根据本发明的一个实施例,所述插入候选数据桶的数量为四个,将所述待插入元素插入到所述插入候选数据槽中包括:从四个插入候选数据桶中随机选择一个作为待用数据桶,将待用数据桶中对应的候选数据槽作为待用数据槽;响应于所述待用数据槽没有被占用,将所述待插入元素的指纹信息插入到所述待用数据槽中;响应于所述待用数据槽被占用,首先将所述待用数据槽中的数据迁移,然后将所述待插入元素的指纹信息插入到所述待用数据槽中。
进一步地,根据本发明的另一个实施例,所述将所述待用数据槽中的数据迁移包括:获取所述待用数据槽的备用数据槽,所述备用数据槽为其他插入候选数据桶中与所述插入候选数据槽相对应的数据槽;响应于所述备用数据桶中具有空的数据槽,将所述待用数据槽中的数据迁移到该空的数据槽中,并对所述待用数据槽中的数据重新进行定位。
根据本发明的又一个实施例,所述方法还包括:响应于接收到元素查询命令,获取待查询元素并获取其指纹信息;根据所述第一哈希函数、掩码信息、待查询元素及其指纹信息得到查询候选数据桶;响应于待查询元素的指纹信息存储在所述查询候选数据桶中,获取所述待查询元素的指纹信息所在的数据槽,并根据该数据槽位置计算所述待查询元素的辅助信息。
根据本发明的另一个实施例,所述方法还包括:响应于接收到数据删除命令,获取待删除元素并获取其指纹信息;根据所述第一哈希函数、掩码信息、待删除元素及其指纹,得到删除候选数据桶;响应于所述删除候选数据桶中有数据槽中的数据与所述待删除元素的指纹信息相匹配,获取所述待删除元素的指纹信息所在的数据槽,并将该数据槽中的数据删除。
本发明所提供的技术方案,可以使动态集合可以支持成员查询、关联查询和多重性查询,因此能够提高动态集合的通用性。另外,本发明所提供的技术方案,还能够使动态集合中的数据结构空间友好,从而使空间的开销降低,提高对计算机的空间利用率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是根据本发明实施例中一种动态集合的结构示意图;
图2是根据本发明实施例的一种基于移动滤波框架的动态集合管理方法的流程图;
图3是根据本发明通过实验得到的SFS滤波方法中元素指纹尺寸与负载因子之间的关系图;
图4是根据本发明通过实验得到的插入元素时负载因子与插入吞吐量之间的关系图;
图5是根据本发明通过实验得到的插入元素时重叠分数与插入吞吐量之间的关系图;
图6是根据本发明通过实验得到的实验元素的平均频数与插入吞吐量之间的关系图;
图7是根据本发明通过实验得到的负载因子与被查询元素占据所插入元素的100%之间的关系图;
图8是根据本发明通过实验得到的负载因子与被查询元素占据所插入元素的0%之间的关系图;
图9是根据本发明通过实验得到成员关系查询时负载因子与查询吞吐量之间的关系图;
图10是根据本发明通过实验得到的关联查询时负载因子与查询吞吐量之间的关系图;
图11是根据本发明通过实验得到的多重性查询且查询结果为阳性时负载因子与查询吞吐量之间的关系图;
图12是根据本发明通过实验得到的多重性查询且查询结果为阴性时负载因子与查询吞吐量之间的关系图;
图13是根据本发明通过实验得到的混合查询时负载因子与查询吞吐量之间的关系图;
图14是根据本发明通过实验得到的删除元素时负载因子与删除吞吐量之间的关系图;
图15是根据本发明通过实验得到的删除元素时重叠分数与删除吞吐量之间的关系图;
图16是根据本发明通过实验得到的关联查询时重叠分数与精确度之间的关系图;
图17是根据本发明通过实验得到的多重查询时实验元素的平均频数与SF滤波和ShBF滤波精度之间的关系图;
图18是根据本发明通过实验得到的多重查询时实验元素的平均频数与SF滤波和ShBF滤波相对误差之间的关系图;
图19是根据本发明通过实验得到的多重查询时实验元素的平均频数与SF滤波和ShBF滤波假阳性之间的关系图;
图20是根据本发明实施例的一种基于移动滤波框架的动态集合管理系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,本领域技术人员应知,下面所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种基于移动滤波框架的动态集合管理方法,该方法用于对计算机插入空间上所设置的动态集合进行管理,以提高对提高动态集合的通用性,以及对计算机插入空间的利用效率。
本发明所提供的基于移动滤波框架的动态集合管理方法,其中动态集合如图1所示,该动态集合中具有Z1行Z2列的数据槽,其中Z1为不小于1的正整数,Z2为大于1的正整数,并且各数据槽均用于存储元素的指纹信息。在发明的技术方案中,将相同列的数据槽作为一个数据桶,例如第一数据桶包括第一列中的各数据槽,第二数据桶包括第二列中的各数据槽等,以此类推,可以得知在动态集合中具有Z1个数据桶,并且每个数据桶具有Z2个数据槽。下面结合图2所示出的流程,对本发明的基于移动滤波框架的动态集合管理方法做详细的介绍。
在图2所示出的流程中,本发明的基于移动滤波框架的动态集合管理方法包括:
在步骤S1中,判断是否接收到元素插入命令,如果接收到,则获取待插入元素,并得到该待插入元素的指纹信息。在本实施例中,可以先接收元素插入命令,再接收待插入元素,例如,可以在工作过程中连续接收数据包并对其进行识别,以判断其是否为元素插入命令,如果接收到的是元素插入命令,则将接收到的下一个数据包作为待插入元素;或者,可以将元素插入命令和待插入的元素打包成一个数据包,在接收到数据包时,对其中的前第一设定位数据进行识别以判断为是否为元素插入命令,如果是,则将该数据包的后第二设定位数据作为待插入元素。在本实施例中,为了便于对本发明技术方案的描述,设将待插入待元素为e,其待插入元素的指纹信息为f(e),则
f(e)=fingerprin t(e) (1)
其中fingerprin t(e)为待插入元素e的指纹获取函数。
在步骤S2中,首先获取第一哈希函数和掩码信息,并根据第一哈希函数、掩码信息、所述插入元素及其指纹信息,得到插入候选数据桶。在本实施例中,设第一哈希函数为hash(e),掩码信息包括第一掩码信息bm1和第二掩码信息bm2,则根据第一哈希函数、掩码信息、所述插入元素及其指纹信息,采用如下公式(2)-(5)得到插入候选数据桶对应的编号h1(e)、h1(e)、h3(e)和h4(e):
h1(e)=hash(e) (2)
即动态集合中的编号为h1(e)、h1(e)、h3(e)和h4(e)数据桶均为插入候选数据桶,由于将待插入元素的指纹信息插入到一个数据槽中即可,因此从编号为h1(e)、h1(e)、h3(e)和h4(e)中随机选择出一个作为待用数据桶。
在步骤S3中,获取第二哈希函数和与待插入元素的辅助信息相关联的偏移量,并根据第二哈希函数、与待插入元素的辅助信息相关联的偏移量和各数据桶中数据槽的数量,得到插入候选数据槽的位置。在本实施例中,设在插入候选数据桶中具有Z1个数据槽,设其中第z个数据槽为插入候选数据槽,第二哈希函数为h0(e),与待插入元素的辅助信息相关联的偏移量为o(e),则:
z=(h0(e)%Z1+o(e))%Z1 (6)
结合步骤S2中确定出的待用数据桶,将待用数据桶中的第z个数据槽作为待用数据槽。
在步骤S4中,将待插入元素的指纹信息存储到上述步骤S3中确定的待用数据槽中。
以一种实际应用场景为例,设Z1的值为4,Z2的值为8,即在该应用场景中,动态集合具有8个数据桶,每个数据桶具有4个数据槽。在上述步骤S2中,可以通过上述公式(3)计算出I的具有0、2、4、6四个值,即动态集合中的第1、3、5、7个数据桶为插入候选数据桶,然后从其中选择出一个作为待用数据桶;通过上述公式(6)计算出z的值为3,因此可以得到待用数据桶中的第4个数据槽为待用数据槽,然后将待插入元素的指纹信息存储在该数据槽即可。
本发明所提供的基于移动滤波框架的动态集合管理方法,使动态集合可以支持成员查询、关联查询和多重性查询,因此能够提高动态集合的通用性。另外,本发明所提供的技术方案,还能够使动态集合中的数据结构空间友好,从而使空间的开销降低,提高对计算机的空间利用率。
上文中对本发明的基于移动滤波框架的动态集合管理方法做了详细的介绍,下面结合具体应用场景,对步骤S3中插入待插入元素指纹信息的方法做详细的介绍。
在一个实施例中,在得到插入候选数据槽后,判断该插入候选数据槽是否被占用,即该插入候选数据槽中是否插入有数据;如果该插入候选数据槽没有被占用,即该插入候选数据槽中没有数据,则将待插入元素的指纹信息插入到该插入候选数据槽中即可;如果该插入候选数据槽被占用,即该插入候选数据槽中有数据,则先将该候选数据槽中的数据迁移并重新进行定位,然后将待插入元素的指纹信息插入到该插入候选数据槽中即可。通过本实施例的设置方式,可以在插入候选数据槽中有数据时将待插入元素的指纹信息插入进去,并且将插入候选数据槽中原有的数据迁移,因此既可以插入待插入元素,也不会造成原有数据的缺失,从而提高动态集合插入数据的可靠性。
进一步地,在另一个实施例中,上述将插入候选数据槽中的数据迁移的方法包括:
在步骤S11中,获取插入候选数据槽的备用数据槽,该备用数据槽可以为其他候选数据桶中的候选数据槽,例如,上述实施例的动态集合中第1、3、5、7个数据桶中的第4个数据槽为插入候选数据槽时,如果从其中随机选择出第1个数据桶中第4个数据槽用于插入待插入元素的指纹信息,则第3、5、7个数据桶中的第4个数据槽分别为第一备用数据槽、第二备用数据槽和第三备用数据槽。
在步骤S12中,从备用数据槽中选择出没有被占用的数据槽,将插入候选数据槽中的数据迁移到没有被占用的数据槽中,并对原插入候选数据槽中的数据重新进行定位。例如,可以判断其第一备用位置是否被占用,如果没有被占用,则将其存放到第一备用位置处,并将其位置定位成第一备用位置;如果其第一备用位置被占用,则判断其第二备用位置是否被占用,以此类推,直到将其存放到没有被占用的备用位置。如果其所为备用位置均被占用,则判断为对应的数据桶无法插入数据。
上文中所介绍的基于移动滤波框架的动态集合管理方法,是向动态集合中插入数据的方法,下面结合具体应用场景,对动态集合中数据的查询方法做详细的说明。
在一个实施例中,对动态集合中的数据进行查询的方法包括:
在步骤S21中,判断是否接收到元素查询命令,如果接收到元素查询命令,则获取待查询元素,并得到该待查询元素的指纹信息。在本实施例中,接收元素查询命令以及查询元素的方式与上文步骤S1中获取元素插入命令和待插入元素的方式相同,可以先接收元素查询命令再接收待查询元素,也可以同时接收元素查询命令和待查询元素,并且在得到待查询元素后,可以采用上述公式(1)得到待查询元素的指纹信息。
在步骤S22中,根据待查询元素和待查询元素的指纹信息,得到查询初始数据桶。在本实施例中,查询初始数据块根据第一哈希函数、动态集合中数据桶的数量以及上述公式(2)-(5)计算得到。
在步骤S23中,以初始查询数据桶为起点,对查询候选数据桶中各数据槽中的数据进行查询,以判断待查询元素的指纹信息是否在查询候选数据桶中的数据槽中。
即通过上述公式(2)-(5)得到四个查询候选数据桶,然后分别从四个查询候选数据桶所在的位置开始,对动态集合中各数据槽所存储的数据进行查询,以得到待查询元素的指纹信息是否在动态集合的数据槽中。如果待查询元素的指纹信息在查询候选数据桶中的数据槽中,则获取该数据槽所在的数据桶。
在步骤S24中,根据上述步骤S22中得到的初始位置和步骤S23中得到的当前位置得到待查询元素的偏移量,并通过该偏移量对其辅助信息进行解码,以得到待查询元素的辅助信息。例如,上述步骤S22中得到初始数据桶为动态集合中的第j1个数据桶,上述步骤S23中得到待查询元素的指纹信息所在的数据桶为动态集合中的第j2个数据桶,则可以得到待查询元素的偏移量为j2-j1。
上文中对动态集合中数据的查询方法做了详细的介绍,下面结合具体应用场景,对动态集合中数据的删除方法做详细的介绍。
在一个实施例中,对动态集合中的数据进行删除的方法包括:
在步骤31中,判断是否接收到元素删除命令,如果接收到元素删除命令,则获取待删除元素,并得到待删除元素的指纹信息。在本实施例中,接收元素删除命令以及查询元素的方式与上文步骤S1中获取元素删除命令和待删除元素的方式相同,可以先接收元素查询命令再接收待删除元素,也可以同时接收元素删除命令和待删除元素。在得到待删除元素后,可以采用上述公式(1)得到待删除元素的指纹信息。
在步骤S32中,根据待删除元素和其指纹信息,得到删除候选数据桶。在本实施例中,删除初始数据块根据第一哈希函数、掩码信息、待删除元素和其指纹信息以及上述公式(2)-(5)计算得到。在得到删除初始数据桶后,将删除初始数据桶之后的数据桶作为删除候选数据桶,并将初始数据桶所在的位置作为初始位置。
在步骤S33中,以初始删除数据桶为起点,对删除候选数据桶中各数据槽中的数据进行查询,以判断待删除元素的指纹信息是否在删除候选数据桶中的数据槽中,如果在则将其删除。即通过上述公式(2)-(5)得到四个删除候选数据桶,然后分别从四个删除候选数据桶所在的位置开始,对动态集合中各数据槽所存储的数据进行查询,以得到待删除元素的指纹信息是否在动态集合的数据槽中,如果在则将其删除。
技术效果分析:
由于本发明的技术方案实质上是在垂直方向上应用移动框架进行滤波处理的,即在数据槽上应用移动框架的滤波处理方式,因此为了便于对本发明技术方案的描述,将本发明技术方案中的滤波方式称为SFS滤波方式,下面对本发明技术方案的有益效果做详细的分析:
(1)空间效率分析
在对根据本发明技术方案所获取的动态集合进行空间效率分析时,需要获取其元素插入失败的概率和假阳性率所要求的最小指纹信息尺寸。以上述步骤S2中得到的插入候选数据桶的数量是四个为例,在获取动态集合元素插入失败的概率所要求的最小指纹信息尺寸时,首先推导出两个不同的元素在相同的4个数据桶中碰撞的概率。由于两个元素在相同的4个数据桶中发生碰撞需要满足如下条件:
1)具有相同的指纹信息时,这种情况发生的概率为1/2l,其中l为元素的指纹信息长度;
2)第一个插入候选数据桶为四个插入候选数据桶中的一个,这种情况发生的概率是4/m,其中m为动态集合中数据桶的数量。
因此,一个包含q个元素的集合共享相同的四个候选桶的概率是(4/m·1/2l)q-1。当插入n个随机元素到一个包含m=γn个数据桶的空动态集合时(γ为一个常数),只要有q=5个元素映射到相同的四个插入候选数据槽中,插入就会失败,即这个概率提供了SFS滤波插入元素失败的下界。因为n个元素中5个元素的不同组合有种,因此SFS滤波构建阶段中5个元素的期望碰撞次数为:
我们可以得出结论:为了避免插入元素失败的概率过高,γ4·24l-1的大小须是Ω(n),否则这个期望是Ω(1)。因此,SFS滤波中指纹信息所需的最小位数为:
lSFS=[log2 2n/4-log2γ] (8)
在成员查询的过程中,假阳性错误指的是滤波在查询一个不存在的元素时返回一个阳性结果。在关联查询和多重性查询中,当滤波将一个外来元素视为关联查询阶段中任何表示集合的成员时,或者在多重性查询阶段输出该元素的多重性大于0时,也可以视为出现了假阳性错误。当在一个数据槽中查找一个不存在的元素e1时,如果这个数据槽被占用,那么元素e1与插入的指纹信息匹配的概率是1/2l,否则是0。设每个数据桶中具有b个数据槽,在查询元素e1的最坏情况下,必须探测四个查询候选数据桶,每个查询候选数据桶中都有b个填满的数据槽,因此该查询返回一个成功匹配的假阳性概率为:
FPRSFS=1-(1-1/2l)4b≈4b/2l (9)
因此,假阳性率与指纹信息长度l成负相关、与数据桶中填满的数据槽数量b成正相关,同时也反映了指纹信息错误命中的整体概率的上界限。为了保证假阳性率不大于设定值ε,本发明的技术方案需保证4b/2l≤ε,因此根据假阳性率所要求的最小指纹信息尺寸需满足如下条件:
lSFS≥[log2(1/ε)+log2(4b)] (10)
然后可以通过表示每个元素的平均比特数来度量动态集合的空间效率。假设滤波维护m个数据桶,由于每个数据桶都有b个数据槽,并使用合适的指纹信息,每个指纹信息的长度为l个比特数,所以滤波的尺寸是mbl。在动态集合中插入多个随机元素的构造过程之后,表中必须有一些空闲的数据槽。用负载因子α表示被占用的槽在整个表中的比例。因此,总共有mbα个元素被有效插入。因此,这个滤波的每个元素所需要的比特位(也是平摊空间代价)是:
其中,当该滤波为本发明的SFS滤波时,l的值不应小于式2和6确定的下界,当进行成员关系查询时,l的值不应小于式2和8确定的下界。
通过上述公式(11)可以用来描述滤波的空间效率,基于该原理,可以测量了本发明技术方案在不同指纹长度l下的负载因子α,即空间利用率,也是动态集合的占用率,如图3所示,在图3中横坐标为元素指纹信息的长度l,纵坐标为负载因子α。在实验中,我们将指纹信息的长度l从1位增加到24位。随机合成元素插入到空滤波中,直到某次插入在找到可用数据槽之前将现有指纹重定位超过500次(即MAX=500),然后停止并测量达到的负载因子α。将每个数据桶中数据槽的数量b固定为4,并对m取值为214、216、218和220个数据桶的滤波进行30次实验,然后记录30次试验中它们的最小负载因子。如图3所示,如果指纹信息长度足够,当b=4时,SFS滤波的使用率为98。如同理论分析的那样,本发明的SFS滤波达到一个低的假阳性率(例如0.001)所需的l是15位,这也是实现接近最佳空间利用率所需的元素最小指纹信息长度。总体而言,本发明的技术方案中满足精度要求的指纹信息可以满足高占用率。
(2)插入吞吐量分析
插入吞吐量是指在进行元素插入操作时,单位时间内所执行的操作次数,在实验过程中,可以记录在向动态集合中所执行的操作次数N和所消耗的时间T,则其吞吐量为N/T,通过实验,得到的结果如图4、图5和图6所示,下面结合图4、图5和图6,对本发明技术方案中执行元素插入操作时的吞吐量与CF(Cuckoo filter,布谷鸟滤波)、VCF(VerticalCuckoo filter,垂直布谷鸟滤波)、BF(Bloom filter,布隆滤波)、ShBF(Counting Bloomfilter,计数型布隆滤波)滤波方法中执行元素插入操作时的吞吐量进行对比分析。
图4中的横坐标为负载因子α,纵坐标为插入吞吐量,SFSM是针对成员关系查询的SFS滤波。根据图4所示出的现象可知,当负载因子α逐渐增大时,不同滤波方式在成员关系查询的瞬时元素吞吐量。由在图4所示出的现象可知,当α增加时,BF滤波及其变体ShBF滤波的插入吞吐量保持不变,而其他三个滤波的插入吞吐量有所下降。当负载因子α值小于0.75时,与CF滤波和VCF滤波相比,SFS滤波具有更好的插入性能,这是因为SFS滤波检查更少的候选数据槽来为插入的指纹找到空位置。然而,随着表变得更满,耗时的重定位策略开始在降低构建速度方面发挥主要作用,特别是候选数据槽更少的SFS滤波。总体而言,SFS滤波的总体构造速度仍然较高,与CF滤波、VCF滤波、ShBF滤波和BF滤波相比,SFS滤波控进行成员关系查询的构造速度分别为1.14、1.18、1.30和1.60倍。
对于关联查询的插入实验,我们首先构造三个分别包含两个、三个和四个子集的插入动态集合。当插入数据集中有两个、三个或四个子集时,则可能有4、8或16种从属关系。例如,如果某全集U有两个子集S1和S2,那么U中的一个元素可能属于:U-S1∪S2,S1-S2,S2-S1和S1∩S2。然后,我们改变重叠分数并测试ShBF滤波和针对关联查询的SFS滤波的总插入吞吐量,如图5所示,横坐标为重叠分数,纵坐标为插入吞吐量,SFSA4、SFSA3、SFSA2分别是针对插入四个、三个、两个子集的关联查询的SFS滤波,ShBF4、ShBF3、ShBF2分别是针对插入四个、三个、两个子集的关联查询的ShBF滤波。在图5中的下标意味着当前曲线记录了数据集包含相应数量子集的插入吞吐量结果。针对关联查询的SFS滤波保证了较高且几乎恒定的插入吞吐量,而ShBF滤波的构建速度要低得多,且随着重叠分数和从属关系数量的增加而下降。原因是重叠分数越大,ShBF滤波在其偏移函数中使用的哈希计算就越多,也就越耗时。此外,更多的隶属关系直观地招致更多的时间开销。此外,ShBF滤波必须在插入元素之前探索辅助滤波来获取给定元素的从属关系。总的来说,在插入数据集包含四、三、二个子集情况下,与ShBF滤波相比,针对关联查询的SFS滤波的总插入吞吐量为3.36、2.61和1.88倍。
图6还比较了采用另一种比较方法ABF(Adaptive Bloom filter,自适应布隆滤波)时,用于多重查询的不同滤波的总插入吞吐量,在图6中横坐标为实验元素的平均频数,纵坐标为插入吞吐量,SFSX是针对多重查询的SFS滤波。在这个实验中,我们向这些滤波插入合成数据集,其中数据的多重性遵循一个正态分布,然后量化当平均多重性,即M从25增加到210时,它们的总体构建速度。像针对关联查询的SFS滤波一样,针对多重性查询的SFS滤波也保持高且几乎恒定的构造速度。由于元素的多重性代替哈希值而被直接用作偏移量,ShBF滤波的插入吞吐量得到了显著提高。然而,较差的ABF的性能最差,并且随着多重性的增加而变得更糟,因为ABF滤波利用了额外的哈希函数,这些哈希函数的数量与记录的元素的多重性相同。
(3)查询吞吐量分析
成员关系查询的吞吐量分析:首先,当这些滤波被填充到不同的占用级别时,我们测量其瞬时查询吞吐量。在进行实验时,将各种滤波的负载因子α从0变化到95%,接近其最大占用率。图7和图8显示了被查询元素占据所插入元素的100%(阳性)和0%(阴性)时的平均瞬时查询吞吐量,图7和图8中横坐标均为负载因子,纵坐标均为查询吞吐量。无论是阳性还是阴性查询,CF滤波、VCF滤波和SFS滤波的吞吐量在不同的负载因子级别上基本上是稳定的。这是因为即使滤波插入更满,其读取和比较的数据槽总数维持恒定。相反,在回答阳性、阴性查询时,BF滤波和ShBF滤波的表现是不同的。在阳性查询中,它们必须总是检查k个比特位,而不管滤波的占用率是多少,因此提供恒定的查询吞吐量。通过实验可知,在阳性查询时,进行成员关系查询时,SFS滤波的性能优于其他滤波方式。
其次,将占用率设置为95%,并变化阳性元素在查询集合中所占的比例,即F(从0.05到0.95)。然后记录总体查询吞吐量,如图9所示,图9中横坐标为负载因子,纵坐标为查询吞吐量。结果表明,SFS滤波进行成员关系查询时的查询吞吐量随着F的增加而增长,然而ShBF滤波和BF滤波的查询吞吐量却随着F的增加而急剧减小。根据图9所示出的结果可知,在进行成员关系查询时,如果F大于0.时,SFS滤波的性能要优于其他滤波,原因是随着F的增加,CF滤波及VCF滤波在找到目标元素之前搜索的数据槽更少,然而,BF滤波和ShBF滤波必须检查更多的比特位。
关联查询的吞吐量分析:给定滤波的负载因子α为0.95,将重叠分数从0变化到1,然后测量4、8和16种从属关系类型下的滤波的总体查询吞吐量。如图10所示,图10中横坐标为负载因子,纵坐标为查询吞吐量,无论被查询的元素在多少个动态集合中,SFS滤波进行关联查询时仍然保持较快的查找速度,并且随着重叠分数的增加而变快。因为SFS滤波进行关联查询通过使用标记字段明确地表示元素的从属关系,当更多的查询是阳性的时,可以更快地响应。然而,当该元素所包含的潜在隶属关系越多或重叠分数越大时,ShBF滤波的性能就会下降。因为ShBF滤波必须计算额外的哈希函数并读取更多的位。简而言之,当面对4、8和16种关联类型的查询时,SFS滤波进行关联查询的吞吐量分别为0.95、1.71和3.03倍。
多重性查询的吞吐量分析:图11和图12描述了在所有查询为阳性和所有查询为阴性的情况下随着M(实验元素的平均频数)的变化,滤波的平均查询吞吐量,在图11和图12中横坐标均为负载因子,纵坐标均为查询吞吐量。无论是阳性还是阴性查询,SFS滤波的多重性查询总是确保高查询吞吐量,而跟M的增加无关。因为SFS滤波的多重性查询检查的数据槽更少,因此性能更好。但是,当M变大时,ShBF滤波和ABF滤波的查找性能都有很大程度的退化,并且ShBF滤波的性能比ABF滤波差。原因是SFS滤波的多重性查询总是先获取固定数量的查询候选数据槽或数据桶。然而,ShBF滤波必须检查几乎c×k个比特位(其中k为信息编码中独立的哈希值数量,c为个哈希数字上的非零比特位),以避免低估,其中c是所有插入元素的最大重数。对于多重性为i的阳性查询(i为具有从属关系的元素数量),ABF滤波必须计算额外的i+1个哈希函数,并读取至少k+i+1个比特位。对于阴性查询,ABF滤波可以在获取第一个0位后立即返回。不幸的是,如果这个阴性查询导致一个假阳性错误,ABF滤波必须计算更多的哈希函数和检查更多的比特位,这种情况当M增加时是很常见的。总之,SFS滤波的多重性查询的总阴性查询吞吐量分别是ABF滤波和ShBF滤波的2.37和5.07,总阳性查询吞吐量分别是ABF滤波和ShBF滤波的0.6和2.75倍。
混合查询的吞吐量分析:如图13所示,图13中横坐标为负载因子,纵坐标为查询吞吐量,展示固定M=1024时,滤波的混合查询吞吐量。很明显,SFS滤波的多重性查询是表现最好,它们都随着F的增加而反应更快。这是因为如果阴性查询较少,那么查找可能会在检查所有候选槽或桶之前提前返回。相比之下,ShBF滤波和BF滤波的查询吞吐量要低得多。与ABF滤波和ShBF滤波相比,SFS滤波的多重性查询的总混合查询吞吐量分别为14.41和29.04倍。
(4)删除吞吐量分析
由于BF滤波和ShBF滤波不支持元素删除,因此本发明量化了图14和图15中针对三种集合查询类型的我们的方法的删除吞吐量。
1)成员关系查询:实验结果如图14所示,在图14中,横坐标为负载因子,纵坐标为删除吞吐量,根据图14可知,与VCF滤波和CF滤波相比,SFS滤波的删除吞吐量分别为1.56和1.43倍。此外,当α值增加时,所有滤波的删除吞吐量均出现下降。这是在删除目标指纹前搜索更多槽的自然结果。
2)对于关联查询,实验结果如图15所示,在图15中,横坐标为重叠分数,纵坐标为删除吞吐量,不同隶属关系数量下的SFS滤波的删除吞吐量大致相同,保持较高水平,并随着重叠分数的增加而增加。
3)对于多重性查询,通过实验可以得知,SFS滤波的吞吐量为最大值。
(5)误差率分析
精度分析:如图16所示,在图16中,横坐标为重叠分数,纵坐标为精确度,针对关联查询的SFS滤波的精度始终高于由如下公式所推到出的下限,即99.994%,优于ShBF滤波:
此外,通过实验可以得知随着隶属类型的增加,ShBF滤波的精度会下降。因为ShBF滤波必须检查更多的比特位,导致其错误匹配的概率更高。对于图17中的多重性查询,当M从25增加到210时,ShBF滤波和ABF滤波的准确率都有显著下降,在图17中横坐标为实验元素的平均频数,纵坐标为纵坐标为SF滤波和ShBF滤波的精度。特别是当M大于128时,ABF滤波将会失效,其精度突然从6.72%下降到几乎为0。相比之下,本发明的针对多重性查询的SFS滤波总是能保证99.9%和99.8%的重数估计精度。其根本原因是我们的方法通过指纹,并在计数器的辅助下利用移动框架直接记录精确的多重性。但是,ShBF滤波和ABF滤波需要校验非零比特才能估计其多重性。此外,ABF滤波在记录频数较大的元素时,由于将更多的位设为1,其准确性比ShBF滤波差。例如,对于频数为100的元素,除了设置k个比特位来记录成员关系信息外,ABF滤波还必须将hk+1(e),…,hk+99(e)这99个比特位设为1来记录多重性信息。而ShBF滤波只需将k个比特位的99位后的h1(e),…,hk(e)设置为1。因此,在ABF滤波中,由其他元素设置的非零位更容易导致多重信息的高估。此外,ABF滤波位向量中记录的成员关系信息和多重性信息会相互干扰,导致精度降低。
平均相对误差分析:图18示出了查询元素的估计多重性相对于哈希到相应桶或位的元素的实际多重性的平均相对误差,在图18中,横坐标为实验元素的平均频数,纵坐标为SF滤波和ShBF滤波的平均相对误差。针对多重性查询的SFS滤波的查询精度接近3.0×10-5,无论M是否增加。具体的,ShBF滤波的平均相对误差值从1.8×10-4增加到3.4×10-4,ABF滤波的平均相对误差值从0.114增加到0.145。出现上述结果主要有两个原因:1)M越大,ShBF滤波需要搜索的比特位就越多,它就越有可能将一个多重性信息不同的元素误认为是查询的元素;2)M越大,ABF滤波中置为1的比特位越多,这使得用0或1来表示信息的机制在有限的空间内更容易失效。简而言之,与ShBF滤波和ABF滤波对比,针对多重性查询的SFS滤波的平均相对误差分别为0.14和0.0002倍。
假阳性分析:图19示出了支持多重查询的滤波的假阳性,在图19中,横坐标为实验元素的平均频数,纵坐标为SF滤波和ShBF滤波的平均相对误差。SFS滤波多重查询的假阳性保持在一个较低的水平,始终低于上界0.0019。然而,随着平均多重度的增加,ShBF滤波和ABF滤波的假阳性有所退化。假阳性表现最差,从0.37显著增长到1,当平均多重度大于128时,其肯定会产生假阳性错误。因为在ABF滤波中有大量的、额外的比特被设置为1来记录元素的多重性信息,所以ABF滤波很容易返回一个大于0的多重性信息结果。综上所述,与ShBF滤波和ABF滤波相比,SFS滤波的总体假阳率分别为0.089和0.002倍。
综上所述,当假阳率保持在1.5×10-5时,SF滤波比ShBF滤波、BF滤波、VCF滤波和CF滤波节省21.4%,18%,9.98%和5.25%的空间。至于成员关系查询,与CF滤波、VCF滤波、ShBF滤波和BF滤波相比,SFS滤波的插入吞吐量分别为1.14、1.18、1.30和1.60倍。与VCF滤波和CF滤波相比,SFS滤波的删除量分别为1.56和1.43倍。对于关联查询,在有四、三、二个子集的情况下,与ShBF滤波相比,SFS滤波的插入吞吐量为3.36、2.61和1.88倍、查询吞吐量分别为0.95、1.71和3.03倍。对于多重性查询,与SFBX滤波、ShBF滤波和ABF滤波相比,SFS滤波具有2.45、29.04和14.41倍的混合查询吞吐量,0.10、0.14和0.0002倍的平均相对误差,0.494、0.089和0.002倍的假阳率。
根据本申请的另一方面,本申请还提供了一种基于移动滤波框架的动态集合管理系统,如图20所示,该系统包括处理器、插入器、通信接口和通信总线,处理器、插入器和通信接口通过通信总线完成相互间的通信。处理器用于提供计算和控制能力。插入器包括非易失性插入介质、内插入器。该非易失性插入介质插入有操作系统和计算机程序指令。该内插入器为非易失性插入介质中的操作系统和计算机程序指令的运行提供环境。上述装置的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。本实施例所提供的基于移动滤波框架的动态集合管理系统,其插入器用于插入计算机程序指令,该计算机程序指令使处理器执行上述基于移动滤波框架的动态集合管理方法及其多个实施例。
另外,本说明书中所使用的术语“第一”或“第二”等用于指代编号或序数的术语仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”或“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个或更多个等,除非另有明确具体地限定。
虽然本说明书已经示出和描述了本发明的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式提供的。本领域技术人员会在不偏离本发明思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本发明的过程中,可以采用本文所描述的本发明实施例的各种替代方案。所附权利要求书旨在限定本发明的保护范围,并因此覆盖这些权利要求保护范围内的模块组成、等同或替代方案。
Claims (10)
1.一种基于移动滤波框架的动态集合管理方法,其特征在于,所述动态集合具有多个数据桶,每个数据桶均具有设定数量的数据槽,所述数据槽用于存储元素的指纹信息,所述管理方法包括:
响应于接收到待插入元素的命令,获取待插入元素以及该待插入元素的指纹信息;
获取第一哈希函数和掩码信息,并根据所述第一哈希函数、掩码信息、所述插入元素及其指纹信息,得到插入候选数据桶;
获取第二哈希函数和与所述待插入元素的辅助信息相关联的偏移量,并根据所述第二哈希函数、所述偏移量和各数据桶中数据槽的数量,得到插入候选数据槽的位置;
将所述待插入元素插入到所述插入候选数据桶内对应的候选数据槽中。
2.根据权利要求1所述的基于移动滤波框架的动态集合管理方法,其特征在于,所述插入候选数据桶的数量为四个,所述将所述待插入元素插入到所述插入候选数据槽中包括:
从四个插入候选数据桶中随机选择一个作为待用数据桶,将待用数据桶中对应的候选数据槽作为待用数据槽;
响应于所述待用数据槽没有被占用,将所述待插入元素的指纹信息插入到所述待用数据槽中;
响应于所述待用数据槽被占用,首先将所述待用数据槽中的数据迁移,然后将所述待插入元素的指纹信息插入到所述待用数据槽中。
3.根据权利要求2所述的基于移动滤波框架的动态集合管理方法,其特征在于,所述将所述待用数据槽中的数据迁移包括:
获取所述待用数据槽的备用数据槽,所述备用数据槽为其他插入候选数据桶中与所述插入候选数据槽相对应的数据槽;
响应于所述备用数据桶中具有空的数据槽,将所述待用数据槽中的数据迁移到该空的数据槽中,并对所述待用数据槽中的数据重新进行定位。
4.根据权利要求1所述的基于移动滤波框架的动态集合管理方法,其特征在于,还包括:
响应于接收到元素查询命令,获取待查询元素并获取其指纹信息;
根据所述第一哈希函数、掩码信息、待查询元素及其指纹信息得到查询候选数据桶;
响应于待查询元素的指纹信息存储在所述查询候选数据桶中,获取所述待查询元素的指纹信息所在的数据槽,并根据该数据槽位置计算所述待查询元素的辅助信息。
5.根据权利要求1所述的基于移动滤波框架的动态集合管理方法,其特征在于,还包括:
响应于接收到数据删除命令,获取待删除元素并获取其指纹信息;
根据所述第一哈希函数、掩码信息、待删除元素及其指纹,得到删除候选数据桶;
响应于所述删除候选数据桶中有数据槽中的数据与所述待删除元素的指纹信息相匹配,获取所述待删除元素的指纹信息所在的数据槽,并将该数据槽中的数据删除。
6.一种基于移动滤波框架的动态集合管理系统,其特征在于,包括处理器和插入器,所述插入器上插入有用于在所述处理器上执行的计算机指令,所述处理器执行所述计算机指令时,实现基于移动滤波框架的动态集合管理方法,所述动态集合具有多个数据桶,每个数据桶均具有设定数量的数据槽,所述数据槽用于插入元素的指纹信息,所述管理方法包括:
响应于接收到待插入元素的命令,获取待插入元素以及该待插入元素的指纹信息;
根据第一哈希函数和掩码信息,并根据所述第一哈希函数、掩码信息、所述插入元素及其指纹信息,得到插入候选数据桶;
获取第二哈希函数和与所述待插入元素的辅助信息相关联的偏移量,并根据所述第二哈希函数、所述偏移量和各数据桶中数据槽的数量,得到插入候选数据槽的位置;
将所述待插入元素插入到所述插入候选数据桶内对应的候选数据槽中。
7.根据权利要求6所述的基于移动滤波框架的动态集合管理系统,其特征在于,所述插入候选数据桶的数量为四个,所述将所述待插入元素插入到所述插入候选数据槽中包括:
从四个插入候选数据桶中随机选择一个作为待用数据桶,将待用数据桶中对应的候选数据槽作为待用数据槽;
响应于所述待用数据槽没有被占用,将所述待插入元素的指纹信息插入到所述待用数据槽中;
响应于所述待用数据槽被占用,首先将所述待用数据槽中的数据迁移,然后将所述待插入元素的指纹信息插入到所述待用数据槽中。
8.根据权利要求7所述的基于移动滤波框架的动态集合管理系统,其特征在于,所述将所述待用数据槽中的数据迁移包括:
获取所述待用数据槽的备用数据槽,所述备用数据槽为其他插入候选数据桶中与所述插入候选数据槽相对应的数据槽;
响应于所述备用数据桶中具有空的数据槽,将所述待用数据槽中的数据迁移到该空的数据槽中,并对所述待用数据槽中的数据重新进行定位。
9.根据权利要求6所述的基于移动滤波框架的动态集合管理系统,其特征在于,所述方法还包括:
响应于接收到元素查询命令,获取待查询元素并获取其指纹信息;
根据所述第一哈希函数、掩码信息、待查询元素及其指纹信息得到查询候选数据桶;
响应于待查询元素的指纹信息存储在所述查询候选数据桶中,获取所述待查询元素的指纹信息所在的数据槽,并根据该数据槽位置计算所述待查询元素的辅助信息。
10.根据权利要求6所述的基于移动滤波框架的动态集合管理系统,其特征在于,所述方法还包括:
响应于接收到数据删除命令,获取待删除元素并获取其指纹信息;
根据所述第一哈希函数、掩码信息、待删除元素及其指纹,得到删除候选数据桶;
响应于所述删除候选数据桶中有数据槽中的数据与所述待删除元素的指纹信息相匹配,获取所述待删除元素的指纹信息所在的数据槽,并将该数据槽中的数据删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210268638.8A CN114625719B (zh) | 2022-03-18 | 2022-03-18 | 一种基于移动滤波框架的动态集合管理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210268638.8A CN114625719B (zh) | 2022-03-18 | 2022-03-18 | 一种基于移动滤波框架的动态集合管理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114625719A true CN114625719A (zh) | 2022-06-14 |
CN114625719B CN114625719B (zh) | 2024-07-02 |
Family
ID=81901709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210268638.8A Active CN114625719B (zh) | 2022-03-18 | 2022-03-18 | 一种基于移动滤波框架的动态集合管理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625719B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701440A (zh) * | 2023-06-15 | 2023-09-05 | 泉城省实验室 | 一种布谷鸟过滤器及数据插入、查询、删除方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428093B (zh) * | 2013-07-03 | 2017-02-08 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN110222088B (zh) * | 2019-05-20 | 2021-08-31 | 华中科技大学 | 基于插入位置选择的数据近似集合表示方法及系统 |
-
2022
- 2022-03-18 CN CN202210268638.8A patent/CN114625719B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701440A (zh) * | 2023-06-15 | 2023-09-05 | 泉城省实验室 | 一种布谷鸟过滤器及数据插入、查询、删除方法 |
CN116701440B (zh) * | 2023-06-15 | 2024-04-16 | 泉城省实验室 | 一种布谷鸟过滤器及数据插入、查询、删除方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114625719B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5425286B2 (ja) | データ処理システムのメモリ使用状況を追跡する方法 | |
US6963940B1 (en) | Measuring utilization of individual components of channels | |
US9489409B2 (en) | Rollover strategies in a N-bit dictionary compressed column store | |
RU2438165C2 (ru) | Устройство и способы для уменьшения вытеснений в многоуровневой иерархии кэша | |
EP0408070B1 (en) | Method for allocating real pages to virtual pages having different page sizes therefrom | |
CN104462225B (zh) | 一种数据读取的方法、装置及系统 | |
CN114706834B (zh) | 一种高效率的动态集合管理方法和系统 | |
US20100030994A1 (en) | Methods, systems, and computer readable media for memory allocation and deallocation | |
US8799572B2 (en) | Sliding-window multi-class striping | |
CN109947667B (zh) | 数据访问预测方法和装置 | |
CN111459885A (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
US8914381B2 (en) | Correlation filter | |
CN109582649A (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
CN114625719B (zh) | 一种基于移动滤波框架的动态集合管理方法和系统 | |
CN116991855B (zh) | 哈希表处理方法、装置、设备、介质、控制器及固态硬盘 | |
CN112650692A (zh) | 堆内存分配方法、装置及存储介质 | |
US10846023B2 (en) | Storage device and storage area management method for reducing garbage collection processing | |
CN117215485A (zh) | Zns ssd管理方法及数据写入方法、存储装置、控制器 | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
US11747998B1 (en) | Indexing technique for large scale distributed key-value systems | |
CN113010891B (zh) | 一种应用程序安全检测方法、装置、电子设备和存储介质 | |
US10942860B2 (en) | Computing system and method using bit counter | |
US20100169322A1 (en) | Efficient access of bitmap array with huge usage variance along linear fashion, using pointers | |
CN106686082A (zh) | 存储资源调整方法及管理节点 | |
CN114637609B (zh) | 基于冲突检测的gpu的数据获取系统 |
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 |