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

    一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法技術(shù)

    技術(shù)編號(hào):15691051 閱讀:131 留言:0更新日期:2017-06-24 03:56
    本發(fā)明專利技術(shù)公開了一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法,特征是包括設(shè)計(jì)建立存儲(chǔ)結(jié)構(gòu)、計(jì)算組合概率和、求解得分配給每層布隆過濾器的位數(shù)、維護(hù)存儲(chǔ)結(jié)構(gòu);在進(jìn)行合并操作時(shí),使處于多層鍵值數(shù)據(jù)庫(LevelDB)的高層的每個(gè)鍵分配到更多的布隆過濾器比特位數(shù),低層的鍵分配到較少的布隆過濾器比特位數(shù),其中布隆過濾器的誤報(bào)率隨著比特位數(shù)的增多而降低。與LevelDB傳統(tǒng)的布隆過濾器構(gòu)造方法相比,在保證內(nèi)存開銷與之前一致的情況下,本方法可以減少因布隆過濾器的誤報(bào)帶來的硬盤輸入輸出(I/O)操作,降低硬盤的I/O次數(shù),減少LevelDB查詢操作的平均延遲;也可以在保證查詢時(shí)的期望硬盤I/O次數(shù)與傳統(tǒng)方法基本相等的情況下,減少布隆過濾器帶來的內(nèi)存開銷。

    A method of constructing multi-layer bloom filter based on hierarchical distribution database

    The invention discloses a method for constructing multi-layer bloom filter based on hierarchical distribution database, includes the establishment of storage structure, design calculation, and combined probability is assigned to each number, maintenance of storage structure layer bloom filter; in the merge operation, so that in the multi key database (LevelDB) of each key distribution the top to bloom filter more bits, bloom filter bits in the lower keys assigned to less, the bloom filter to reduce the false alarm rate with the increase in the number of bits. Compared with the traditional LevelDB bloom filter construction method, to ensure the memory overhead and before the same situation, this method can reduce the disk input and output caused by Bloom filter false positives (I/O) operation, reducing the disk number of I/O, reduce the average delay of LevelDB query operation; also can guarantee equal query expectations the number of disk I/O and traditional method under the condition of reducing the memory overhead brought by bloom filter.

    【技術(shù)實(shí)現(xiàn)步驟摘要】
    一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法
    本專利技術(shù)屬于計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)
    ,具體涉及對(duì)采用日志合并樹作為主體的多層鍵值數(shù)據(jù)庫系統(tǒng)的布隆過濾器的比特位數(shù)進(jìn)行分層分配的布隆過濾器構(gòu)造方法。
    技術(shù)介紹
    美國計(jì)算機(jī)協(xié)會(huì)出版的《1970年ACMCACM國際期刊》(CommunicationsoftheACM1970年7月第13卷,問題7,第422-426頁)所介紹的布隆過濾器(Space/timetrade-offsinhashcodingwithallowableerrors)是一個(gè)空間效率極其高效,用來檢測(cè)一個(gè)元素是否存在與一個(gè)集合中的概率數(shù)據(jù)結(jié)構(gòu)。由谷歌公司開源的部署在硬盤上的基于日志合并樹的多層鍵值數(shù)據(jù)庫系統(tǒng)(LevelDB)在實(shí)現(xiàn)和使用布隆過濾器技術(shù)時(shí),為每一層存儲(chǔ)鍵值對(duì)的文件(SSTable)中的每一個(gè)數(shù)據(jù)塊都建立了一個(gè)布隆過濾器。自LevelDB1.4版本發(fā)行以來,對(duì)每層存儲(chǔ)鍵值對(duì)的文件的每個(gè)數(shù)據(jù)塊的布隆過濾器構(gòu)造方式都采用每個(gè)鍵分配相同比特位數(shù)的方式。這種方法沒有考慮到LevelDB每層的鍵的區(qū)間大致相同,因此可能會(huì)造成高層的文件訪問頻率相對(duì)于低層較高,布隆過濾器的誤報(bào)次數(shù)也隨之增多,從而因?yàn)椴悸∵^濾器的誤報(bào)產(chǎn)生額外的硬盤I/O操作的問題,延長了查詢操作的平均延遲,降低了系統(tǒng)的整體性能。
    技術(shù)實(shí)現(xiàn)思路
    本專利技術(shù)的目的是提出一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法,以彌補(bǔ)現(xiàn)有每層中每個(gè)文件內(nèi)的每個(gè)鍵分配固定比特位數(shù)的缺陷,在保證布隆過濾器存儲(chǔ)空間開銷與之前一致的前提下,減少LevelDB的查詢操作因布隆過濾器的誤報(bào)而帶來的硬盤輸入/輸出(I/O)操作,提高LevelDB的查詢操作速度,或者在保證LevelDB布隆過濾器整體的誤報(bào)率與之前基本不變的情況下,減少存儲(chǔ)空間即內(nèi)存的開銷。本專利技術(shù)基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法,其特征在于包括以下步驟:第一步:設(shè)計(jì)建立存儲(chǔ)結(jié)構(gòu),并進(jìn)行相應(yīng)的初始化定義如下標(biāo)識(shí)符表示相應(yīng)的存儲(chǔ)結(jié)構(gòu):L--表示多層鍵值數(shù)據(jù)庫LevelDB的層數(shù),B--分配給每個(gè)鍵的平均布隆過濾器比特位數(shù),Si—LevelDB第i,0<=i<L,層的存儲(chǔ)空間大小,SL---LevelDB的總大小,R—LevelDB層間大小的增長倍數(shù),Bi—給處于第i層的鍵分配的布隆過濾器比特位數(shù),F(xiàn)(Bi)---在分配的比特位數(shù)是Bi的情況下,布隆過濾器的誤報(bào)率,P—LevelDB的查詢操作找到對(duì)應(yīng)的鍵的可能性,SN—存儲(chǔ)鍵值對(duì)的文件SSTable包含的鍵值對(duì)數(shù)目,T—存儲(chǔ)鍵值對(duì)的文件SSTable的所占的存儲(chǔ)空間的大小;根據(jù)硬盤上所部署的鍵值數(shù)據(jù)庫系統(tǒng)對(duì)以上參數(shù)進(jìn)行初始化;第二步:計(jì)算組合概率和對(duì)LevelDB的層數(shù)L進(jìn)行L=L+4操作,即把第0層的4個(gè)文件作為前四層;設(shè)Pa<i,j>表示查詢操作訪問至第i層(包括第i層),LevelDB的布隆過濾器發(fā)生j次誤報(bào)的組合概率和,其中在第k層,0<=k<L,發(fā)生誤報(bào)的概率為第一步定義的F(Bk),即為0.618BK;計(jì)算出Pa<i,j>滿足0<=i<L,1<=j(luò)<=(i+1)的所有情況;第三步:求解得分配給每層布隆過濾器的位數(shù)當(dāng)對(duì)LevelDB進(jìn)行查詢操作時(shí),所查詢的鍵值對(duì)存在于數(shù)據(jù)庫中的可能性為P,不存在于數(shù)據(jù)庫的可能性為1-P;當(dāng)鍵值對(duì)存在于數(shù)據(jù)庫中時(shí),至少有一次I/O是為了訪問所需要查詢的鍵值對(duì),當(dāng)布隆過濾器發(fā)生誤報(bào)時(shí),可能產(chǎn)生額外的I/O;而所查詢的鍵值對(duì)位于第i層的可能性為若鍵值對(duì)不存在于數(shù)據(jù)庫中時(shí),則只可能因?yàn)椴悸∵^濾器的誤報(bào)產(chǎn)生額外的I/O次數(shù);由此得出當(dāng)LevelDB進(jìn)行查詢操作時(shí)硬盤I/O次數(shù)的期望值EX為:計(jì)算使用LevelDB原本的布隆過濾器構(gòu)造方法時(shí)與基于分層分配的布隆過濾器構(gòu)造方法的內(nèi)存開銷,其中,使用LevelDB原本的布隆過濾器構(gòu)造方法的內(nèi)存開銷為分配給LevelDB每個(gè)鍵的布隆過濾器比特位數(shù)乘以鍵值對(duì)的數(shù)目的總和,即為使用基于分層分配的布隆過濾器構(gòu)造方法的內(nèi)存開銷為分配給LevelDB每層的文件內(nèi)的鍵的布隆過濾器比特位數(shù)乘以該層所包含的鍵值對(duì)的數(shù)目的總和,即為通過枚舉分配給LevelDB每層的文件內(nèi)的鍵的布隆過濾器比特位數(shù)Bi的值----文件內(nèi)分給每個(gè)鍵的布隆過濾器比特位數(shù)相同都為Bi,其中i的區(qū)間為[0,L-1],Bi的區(qū)間為[1,32],都為整數(shù),在保證LevelDB原本的布隆過濾器構(gòu)造方法與基于分層分配的布隆過濾器構(gòu)造方法的內(nèi)存開銷差值小于一個(gè)指定值的情況下,使得上述期望值EX最??;第四步:維護(hù)存儲(chǔ)結(jié)構(gòu)把LevelDB部署到主機(jī)硬盤上,當(dāng)LevelDB進(jìn)行合并(compaction)操作時(shí),若新生成的SSTable文件將被壓往第i層,則給新生成的文件分配比特位數(shù)為SN*Bi的布隆過濾器----即根據(jù)本次合并操作新生成的存儲(chǔ)鍵值對(duì)的文件被壓往的層,用第三步求得的Bi來構(gòu)造相應(yīng)的布隆過濾器。上述本專利技術(shù)基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法包括了設(shè)計(jì)建立存儲(chǔ)結(jié)構(gòu),計(jì)算組合概率和,求解得分配給每層布隆過濾器的位數(shù)和維護(hù)存儲(chǔ)結(jié)構(gòu)。現(xiàn)實(shí)生活中的鍵值存儲(chǔ)的工作負(fù)載(workload)通常呈現(xiàn)出很強(qiáng)的隨機(jī)性,導(dǎo)致LevelDB每層的鍵的區(qū)間大致相同,因此在查詢過程中使得LevelDB的高層文件相對(duì)于低層文件訪問頻率較高。本專利技術(shù)采用分層分配布隆過濾器的比特位數(shù)的方法,在進(jìn)行合并(compaction)操作時(shí),使處于LevelDB的高層的每個(gè)鍵分配到更多的布隆過濾器比特位數(shù),低層的鍵分配到較少的布隆過濾器比特位數(shù),其中布隆過濾器的誤報(bào)率隨著比特位數(shù)的增多而降低。與LevelDB傳統(tǒng)的布隆過濾器構(gòu)造方法采取的每層的每個(gè)鍵比特位數(shù)相同的分配方法相比,在保證內(nèi)存開銷與之前一致的情況下,本方法克服了傳統(tǒng)方法因查詢過程中LevelDB高層文件的訪問頻率比低層文件高導(dǎo)致因高層文件的布隆過濾器誤報(bào)產(chǎn)生的硬盤I/O次數(shù)也較多的缺點(diǎn),帶來了LevelDB布隆過濾器整體誤報(bào)率降低的優(yōu)點(diǎn),從而減少了因?yàn)椴悸∵^濾器的誤報(bào)帶來的硬盤輸入/輸出(I/O)操作,降低硬盤的I/O次數(shù),減少LevelDB查詢操作的平均延遲。本專利技術(shù)也可以在保證查詢時(shí)的期望硬盤I/O次數(shù)與傳統(tǒng)的方法基本相等的情況下,使LevelDB的低層布隆過濾器分配到較少的比特位數(shù),與傳統(tǒng)的每層中每個(gè)鍵比特位數(shù)相同的分配方法相比,減少布隆過濾器帶來的內(nèi)存開銷,提高系統(tǒng)的整體性能。附圖說明圖1是LevelDB的每層的鍵的范圍示意圖。圖2是LevelDB進(jìn)行查詢操作的示意圖。圖3是LevelDB合并(compaction)操作示意圖。具體實(shí)施方式實(shí)施例1:下面結(jié)合附圖通過具體實(shí)施例對(duì)本專利技術(shù)基于分層分配的布隆過濾器比特位數(shù)分配方法作進(jìn)一步的詳細(xì)說明。實(shí)施例1:本實(shí)施例基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法,具體包括以下步驟。第一步:存儲(chǔ)結(jié)構(gòu)設(shè)計(jì),并進(jìn)行相應(yīng)的初始化,采用:L--表示多層鍵值數(shù)據(jù)庫LevelDB的層數(shù),B--分配給每個(gè)鍵的平均布隆過濾器比特位數(shù),Si—LevelDB第i,0<=i<L,層的存儲(chǔ)空間大小,SL---LevelDB的總大小,R—LevelDB層間大小的增長倍數(shù),Bi本文檔來自技高網(wǎng)...
    一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法

    【技術(shù)保護(hù)點(diǎn)】
    一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法,其特征在于包括以下步驟:第一步:設(shè)計(jì)建立存儲(chǔ)結(jié)構(gòu),并進(jìn)行相應(yīng)的初始化定義如下標(biāo)識(shí)符表示相應(yīng)的存儲(chǔ)結(jié)構(gòu):L??表示多層鍵值數(shù)據(jù)庫LevelDB的層數(shù),B??分配給每個(gè)鍵的平均布隆過濾器比特位數(shù),Si—LevelDB第i,0<=i<L,層的存儲(chǔ)空間大小,SL???LevelDB的總大小,R—LevelDB層間大小的增長倍數(shù),Bi—給處于第i層的鍵分配的布隆過濾器比特位數(shù),F(xiàn)(Bi)???在分配的比特位數(shù)是Bi的情況下,布隆過濾器的誤報(bào)率,P—LevelDB的查詢操作找到對(duì)應(yīng)的鍵的可能性,SN—存儲(chǔ)鍵值對(duì)的文件SSTable包含的鍵值對(duì)數(shù)目,T—存儲(chǔ)鍵值對(duì)的文件SSTable的所占的存儲(chǔ)空間的大小;根據(jù)硬盤上所部署的多層鍵值數(shù)據(jù)庫系統(tǒng)對(duì)以上參數(shù)進(jìn)行初始化;第二步:計(jì)算組合概率和對(duì)LevelDB的層數(shù)L進(jìn)行L=L+4操作,即把第0層的4個(gè)文件作為前四層;設(shè)Pa<i,j>表示查詢操作訪問至第i層,包括第i層,LevelDB的布隆過濾器發(fā)生j次誤報(bào)的組合概率和,其中在第k層,0<=k<L,發(fā)生誤報(bào)的概率為第一步定義的F(Bk),即為0.618...

    【技術(shù)特征摘要】
    1.一種基于分層分配的多層數(shù)據(jù)庫的布隆過濾器構(gòu)造方法,其特征在于包括以下步驟:第一步:設(shè)計(jì)建立存儲(chǔ)結(jié)構(gòu),并進(jìn)行相應(yīng)的初始化定義如下標(biāo)識(shí)符表示相應(yīng)的存儲(chǔ)結(jié)構(gòu):L--表示多層鍵值數(shù)據(jù)庫LevelDB的層數(shù),B--分配給每個(gè)鍵的平均布隆過濾器比特位數(shù),Si—LevelDB第i,0<=i<L,層的存儲(chǔ)空間大小,SL---LevelDB的總大小,R—LevelDB層間大小的增長倍數(shù),Bi—給處于第i層的鍵分配的布隆過濾器比特位數(shù),F(xiàn)(Bi)---在分配的比特位數(shù)是Bi的情況下,布隆過濾器的誤報(bào)率,P—LevelDB的查詢操作找到對(duì)應(yīng)的鍵的可能性,SN—存儲(chǔ)鍵值對(duì)的文件SSTable包含的鍵值對(duì)數(shù)目,T—存儲(chǔ)鍵值對(duì)的文件SSTable的所占的存儲(chǔ)空間的大?。桓鶕?jù)硬盤上所部署的多層鍵值數(shù)據(jù)庫系統(tǒng)對(duì)以上參數(shù)進(jìn)行初始化;第二步:計(jì)算組合概率和對(duì)LevelDB的層數(shù)L進(jìn)行L=L+4操作,即把第0層的4個(gè)文件作為前四層;設(shè)Pa<i,j>表示查詢操作訪問至第i層,包括第i層,LevelDB的布隆過濾器發(fā)生j次誤報(bào)的組合概率和,其中在第k層,0<=k<L,發(fā)生誤報(bào)的概率為第一步定義的F(Bk),即為0.618BK;計(jì)算出Pa<i,j>滿足0<=i<L,1<=j(luò)<=(i+1)的所有情況;第三步:求解得分配給每層布隆過濾器的位數(shù)當(dāng)對(duì)LevelDB進(jìn)行查詢操作時(shí),所查詢的鍵值對(duì)存在于數(shù)據(jù)庫中的可能性為P,不存在于數(shù)據(jù)庫的可能性為1-P;當(dāng)鍵值對(duì)存在于數(shù)據(jù)庫中時(shí),至少有一次I/O是為了訪問所需要查詢的鍵值對(duì),當(dāng)布隆過濾器發(fā)生誤報(bào)時(shí),可能產(chǎn)生額...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:李永坤,張?jiān)旅?/a>,張偉韜呂敏,許胤龍,
    申請(qǐng)(專利權(quán))人:中國科學(xué)技術(shù)大學(xué),
    類型:發(fā)明
    國別省市:安徽,34

    網(wǎng)友詢問留言 已有0條評(píng)論
    • 還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 狠狠久久精品中文字幕无码| 无码av无码天堂资源网| 国产日韩AV免费无码一区二区| 亚洲午夜国产精品无码| 亚洲国产精品无码久久| 亚洲精品一级无码中文字幕| 97久久精品亚洲中文字幕无码| 无码人妻丰满熟妇片毛片| 亚洲国产成人精品无码区在线观看| 一本一道VS无码中文字幕| 丰满熟妇乱又伦在线无码视频| 国产午夜激无码av毛片| 无码毛片AAA在线| 性无码专区无码片| 国内精品人妻无码久久久影院导航| 91久久精品无码一区二区毛片| 久久综合一区二区无码| 免费无码又爽又刺激高潮| 2019亚洲午夜无码天堂| 亚洲av永久无码精品网站| 免费VA在线观看无码| 国产精品成人无码久久久| 亚洲AV无码1区2区久久| 亚洲av中文无码乱人伦在线播放| 无码任你躁久久久久久久| 国产精品爆乳奶水无码视频| 亚洲爆乳AAA无码专区| 久久久精品天堂无码中文字幕 | 精品无码久久久久久久久水蜜桃| 亚洲桃色AV无码| 国产在线拍揄自揄拍无码| 亚洲日韩精品无码专区网址| 东京热av人妻无码专区| 亚洲自偷自偷偷色无码中文| 国产成人无码区免费网站| 中文字幕乱偷无码AV先锋| 国产拍拍拍无码视频免费 | 精品无码国产一区二区三区AV | 亚洲成a人片在线观看无码| 国产亚洲精品无码专区| 国精品无码一区二区三区在线|