利索能及
我要发布
收藏
专利号: 2022109784061
申请人: 成都信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种带时效的自适应动态数据集合成员插入方法,其特征在于,所述方法包括以下步骤:步骤1、预先建立用于存储集合成员指纹信息的布谷鸟过滤器以及3个邻接表,并将布谷鸟过滤器命名为主区,3个邻接表分别命名为交换区、过期区以及缓冲区,其中,主区用于存储暂未进入过期过渡期的集合成员,交换区用于存储发生了两次重定位操作且暂未进入过期过渡期的集合成员,过期区用于存储已经进入过期过渡期但还未过期的集合成员,缓冲区用于存储被访问命中次数达到预设访问次数阈值且未过期的集合成员;

分别为主区、交换区、过期区以及缓冲区中的每一个哈希桶维护一个控制区,其中,所述控制区的参数项包括重定位率、主区成员个数、交换区成员个数、过期区成员个数、缓冲区成员个数以及主区建议插入位置;

针对主区中每一个哈希桶,其插入位区的每个插入槽位的存储单位为一个由指纹对标位、指纹验证位、重定位计数位、有效期标识位以及命中次数计数位所构成的主区信息存储标签;

针对交换区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位、命中次数计数位以及指针位所构成的交换区信息存储标签;

针对过期区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位以及指针位所构成的过期区信息存储标签;

针对缓冲区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位、区位标识位以及指针位所构成的缓冲区信息存储标签;

所述主区信息存储标签、交换区信息存储标签和过期区信息存储标签为主信息存储标签,所述缓冲区信息存储标签为副信息存储标签,未过期的集合成员对应有且只有一个主信息存储标签和一个副信息存储标签;

步骤2、插入时,判定待插入集合成员是否已经存在于主区、缓冲区、过期区以及交换区的插入位区中:若存在,则插入操作结束;

若不存在,则选择两个哈希候选桶中主区成员个数最少的一个哈希候选桶作为判定桶来进行插入操作;

插入操作时,根据控制区所关联插入桶的主区建议插入位置所指示的插入槽位进行插入,判断当前插入槽位是否为空白槽位:若是,则根据主区建议插入位置将待插入集合成员的主区信息存储标签插入所述槽位中,扫描主区所关联插入桶的插入位区并根据扫描结果更新控制区中的数据;

若否,则根据主区建议插入位置所指的插入槽位中现存的主区信息存储标签的有效期标识位中的时效标识值来判断下一步的操作流程:若所述主区建议插入位置所指的插入槽位中现存的主区信息存储标签的有效期标识位中的时效标识值标识该主区信息存储标签未进入过期过渡期,则进入重定位操作;

若所述主区建议插入位置所指的插入槽位中现存的主区信息存储标签的有效期标识位中的时效标识值标识该主区信息存储标签已经进入过期过渡期但未过期,则将该主区信息存储标签更换至过期区中,然后再将待插入集合成员的主区信息存储标签插入所述主区建议插入位置所指的插入槽位中,最后扫描主区所关联插入桶的插入位区并根据扫描结果更新控制区中的数据;

若所述主区建议插入位置所指的插入槽位中现存的主区信息存储标签的有效期标识位中的时效标识值标识该主区信息存储标签已经过期,则直接将待插入集合成员的主区信息存储标签插入所述主区建议插入位置所指的插入槽位中,最后扫描主区所关联插入桶的插入位区并根据扫描结果更新控制区中的数据。

2.根据权利要求1所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,在信息存储标签中,指纹对标位的存储长度为8位;指纹验证位的存储长度为8位;重定位计数位的存储长度为8位,命中次数计数位的存储长度为16位;区位标识位的存储长度为

8位;所述指针位的存储大小根据操作系统的机器字长来动态决定;所述信息存储标签包括所述主区信息存储标签、所述交换区信息存储标签、所述过期区信息存储标签和所述缓冲区信息存储标签;

所述重定位计数位所存储的合法值包括数值0以及数值1,分别表示该信息存储标签被重定位操作了0次以及1次,当重定位计数等于1的信息存储标签再次被重定位操作时,将该信息存储标签存入交换区中,以避免陷入重定位循环中;

所述区位标识位所存储的合法值包括Z、G和J,其中,合法值Z标识该缓冲区信息存储标签所关联的主信息存储标签为主区信息存储标签,合法值G标识该缓冲区信息存储标签所关联的主信息存储标签为过期区信息存储标签,合法值J标识该缓冲区信息存储标签所关联的主信息存储标签为交换区信息存储标签;

所述过期过渡期表示为:

其中, 表示判定待插入集合成员是否已经存在于主区、缓冲区、过期区以及交换区的插入位区中所需的时间; 表示主区信息存储标签的被生成时的系统时间;

,表示过期过渡期的进入阈值; ,表示过期过渡期的整体时长;

如果 ,则说明信息存储标签已经过期;

如果 ,则说明信息存储标签已

经进入过期过渡期但未过期;

当主区信息存储标签以及交换区信息存储标签中命中次数计数位的计数值大于或者等于预设访问次数阈值时,则生成一个关联所述主区信息存储标签以及交换区信息存储标签的缓冲区信息存储标签,并将缓冲区信息存储标签插入缓冲区的插入位区中,以提高访问效率。

