一種查存算法的比較方法
【專利摘要】本發(fā)明公開了一種查存算法的比較方法,包括有以下步驟:A、用候選數(shù)據(jù)結構表示存儲在系統(tǒng)中的已存集合;B、計算候選數(shù)據(jù)結構的評估參數(shù);C、根據(jù)上述評估參數(shù)比較評估指標從而得出最合適的查存算法。本發(fā)明通過候選數(shù)據(jù)結構表示存儲在系統(tǒng)中的已存集合,對不同的查存算法作出統(tǒng)一的描述,以便于后面在選擇和評估查存算法中的比較和分析;并計算出相關的評估參數(shù),包括有拒絕時間、空間開銷、表示效率和誤判率,用于評估和針對特定的應用需求選擇適合的查存算法。本發(fā)明作為一種查存算法的比較方法可廣泛應用于大數(shù)據(jù)處理領域。
【專利說明】-種查存算法的比較方法
【技術領域】
[0001] 本發(fā)明設及大數(shù)據(jù)處理領域,尤其是一種查存算法的比較方法。
【背景技術】
[0002] 在大數(shù)據(jù)環(huán)境下,每天新產(chǎn)生的海量數(shù)據(jù),將會存儲在數(shù)據(jù)庫系統(tǒng)中。在很多情 況下,系統(tǒng)新來一個數(shù)據(jù),都需要查詢該數(shù)據(jù)是否已經(jīng)在系統(tǒng)中,也就是對數(shù)據(jù)的查存。隨 著存儲在系統(tǒng)中的數(shù)據(jù)量的增加,需要消耗更多的時間來查詢一個數(shù)據(jù)是否已經(jīng)存在系統(tǒng) 中。然而,在實際應用中,卻需要系統(tǒng)能快速地響應該類查詢。例如,快盤存儲應用,需要 快速查找文件是否存在,從而確定文件的變化來進行同步。再如,近日,網(wǎng)絡曝光成都工行 ATM機吐出同號假鈔,若能快速查詢同號假鈔的冠字號是否存在銀行的金庫中,該樣在出現(xiàn) 假鈔時,可W快速確定具有相同冠字號的鈔票是否出自銀行ATM機W厘清銀行與顧客的責 任,該也是快速查詢數(shù)據(jù)是否存在系統(tǒng)中一個應用實例。因此,快速響應一個數(shù)據(jù)是否已經(jīng) 存在已存儲著海量數(shù)據(jù)的存儲系統(tǒng)中,是一個具有實際意義的應用需求。
[0003] 現(xiàn)存的位圖數(shù)據(jù)結構、布隆過濾器及其相關引申的數(shù)據(jù)結構算法,各有優(yōu)勢,均可 用來表示存儲在系統(tǒng)中的所有數(shù)據(jù),W快速響應數(shù)據(jù)是否已存在系統(tǒng)中的查詢。位圖數(shù)據(jù) 結構在實際數(shù)據(jù)庫應用中通常用作索引,布隆過濾器是一個W準確率換取高效空間的數(shù)據(jù) 結構。
[0004] 在大數(shù)據(jù)環(huán)境下,每天新產(chǎn)生的海量數(shù)據(jù),將會存儲在數(shù)據(jù)庫系統(tǒng)中。在很多情 況下,系統(tǒng)新來一個數(shù)據(jù),都需要查詢該數(shù)據(jù)是否已經(jīng)在系統(tǒng)中,也就是對數(shù)據(jù)的查存。隨 著存儲在系統(tǒng)中的數(shù)據(jù)量的增加,需要消耗更多的時間來查詢一個數(shù)據(jù)是否已經(jīng)存在系統(tǒng) 中。然而,在實際應用中,卻需要系統(tǒng)能快速地響應該類查詢。例如,快盤存儲應用,需要 快速查找文件是否存在,從而確定文件的變化來進行同步。再如,近日,網(wǎng)絡曝光成都工行 ATM機吐出同號假鈔,若能快速查詢同號假鈔的冠字號是否存在銀行的金庫中,該樣在出現(xiàn) 假鈔時,可W快速確定具有相同冠字號的鈔票是否出自銀行ATM機W厘清銀行與顧客的責 任,該也是快速查詢數(shù)據(jù)是否存在系統(tǒng)中一個應用實例。因此,快速響應一個數(shù)據(jù)是否已經(jīng) 存在已存儲著海量數(shù)據(jù)的存儲系統(tǒng)中,是一個具有實際意義的應用需求。
[0005] 現(xiàn)存的位圖數(shù)據(jù)結構、布隆過濾器及其相關引申的數(shù)據(jù)結構算法,各有優(yōu)勢,均可 用來表示存儲在系統(tǒng)中的所有數(shù)據(jù),W快速響應數(shù)據(jù)是否已存在系統(tǒng)中的查詢。位圖數(shù)據(jù) 結構在實際數(shù)據(jù)庫應用中通常用作索引,布隆過濾器是一個W準確率換取高效空間的數(shù)據(jù) 結構。
[0006] 針對上述的如何表示存儲在系統(tǒng)中的數(shù)據(jù),并快速響應一個數(shù)據(jù)是否已經(jīng)存在已 存儲著海量數(shù)據(jù)的存儲系統(tǒng)中應用場景需求,常見的方案是通過客戶端訪問數(shù)據(jù)庫系統(tǒng), 查詢某一特定的數(shù)據(jù)是否已經(jīng)在存儲系統(tǒng)中。該種方案雖然可行,但直接訪問數(shù)據(jù)庫查詢 相關的交易記錄,將會引起不必要的時間開銷。另外,還有一種方案是,在內存中實現(xiàn)一個 數(shù)據(jù)結構,用來表示系統(tǒng)中的所有數(shù)據(jù)。當要查詢某一數(shù)據(jù)是否已經(jīng)存在系統(tǒng)中時,只需要 訪問該個數(shù)據(jù)結構即可。
[0007] 相對于第一種方案,第二種方案不需要訪問數(shù)據(jù)庫,相關查詢只需要在內存中完 成,就可W知道該條數(shù)據(jù)是否已經(jīng)存在系統(tǒng)中,在時間開銷上優(yōu)于第一種方案?,F(xiàn)存的數(shù)據(jù) 結構,例如位圖數(shù)據(jù)結構、布隆過濾器及其相關引申的數(shù)據(jù)結構算法,各有優(yōu)勢,均可用來 表示存儲在系統(tǒng)中的所有數(shù)據(jù)。然而,該些算法并非在所有場景中都表現(xiàn)出良好的性能。另 一方面,到目前為止,大多數(shù)相關工作側重于對查存算法的改進,還沒有對該些算法的比較 選擇。
【發(fā)明內容】
[000引為了解決上述技術問題,本發(fā)明的目的是;提供一種針對現(xiàn)有查存算法進行計算 評估的查存算法的比較方法。
[0009] 本發(fā)明所采用的技術方案是;一種查存算法的比較方法,包括有W下步驟:
[0010] A、用候選數(shù)據(jù)結構表示存儲在系統(tǒng)中的已存集合;
[0011] B、計算候選數(shù)據(jù)結構的評估參數(shù);
[0012] C、根據(jù)上述評估參數(shù)比較評估指標從而得出最合適的查存算法。
[0013] 進一步,所述候選數(shù)據(jù)結構中包括有該數(shù)據(jù)結構中設及的包含于不同集合的操作 數(shù)據(jù)對象、上述操作數(shù)據(jù)對象之間的映射關系和候選數(shù)據(jù)結構的操作函數(shù)組成的集合。
[0014] 進一步,所述操作數(shù)據(jù)對象包括有數(shù)據(jù)集和可提供置位的空間單元。
[0015] 進一步,所述評估參數(shù)包括有拒絕時間、空間開銷、表示效率和誤判率。
[0016] 進一步,所述步驟C中拒絕時間和空間開銷用于評估查存算法判斷數(shù)據(jù)不在系統(tǒng) 中的時間與查存數(shù)據(jù)結構的空間開銷的權衡。
[0017] 進一步,所述步驟C中表示效率用于針對不同的數(shù)據(jù)量或在設及數(shù)據(jù)的變化情況 下評估查存算法表示每個數(shù)據(jù)所用的空間開銷。
[0018] 進一步,所述步驟C中誤判率用于評估查存算法的反映系統(tǒng)數(shù)據(jù)的能力。
[0019] 本發(fā)明的有益效果是:本發(fā)明通過候選數(shù)據(jù)結構表示存儲在系統(tǒng)中的已存集合, 對不同的查存算法作出統(tǒng)一的描述,W便于后面在選擇和評估查存算法中的比較和分析; 并計算出相關的評估參數(shù),包括有拒絕時間、空間開銷、表示效率和誤判率,用于評估和針 對特定的應用需求選擇適合的查存算法。
【專利附圖】
【附圖說明】
[0020] 圖1為本發(fā)明方法的步驟流程圖;
[0021] 圖2為候選數(shù)據(jù)結構判斷任意一個元素是否存在于系統(tǒng)中的示意圖;
[0022] 圖3為候選數(shù)據(jù)結構與已存集合增刪元素示意圖;
[0023] 圖4為位圖數(shù)據(jù)結構示意圖;
[0024] 圖5為標準型布隆過濾器結構示意圖;
[0025] 圖6為計數(shù)型布隆過濾器結構示意圖;
[0026] 圖7為D-left布隆過濾器的結構示意圖。
【具體實施方式】
[0027] 相關定義
[0028] 定義1全集;全集是指由系統(tǒng)中的數(shù)據(jù)對應的整個數(shù)據(jù)范圍空間。
[0029] 形式化描述為,由設及問題中的所有數(shù)據(jù)元素組成的集合,記為U。全集U的元素 個數(shù)為IUI,記為n。。
[0030] 定義2已存集合;是指存在系統(tǒng)中的海量數(shù)據(jù)集。形式化描述為,由存儲在系統(tǒng)中 的數(shù)據(jù)元素組成的集合,記為DS。DS是全集U的一個子集,即D5 E U。集合DS的元素個 數(shù)是|DS|,記為n。
[0031] 定義3測試集合;是指由任意一個到達系統(tǒng),需要測試是否已經(jīng)存在于系統(tǒng)中的 新數(shù)據(jù)組成的集合,記為TS。集合TS的元素個數(shù)是|TS|,記為叫。同樣,它滿足rScy。
[0032] 定義4空間單元;表示內存中由1個或1個W上組成的連續(xù)比特位,記為C,單位 是比特,空間單元中,比特位的個數(shù)記為b。
[0033] 定義5候選數(shù)據(jù)結構:是指在內存中實現(xiàn)的用于表示存儲系統(tǒng)中的海量數(shù)據(jù)和查 存的數(shù)據(jù)結構算法,即是用于表示系統(tǒng)中的已存集合DS的數(shù)據(jù)結構,記為A =化R,巧。其 中,D是指在該數(shù)據(jù)結構中設及的包含于不同集合的操作數(shù)據(jù)對象,R是指在D上不同數(shù)據(jù) 對象的映射關系,F(xiàn)是由候選數(shù)據(jù)結構的操作函數(shù)組成的集合。
[0034] 定義6置位;表示對空間單元(見定義4)的置1或賦值操作,記為Set。形式化 表示為,對于內存中任意的空間單元C,有Set使得Set (C) = 1。
[0035] 定義7置位集合;用于表示在候選數(shù)據(jù)結構(見定義5)中內存中連續(xù)的空間單元 (見定義4),形式化描述為,由需要進行置位(見定義6)的空間單元組成的集合,記為M,置 位集合的元素個數(shù)rim= |M|。在該里需要注意,M屬于候選數(shù)據(jù)結構A=值,R,巧的D中 的其中一種集合。
[0036] 定義8置位映射:表示將數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)映射至候選數(shù)據(jù)結構的空間單 元的映射函數(shù),即已存集合到候選數(shù)據(jù)結構的置位集合的映射函數(shù),形式化描述為,對于 G U,1《i《町,映射函數(shù)f使得f :U - Mt,Mt表示從集合M選擇r個元素進行置位。
[0037] 置位映射滿足W下特性:
[003引 1)置位映射可W是一對一,也可W是一對多。r表示每次進行映射時,選中置位集 合中的元素的個數(shù),其中r > 1。
[0039] 。置位映射的定義域dom(/) C U。
[0040] 3)若f:U - M可逆,則它的逆映射是f-i:U - M'。
[0041] 定義9表示集合;當插入數(shù)據(jù)時,候選數(shù)據(jù)結構(見定義5)的部分或全部空間 單元產(chǎn)生置位后,候選數(shù)據(jù)結構可W表示的數(shù)據(jù)集。形式化描述如下;候選數(shù)據(jù)結構A = 值,R,巧的置化映射產(chǎn)生后,候選數(shù)據(jù)結構A=值,R,巧的可W表示的集合,稱為表示集合, 記為S,它滿足5 C U,集合S的元素個數(shù)是I SI,記為心
[0042] 定義10表示關系:是指當候選數(shù)據(jù)結構的部分或全部空間單元產(chǎn)生置位后時,組 成候選數(shù)據(jù)結構的連續(xù)空間單元與它可W表示的數(shù)據(jù)集的映射關系。形式化描述如下;候 選數(shù)據(jù)結構A =值,R,巧的從已存集合DS的所有元素通過置位映射(見定義8)映射到置 位集合后,置位集合已選擇t個元素進行置位,該種被置位后的置位集合與表示集合的映 射關系,記為<M\ S〉。特別地,t = 0時,表示插入元素,此時5二0。當t = |M| = n。時,S =V。
[0043] 定義11成員查詢;給定某一數(shù)據(jù),用戶訪問候選數(shù)據(jù)結構查詢該數(shù)據(jù)是否存在于 存儲系統(tǒng)中。形式化描述如下;對任意d G TS (見定義3),返回d是否包含于DS的查詢應 答的函數(shù),記為query (d)。
[0044] 定義12誤判率:用于描述進行成員查詢query(d)(見定義11)時出現(xiàn)不準確應答 的概率。誤判率包括兩類,一類是假陽性誤判率,即是將不存在于數(shù)據(jù)集中的元素誤判為存 在的誤差;另一類是假陰性誤判率,即將存在于數(shù)據(jù)集DS誤判為不存在的誤差。
[0045] 誤判率的形式表示如下:
[0046] 1)假陽性誤判率FP ;對于給定d g DS,成員查詢query (d)返回表示d G DS的真 值,記為fP =戶(d E 5|d 6 D巧。
[0047] 。假陰性誤判率FN ;對于給定d G DS,成員查詢query(d)返回表示d g D5的假 值,fw 二 P(d g S|d e DS)。
[0048] 定義13空間開銷;是指候選數(shù)據(jù)結構A =化R,巧(見定義W在內存中需要空間 單元的個數(shù),即置位集合(見定義6)的元素個數(shù),與每個空間單元所需的比特位個數(shù)(見 定義4)的乘積,記為Mem,單位是比特位。
[0049] 定義14表示效率;是指候選數(shù)據(jù)結構A=值,R,F(xiàn))(見定義5)的空間開銷Mem(見 定義13)與集合DS的全部元素個數(shù)n= |DS|之比,記為E。用于描述候選數(shù)據(jù)結構A = 值,R,巧表示集合DS時,平均每個元素需要的比特位的個數(shù)(通常用位數(shù)bits表示)。 [0化0] 定義15表示性能;候選數(shù)據(jù)結構A =化R,巧表示一個元素的能力,通過表示效 率來度量。表示效率越大,已存集合DS中每個元素所需比特位的個數(shù)越多,表明候選數(shù)據(jù) 結構A =值,R,巧的表示性能越差。
[0化^ 定義16拒絕時間;給定某一查詢數(shù)據(jù),候選數(shù)據(jù)結構A =化R,巧判定該數(shù)據(jù)不 在系統(tǒng)中的時間。形式化描如下:給定元素d G TS,成員查詢query (d)判斷d不屬于DS所 需要的時間,記為T。(在該里,不考慮判斷d屬于DS所需要的時間的定義是因為該個時間 是若干個單位時間,注意該里所說的時間并不包括訪問外存W判斷d屬于DS所需的時間。) [0化引定義17 -致性:是指候選數(shù)據(jù)結構A =化R,巧(見定義5)反映系統(tǒng)中的已存集 合DS及其變化的度量。通常一致性用誤判率(見定義12)來度量。
[0053] 下面結合附圖對本發(fā)明的【具體實施方式】作進一步說明:
[0054] 參照圖1,一種查存算法的比較方法,包括有W下步驟:
[0055] A、用候選數(shù)據(jù)結構表示存儲在系統(tǒng)中的已存集合;
[0056] B、計算候選數(shù)據(jù)結構的評估參數(shù);
[0化7] C、根據(jù)上述評估參數(shù)比較評估指標從而得出最合適的查存算法。
[005引 W下分步驟詳細說明:
[0059] 問題建模:
[0060] 根據(jù)前面的相關定義,問題建模如下;考慮一個大數(shù)據(jù)集,將該個數(shù)據(jù)集中全部數(shù) 據(jù)或部分數(shù)據(jù)存儲在系統(tǒng),并在存儲過程中,系統(tǒng)的內存里實現(xiàn)一個數(shù)據(jù)結構,用來表示存 儲在系統(tǒng)中的海量數(shù)據(jù)。該就是用內存小空間的數(shù)據(jù)結構表示系統(tǒng)中的大空間的數(shù)據(jù)。當 往系統(tǒng)插入數(shù)據(jù)時,數(shù)據(jù)結構相應地插入新數(shù)據(jù),當系統(tǒng)要刪除某一數(shù)據(jù)時,數(shù)據(jù)結構若可 刪除元素,則相應地刪除該數(shù)據(jù)。若要查詢任意一個元素是否在系統(tǒng)中,只要訪問內存中該 數(shù)據(jù)結構即可。
[0061] 形式化表示為,全集U是大數(shù)據(jù)集所有不同的元素所組成的集合,其所有元素 的個數(shù)是n。。DS是存儲在系統(tǒng)中的所有元素的集合,該集合元素個數(shù)是n。根據(jù)定義, DSCU,n《rv顯然,集合DS本身就是其全集時,等號成立。候選數(shù)據(jù)結構A=化R,巧 中的表示集合S C U。測試集合TS是由任意一個屬于全集的并用來測試是否存在于系統(tǒng)的 數(shù)據(jù)組成的集合。
[0062] 下面結合附圖對問題建模進行說明。
[0063] 如圖2,對于Vd巨TS,訪問候選數(shù)據(jù)結構A =化R,F(xiàn)),查詢d是否在系統(tǒng)中,即 d是否包含DS,候選數(shù)據(jù)結構A =化R,巧有操作函數(shù),返回d G DS或d g DS。具體的實 施方式是,對于任意的新來數(shù)據(jù),訪問系統(tǒng)內存中的候選數(shù)據(jù)結構,查詢該個數(shù)據(jù)是否在系 統(tǒng)中,實施的效果是該個候選數(shù)據(jù)結構返回真假值W應答本次查詢。
[0064] 如圖3,當系統(tǒng)中新插入一個數(shù)據(jù),候選數(shù)據(jù)結構若具有插入數(shù)據(jù)的屬性,則它能 同步反映系統(tǒng)中的數(shù)據(jù)集新插入新數(shù)據(jù)。形式化描述為,對于Vd G U,但d g DS,已存集 合DS = DS+xv3r9jzsqg,若候選數(shù)據(jù)結構具有插入元素的屬性,則A =化R,巧有操作函數(shù)使得S =S+xv3r9jzsqg。具體的實施方案是,當系統(tǒng)新插入一條數(shù)據(jù)的時候,候選數(shù)據(jù)結構通過對若干個 空間單元進行置位,W表示該數(shù)據(jù)。
[00化]如圖3,當系統(tǒng)中新刪除一個數(shù)據(jù),候選數(shù)據(jù)結構若具有刪除數(shù)據(jù)的屬性,則它能 同步反映系統(tǒng)中的數(shù)據(jù)集刪除舊數(shù)據(jù)。對于Yd G DS,當DS = DS-xv3r9jzsqg,若候選數(shù)據(jù)結構A =化R,巧具有可刪除元素的屬性,則有操作函數(shù)使得S = S-xv3r9jzsqg。具體的實施方案是,當 系統(tǒng)刪除數(shù)據(jù)時,若該個候選數(shù)據(jù)結構的連續(xù)空間單元可W恢復置位前的狀態(tài),則它可W 將刪除的數(shù)據(jù)對應的空間單元恢復置位前的狀態(tài)。
[0066] 算法建模:
[0067] 根據(jù)前面的問題建模,全集U是大數(shù)據(jù)集所有不同的元素所組成的集合,其所有 元素的個數(shù)是rv DS是存儲在系統(tǒng)中的所有元素的集合,該集合元素個數(shù)是n。根據(jù)定義, Z)S C U,n《n。,顯然,集合DS本身就是其全集時,等號成立。因此對候選數(shù)據(jù)結構的統(tǒng) 一建模如下:
[0068] 用候選數(shù)據(jù)結構A =值,R,巧表示存儲在系統(tǒng)中的已存集合DS,
[0069] 1)由問題中設及的不同數(shù)據(jù)對象組成的集合D,相當于已存集合DS的全集U與置 位集合M的并集。指已存集合DS對應于系統(tǒng)中的數(shù)據(jù),全集U就是數(shù)據(jù)的范圍,置位集合M 對應于系統(tǒng)內存中的數(shù)據(jù)結構的空間。直觀來說,該里的數(shù)據(jù)對象是候選數(shù)據(jù)結構操作的 對象的統(tǒng)稱。因此,集合D就是候選數(shù)據(jù)結構直接操作的數(shù)據(jù)對象組成的集合,包括有數(shù)據(jù) 集、可提供置位的空間單元。
[0070] 2)R是在D上不同數(shù)據(jù)對象的映射關系;置位映射關系Ri= <d,Mt〉,其中d G DS, Mt表示從集合M選擇r個元素進行置位(見定義6),直觀來說,它就是一個數(shù)據(jù)與在候選數(shù) 據(jù)結構中的所有連續(xù)空間單元的選出若干個空間單元進行置位的對應關系;表示關系R2 = <Mt,S〉,其中Mt表示從集合M選擇t個元素進行置位,S是表示集合(見定義9)。實際上, 置位映射關系Ri是指系統(tǒng)插入一條數(shù)據(jù)后,內存中的數(shù)據(jù)結構選擇若干個空間單元置位。 表示關系R2則是指內存中的數(shù)據(jù)結構的部分或全部空間單元被置位后,可表示的數(shù)據(jù)。 [007U 扣候選數(shù)據(jù)結構的操作函數(shù)F = {f:U- ]\f,query(d)},其中,f:U - IT是置位 映射(見定義8),其定義域dom(f) = DS,DS £ f/。query (d)是成員查詢(見定義11), dG TS,TS是測試集合,rSC [7。
[0072] 該時,候選數(shù)據(jù)結構A =化R,巧的空間開銷是置位集合的元素個數(shù)與候選數(shù)據(jù) 結構的空間單元的比特位個數(shù)的乘積,即
[0073] Mem = n^Xb (1)
[0074] 特別地,當映射個數(shù)r= 1,空間單元的比特位個數(shù)b= 1時,由于DS的隨機性,關 系R2<Mt,S〉中的表示集合S必須是DS的全集,才能表示DS,此時
[007引 Mem = n。似
[0076] 由于候選數(shù)據(jù)結構A =值,R,巧的置位集合M中每個元素是內存中的一個空間單 元(見定義4),當每個空間單元的比特位個數(shù)是b > 1時,則候選數(shù)據(jù)結構A =化R,巧的 置位集合M中任意一個元素發(fā)生賦值操作的置位(見定義6),且產(chǎn)生的空間單元的賦值置 位相等的概率是
[0077] (3)
[007引已知置位映射f:U - Mt進行一次映射從置位集合M中選擇的元素個數(shù)r > 1,且 每個元素是僅由一個比特位組成的置位空間時,當DS中的所有元素都通過置位映射將置 位集合M相應的空間單元置位后,該時,M有t個元素被置位,表示為其中|M| =11。, 因而產(chǎn)生關系R2<Mt,S〉。因此,候選數(shù)據(jù)結構A =化R,巧的置位集合M中任意一個元素 發(fā)生置1操作的置位(見定義6)時,置位集合M的一個元素仍未發(fā)生置位的概率是
[0079] P 二(1-丄)(4) 打m
[0080] 候選數(shù)據(jù)結構A =化R,巧的成員查詢query (d)的假陽性誤差率(本具體實施 例算法建模暫不考慮假陰性誤差率)是
[00川 F戶二 P(d £5|d g D巧=(l-P)r (5)
[0082] 由上可得,候選數(shù)據(jù)結構A =值,R,巧的空間開銷取決于置位集合的元素個數(shù)W 及空間單元的比特位個數(shù),而誤差率受已存集合的元素個數(shù)、置位集合的元素個數(shù)、置位映 射的映射個數(shù)W及空間單元的比特位個數(shù)決定。
[008引評估指柄
[0084] 1)拒絕時間與空間開銷的評估
[0085] 拒絕時間與空間開銷的評估主要是評估候選數(shù)據(jù)結構的空間開銷對它判定任意 一數(shù)據(jù)不存在系統(tǒng)中的時間的影響。
[0086] 置位集合M表示候選數(shù)據(jù)結構A = 0),R,巧內存中連續(xù)的空間單元,Mem表示候選 數(shù)據(jù)結構A=化R,巧的空間開銷(見定義13)。對3 Vd GD5置位函數(shù)f(d) =f:U - Mt 將從置位集合M中選出r個元素進行置位,每個元素,即每個置位集合中的空間單元均Wl/ n。的概率被置位。
[0087] 首先,考慮置位映射f:U - Mt進行一次映射從置位集合M中選擇的元素個數(shù)r = 1情況。當r= l,b = 1時,候選數(shù)據(jù)結構A=值,R,巧的置位集合M每個元素是由一個比 特位組成的空間單元。置位映射f:U - Mt進行一次映射時,只會產(chǎn)生一個空間單元的置位, 即對一個比特位進行置位。換言之,已存集合DS的一個元素對應于置位集合中的一個空間 單元。當DS中的所有元素都通過置位映射將置位集合M相應的空間單元置位后,M有t個 元素被置位,表示為產(chǎn)生關系R2<Mt,S〉。直觀上來說,就是將候選數(shù)據(jù)結構A=值,R,F(xiàn)) 的n。個空間單元的相應t個位置位后,它表示的數(shù)據(jù)集與置位后的候選數(shù)據(jù)結構的對應關 系。因此,置位集合M的一個元素仍未發(fā)生置位的概率是P= (l-l/nm)n,此時FP=1-P = l-(l-l/r〇n,由rim>> 1,可得FP = 0。又因為DS的隨機性,關系R2<Mt,S>中的表示集合 S必須是DS的全集,才能表示DS,因此 [008引 Mem = rimXb = riuX 1 = n。 (6)
[0089] 由上式可得,當r = 1,b = 1時,判定元素不存在集合里只需要一個單元的時間 0(1),因此,空間Mem與拒絕時間T不產(chǎn)生依賴。
[0090] 再看,當r = l,b > 1時,空間Mem越大,意味著置位集合M中的元素的空間單元的 比特位個數(shù)越多,空間單元中相同的置位的可能性就越低,因而候選數(shù)據(jù)結構A =值,R,巧 判定元素不存在集合的拒絕時間就越少。
[0091] 再考慮置位映射f:u - Mt進行一次映射從置位集合M中選擇的元素個數(shù)r > 1的 情況。當DS中的所有元素都通過置位映射將置位集合M相應的空間單元置位后,M有t個 元素被置位,表示為其中|M| =rv產(chǎn)生關系R2<Mt, S〉。易得,置位集合M的一個元 素仍未發(fā)生置位的概率是
[00巧?=(1-丄:^ (7) 巧m
[0093] 易得,對于d G T,成員查詢query (d)函數(shù)錯誤認為元素d已出現(xiàn)在DS的假陽性 誤判率是
[0094] FP = G 5|d g 0巧二 口 一 P)r (8)
[00巧]由于r > 1,假設r《皿,nm》1,根據(jù)相關文獻1狂hong M, Lu P, Sien K, et al. Optimizing data popularity conscious bloom filters[C]. Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing. ACM, 2008:355-364.)的推導,r往往遠小于n。,近似得到如下公式,
[0096]
【權利要求】
L 一種查存算法的比較方法,其特征在于:包括有以下步驟: A、 用候選數(shù)據(jù)結構表示存儲在系統(tǒng)中的已存集合; B、 計算候選數(shù)據(jù)結構的評估參數(shù); C、 根據(jù)上述評估參數(shù)比較評估指標從而得出最合適的查存算法。
2. 根據(jù)權利要求1所述的一種查存算法的比較方法,其特征在于:所述候選數(shù)據(jù)結構 中包括有該數(shù)據(jù)結構中涉及的包含于不同集合的操作數(shù)據(jù)對象、上述操作數(shù)據(jù)對象之間的 映射關系和候選數(shù)據(jù)結構的操作函數(shù)組成的集合。
3. 根據(jù)權利要求2所述的一種查存算法的比較方法,其特征在于:所述操作數(shù)據(jù)對象 包括有數(shù)據(jù)集和可提供置位的空間單元。
4. 根據(jù)權利要求1所述的一種查存算法的比較方法,其特征在于:所述評估參數(shù)包括 有拒絕時間、空間開銷、表示效率和誤判率。
5. 根據(jù)權利要求4所述的一種查存算法的比較方法,其特征在于:所述步驟C中拒絕 時間和空間開銷用于評估查存算法判斷數(shù)據(jù)不在系統(tǒng)中的時間與查存數(shù)據(jù)結構的空間開 銷的權衡。
6. 根據(jù)權利要求4所述的一種查存算法的比較方法,其特征在于:所述步驟C中表示 效率用于針對不同的數(shù)據(jù)量或在涉及數(shù)據(jù)的變化情況下評估查存算法表示每個數(shù)據(jù)所用 的空間開銷。
7. 根據(jù)權利要求4所述的一種查存算法的比較方法,其特征在于:所述步驟C中誤判 率用于評估查存算法的反映系統(tǒng)數(shù)據(jù)的能力。
【文檔編號】G06F17/30GK104504011SQ201410758136
【公開日】2015年4月8日 申請日期:2014年12月10日 優(yōu)先權日:2014年12月10日
【發(fā)明者】趙淦森, 王翔, 黎藹萍, 程慶年, 周冠宇, 周尚勤, 王欣明 申請人:華南師范大學, 廣州杰賽科技股份有限公司