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)而帶來的硬盤輸入/輸 ...
【技術(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)的概率為第一步定 ...
【技術(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
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。