3.根据权利要求2所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,所述步骤2具体包括以下步骤:步骤201、插入时,通过哈希函数计算得到待插入集合成员 的哈希值 以及对应的两个哈希候选桶 和 ,然后从哈希值 中提取第1位、第2位、第(H/2)‑1位、第(H/2)位、第(H/2)+1位、第(H‑1)位、第H位以及第(H/4)位的二进制数字按顺序拼接成为一个长度为8位的指纹对标信息并记为 ,同时采用对称压缩算法将待插入集合成员 的哈希值 压缩成为长度为H/4位的指纹验证信息并记为 ,其中H表示 的长度;

步骤202、判断指纹对标信息和指纹验证信息所共存的一个信息存储标签是否存储于缓冲区、主区、交换区或者过期区所关联两个哈希候选桶 和 的插入位区中:若存在,则返回插入失败的标识,

若不存在,则进入步骤203;

步骤203、读取控制区中关联两个哈希候选桶 和 的主区成员个数 和 并判断:若 ,则跳转至步骤204;

若 ,则跳转至步骤207;

步骤204、若哈希候选桶 还未被作为判定桶,则选择哈希候选桶 作为判定桶,然后读取控制区所关联哈希候选桶 的主区建议插入位置并判断:若所述主区建议插入位置所指插入槽位未填充主区信息存储标签,则跳转至步骤205;

若所述主区建议插入位置所指插入槽位填充主区信息存储标签,则跳转至步骤207;

若哈希候选桶 和哈希候选桶 已经被作为判定桶进行了判定操作,则首先分别定义一个存储单位为主区信息存储标签的变量temp和存储单位为缓冲区信息存储标签的变量temph,然后分别将指纹对标信息 、指纹验证信息 、计数值0、标签生成时的时间值以及计数值0填充至变量temp的指纹对标位、指纹验证位、重定位计数位、有效期标识位以及命中次数计数位中,最后进入重定位操作;

步骤205、首生成一个新的主区信息存储标签,分别将指纹对标信息 、指纹验证信息、计数值0、标签生成时的时间值 以及计数值0填充至所述主区信息存储标签中的指纹对标位、指纹验证位、重定位计数位、有效期标识位以及命中次数计数位中,插入主区所关联判定桶的控制区所关联判定桶的主区建议插入位置所指的插入槽位中,更新控制区所关联判断桶的主区成员个数,返回插入成功的标识并跳转至步骤206;

步骤206、按序扫描主区所关联判定桶的插入槽位情况:

在扫描结束前首先发现有空的插入槽位的情况下,更新控制区所关联判定桶中的主区建议插入位置信息;

在扫描结束前首先发现有主区信息存储标签已经进入过期过渡期的情况下,生成一个新的过期区信息存储标签 ,将所述已经进入过期过渡期的主区信息存储标签中对应的数据迁移至新的过期区信息存储标签对应的填充位中,将新的过期区信息存储标签插入过期区所关联判定桶的插入位区中,并删除已经进入过期过渡期的主区信息存储标签,更新控制区所关联判定桶的主区成员个数、过期区成员个数以及主区建议插入位置;

所述更新控制区所关联判定桶的主区成员个数、过期区成员个数以及主区建议插入位置,包括:将过期区成员个数+1以及将主区建议插入位置设置为 ,然后判定缓冲区所关联判定桶的插入位区中是否存在与 相匹配的缓冲区信息存储标

签:

若存在,则将所述相匹配的缓冲区信息存储标签的区位标识位中的区位标识由Z修改为G,插入操作结束;

若不存在,插入操作结束;

如果扫描结束前首先发现有主区信息存储标签已经过期,记已过期的主区信息存储标签所在插入槽位为 ,则首先删除已过期的主区信息存储标签以将置为NULL,然后判定缓冲区所关联判定桶的插入位区中是否存在与已过期的主区信息存储标签相匹配的缓冲区信息存储标签:

若存在,则将所述相匹配的缓冲区信息存储标签删除,将主区成员个数‑1、将缓冲区成员个数‑1以及将主区建议插入位置设置为 ,插入操作结束;

若不存在,则将主区成员个数‑1以及将主区建议插入位置设置为 ,插入操作结束;

步骤207、如果哈希候选桶 还未被作为判定桶,选择哈希候选桶 作为判定桶,然后读取控制区所关联判定桶的主区建议插入位置并判断:若所述主区建议插入位置所指插入槽位未填充主区信息存储标签,则跳转至步骤205;

若所述主区建议插入位置所指插入槽位填充主区信息存储标签,则跳转至步骤204;

如果哈希候选桶 和哈希候选桶 已经被作为判定桶进行了判定操作,则首先分别定义一个存储单位为主区信息存储标签的变量temp和存储单位为缓冲区信息存储标签的变量temph,然后分别将指纹对标信息 、指纹验证信息 、计数值0、标签生成时的时间值以及计数值0填充至变量temp的指纹对标位、指纹验证位、重定位计数位、有效期标识位以及命中次数计数位中,然后进入重定位操作。

4.根据权利要求3所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,所述通过哈希函数计算得到待插入集合成员 的哈希值 以及对应的两个哈希桶和 具体为:其中,H()和h1()为哈希函数, 为异或逻辑运算符。

