• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法技術

    技術編號:31751423 閱讀:23 留言:0更新日期:2022-01-05 16:33
    本發明專利技術公開了基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其包括建立基于離散型的雙指紋存儲布谷鳥過濾器的主索引表并初始化;根據當前指令類型對應進行數據插入、數據查詢和/或數據刪除;判斷是否繼續獲取當前指令類型,若是則繼續進行數據處理,否則結束離散型的雙指紋存儲布谷鳥過濾器的數據處理。本發明專利技術結合存儲空間動態變換與存儲數據動態增減實現了布谷鳥過濾器存儲空間的動態伸縮,提高了數據結構的構建速度;節省了存儲空間,增加了成員查詢的準確性,降低了成員誤刪的概率;有效避免了數據在發生重定位操作時出現循環裝填的問題,提高了布谷鳥過濾器的使用效率。效率。效率。

    【技術實現步驟摘要】
    基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法


    [0001]本專利技術涉及計算機信息表示與信息檢索領域,具體涉及一種基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法。

    技術介紹

    [0002]“正確判定一個成員是否在一個巨大的集合當中”、“在一個巨大的集合當中能否正確刪除一個成員”和“在一個巨大的集合當中能否成功插入一個成員”,這三個問題是三種常見的數據處理問題,特別是在滿足存儲空間開銷低、快速查詢等幾個關鍵需求下處理以上問題,這幾個問題的實現就成了一個巨大的挑戰。目前研究人員普遍采用布隆過濾器(Bloom Filter)、布隆過濾器及其變種、布谷鳥過濾器(Cuckoo Filter)以及布谷鳥過濾器的變種等來解決以上問題,但是對于布隆過濾器(Bloom Filter)包括其變種來說,已經無法再適應和解決以上問題。例如,標準的布隆過濾器不支持集合成員的刪除操作,計數布隆過濾器雖然支持成員刪除,但是其會導致空間開銷急劇增加。對于布谷鳥過濾器(Cuckoo Filter),它是一種基于布谷鳥hash算法實現的過濾器,本質上是存儲了存儲項哈希值的布谷鳥哈希表。它克服了布隆過濾器不支持成員刪除的缺點,同時顯著降低了布隆過濾器變種出現的存儲開銷高的問題。但是標準的布谷鳥過濾器存在無法適應高速動態的數據變換,且容易出現裝填循環問題和刪除數據時Hash沖突所引起誤刪等問題。現有技術中,布谷鳥過濾變種所存在的問題是,無法自適應動態高速的數據變換,存儲空間在生成后即無法改變,雖然有方案提出了通過指針的形式動態生成相同的布谷鳥過濾器來裝填成員,但是面臨的問題是存在大量的空間浪費問題。同時在面對成員刪除時,誤刪率隨著成員數量的增加而不斷增大。面對容易出現裝填循環的問題,現有方案也很少具有很好的解決方法。

    技術實現思路

    [0003]針對現有技術中的上述不足,本專利技術提供的基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法解決了現有技術無法同時適應動態高速的數據變換、數據可靠的插入,以及數據循環裝填概率高的問題。
    [0004]為了達到上述專利技術目的,本專利技術采用的技術方案為:
    [0005]提供一種基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其包括以下步驟:
    [0006]S1、建立基于離散型的雙指紋存儲布谷鳥過濾器的主索引表并初始化;
    [0007]S2、獲取當前指令類型,若指令類型為數據插入,則進入步驟S3;若指令類型為數據查詢,則進行數據查詢;若指令類型為數據刪除,則進行數據刪除;
    [0008]S3、計算待插入數據成員的指紋信息,并選取指紋信息的前k位作為前置指紋,選取指紋信息的后k
    ?
    1位作為后置指紋;
    [0009]S4、判斷待插入數據成員的指紋信息是否在雙指紋存儲布谷鳥過濾器中,若是則結束此次數據插入并進入步驟S13;否則進入步驟S5;
    [0010]S5、計算待插入數據成員的兩個候選桶的位置,并選中候選桶中的一個桶作為待插入候選桶;
    [0011]S6、判斷待插入數據成員對應的待插入候選桶的主索引指針所指的主索引儲存的地址是否為空,若是則進入步驟S7;否則送入步驟S8;
    [0012]S7、生成主索引存儲單元,將重定位標識值置0,將步驟S3中選取的前置指紋和后置指紋填入主索引存儲單元中,將對應候選桶的主索引指針指向該主索引存儲單元,并結束此次數據插入并進入步驟S13;
    [0013]S8、判斷待插入數據成員對應的待插入候選桶的主索引儲存的地址所指是否為主索引存儲單元,若是進入步驟S9,否則進入步驟S10;
    [0014]S9、保留該主索引存儲單元,生成一級索引表并將其0號位地址置為NULL,將對應候選桶的主索引指針指向一級索引表;生成一級索引表的兩個次級索引存儲單元,并將一級索引表中兩個待插入數據的次級索引存儲單元地址存儲位分別指向生成的兩個次級索引存儲單元,同時將兩者的重定位標識值均置0,將待插入數據成員的前置指紋和保留的主索引存儲單元中的前置指紋按順序插入一級索引表的前置指紋位中,以及將待插入數據成員的后置指紋和保留的主索引存儲單元中的后置指紋按順序插入一級索引表的生成的兩個次級索引存儲單元中,結束插入后,注銷保留的主索引存儲單元,同時將一級索引表的剩余地址數
    ?
    2;結束此次數據插入并進入步驟S13;
    [0015]S10、判斷當前索引表的剩余地址數是否為0,若是則進入步驟S12;否則進入步驟S11;
    [0016]S11、生成當前索引表的次級索引存儲單元,將其重定位標識值置0,并將當前索引表中待插入數據的次級索引存儲單元地址存儲位指向生成的次級索引存儲單元,按順序將待插入數據成員的前置指紋插入當前索引表的前置指紋位中,以及按順序將待插入數據成員的后置指紋插入當前索引表生成的次級索引存儲單元中,并將該索引表的剩余地址數
    ?
    1,結束此次數據插入并進入步驟S13;
    [0017]S12、判斷是否有下一級索引表,若是則進入步驟S10,否則進行重定位操作并進入步驟S13;
    [0018]S13、判斷是否繼續獲取當前指令類型,若是則返回步驟S2,否則結束布谷鳥過濾器的指紋過濾。
    [0019]進一步地:步驟S1初始化時,整個布谷鳥過濾器系統只存在一張地址位為空的索引表,即主索引表;主索引表地址所指存儲的最小單位為主索引存儲單元,其由前置指紋位、后置指紋存儲位和重定位標識值組成;兩個存儲位的占位相同,重定位標識值占位1個bit且具有0、1和n三種狀態;其中0代表新插入指紋,1代表此存儲單元發生過1次重定位操作,n代表該存儲單元發生過n次重定位操作。
    [0020]進一步地:一級索引表由剩余地址數存儲位、0號地址位和次級索引表存儲位組成;其中剩余地址數存儲位存儲著該級索引表次級索引表存儲位的剩余數量,其初始化為n,且不包括0號地址位;次級索引表存儲位包括次級索引表的前置指紋位和次級索引存儲單元地址存儲位,次級索引存儲單元地址存儲位指向該級索引表對應生成的次級索引存儲單元,且以倒序的原則從n號位開始依次存儲,直到1號位被使用時,該索引表的剩余地址數為0,即滿載,滿載則插入下一級索引表,且下一級索引表的結構與一級索引表相同;0號地
    址位初始化時為NULL,當具有下一級索引表時,該位存儲的是下一級索引表的存儲地址。
    [0021]進一步地:步驟S3的k小于等于hash函數計算出的待插入數據成員ξ
    X
    的指紋信息的總位數的1/2。
    [0022]進一步地:步驟S4中待插入數據成員ξ
    X
    的兩個候選桶位置χ和γ分別為χ=h1(ξ
    X
    )和其中,為異或運算;f
    X
    為待插入數據成員的指紋信息;h1(
    ·
    )為hash函數;一個數據成員擁有的兩個候選桶,其數據信息只儲存在其中一個候選桶中。
    [0023]進一步地,步驟S12中重定位操作的具體方法包括以下子步驟:
    [0024]S12
    ?
    1本文檔來自技高網
    ...

    【技術保護點】

    【技術特征摘要】
    1.一種基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其特征在于,包括以下步驟:S1、建立基于離散型的雙指紋存儲布谷鳥過濾器的主索引表并初始化;S2、獲取當前指令類型,若指令類型為數據插入,則進入步驟S3;若指令類型為數據查詢,則進行數據查詢;若指令類型為數據刪除,則進行數據刪除;S3、計算待插入數據成員的指紋信息,并選取指紋信息的前k位作為前置指紋,選取指紋信息的后k
    ?
    1位作為后置指紋;S4、判斷待插入數據成員的指紋信息是否在雙指紋存儲布谷鳥過濾器中,若是則結束此次數據插入并進入步驟S13;否則進入步驟S5;S5、計算待插入數據成員的兩個候選桶的位置,并選中候選桶中的一個桶作為待插入候選桶;S6、判斷待插入數據成員對應的待插入候選桶的主索引指針所指的主索引儲存的地址是否為空,若是則進入步驟S7;否則送入步驟S8;S7、生成主索引存儲單元,將重定位標識值置0,將步驟S3中選取的前置指紋和后置指紋填入主索引存儲單元中,將對應候選桶的主索引指針指向該主索引存儲單元,并結束此次數據插入并進入步驟S13;S8、判斷待插入數據成員對應的待插入候選桶的主索引儲存的地址所指是否為主索引存儲單元,若是進入步驟S9,否則進入步驟S10;S9、保留該主索引存儲單元,生成一級索引表并將其0號位地址置為NULL,將對應候選桶的主索引指針指向一級索引表;生成一級索引表的兩個次級索引存儲單元,并將一級索引表中兩個待插入數據的次級索引存儲單元地址存儲位分別指向生成的兩個次級索引存儲單元,同時將兩者的重定位標識值均置0,將待插入數據成員的前置指紋和保留的主索引存儲單元中的前置指紋按順序插入一級索引表的前置指紋位中,以及將待插入數據成員的后置指紋和保留的主索引存儲單元中的后置指紋按順序插入一級索引表的生成的兩個次級索引存儲單元中,結束插入后,注銷保留的主索引存儲單元,同時將一級索引表的剩余地址數
    ?
    2;結束此次數據插入并進入步驟S13;S10、判斷當前索引表的剩余地址數是否為0,若是則進入步驟S12;否則進入步驟S11;S11、生成當前索引表的次級索引存儲單元,將其重定位標識值置0,并將當前索引表中待插入數據的次級索引存儲單元地址存儲位指向生成的次級索引存儲單元,按順序將待插入數據成員的前置指紋插入當前索引表的前置指紋位中,以及按順序將待插入數據成員的后置指紋插入當前索引表生成的次級索引存儲單元中,并將該索引表的剩余地址數
    ?
    1,結束此次數據插入并進入步驟S13;S12、判斷是否有下一級索引表,若是則進入步驟S10,否則進行重定位操作并進入步驟S13;S13、判斷是否繼續獲取當前指令類型,若是則返回步驟S2,否則結束布谷鳥過濾器的指紋過濾。2.根據權利要求1所述的基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其特征在于:步驟S1初始化時,整個布谷鳥過濾器系統只存在一張地址位為空的索引表,即主索引表;主索引表地址所指存儲的最小單位為主索引存儲單元,其由前置指紋位、后置指紋
    存儲位和重定位標識值組成;兩個存儲位的占位相同,重定位標識值占位1個bit且具有0、1和n三種狀態;其中0代表新插入指紋,1代表此存儲單元發生過1次重定位操作,n代表該存儲單元發生過n次重定位操作。3.根據權利要求1所述的基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其特征在于:一級索引表由剩余地址數存儲位、0號地址位和次級索引表存儲位組成;其中剩余地址數存儲位存儲著該級索引表次級索引表存儲位的剩余數量,其初始化為n,且不包括0號地址位;次級索引表存儲位包括次級索引表的前置指紋位和次級索引存儲單元地址存儲位,次級索引存儲單元地址存儲位指向該級索引表對應生成的次級索引存儲單元,且以倒序的原則從n號位開始依次存儲,直到1號位被使用時,該索引表的剩余地址數為0,即滿載,滿載則插入下一級索引表,且下一級索引表的結構與一級索引表相同;0號地址位初始化時為NULL,當具有下一級索引表時,該位存儲的是下一級索引表的存儲地址。4.根據權利要求1所述的基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其特征在于:步驟S3的k小于等于hash函數計算出的待插入數據成員ξ
    X
    的指紋信息的總位數的1/2。5.根據權利要求1所述的基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其特征在于:步驟S4中待插入數據成員ξ
    X
    的兩個候選桶位置χ和γ分別為χ=h1(ξ
    X
    )和其中,為異或運算;f
    X
    為待插入數據成員的指紋信息;h1(
    ·
    )為hash函數;一個數據成員擁有的兩個候選桶,其數據信息只儲存在其中一個候選桶中。6.根據權利要求1所述的基于離散型的雙指紋存儲布谷鳥過濾器的數據處理方法,其特征在于,步驟S12中重定位操作的具體方法包括以下子步驟:S12
    ?
    1、生成一個格式為主索引存儲單元的中間變量temp,并隨機將原本一級索引表中的一個已有的數據成員的指紋信息全部填入中間變量temp中,結束填入后,置空該數據成員的次級索引表存儲位信息并注銷原本的次級索引存儲單元;S12
    ?
    2、在一級索引表中生成一個新的次級索引存儲單元,并將其重定位標識值置為0,并將一級索引表置空的次級索引存儲單元地址存儲位指向一級索引表新的次級索引存儲單元;按順序將待插入數據成員ξ
    X
    的前置指紋插入一級索引表置空的前置指紋位中,以及按順序將待插入數據成員ξ
    X
    的后置指紋插入一級索引表新的次級索引存儲單元中;S12
    ?
    3、判斷中間變量temp的重定位標識值是否為0,若是則進入步驟S12
    ?
    4;否則進入步驟S12
    ?
    11;S12
    ?
    4、計算中間變量temp的另一個候選桶位置,判斷該候選桶的主索引指針所指的主索引存儲的地址是否為空,若是則進入步驟S12
    ?
    5;否則進入步驟S12
    ?
    6;S12
    ?
    5、將中間變量temp的重定位標識值置為1,同時將該候選桶的主索引指針指向中間變量temp,并結束重定位操作并進入步驟S14;S12
    ?
    6、判斷中間變量temp的另一個候選桶的主索引指針所指是否為主索引存儲單元,若是則進入步驟S12
    ?
    7;否則進入步驟S12
    ?
    9;S12
    ?
    7、保留該主索引存儲單元,生成一級索引表并將其0號位地址置為NULL,并將對應候選桶的主索引指針指向該一級索引表;S12
    ?
    8、生成一級索引表的兩個次級索引存儲單元,一個將重定位標識值置為0,一個將重定位標識值置為1;將中間變量temp的前置指紋和保留的主索引存儲單元的前置指紋按
    順序插入一級索引表待插入數據的次級索引表存儲位中的前置指紋位中,同時將插入中間變量temp的前置指紋的次級索引表存儲位中的次級索引存儲單元地址存儲位指向重定位標識值置為1的...

    【專利技術屬性】
    技術研發人員:鄧顯輝李斌勇趙蘭蔣娜張小輝宋學江
    申請(專利權)人:成都探碼科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲日韩中文字幕无码一区| 99久久人妻无码精品系列| 国产精品无码一区二区三区不卡| 精品无码国产一区二区三区51安| 国产成人无码午夜福利软件| 亚洲国产av高清无码| 久久无码人妻精品一区二区三区| AV无码久久久久不卡网站下载| 免费一区二区无码东京热| 无码免费午夜福利片在线| 精品视频无码一区二区三区| 国产精品无码av在线播放| 日韩AV片无码一区二区不卡 | 亚洲AV永久无码天堂影院| 精品无码一级毛片免费视频观看| 无码粉嫩虎白一线天在线观看| 国产日韩精品中文字无码| 久久伊人中文无码| 无码人妻精品一区二区三区99不卡| 无码人妻一区二区三区一| 欧洲Av无码放荡人妇网站| 亚洲av中文无码乱人伦在线咪咕| 成人免费无码H在线观看不卡 | 亚洲精品无码鲁网中文电影| 内射无码午夜多人| 免费无遮挡无码视频网站| 国产精品无码免费播放| 无码专区永久免费AV网站| 中文字幕无码视频手机免费看| 日韩精品无码专区免费播放| 少妇人妻偷人精品无码视频新浪| 东京热无码一区二区三区av| 日韩人妻无码一区二区三区| 国产午夜精华无码网站| 亚洲AV无码专区亚洲AV伊甸园| 亚洲av无码国产精品色午夜字幕 | 久久久久成人精品无码中文字幕 | 无码av最新无码av专区| 久久久无码精品亚洲日韩蜜臀浪潮 | 亚洲日韩VA无码中文字幕| 国产精品无码素人福利|