5.根据权利要求3所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,采用对称压缩算法将待插入集合成员 的哈希值 压缩成为长度为H/4位的指纹验证信息 的计算公式为:其中,为与逻辑运算符; 为异或逻辑运算符; 表示由哈希值 的前H/4位的二进制数字所组成的长度为H/4位的二进制序列; 表示由哈希值 的第((H/4)+1)位到第H/2位的二进制数字所组成的长度为H/4位的二进制序列; 表示由哈希值 的第((H/2)+1)位到第((H*3)/4)位的二进制数字所组成的一个长度为H/4位的二进制序列; 表示由哈希值 的第(((H*3)/4)+1)位到第H位的二进制数字所组成的一个长度为H/4位的二进制序列;  和 ,其中, 表示由哈希值 的前H/2位的二进制数字所组成的一个长度为H/2位的二进制序列; 表示由哈希值 的第(((H*1)/2)+1)位到第H位的二进制数字所组成的一个长度为H/2位的二进制序列;  表示由二进制序列 和二进制序列 经过逻辑乘运算后所得到的长度为H/2位的二进制序列的前((H/2)/2)位的二进制数字所组成的一个长度为H/4位的二进制序列,而 表示由二进制序列 和二进制序列 经过逻辑乘运算后所得到的长度为H/2位的二进制序列的第((H/2)/2)+1位到第(H/2)位的二进制数字所组成的一个长度为H/4位的二进制序列。

6.根据权利要求3所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,所述判断指纹对标信息和指纹验证信息所共存的一个信息存储标签是否存储于缓冲区、主区、交换区或者过期区所关联两个哈希候选桶 和 的插入位区中,包括:步骤202A、读取控制区所关联哈希候选桶 和 的缓冲区成员个数

,并判断:

若 ,则跳转至步骤202B;

若 ,则跳转至步骤202E;

步骤202B、选择哈希候选桶 作为判定桶,然后在缓冲区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的缓冲区信息存储标签:如果判定结束前缓冲区所关联判定桶中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且缓冲区所关联哈希候选桶 已被判定,则跳转至步骤202G;

如果判定结束前缓冲区所关联判定桶中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但缓冲区所关联哈希候选桶 未被判定,则跳转至步骤202E;

如果判定结束前缓冲区所关联判定桶中有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,将指纹验证信息 与所述指纹对标信息匹配的缓冲区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配成功,则停止判定并跳转至步骤202C,

如果匹配成功失败,则跳转至步骤202D;

步骤202C、将与指纹验证信息 相匹配的缓冲区信息存储标签 中

的有效期标识位所填充的时效标识值并与当前系统时间作比较:

若 未进入过期过渡期,则返回判定成功的标识,判定操作结束;

若 已经进入过期过渡期但还未过期,且区位标识位所填充的区位标

识值为Z,则首先返回判定成功的标识,然后将 的区位标识值由Z修改为G,然后在主区所关联判定桶的插入位区中判定与 相匹配的主区信息存储标签,并在判定成功后,记与 相匹配的主区信息存储标签为

,  所在插入槽位为 ,生成一个新的过期区

信息存储标签 ,将 中对应的数据迁移至

对应的填充位中,将 插入过期区所关联判定桶的插

入位区中,将 中的 删除以置 为NULL,将主区成员

个数‑1、将过期区成员个数+1以及将主区建议插入位置设置为 ,然后判定操作结束;

若 已经进入过期过渡期但还未过期,且区位标识位所填充的区位标识

值为J,则首先返回判定成功的标识,然后将 的区位标识值由J修改为G,然后在交换区所关联判定桶的插入位区中判定与 相匹配的交换区信息

存储标签,并在判定成功后,记与 相匹配的交换区信息存储标签为

,生成一个新的过期区信息存储标签 ,将

中对应的数据迁移至 对应的填充位中,将

插入过期区所关联判定桶的插入位区中,将 删除,最

后将交换区成员个数‑1以及将过期区成员个数+1,判定操作结束;

若 已经进入过期过渡期但还未过期,且区位标识位中的标识值为G,则返回判定成功的标识,判定操作结束;

若 已经过期,且区位标识位中的标识值为Z,则首先返回判定失败的标识,然后在主区所关联判定桶的插入位区中判定与 相匹配的主区信息存储标签,记所述主区信息存储标签的插入槽位为 ,并在判定成功后删除以及将 中的主区信息存储标签删除以置 为

NULL,然后将主区成员个数‑1,将缓冲区成员个数‑1以及将主区建议插入位置设置为,判定操作结束;

若 已经过期,且区位标识位中的标识值为J,则首先返回判定失败的

标识,然后在交换区所关联判定桶的插入位区中判定与 相匹配的交换区信息存储标签,并在判定成功后删除 和所述交换区信息存储标签,然后将交换区成员个数‑1以及将缓冲区成员个数‑1,判定操作结束;

若 已经过期,且区位标识位中的标识值为G,则首先返回判定失败的

标识,然后在过期区所关联判定桶的插入位区中判定与 相匹配的过期区信息存储标签,并在判定成功后删除 和所述过期区信息存储标签,然后将过期区成员个数‑1以及将缓冲区成员个数‑1,判定操作结束;

步骤202D、继续在缓冲区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的缓冲区信息存储标签:若判定结束前缓冲区所关联判定桶的插入位区中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且缓冲区所关联哈希候选桶 已被判定,则跳转至步骤202G;

若判定结束前缓冲区所关联判定桶中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但缓冲区所关联哈希候选桶 未被判定,则跳转至步骤

202E;

若判定结束前缓冲区所关联判定桶中有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与指纹对标信息匹配的缓冲区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:若匹配,则停止判定并跳转至步骤202C,

若不匹配,则跳转至步骤202D;

步骤202E、选择哈希候选桶 作为判定桶,然后在缓冲区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的缓冲区信息存储标签:若判定结束前缓冲区所关联判定桶中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且缓冲区所关联哈希候选桶 已被判定,则跳转至步骤

202G;

若判定结束前缓冲区所关联判定桶中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但缓冲区所关联哈希候选桶 未被判定,则跳转至步骤

202B;

若判定结束前缓冲区所关联判定桶中有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的缓冲区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配,如果匹配,则停止判定并跳转至步骤202C,如果不匹配,则跳转至步骤202F;

步骤202F、继续在缓冲区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的缓冲区信息存储标签:若判定结束前缓冲区所关联判定桶的插入位区中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且缓冲区所关联哈希候选桶 的插入位区已被判定,则跳转至步骤202G;

若判定结束前缓冲区所关联判定桶中没有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但缓冲区所关联哈希候选桶 的插入位区未被判定,则跳转至步骤202B;

若判定结束前缓冲区所关联判定桶中有缓冲区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与指纹对标信息匹配的缓冲区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配,如果匹配,则停止判定并跳转至步骤202C,如果不匹配,则跳转至步骤202F;

步骤202G、读取控制区所关联哈希候选桶 和 的主区成员个数,分别记为和 ,并判断:如果 ,则跳转至步骤202H,否则,

跳转至步骤202L;

步骤202H、选择哈希候选桶 作为判定桶,然后在主区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的主区信息存储标签:若判定结束前主区所关联判定桶中没有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且主区所关联哈希候选桶 的插入位区已被判定,则跳转至步骤202M;

若判定结束前主区所关联判定桶中没有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但主区所关联哈希候选桶 的插入位区未被判定,则跳转至步骤202K;

若判定结束前主区所关联判定桶中有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的主区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配,如果匹配,则停止判定并跳转至步骤202I,如果不匹配,则跳转至步骤202J;

步骤202I、读取所述指纹验证信息匹配的主区信息存储标签,记作 ,并记 当前所插入的插入槽位为 ,将所述主区信息存储标

签中的有效期标识位所填充的时效标识值并与当前系统时间作比较:

若 未进入过期过渡期,则返回判定成功的标识,然后判定操作结束;

若 已经进入过期过渡期但还未过期,则返回判定成功的标识,生成一

个新的过期区信息存储标签 并将 中对应的数据迁移

至 中对应的填充位中,将 插入过期区所关联哈希候

选桶 的插入位区中,删除 中的 以将 置

为NULL,将主区成员个数‑1、将过期区成员个数+1以及将主区建议插入位置设置为,判定操作结束;

若 已经过期,则首先返回判定失败的标识,然后删除

中的 以将 置为NULL,最后将主区成员个数‑1以及将主区

建议插入位置设置为 ,判定操作结束;

步骤202J、继续在主区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的主区信息存储标签:若判定结束前主区所关联判定桶的插入位区中没有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且主区所关联哈希候选桶 的插入位区已被判定,则跳转至步骤202M;

若判定结束前主区所关联判定桶中没有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但主区所关联哈希候选桶 的插入位区未被判定,则跳转至步骤202K;

若判定结束前主区所关联判定桶中有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与指纹对标信息匹配的主区信息存储标签中的指纹验证位所填充的指纹验证信息相比较:如果匹配,则停止判定并跳转至步骤

202I,如果不匹配,则跳转至步骤202J;

步骤202K、选择哈希候选桶 作为判定桶,在主区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的主区信息存储标签:若判定结束前主区所关联判定桶中没有主区信息存储标签的指纹对标位中的指纹对标信息与 相匹配,且主区所关联哈希候选桶 的插入位区已被扫描,则跳转至步骤

202M;

若判定结束前主区所关联判定桶中没有主区信息存储标签的指纹对标位中的指纹对标信息与 相匹配,但主区所关联哈希候选桶 的插入位区未被扫描,则跳转至步骤

202H;

若判定结束前主区所关联判定桶中有主区信息存储标签的指纹对标位中的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的主区信息存储标签的指纹验证位中的指纹验证信息相匹配:如果匹配,则停止判定并跳转至步骤202I,如果不匹配,则跳转至步骤202L;

步骤202L、继续在主区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的主区信息存储标签:若判定结束前主区所关联判定桶的插入位区中没有主区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且主区所关联哈希候选桶 的插入位区已被判定,则跳转至步骤202M;

若判定结束前主区所关联判定桶中没有主区信息存储标签中的指纹对标位中所填充的指纹对标信息与 相匹配,但主区所关联哈希候选桶 的插入位区未被判定,则跳转至步骤202H;

若判定结束前主区所关联判定桶中有主区信息存储标签中的指纹对标位中所填充的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的主区信息存储标签的指纹验证位中的指纹验证信息相比较:如果匹配,则停止判定并跳转至步骤

202I,如果不匹配,则跳转至步骤202L;

步骤202M、读取控制区所关联哈希候选桶 和 的交换区成员个数,分别记为和 ,并判断:如果 ,则跳转至步骤202N,否则,跳转至步骤202Q;

步骤202N、选择哈希候选桶 作为判定桶,然后在交换区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的交换区信息存储标签:若判定结束前交换区所关联判定桶中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且交换区所关联哈希候选桶 的插入位区已被判定,则跳转至步骤202S;

若判定结束前交换区所关联判定桶中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但交换区所关联哈希候选桶 的插入位区未被判定,则跳转至步骤202Q;

若判定结束前交换区所关联判定桶中有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的交换区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则停止判定并跳转至步骤202O,如果不匹配,则跳转至步骤202P;

步骤202O、读取所述指纹验证信息匹配的交换区信息存储标签 中的有效期标识位所填充的时效标识值并与当前系统时间作比较:

若 未进入过期过渡期,则返回判定成功的标识,然后判定操作结束;

若 已经进入过期过渡期但还未过期,则首先返回判定成功的标识,然

后生成一个新的过期区信息存储标签 并将 中对应的

数据迁移至 中对应的填充位中,然后将 插入过期区

所关联判定桶的插入位区中,然后删除 ,最后将交换区成员个数‑1以及将过期区成员个数+1,判定操作结束;

若 已经过期,则返回判定失败的标识,并删除 ,将

交换区成员个数‑1,判定操作结束;

步骤202P、继续在交换区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的交换区信息存储标签;

如果判定结束前交换区所关联判定桶的插入位区中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且交换区所关联哈希候选桶 的插入位区已被判定,则跳转至步骤202S;

如果判定结束前交换区所关联判定桶中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但交换区所关联哈希候选桶 的插入位区未被判定,则跳转至步骤202Q;

如果判定结束前交换区所关联判定桶中有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与指纹对标信息匹配的交换区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则跳转至步骤202O,否则,跳转至步骤202P;

步骤202Q、选择哈希候选桶 作为判定桶,然后在交换区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的交换区信息存储标签:如果判定结束前交换区所关联判定桶中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且交换区所关联哈希候选桶 已被判定,则跳转至步骤202S;

如果判定结束前交换区所关联判定桶中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但交换区所关联哈希候选桶 未被判定,则跳转至步骤202N;

如果判定结束前交换区所关联判定桶中有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的交换区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则停止判定并跳转至步骤202O,否则,跳转至步骤202R;

步骤202R、继续在交换区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的交换区信息存储标签:如果判定结束前交换区所关联判定桶的插入位区中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且交换区所关联哈希候选桶 已被判定,则跳转至步骤202S;

如果判定结束前交换区所关联判定桶中没有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但交换区所关联哈希候选桶 未被判定,则跳转至步骤202N;

如果判定结束前交换区所关联判定桶中有交换区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与指纹对标信息匹配的交换区信息存储标签中的指纹验证位所填充的指纹验证信息相比较:如果匹配,则停止判定并跳转至步骤202O,否则,跳转至步骤202R;

步骤202S、读取控制区所关联哈希候选桶 和 的过期区成员个数,分别记为和 ,并判断:如果 ,则跳转至步骤202T,否则,跳转至步骤202W;

步骤202T、选择哈希候选桶 作为判定桶,然后在过期区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的过期区信息存储标签:如果判定结束前过期区所关联判定桶中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且过期区所关联哈希候选桶 已被判定,则返回判定失败的标识,然后判定操作结束;

如果判定结束前过期区所关联判定桶中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但过期区所关联哈希候选桶 未被判定,则跳转至步骤202W;

如果判定结束前过期区所关联判定桶中有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与所述指纹对标信息匹配的过期区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则停止判定并跳转至步骤202U,否则,跳转至步骤202V;

步骤202U、读取所述指纹验证信息匹配的过期区信息存储标签 中的有效期标识位所填充的时效标识值并与当前系统时间作比较:

若 未过期,则返回判定成功的标识,判定操作结束;

若 已经过期,则首先返回判定失败的标识删除 ,

然后将过期区成员个数‑1,判定操作结束;

步骤202V、继续在过期区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的过期区信息存储标签:如果判定结束前过期区所关联判定桶的插入位区中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且过期区所关联哈希候选桶 已被判定,则返回判定失败的标识,然后判定操作结束;

如果判定结束前过期区所关联判定桶中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但过期区所关联哈希候选桶 未被判定,则跳转至步骤202W;

如果判定结束前过期区所关联判定桶中有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,则将指纹验证信息 与指纹对标信息匹配的过期区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则跳转至步骤202U,否则,跳转至步骤202V;

步骤202W、选择哈希候选桶 作为判定桶,然后在过期区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的过期区信息存储标签:如果判定结束前过期区所关联判定桶中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且过期区所关联哈希候选桶 已被判定,则返回判定失败的标识,判定操作结束;

如果判定结束前过期区所关联判定桶中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但过期区所关联哈希候选桶 未被判定,则跳转至步骤202T;

如果判定结束前过期区所关联判定桶中有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,将指纹验证信息 与所述指纹对标信息匹配的过期区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则停止判定并跳转至步骤202U,否则,跳转至步骤202X;

步骤202X、继续在过期区所关联判定桶的插入位区中判定与指纹对标信息 相匹配的过期区信息存储标签;如果判定结束前过期区所关联判定桶的插入位区中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,且过期区所关联哈希候选桶 已被判定,则返回判定失败的标识,然后判定操作结束;如果判定结束前过期区所关联判定桶中没有过期区信息存储标签中的指纹对标位所填充的指纹对标信息与 相匹配,但过期区所关联哈希候选桶 未被判定,则跳转至步骤202T;否则,将指纹验证信息与指纹对标信息匹配的过期区信息存储标签中的指纹验证位所填充的指纹验证信息相匹配:如果匹配,则跳转至步骤202U,否则,跳转至步骤202X。

7.根据权利要求3所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,所述重定位操作包括:步骤20REPA、按序扫描主区所关联判定桶的插入槽位情况,根据扫描结果判断主区所关联判定桶的插入位区内是否存在同时满足重定位计数等于1和缓冲区所关联判定桶中没有相匹配的缓冲区区信息存储标签这两个条件的主区信息存储标签:如果存在,则跳转至步骤20REPB;

如果不存在,则根据扫描结果判断桶内是否存在同时满足重定位计数等于0和缓冲区所关联判定桶中没有相匹配的缓冲区区信息存储标签这两个条件的主区信息存储标签:如果存在,则跳转至步骤2REPC;

如果不存在,则根据扫描结果判定桶内是否存在同时满足重定位标识位中的重定位计数等于1和缓冲区所关联判定桶中有相匹配的缓冲区信息存储标签这两个条件的主区信息存储标签:如果存在,则跳转至步骤20REPG;

如果不存在,则跳转至步骤20REPH;

步骤20REPB、分别记同时满足重定位标识位中的重定位计数等于1和缓冲区所关联判定桶中没有相匹配的缓冲区区信息存储标签这两个条件的主区信息存储标签和其所在插入槽位的编号为 和 ,然后分别生成一个新的主区信息存储标签和交换区信息存储标签,并将变量temp中对应的数据迁移至所述新的主区信息存储标签中,以及将 中对应的数据迁移至所述新的交换区信息存储标签对应的填充位中,然后将所述新的主区信息存储标签插入 中以覆盖

,以及将所述新的交换区信息存储标签插入交换区所关联判定桶的插

入位区中,最后根据扫描结果更新控制区所关联判定桶的交换区成员个数、主区建议插入位置以及重定位率;

步骤20REPC、分别记同时满足重定位标识位中的重定位计数等于0和缓冲区所关联判定桶中没有相匹配的缓冲区区信息存储标签这两个条件的主区信息存储标签和其所在插入槽位的编号为 和 ,然后生成一个新的主区信息存储标签,并将变量temp中对应的数据迁移至所述新的主区信息存储标签中,然后将中对应的数据迁移至变量temp对应的填充位中,然后将所述新的主区信息存储标签插入所述主区所关联判定桶的 中,然后将变量temp中重定位计数位的计数值+1,并根据扫描结果更新控制区所关联判定桶的重定位率以及主区建议插入位置,其中,主区建议插入位置将按照扫描结果更新为扫描结果中最接近过期过渡期的主区信息存储标签所在的插入槽位,如果存在多个同等的最接近过期过渡期的主区信息存储标签则随机选择,最后计算变量temp的另一个哈希桶并作为判定桶,并跳转至步骤

20REPD;

步骤20REPD、读取控制区所关联所述判定桶的主区建议插入位置并判断:如果所述主区建议插入位置所指的插入槽位未填充主区信息存储标签,则首先生成一个新的主区信息存储标签,然后将变量temp中对应的数据迁移至所述新的主区信息存储标签对应的填充位中,然后将所述新的主区信息存储标签插入主区所关联判定桶的所述主区建议插入位置所指的插入槽位中,然后将主区成员个数+1,跳转至步骤20REPE;

如果所述主区建议插入位置所指的插入槽位有填充主区信息存储标签,则跳转至步骤

20REPF;

步骤20REPE、按序扫描主区所关联判定桶的插入槽位情况:

如果扫描结束前首先发现有空的插入槽位,则首先将命中的空槽位的槽位号记作,然后将主区建议插入位置设置为 ,插入操作结束;

如果扫描结束前首先发现有主区信息存储标签已经进入过期过渡期,记已进入过期过渡期的主区信息存储标签所在插入槽位为 ,则首先生成一个新的过期区信息存储标签 ,然后将所述已经进入过期过渡期的主区信息存储标签中对应的数据迁移至 对应的填充位中,然后再将 插入过期

区所关联判定桶的插入位区中,同时删除所述已经进入过期过渡期的主区信息存储标签以将 置为NULL,然后更新控制区所关联判定桶的主区成员个数、过期区成员个数以及主区建议插入位置,最后判定缓冲区所关联判定桶的插入位区中是否存在与相匹配的缓冲区信息存储标签:如果存在,则将所述相匹配的缓冲区信息存储标签的区位标识位中的区位标识由Z修改为G,然后插入操作结束;

如果不存在,则插入操作直接结束;

如果扫描结束前首先发现有主区信息存储标签已经过期,记已过期的主区信息存储标签所在插入槽位为 ,则首先删除所述已过期的主区信息存储标签以将置为NULL,然后判定缓冲区所关联判定桶的插入位区中是否存在与已过期的主区信息存储标签相匹配的缓冲区信息存储标签:

如果存在,则将所述相匹配的缓冲区信息存储标签删除,然后更新控制区所关联判定桶的主区成员个数、缓冲区成员个数以及主区建议插入位置,即将主区成员个数‑1、将缓冲区成员个数‑1以及将主区建议插入位置设置为 ,插入操作结束;

如果不存在,则直接更新控制区所关联判定桶的主区成员个数以及主区建议插入位置,即将主区成员个数‑1以及将主区建议插入位置设置为 ,插入操作结束;

如果扫描结束前未发现有主区信息存储标签已经进入过期过渡期或者过期,则根据扫描结果更新控制区所关联判定桶的主区建议插入位置,插入操作结束;

步骤20REPF、判断所述主区建议插入位置所指插入槽位中的主区信息存储标签是否过期或者进入过期过渡期:如果所述主区信息存储标签未过期且未进入过期过渡期,则跳转至步骤20REPA;

如果所述主区信息存储标签已过期,则首先生成一个新的主区信息存储标签,然后将变量temp中对应的数据迁移至所述新的主区信息存储标签对应的填充位中,最后将所述新的主区信息存储标签插入已过期主区信息存储标签所在的插入槽位中以覆盖所述已过期主区信息存储标签,并跳转至步骤20REPE;

如果所述主区信息存储标签未过期但已经进入了过期过渡期,则分别生成一个新的主区信息存储标签和过期区信息存储标签,将变量temp中对应的数据迁移至所述新的主区信息存储标签对应的填充位中,将已进入过期过渡期但还未过期的主区信息存储标签中对应的数据迁移至所述新的过期区信息存储标签对应的填充位中,然后所述新的主区信息存储标签插入所述已进入过期过渡期但还未过期的主区信息存储标签所在的插入槽位中以覆盖所述已进入过期过渡期但还未过期的主区信息存储标签,然后将所述新的过期区信息存储标签插入过期区所关联判定桶的插入位区中,最后更新控制所关联判定桶的过期区成员个数,并跳转至步骤20REPE;

步骤20REPG、分别记同时满足重定位标识位中的重定位计数等于1和缓冲区所关联判定桶中有相匹配的缓冲区信息存储标签这两个条件的主区信息存储标签和其所在插入槽位的编号为 和 ,将控制区所关联判定桶中与相匹配的缓冲区信息存储标签中区位标识位的区位标识值由Z修改为

J,分别生成一个新的主区信息存储标签和交换区信息存储标签,并将变量temp中对应的数据迁移至所述新的主区信息存储标签中,以及将 中对应的数据迁移至所述新的交换区信息存储标签对应的填充位中,将所述新的主区信息存储标签插入中以覆盖 ,以及将所述新的交换区信息存储标签插入交换区所关联判定桶的插入位区中,根据扫描结果更新控制区所关联判定桶的交换区成员个数、主区建议插入位置以及重定位率,返回插入成功的标识,插入操作结束;

步骤20REPH、分别记同时满足重定位标识位中的重定位计数等于0和缓冲区所关联判定桶中有相匹配的缓冲区区信息存储标签这两个条件的主区信息存储标签和其所在插入槽位的编号为 和 ,以及记 所关联缓冲区信息存储标签为 ,然后生成一个新的主区信息存储标签,然

后将变量temp中对应的数据迁移至所述新的主区信息存储标签中,然后将中对应的数据迁移至变量temp对应的标识位中,然后将

中对应的数据迁移至变量temph对应的填充位中,然后删除

,然后将所述新的主区信息存储标签插入主区所关联判定桶的

中以覆盖 ,然后更新控制区所关联判定桶的重定位

率以及缓冲区成员个数,跳转至步骤20REPI;

步骤20REPI、计算变量temp的另一个哈希桶并作为判定桶,然后将变量temp中重定位计数位的计数值+1,然后读取控制区所关联判定桶的主区建议插入位置并判断:如果所述主区建议插入位置所指插入槽位中未填充主区信息存储标签,则首先分别生成一个主区信息存储标签和缓冲区信息存储标签,然后将变量temp中对应的数据迁移至新的主区信息存储标签对应的填充位中以及将变量temph中对应的数据迁移至所述新的缓冲区信息存储标签对应的填充位中,然后将所述新的主区信息存储标签插入主区所关联判定桶的所述控制区所关联判定桶的主区建议插入位置所指的插入槽位中以及将所述新的缓冲区信息存储标签插入缓冲区所关联判定桶的插入位区中,然后更新控制区所关联判定桶的主区成员个数以及缓冲区成员个数,跳转至步骤20REPE;

如果所述主区建议插入位置所指插入槽位中有填充主区信息存储标签,则生成一个新的缓冲区信息存储标签,然后将变量temph中对应的数据迁移至所述新的缓冲区信息存储标签对应的填充位中,然后将所述新的缓冲区信息存储标签插入缓冲区所关联判定桶的插入位区中,然后更新控制区所关联判定桶的缓冲区成员个数,跳转至步骤20REPF。

8.根据权利要求6所述的一种带时效的自适应动态数据集合成员插入方法,其特征在于,更新重定位率的具体计算方法为:其中, 表示主区所关联判定桶的总插入操作数,即包括正常的插入操作和发生重定位时的插入操作;而 表示主区所关联判定桶在发生重定位时所进行插入操作数。

9.一种带时效的自适应动态数据集合成员删除方法,其特征在于,所述方法包括以下步骤:步骤Ⅰ、预先建立用于存储集合成员指纹信息的布谷鸟过滤器以及3个邻接表,并将布谷鸟过滤器命名为主区,3个邻接表分别命名为交换区、过期区以及缓冲区,其中,主区用于存储暂未进入过期过渡期的集合成员,交换区用于存储发生了两次重定位操作且暂未进入过期过渡期的集合成员,过期区用于存储已经进入过期过渡期但还未过期的集合成员,缓冲区用于存储被访问命中次数达到预设访问次数阈值且未过期的集合成员;

分别为主区、交换区、过期区以及缓冲区中的每一个哈希桶维护一个控制区,其中,所述控制区的参数项包括重定位率、主区成员个数、交换区成员个数、过期区成员个数、缓冲区成员个数以及主区建议插入位置;

针对主区中每一个哈希桶,其插入位区的每个插入槽位的存储单位为一个由指纹对标位、指纹验证位、重定位计数位、有效期标识位以及命中次数计数位所构成的主区信息存储标签;

针对交换区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位、命中次数计数位以及指针位所构成的交换区信息存储标签;

针对过期区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位以及指针位所构成的过期区信息存储标签;

针对缓冲区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位、区位标识位以及指针位所构成的缓冲区信息存储标签;

所述主区信息存储标签、交换区信息存储标签和过期区信息存储标签为主信息存储标签,所述缓冲区信息存储标签为副信息存储标签,未过期的集合成员对应有且只有一个主信息存储标签和一个副信息存储标签;

步骤Ⅱ、删除时,判定待删除集合成员是否存在于主区、缓冲区、过期区以及交换区的插入位区中:若不存在,则返回删除失败的标识,删除操作结束;

若存在,则根据待删除成员所在位区的情况进行删除操作:

如果待删除集合成员所在插入位区分别为缓冲区和主区,则首先删除位于缓冲区的插入位区中关联所述待删除集合成员的缓冲区信息存储标签,然后删除位于主区的插入位区中关联所述待删除集合成员的主区信息存储标签,并将所述主区信息存储标签所在插入槽位置为NULL,最后更新控制区中相应项目的数据,返回删除失败的标识,删除操作结束;

如果待删除集合成员所在插入位区分别为缓冲区和交换区,则首先删除位于缓冲区的插入位区中关联所述待删除集合成员的缓冲区信息存储标签,然后删除位于交换区的插入位区中关联所述待删除集合成员的交换区信息存储标签,最后更新控制区中相应项目的数据,返回删除失败的标识,删除操作结束;

如果待删除集合成员所在插入位区分别为缓冲区和过期区,则首先删除位于缓冲区的插入位区中关联所述待删除集合成员的缓冲区信息存储标签,然后删除位于过期区的插入位区中关联所述待删除集合成员的过期区信息存储标签,最后更新控制区中相应项目的数据,返回删除失败的标识,删除操作结束;

如果待删除集合成员所在插入位区只位于主区,则删除主区的插入位区中关联所述待删除集合成员的主区信息存储标签,并将所述主区信息存储标签所在插入槽位置为NULL,更新控制区中相应项目的数据,返回删除失败的标识,删除操作结束;

如果待删除集合成员所在插入位区只位于交换区,则删除交换区的插入位区中关联待删除集合成员的交换区信息存储标签,并更新控制区中相应项目的数据,返回删除失败的标识,删除操作结束;

如果待删除集合成员所在插入位区只位于过期区,则删除过期区的插入位区中关联所述待删除集合成员的过期区信息存储标签,并更新控制区中相应项目的数据,返回删除失败的标识,删除操作结束。

10.一种带时效的自适应动态数据集合成员检索方法,其特征在于,所述方法包括以下步骤:步骤A、预先建立用于存储集合成员指纹信息的布谷鸟过滤器以及3个邻接表,并将布谷鸟过滤器命名为主区,3个邻接表分别命名为交换区、过期区以及缓冲区,其中,主区用于存储暂未进入过期过渡期的集合成员,交换区用于存储发生了两次重定位操作且暂未进入过期过渡期的集合成员,过期区用于存储已经进入过期过渡期但还未过期的集合成员,缓冲区用于存储被访问命中次数达到预设访问次数阈值且未过期的集合成员;

分别为主区、交换区、过期区以及缓冲区中的每一个哈希桶维护一个控制区,其中,所述控制区的参数项包括重定位率、主区成员个数、交换区成员个数、过期区成员个数、缓冲区成员个数以及主区建议插入位置;

针对主区中每一个哈希桶,其插入位区的每个插入槽位的存储单位为一个由指纹对标位、指纹验证位、重定位计数位、有效期标识位以及命中次数计数位所构成的主区信息存储标签;

针对交换区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位、命中次数计数位以及指针位所构成的交换区信息存储标签;

针对过期区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位以及指针位所构成的过期区信息存储标签;针对缓冲区,其插入位区的存储单位为一个由指纹对标位、指纹验证位、有效期标识位、区位标识位以及指针位所构成的缓冲区信息存储标签;

所述主区信息存储标签、交换区信息存储标签和过期区信息存储标签为主信息存储标签,所述缓冲区信息存储标签为副信息存储标签,未过期的集合成员对应有且只有一个主信息存储标签和一个副信息存储标签;

步骤B、检索时,按缓冲区、主区、交换区以及过期区的顺序在所述布谷鸟过滤器以及3个邻接表中检索待检索集合成员:如果命中待检索集合成员的信息存储标签且所述信息存储标签未过期,则返回检索成功的标识;

如果在缓冲区、主区、交换区以及过期区的插入位区中未命中待检索集合成员的信息存储标签,则返回检索失败的标识;

如果命中待检索集合成员的信息存储标签但该信息存储标签已过期,则将缓冲区、主区、交换区以及过期区的插入位区中所有与待检索集合成员相关联的信息存储标签删除,同时更新控制区所关联待检索集合成员现所在哈希桶的相关数据并返回检索失败的标识;

如果命中待检索集合成员的信息存储标签但所述信息存储标签已进入过期过渡期,且所述信息存储标签的类型只为主区信息存储标签和交换区信息存储标签中的一种,则首先返回检索成功的标识,然后将待检索集合成员的信息存储标签从主区或者交换区的插入位区中删除,然后将待检索集合成员的信息存储标签的类型更变为过期区信息存储标签并插入过期区的插入位区中,最后更新控制区的相关数据;

如果首次命中的待检索成员的信息存储标签非缓冲区信息存储标签,且所述信息存储标签未进入过期过渡期以及标签中的命中次数计数位所填充的计数值等于或者超过高访问次数阈值时,则为所述待检索集合成员生成一个新的缓冲区信息存储标签并将其插入缓冲区的插入位区中,并更新控制区的相关项目的数据。