欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

管理可單獨(dú)訪問(wèn)的數(shù)據(jù)單元的存儲(chǔ)器的制作方法

文檔序號(hào):6456391閱讀:258來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):管理可單獨(dú)訪問(wèn)的數(shù)據(jù)單元的存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及管理可單獨(dú)訪問(wèn)的數(shù)據(jù)單元的存儲(chǔ)器。
背景技術(shù)
數(shù)據(jù)庫(kù)系統(tǒng)可以用多種格式中任意一種存儲(chǔ)數(shù)據(jù)或"記錄"的可單獨(dú)訪
問(wèn)(individually accessible)單元。每個(gè)記錄可以對(duì)應(yīng)諸如信用卡交易這樣的 邏輯實(shí)體,并且典型地具有用于唯一識(shí)別該記錄的關(guān)聯(lián)的主鍵(primary key)。該記錄可以包括與記錄格式的各個(gè)字段(field)相關(guān)聯(lián)的多個(gè)值。所 述記錄可以存儲(chǔ)在一個(gè)或多個(gè)文件中(例如,平面文件或諸如XML文件這 樣的結(jié)構(gòu)數(shù)據(jù)文件)。在壓縮的數(shù)據(jù)庫(kù)系統(tǒng)中,記錄中的單獨(dú)記錄或值可以 在存儲(chǔ)時(shí)壓縮,并在訪問(wèn)時(shí)解壓縮,以降低系統(tǒng)的存儲(chǔ)要求。

發(fā)明內(nèi)容
在一個(gè)方面, 一般來(lái)說(shuō),用于管理數(shù)據(jù)的方法包括接收可單獨(dú)訪問(wèn)的 數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元由鍵值來(lái)識(shí)別(identify);存儲(chǔ)多個(gè)數(shù)據(jù)塊,至少 一些塊中的每一個(gè)是通過(guò)組合多個(gè)所述數(shù)據(jù)單元而生成的;以及提供包括用 于每個(gè)所述塊的條目(entry)的索引,其中, 一個(gè)或多個(gè)條目基于所提供的 鍵值使能包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值 范圍對(duì)應(yīng)。
在另一個(gè)方面, 一般來(lái)說(shuō),用于管理數(shù)據(jù)的系統(tǒng)包括用于接收可單獨(dú) 訪問(wèn)的凝:據(jù)單元的裝置,每個(gè)數(shù)據(jù)單元由4定值來(lái)識(shí)別;用于存儲(chǔ)多個(gè)數(shù)據(jù)塊 的裝置,至少一些塊中的每一個(gè)是通過(guò)組合多個(gè)所述邀:據(jù)單元而生成的;以 及用于提供包括用于每個(gè)所述塊的條目的索引的裝置,其中, 一個(gè)或多個(gè)條 目基于所提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提 供的鍵值的鍵值范圍對(duì)應(yīng)。
在再一個(gè)方面, 一般來(lái)說(shuō),存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的用于管理數(shù)據(jù)的 計(jì)算機(jī)程序,包括用于使計(jì)算機(jī)執(zhí)行以下步驟的指令接收可單獨(dú)訪問(wèn)的數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元由4建值來(lái)識(shí)別;存儲(chǔ)多個(gè)數(shù)據(jù)塊,至少一些塊中的每 一個(gè)是通過(guò)組合多個(gè)所述數(shù)據(jù)單元而生成的;以及提供包括用于每個(gè)所述塊 的條目的索引,其中, 一個(gè)或多個(gè)條目基于所提供的鍵值使能包括數(shù)據(jù)單元 的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。 這些方面可以包括一個(gè)或多個(gè)下列特征。
至少一些塊是通過(guò)基于所述鍵值的定義的順序(defined order)來(lái)組合 所述數(shù)據(jù)單元而生成的。
所述定義的順序是字母順序(alphabetical )。 所述定義的順序是數(shù)字順序(numerical )。
各個(gè)塊是從數(shù)據(jù)單元的各個(gè)集合生成的,并且這些集合根據(jù)定義的順序 對(duì)應(yīng)于無(wú)重疊的鍵值范圍。
索引中的 一個(gè)或多個(gè)條目識(shí)別與對(duì)應(yīng)塊從其生成的數(shù)據(jù)單元對(duì)應(yīng)的鍵 值范圍。
所述鍵值范圍由包括鍵值范圍的至少一個(gè)極值的信息來(lái)識(shí)別。 所述鍵值范圍由來(lái)自索引中第一條目的第一極值和來(lái)自索引中第二條
目的第二極值來(lái)識(shí)別。
所述鍵值范圍由包括與對(duì)應(yīng)塊從其生成的數(shù)據(jù)單元相關(guān)聯(lián)的鍵值的至
少一個(gè)極值的信息來(lái)識(shí)別。
所述鍵值范圍由來(lái)自索引中第一條目的第一極值和來(lái)自索引中第二條
目的第二極值來(lái)識(shí)別。
索引中至少一些條目中的每一個(gè)識(shí)別對(duì)應(yīng)塊的存儲(chǔ)位置。 通過(guò)組合多個(gè)數(shù)據(jù)單元生成塊包括壓縮數(shù)據(jù)單元的集合。 解壓縮通過(guò)壓縮數(shù)據(jù)單元的集合而生成的塊包括處理整個(gè)塊。 所述數(shù)據(jù)單元是每個(gè)都具有一個(gè)或多個(gè)與對(duì)應(yīng)字段相關(guān)聯(lián)的值的記錄。 識(shí)別所接收的數(shù)據(jù)單元的鍵值對(duì)應(yīng)于在被接收之前與給定數(shù)據(jù)單元相
關(guān)聯(lián)的一個(gè)或多個(gè)字段。
識(shí)別所接收的數(shù)據(jù)單元的鍵值被分配給在被接收之后的數(shù)據(jù)單元。 鍵值被單調(diào)地(monotonically)分配。 4建值-故順序地(sequentially)分配。 所存儲(chǔ)的數(shù)據(jù)塊被存儲(chǔ)為塊的第 一集合。 所述塊的第 一集合被存儲(chǔ)在文件中。存儲(chǔ)一個(gè)或多個(gè)數(shù)據(jù)塊的第二集合,所述第二集合中的至少一些塊的每 一個(gè)是從在存儲(chǔ)所述塊的第一集合之后接收到的多個(gè)數(shù)據(jù)單元中生成的。 所述第二集合中的至少一些塊是通過(guò)壓縮數(shù)據(jù)單元的集合而生成的。
提供包括用于第二集合中每個(gè)塊的條目的索引,其中, 一個(gè)或多個(gè)條目 基于所提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提供 的鍵值的鍵值范圍對(duì)應(yīng)。
處理塊的第一和第二集合,以便恢復(fù)從其生成塊的數(shù)據(jù)單元;根據(jù)與所
述數(shù)據(jù)單元對(duì)應(yīng)的鍵值的順序,排序從第一集合中恢復(fù)的數(shù)據(jù)單元和從第二
集合中恢復(fù)的數(shù)據(jù)單元,以生成經(jīng)排序的數(shù)據(jù)單元的集合;以及生成塊的第 三集合,所述第三集合中至少一些塊的每一個(gè)是通過(guò)組合多個(gè)經(jīng)排序的數(shù)據(jù) 單元而生成的。
排序從第一集合中恢復(fù)的數(shù)據(jù)單元和從第二集合恢復(fù)的數(shù)據(jù)單元包括, 根據(jù)與所述數(shù)據(jù)單元對(duì)應(yīng)的鍵值的順序,合并從第一集合恢復(fù)的數(shù)據(jù)單元和
從第二集合恢復(fù)的數(shù)據(jù)單元,以生成經(jīng)排序的數(shù)據(jù)單元的集合。
提供包括用于第三集合中每個(gè)塊的條目的第三集合的索引,其中, 一個(gè)
或多個(gè)條目基于所提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,所述數(shù)據(jù)單元
與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。
提供與所存儲(chǔ)的塊相關(guān)聯(lián)的篩選數(shù)據(jù)結(jié)構(gòu)(screening data structure),用
于確定包括給定屬性值的數(shù)據(jù)單元包括在從其生成所述塊的數(shù)據(jù)單元中的
可能性(possibility )。
所述屬性值包括識(shí)別單元的鍵值。
所述篩選數(shù)據(jù)結(jié)構(gòu)對(duì)于給定屬性值確定包括給定屬性值的數(shù)據(jù)單元肯 定沒(méi)有包括(definitely not included),或者包括給定屬性值的數(shù)據(jù)單元可能 被包括(possibly included )。
當(dāng)所述數(shù)據(jù)單元沒(méi)有被包括時(shí),所述篩選數(shù)據(jù)結(jié)構(gòu)確定包括給定屬性值 的數(shù)據(jù)單元可能被包括的概率(probability)取決于所述數(shù)據(jù)結(jié)構(gòu)的大小
基于從其生成所述塊的數(shù)據(jù)單元的數(shù)目來(lái)選擇篩選數(shù)據(jù)結(jié)構(gòu)的大小。
提供與所存儲(chǔ)的塊相關(guān)聯(lián)的次級(jí)索引,用于確定包括給定屬性值的數(shù)據(jù) 單元的 一個(gè)或多個(gè)鍵值。
所述數(shù)據(jù)單元是每個(gè)都具有與對(duì)應(yīng)字段相關(guān)聯(lián)的一個(gè)或多個(gè)值的記錄, 識(shí)別記錄的鍵值對(duì)應(yīng)于主鍵值,并且與次級(jí)索引相關(guān)聯(lián)的屬性值對(duì)應(yīng)于所述輔鍵值。
所述次級(jí)索引包括表,該表具有通過(guò)所述數(shù)據(jù)單元中的屬性值而非一建值進(jìn)行排序的行。
這些方面可以包括一個(gè)或多個(gè)下列優(yōu)點(diǎn)。
通過(guò)壓縮多個(gè)記錄的塊,可以實(shí)現(xiàn)比單獨(dú)壓縮記錄更高的壓縮度。索引
的塊(indexed blocks )提供在無(wú)需從壓縮記錄的文件開(kāi)頭進(jìn)行解壓縮的條件下訪問(wèn)給定記錄的能力。塊的大小可以選擇為足夠大以提供高壓縮度,以及選擇為足夠小以限制訪問(wèn)塊內(nèi)給定記錄所需的解壓縮量??梢允褂眠@樣的壓縮技術(shù)來(lái)壓縮每個(gè)塊這些技術(shù)不需要提供從壓縮塊的任意位置開(kāi)始解壓縮的能力。從而可以使用提供較大壓縮度的技術(shù)。
通過(guò)存儲(chǔ)識(shí)別與從其生成對(duì)應(yīng)塊的記錄相對(duì)應(yīng)的4建值范圍的索引,由于不需要具有每個(gè)記錄的條目,所以索引可以被保持得很小(例如,小到足以適應(yīng)相對(duì)較快的存儲(chǔ)器)。索引條目使能可以載入(loaded)和解壓縮的一個(gè)或多個(gè)塊的位置,以便恢復(fù)能夠用來(lái)搜索期望記錄的記錄集合。將簽字與壓縮塊相關(guān)聯(lián)可以表示期望記錄不存在,排除了載入壓縮塊以搜索該記錄的需要。
其它特征和優(yōu)點(diǎn)將從下面的說(shuō)明以及權(quán)利要求中變得清楚。


圖1是用于存儲(chǔ)和檢索記錄的系統(tǒng)的框圖。
圖2A、 2B、 2C和2D是由系統(tǒng)處理和存儲(chǔ)在系統(tǒng)中的數(shù)據(jù)的示意圖。圖3A和3B是示出對(duì)于不同的簽字大小的錯(cuò)誤肯定概率(false positiveprobability)的表。
圖4A和4B是用于搜索記錄的過(guò)程的流程圖。
具體實(shí)施例方式
參照?qǐng)D1,記錄存儲(chǔ)與檢索系統(tǒng)100從一個(gè)或多個(gè)源接受數(shù)據(jù),如SOURCEA(源A) - SOURCE C (源C )。數(shù)據(jù)包括能夠表示為可單獨(dú)訪問(wèn)的數(shù)據(jù)單元的信息。例如,信用卡公司可以從各種零售公司接收表示單個(gè)交易的數(shù)據(jù)。每筆交易都與表示屬性的值相關(guān)聯(lián),所述屬性諸如客戶名字、曰期、購(gòu)買(mǎi)量等。記錄處理模塊102確保所述數(shù)據(jù)根據(jù)預(yù)定記錄格式被格式化,
9以使得與交易相關(guān)聯(lián)的值被存儲(chǔ)在記錄中。在某些情況下,這可以包括根據(jù) 記錄格式轉(zhuǎn)換來(lái)自源的數(shù)據(jù)。在其它情況下, 一個(gè)或多個(gè)源可以提供已經(jīng)根 據(jù)記錄格式被格式化的數(shù)據(jù)。
記錄處理才莫塊102通過(guò)識(shí)別每個(gè)記錄的主4建(primary key) <直排序記錄 (例如,識(shí)別單個(gè)記錄的唯一鍵、或者識(shí)別記錄的多個(gè)更新的版本的鍵), 并且將記錄分成與主鍵值的不重疊范圍相對(duì)應(yīng)的記錄集合。例如,每個(gè)記錄 集合可以對(duì)應(yīng)于預(yù)定數(shù)目的記錄(例如,100個(gè)記錄)。壓縮模塊104將每個(gè) 記錄集合壓縮到經(jīng)壓縮的數(shù)據(jù)塊中。這些壓縮的塊被存儲(chǔ)在記錄存儲(chǔ)器106 中的壓縮記錄文件中(例如,如一個(gè)或多個(gè)^5更盤(pán)驅(qū)動(dòng)器的非易失性存儲(chǔ)介質(zhì) 中)。系統(tǒng)100還包括提供索引的索引與搜索模塊108,所述索引包括每個(gè)塊 的條目。該索引用于定位可能包括給定記錄的塊,如下面更詳細(xì)描述的。該 索引可以存儲(chǔ)在索引存儲(chǔ)器110中的索引文件中。例如,索引文件可以作為 壓縮記錄文件存儲(chǔ)在相同存儲(chǔ)介質(zhì)中,由于索引文件典型地遠(yuǎn)小于壓縮記錄 文件,因而索引文件可以?xún)?yōu)選地存儲(chǔ)在相對(duì)較快的存儲(chǔ)器中(例如,如動(dòng)態(tài) 隨機(jī)存取存儲(chǔ)器的易失性存儲(chǔ)介質(zhì))。
在系統(tǒng)100的可替換實(shí)施例中,可以使用除了壓縮之外的功能或者取代 壓縮功能來(lái)處理記錄集合以生成塊,以便將記錄以某種方式組合(即,以使 得塊不僅^f又只是連續(xù)的記錄集合)。例如,某些系統(tǒng)處理記錄集合,以便生 成加密數(shù)據(jù)塊。
接口模塊112向人們和/或諸如AGENT A (代理A) - AGENT D (代理 D)這樣的計(jì)算機(jī)代理提供對(duì)所存儲(chǔ)的記錄的訪問(wèn)。例如,接口模塊112可 以實(shí)現(xiàn)在線賬戶(account)系統(tǒng),以便信用卡顧客監(jiān)視他們的交易。對(duì)滿足 各種準(zhǔn)則的交易信息的請(qǐng)求可以由系統(tǒng)100來(lái)處理,并且可以從存儲(chǔ)在記錄 存儲(chǔ)器106中的壓縮塊中檢索相應(yīng)的記錄。
在對(duì)來(lái)自 一個(gè)或多個(gè)源的輸入記錄流進(jìn)行處理以便生成壓縮記錄文件 之前可以將其暫時(shí)存儲(chǔ)。參照?qǐng)D2,系統(tǒng)IOO檢索將要存儲(chǔ)在壓縮記錄文件 中的記錄集合200,并且根據(jù)主鍵的值對(duì)記錄進(jìn)行排序。
主4建值可以唯一地識(shí)別數(shù)據(jù)庫(kù)中可以由 一個(gè)或多個(gè)記錄表示的給定項(xiàng) (item)(例如,每個(gè)具有給定主4建值的記錄可以對(duì)應(yīng)于不同更新版本的項(xiàng))。 主鍵可以是與記錄的一個(gè)或多個(gè)已有字段對(duì)應(yīng)的"固有鍵(natural key)"。 如果沒(méi)有保證對(duì)每個(gè)項(xiàng)都是唯一字段,那么主鍵可以是包含記錄的多個(gè)字段的復(fù)合鍵,該多個(gè)字段一起保證或者非??赡軐?duì)每個(gè)記錄是唯一的。可替換
地,主鍵可以是在被接收之后分配給每個(gè)記錄的"合成鍵(synthetic key)"。 例如,系統(tǒng)100可以將順序遞增的整數(shù)或者某些其它單調(diào)變化值 (monotonically progressing values )的序歹ll (例如,時(shí)戳)作為口舉一的主4建 值進(jìn)行分配。在這種情況下,表示不同版本的相同條目的記錄可以被分配不 同的合成鍵值。如果使用整數(shù),那么可能的主鍵值的范圍(例如,如由所使 用的比特?cái)?shù)所確定的)可以足夠大以使得如果主鍵值滾計(jì)(rollover),則先 前被分配以給定主鍵值的任何記錄都已經(jīng)從壓縮記錄文件中去除。例如,舊 的交易可以被去除并且存檔或者丟棄。
在圖2A中所示的例子中,記錄200由按字母排序的主鍵:值來(lái)識(shí)別A、 AB、 CZ……。系統(tǒng)100壓縮具有主鍵:值A(chǔ)-DD的7V個(gè)記錄的第一集合,以 生成標(biāo)記為BLOCK 1 (塊1 )的對(duì)應(yīng)壓縮塊。下一個(gè)記錄集合包括具有主鍵: 值DX-GF的下7V個(gè)排序的記錄。壓縮模塊104可以使用各種無(wú)損數(shù)據(jù)壓縮 算法中的任意一種(例如,Lempel-Ziv型算法)。每個(gè)連續(xù)壓縮塊被組合, 形成壓縮記錄文件202。
可以選擇用于生成壓縮塊的記錄的數(shù)目見(jiàn)以在壓縮效率和解壓縮速度 之間進(jìn)行權(quán)衡(trade off)。所述壓縮可以通過(guò)給定因子i 來(lái)平均縮減數(shù)據(jù)的 大小,該因子i 取決于被壓縮的數(shù)據(jù)的本質(zhì)(nature)以及^^皮壓縮的數(shù)據(jù)的 大小(例如,當(dāng)更多數(shù)據(jù)被壓縮時(shí),i 典型地較小)。所述壓縮還可以具有 平均大小(9相關(guān)聯(lián)的開(kāi)銷(xiāo)(overhead)(例如,壓縮相關(guān)數(shù)據(jù))。從每個(gè)大小 為X的M個(gè)記錄中生成的、結(jié)果得到的壓縮記錄文件的平均大小可以被表 達(dá)為/"il4/A7(KA^+Q),對(duì)于大量塊來(lái)說(shuō),可以近似為i MY+Oikf/7V。從而,在 某些情況下,較大的值N可以通過(guò)減小R以及減少開(kāi)銷(xiāo)對(duì)文件大小的份額 (contribution)兩者來(lái)提供較大壓縮。較小的N值減少解壓縮給定壓縮塊以 訪問(wèn)可能包含在該塊中的記錄所需的時(shí)間。
在其它實(shí)施方式中,不同的壓縮塊可以包括不同數(shù)目的記錄。每個(gè)塊可 以根據(jù)預(yù)定范圍具有一定數(shù)目的記錄(a number of records )。例如,第一塊 包括具有主鍵值1-1000的記錄,并且第二塊包括具有主鍵值1001-2000的記 錄,等等。本例中壓縮塊中的記錄的數(shù)目可以是不同的,因?yàn)椴皇敲總€(gè)主4建 值都必須存在(例如,在已有數(shù)字字段被用作固有鍵的情況下)。
在某些實(shí)施方式中,不同的壓縮塊在某些情況下可以包 目標(biāo)數(shù)目的記錄,并且在例外情況下,可以包括更多或更少的記錄。例如,如果記錄集合
以這樣的記錄結(jié)尾該記錄的主鍵值不同于以排序順序中之后記錄的主鍵 值,那么那些記錄用于生成壓縮塊。如果記錄集合以這樣的記錄結(jié)尾該記 錄的主鍵值與排序順序中之后記錄的主鍵值相同,那么具有主鍵值的所有附 加記錄都被添加到該集合中。通過(guò)這種方式,相同的主鍵值不從一個(gè)壓縮塊 ^爭(zhēng)到(crossover)另一個(gè)壓縮塊。
索引與搜索模塊108對(duì)每一個(gè)壓縮塊的生成索引文件204中的條目。索 引條目包括識(shí)別每個(gè)壓縮塊的鍵字段206,例如,通過(guò)相應(yīng)的未壓縮的記錄 集合中的第一個(gè)記錄的主鍵。這些條目還包括位置字段208,其識(shí)別壓縮記 錄文件202中經(jīng)識(shí)別的壓縮塊的存儲(chǔ)位置。例如,位置字段可以包含以記錄 存儲(chǔ)器106中的絕對(duì)地址的形式的指針,或者以從記錄存儲(chǔ)器106中壓縮記 錄文件202的開(kāi)始地址開(kāi)始的偏移量的形式的指針。
為了在壓縮記錄文件202中搜索給定記錄,模塊108可以基于鍵字段206 執(zhí)行對(duì)索引文件204的搜索(例如,二進(jìn)制搜索)。對(duì)提供的鍵值(例如, 由代理之一提供的),模塊108定位包括與鍵值范圍對(duì)應(yīng)的記錄的塊,所述 鍵值范圍包括提供的鍵值。帶有所提供的鍵值的記錄可以已經(jīng)包括在用于生 成定位的塊的記錄集合中或者可以未包括在其中,但是,如果該記錄存在于 記錄200中,那么由于記錄200按主4建值進(jìn)行了排序,則該記錄應(yīng)當(dāng)已經(jīng)被 包括。然后,模塊108解壓縮定位的塊,并且用提供的鍵值搜索記錄。在主 鍵值對(duì)每個(gè)記錄不是唯一的情況下,模塊108可以用提供的鍵值在壓縮塊中 找出多個(gè)記錄。在本例中,鍵字段206包括集合中第一個(gè)記錄的主鍵,模塊 108搜索分別具有早于和晚于所提供的鍵值的鍵值的兩個(gè)連續(xù)索引條目,并 且返回與具有較早鍵值的條目相對(duì)應(yīng)的塊。在某些情況下,所提供的鍵值可 以與索引條目中的鍵值相同,在這種情況下模塊108返回與該條目相對(duì)應(yīng)的 塊。
在不同的實(shí)施方式中,在索引文件204中的條目有不同方法來(lái)識(shí)別與/人 其生成相應(yīng)塊的記錄相對(duì)應(yīng)的鍵值范圍。如圖2A中所示的實(shí)施方式中,鍵 值范圍可以是用于生成塊的記錄的兩個(gè)鍵值極值之間的范圍(例如,在按字 母順序的主鍵值的排序序列中的第一個(gè)和最后一個(gè),或者在按數(shù)字順序的主 鍵值的排序序列中的最小值和最大值)。索引條目可以包括定義所述范圍的 極值中的一個(gè)或兩者。在某些實(shí)施方式中,如果索引條目包括針對(duì)給定塊定義的范圍的最小鍵值,那么壓縮記錄中與最后一個(gè)塊相關(guān)聯(lián)的最后一個(gè)索引 條目還可以包括定義該塊的范圍的最大鍵值。然后,該最大鍵值可以在搜索 壓縮記錄文件時(shí)使用,以便確定何時(shí)給定鍵值在范圍之外。
可替換地,鍵值范圍可以擴(kuò)展到用于生成塊的記錄的鍵值之外的范圍。 例如,在從具有1到1000之間按數(shù)字排列的主鍵值的記錄生成的塊的情況 下,記錄中所表示的最小鍵值可以大于1,而記錄中所表示的最大4建值可以
小于1000。索引條目可以包括定義范圍的極值1和1000中的一個(gè)或者兩者。
當(dāng)在原始記錄組已經(jīng)被處理而生成壓縮記錄文件之后附加記錄到達(dá)時(shí),
可以將那些記錄存儲(chǔ)在緩沖器中并且以未壓縮的(uncompressed)形式進(jìn)行 搜索??商鎿Q地,附加記錄組可以被增量處理(incrementallyprocessed),并 且存儲(chǔ)為可被附加索引文件訪問(wèn)的附加壓縮記錄文件。在某些情況下,即使 在壓縮少量附加記錄不會(huì)提供存儲(chǔ)空間大小的很大降低時(shí),將附加記錄進(jìn)行
壓縮以保持訪問(wèn)記錄的統(tǒng)一過(guò)程也是有好處的??梢砸怨潭〞r(shí)間間隔(例如, 每30秒或每5分鐘)或者在接收到了預(yù)定數(shù)目的附加記錄之后(例如,每 1000個(gè)記錄或每io,ooo個(gè)記錄),重復(fù)處理附加記錄。如果基于時(shí)間間隔處 理輸入記錄,那么在某些間隔中可能沒(méi)有輸入記錄或者有少量記錄,該少量 記錄全部被壓縮到一個(gè)壓縮塊中。
參照?qǐng)D2B,在原始?jí)嚎s記錄文件202已經(jīng)被生成之后,在附加記錄被 系統(tǒng)100接收的例子中,附加壓縮記錄文件210可以被附到原始?jí)嚎s記錄文 件202上,以形成復(fù)合壓縮記錄文件211 。系統(tǒng)100用主鍵值對(duì)附加記錄進(jìn) 行排序,并且將7V個(gè)記錄的集合進(jìn)行壓縮,以生成壓縮記錄文件210的壓縮 塊。被標(biāo)記為BLOCK 91 (塊91)的、附加文件(appended file) 210中的 壓縮塊具有主鍵值BA-FF。模塊108生成包括條目的附加索引文件212,所 述條目可以用于搜索附加文件210內(nèi)所表示的附加記錄。新的索引文件212 可以附到先前的索引文件204上。
可以附上任意數(shù)目的壓縮記錄文件,以便形成復(fù)合壓縮記錄文件。如果 索引與搜索模塊108在復(fù)合壓縮記錄文件內(nèi)以給定鍵值搜索記錄,那么模塊 108就使用相應(yīng)的索引文件在每個(gè)所附壓縮記錄文件內(nèi)搜索記錄。可替換地, 請(qǐng)求給定記錄的代理可以用要搜索的復(fù)合壓縮記錄指定一定數(shù)目的壓縮記 錄文件(例如,最近生成的10個(gè)壓縮記錄文件或者最后一小時(shí)內(nèi)生成的任 意壓縮記錄文件)。在給定時(shí)間量(例如,每24小時(shí))之后或者已經(jīng)附上給定數(shù)目的壓縮
記錄文件之后,系統(tǒng)100可以合并(consolidate)這些文件,以便,人復(fù)合壓 縮記錄文件生成單一壓縮記錄文件以及新的對(duì)應(yīng)索引文件。在合并之后,可 以搜索單個(gè)索引,以定位可能包含給定記錄的壓縮塊,從而導(dǎo)致更有效率的 記錄訪問(wèn)。在合并時(shí)間,系統(tǒng)100對(duì)壓縮記錄文件進(jìn)行解壓縮以{更恢復(fù)對(duì)應(yīng) 的排序記錄集合,通過(guò)主鍵:值對(duì)記錄進(jìn)行排序,并且生成新的壓縮記錄文件 和索引。由于每個(gè)所恢復(fù)的記錄集合已經(jīng)被排序,所以可以通過(guò)合并
(merging)以前根據(jù)主鍵值排序的列表來(lái)有效地對(duì)記錄進(jìn)行排序,以便生 成單一排序記錄集合。
參照?qǐng)D2C,根據(jù)有多少附加記錄已經(jīng)到達(dá)以及這些記錄曾經(jīng)以怎樣的 頻率(how often )纟皮處理,復(fù)合壓縮記錄文件211包括初始?jí)嚎s記錄文件202、 附加壓縮記錄文件210和許多(number of)附加壓縮記錄文件220、 221、...。 每個(gè)壓縮記錄文件都可以具有相關(guān)聯(lián)的索引文件,索引文件可以用于在那個(gè) 文件的壓縮塊內(nèi)搜索給定記錄。在本例中,壓縮記錄文件220中的一個(gè)足夠 小以具有單一壓縮塊(BLOCK95 (塊95)),因此不必需要相關(guān)聯(lián)的索引文 件,但是可以具有表示塊中的主4建值范圍以及其在存儲(chǔ)器中的位置的相關(guān)聯(lián) 數(shù)據(jù)。在合并之后,從不同的所附壓縮記錄文件中恢復(fù)的記錄被處理,以生 成單個(gè)壓縮記錄文件230。
在經(jīng)單調(diào)分配的主鍵的情況下,不僅可以在壓縮記錄文件內(nèi)自動(dòng)排序記 錄,還可以從一個(gè)文件到下一個(gè)文件自動(dòng)排序記錄,消除合并文件的需要, 以便在單一索引搜索中訪問(wèn)記錄。參照?qǐng)D2D,系統(tǒng)100接收記錄集合250, 所述記錄集合用連續(xù)整數(shù)識(shí)別,所述連續(xù)整數(shù)以到達(dá)順序分配,作為記錄的 主鍵。因此,記錄250通過(guò)主鍵自動(dòng)排序。在本例中,初始?jí)嚎s記錄文件252 包括每個(gè)都包括100個(gè)記錄的壓縮塊,索引文件254包括鍵字段256和位置 字段258,鍵字段256用于壓縮塊中第一個(gè)記錄的主鍵值,位置字段258識(shí) 別對(duì)應(yīng)的存儲(chǔ)器位置。由于在已經(jīng)生成初始?jí)嚎s記錄文件252之后到達(dá)的記 錄將稍后以排序順序自動(dòng)具有主鍵:值,所以所附的壓縮記錄文件260和相應(yīng) 索引文件262不需要被合并以基于單一索引搜索使能有效記錄訪問(wèn)。例如, 索《1文件262可以簡(jiǎn)單地附在索引文件254上,并且可以 一起搜索兩個(gè)索引 (例如,在單一二進(jìn)制搜索中),用于定位壓縮記錄文件252或者壓縮記錄 文件262之一中的壓縮塊。
14可以選擇性地合并復(fù)合壓縮記錄文件261,以便消除可能已經(jīng)在壓縮記
錄文件252結(jié)尾處插入的不完整塊。在這樣的合并中,只有第一個(gè)文件252 中的最后一個(gè)壓縮塊會(huì)需要被解壓縮,并且代替合并經(jīng)過(guò)解壓縮的記錄集 合,而是記錄集合可以簡(jiǎn)單地合并以形成新的排序的記錄集合,該記錄集合 將被分為包含100個(gè)記錄的集合中,并且然后再次壓縮以形成新的壓縮記錄 文件。
使用連續(xù)整數(shù)合成主鍵值的另一個(gè)好處是,如果將要基于主鍵值劃分記 錄,那么由于在鍵值中沒(méi)有間隙,所以所述劃分可以自動(dòng)進(jìn)行平衡 (balanced )。
多種技術(shù)中的任意一種可以使用來(lái)更新記錄以及使存在于壓縮記錄文 件中的先前版本的記錄無(wú)效。在某些情況下,不需要單獨(dú)地去除或更新記錄
(例如,日志、交易、電話)。在這些情況下,舊記錄被去除和丟棄,或者 按預(yù)定數(shù)目的壓縮塊的組進(jìn)行存檔,例如,從壓縮記錄文件的開(kāi)頭開(kāi)始進(jìn)行 存檔。在某些情況下,可以去除整個(gè)壓縮記錄文件。
在某些情況下,通過(guò)添加新的更新記錄來(lái)更新一個(gè)記錄的一個(gè)或多個(gè) 值,用于存儲(chǔ)在壓縮塊中,而以前接收到的記錄版本(具有相同主鍵值)可 以存儲(chǔ)留在不同的壓縮塊中。然后,可以存在多個(gè)版本的記錄,并且一些技 術(shù)被用來(lái)確定哪個(gè)是有效記錄版本。例如,出現(xiàn)在任意一個(gè)壓縮記錄文件中 的最后一個(gè)版本(最近接收到的)可以被隱含地(implicitly)或明確地
(explicitly)指定為有效版本,而任意其它版本都是無(wú)效的。在這種情況下 以給定主鍵搜索記錄可以包括按照出現(xiàn)順序找出用該主鍵識(shí)別的最后一個(gè) 記錄??商鎿Q地,通過(guò)寫(xiě)(write )表示該記錄的任意先前版本不是有效的"無(wú) 效記錄",可以4吏記錄無(wú)效而無(wú)需添加新片反本的記錄。
系統(tǒng)100通過(guò)不同的處理過(guò)程來(lái)傳遞(mediate)對(duì)存儲(chǔ)在記錄存儲(chǔ)器 106中的壓縮記錄文件的訪問(wèn)。多種同步技術(shù)中的任意一種可以用于調(diào)解對(duì) 一個(gè)或多個(gè)壓縮記錄文件內(nèi)的壓縮塊的訪問(wèn)。系統(tǒng)IOO確保修改文件的任何 處理(例如,通過(guò)附上數(shù)據(jù)或者合并數(shù)據(jù))不互相干擾。例如,如果在發(fā)生 合并時(shí)新記錄到達(dá),系統(tǒng)100可以等待,直到合并處理完成,或者可以生成 壓縮塊,并且在將它們附到當(dāng)前壓縮記錄文件之前暫時(shí)存儲(chǔ)它們。從壓縮記 錄文件中讀出的處理可以載入完整的一部分文件,并且可以忽^L可能正在4奮 改的任何不完整部分。系統(tǒng)100存儲(chǔ)附加數(shù)據(jù),該附加數(shù)據(jù)基于記錄的屬性而非主鍵來(lái)使能對(duì)
記錄的搜索。壓縮記錄文件的次級(jí)索引包括基于被指定為輔鍵(secondary key)的屬性的值提供一個(gè)或多個(gè)主鍵值的信息。每個(gè)指定為輔鍵的屬性都 可以與相應(yīng)的次級(jí)索引相關(guān)聯(lián)。例如,每個(gè)次級(jí)索引都可以#1組織為一個(gè)表, 該表具有用相關(guān)聯(lián)的輔鍵進(jìn)行排序的行。每行都包括輔鍵值以及包括該輔鍵 值的記錄的一個(gè)或多個(gè)主鍵值。因此,如果代理發(fā)起對(duì)包括給定輔鍵值的任 意記錄的搜索,那么系統(tǒng)100就查找主鍵,主鍵用于在壓縮記錄文件的索引 中搜索包括所述記錄的壓縮塊。次級(jí)索引可以較大(例如,與記錄的數(shù)目相 近),并且在某些情況下可以存儲(chǔ)在存儲(chǔ)壓縮記錄文件的存儲(chǔ)介質(zhì)中。
在某些情況下,被分配為輔鍵的屬性的值可以對(duì)于每個(gè)記錄是唯一的。 在這種情況下,在輔鍵與主鍵之間為一對(duì)一對(duì)應(yīng)關(guān)系,并且接口模塊112可 以將該輔鍵屬性像它是主鍵一樣呈現(xiàn)給代理。
在新的壓縮記錄文件被附到復(fù)合壓縮記錄文件時(shí),每個(gè)次級(jí)索引都可以 被更新??商鎿Q地,對(duì)每個(gè)壓縮記錄文件,可以將輔鍵與不同的次級(jí)索引相 關(guān)聯(lián),并且當(dāng)壓縮記錄文件被合并時(shí),次級(jí)索引可以被合并為單一次級(jí)索引。
篩選數(shù)據(jù)結(jié)構(gòu)可以與壓縮記錄文件相關(guān)聯(lián),用于確定包括給定屬性值的 記錄被包括在該文件的壓縮塊中的可能性。例如,使用重疊編碼簽字(overlap encoded signature, OES )作為篩選數(shù)據(jù)結(jié)構(gòu)使系統(tǒng)100能夠確定具有給定鍵: 值(主鍵或輔鍵)的記錄肯定不存在("否定"結(jié)果),或者具有給定鍵值的 記錄有存在的可能性("肯定"結(jié)果)。對(duì)于肯定結(jié)果,系統(tǒng)訪問(wèn)適當(dāng)?shù)膲嚎s 塊以便檢索記錄("確認(rèn)肯定,,結(jié)果)或者確定該記錄不存在("錯(cuò)誤肯定" 結(jié)果)。對(duì)于否定結(jié)果,系統(tǒng)可以將否定結(jié)果給代理而無(wú)需為不存在的記錄 花費(fèi)時(shí)間解壓縮和搜索壓縮塊。OES的大小對(duì)肯定結(jié)果為錯(cuò)誤肯定結(jié)果的頻 率有影響, 一般來(lái)說(shuō),較大的OES大小會(huì)產(chǎn)生較少的錯(cuò)誤肯定結(jié)果。對(duì)于 給定的OES大小, 一般來(lái)說(shuō),越少區(qū)別可能鍵值(fewer distinct possible key ) 會(huì)產(chǎn)生越少錯(cuò)誤肯定結(jié)果。
其它類(lèi)型的篩選數(shù)據(jù)結(jié)構(gòu)是可能的??梢葬槍?duì)每個(gè)壓縮記錄文件提供用 于給定主^t或輔^t的篩選數(shù)據(jù)結(jié)構(gòu)。可替換地,可以針對(duì)每個(gè)壓縮塊提供用 于密鑰的篩選數(shù)據(jù)結(jié)構(gòu)。
圖3A和3B示出的表中提供了針對(duì)各種大小的示范性O(shè)ES篩選數(shù)據(jù)結(jié) 構(gòu)(列)以及針對(duì)壓縮記錄文件中表現(xiàn)的各種數(shù)目的區(qū)別鍵值(行),獲得鍵值的錯(cuò)誤肯定結(jié)果的概率值。對(duì)于一個(gè)OES來(lái)說(shuō),根據(jù)該OES的大小以 及區(qū)別鍵值的數(shù)目,多于一個(gè)鍵值的存在可以表示在OES的同一部分,對(duì) 于那些鍵值中的一個(gè),如果存在其它鍵值則可能導(dǎo)致錯(cuò)誤肯定結(jié)果。本示范 性O(shè)ES的大小從210=1024 bits (圖3A的表中)到228=256 Mbits (圖3B的 表中)不等。區(qū)別鍵值的數(shù)目從100 (圖3A的表中)到100,000,000 (圖3B 的表中)不等。對(duì)于這兩個(gè)表來(lái)說(shuō),右上方的空單元4各對(duì)應(yīng)于0%,而左下 方的空單元格對(duì)應(yīng)于100%。對(duì)于錯(cuò)誤肯定結(jié)果低的單元格(例如,接近零), 篩選數(shù)據(jù)結(jié)構(gòu)可能大于提供充分篩選所需。對(duì)于錯(cuò)誤肯定概率相當(dāng)大的單元 格(例如,〉50°/。),篩選數(shù)據(jù)結(jié)構(gòu)可能太小而不能提供充分篩選。本例對(duì)應(yīng) 于每個(gè)鍵值使用四個(gè)散列(hash)碼來(lái)生成OES的技術(shù)。對(duì)于給定數(shù)目的區(qū) 別密鑰,其它OES篩選數(shù)據(jù)結(jié)構(gòu)的例子可能產(chǎn)生不同的錯(cuò)誤肯定概率表。
由于壓縮記錄文件中表現(xiàn)的區(qū)別鍵值的數(shù)目可能是未知的,所以系統(tǒng) 100可以基于從其生成文件的記錄的數(shù)目,對(duì)壓縮記錄文件選擇篩選數(shù)據(jù)結(jié) 構(gòu)的大小。在選擇大小時(shí),在降低錯(cuò)誤肯定概率與存儲(chǔ)篩選數(shù)據(jù)結(jié)構(gòu)所需要 的存儲(chǔ)空間之間存在權(quán)衡。該權(quán)衡中的一個(gè)因素是搜索不存在的(absent) 鍵值的可能性。如果大多數(shù)要查找的鍵值可能存在于解壓縮記錄中,則可能 根本不需要篩選數(shù)據(jù)結(jié)構(gòu)。如果有相當(dāng)大可能性找不到4建值,那么對(duì)于相對(duì) 較大的篩選數(shù)據(jù)結(jié)構(gòu)分配存儲(chǔ)空間會(huì)節(jié)省相當(dāng)多時(shí)間。
與壓縮記錄文件相關(guān)聯(lián)的篩選數(shù)據(jù)結(jié)構(gòu)的大小取決于該文件對(duì)應(yīng)于該 記錄的初始或合并的大型數(shù)據(jù)庫(kù)、還是對(duì)應(yīng)于對(duì)較大數(shù)據(jù)庫(kù)進(jìn)行的較小更 新。相對(duì)較小的篩選數(shù)據(jù)結(jié)構(gòu)大小可以用于在固定更新間隔期間被附加的壓 縮記錄文件,因?yàn)樵诿看胃轮型ǔ4嬖谳^少區(qū)別鍵值。而且,隨著多次更 新之后壓縮記錄文件的數(shù)目增長(zhǎng),較小的大小可以縮減所需的存儲(chǔ)空間。篩 選數(shù)據(jù)結(jié)構(gòu)的大小可以基于更新中期望的記錄和/或區(qū)別鍵值的數(shù)目、以及基 于期望的更新次數(shù)。例如,如果在24小時(shí)的時(shí)段中,每五分鐘附加上更新 的文件,那么在一天結(jié)束時(shí)將有288個(gè)壓縮記錄文件。至少一個(gè)錯(cuò)誤肯定結(jié) 果的概率將是圖3A和3B的表中的適當(dāng)值的288倍(假定對(duì)于不同更新的 結(jié)果是獨(dú)立的)。在合并之后,由于區(qū)別鍵值的數(shù)目會(huì)顯著增長(zhǎng),所以較大 的篩選數(shù)據(jù)結(jié)構(gòu)對(duì)于合并后的壓縮記錄文件可能是合適的。
壓縮記錄文件可以具有針對(duì)主4定和針對(duì)每個(gè)輔鍵、或者針對(duì)密鑰的某些 子集(subset)的篩選數(shù)據(jù)結(jié)構(gòu)。例如,系統(tǒng)100可以提供針對(duì)主鍵以及只針對(duì)那些期待在搜索記錄時(shí)最經(jīng)常使用的輔4建的篩選數(shù)據(jù)結(jié)構(gòu)。
圖4A示出了用于以給定主鍵值搜索一個(gè)或多個(gè)記錄的過(guò)程400的流程 圖。過(guò)程400確定402是否存在與第 一壓縮記錄文件相關(guān)聯(lián)的篩選數(shù)據(jù)結(jié)構(gòu)。 如果存在,則過(guò)程400處理404篩選數(shù)據(jù)結(jié)構(gòu),以獲得肯定結(jié)果或者否定結(jié) 果。如果給定主鍵值沒(méi)有通過(guò)篩選(否定結(jié)果),過(guò)程400檢查406下一個(gè) 壓縮記錄文件,并且如果存在那個(gè)文件則對(duì)其重復(fù)篩選(repeaton)。如果給 定主鍵值通過(guò)篩選(肯定結(jié)果),過(guò)程400以給定主鍵值搜索408可能包含 記錄的塊的索引。如果沒(méi)有篩選數(shù)據(jù)結(jié)構(gòu)與壓縮記錄文件相關(guān)聯(lián),則過(guò)程400 搜索408索引而不執(zhí)行篩選。
在搜索408索引之后,如果找到410與包括給定主4建值的鍵值范圍相關(guān) 聯(lián)的壓縮塊,那么過(guò)程400解壓縮412在由索引條目識(shí)別的位置處的塊,并 且以給定主鍵:值搜索414結(jié)果記錄中一個(gè)或多個(gè)記錄。然后,過(guò)程;險(xiǎn)查416 下一個(gè)壓縮記錄文件,并且如果該文件存在則對(duì)其重復(fù)篩選。如果沒(méi)有發(fā)現(xiàn)
壓縮塊(例如,如果給定主#:值小于第一塊中的最小4建值或大于最后一個(gè)塊
中的最大鍵值),那么過(guò)程400就檢查416下一個(gè)壓縮記錄文件,并且如果 該文件存在則對(duì)其重復(fù)篩選。
圖4B示出了用于以給定輔4定值搜索一個(gè)或多個(gè)記錄的過(guò)程400的流程 圖。過(guò)程450確定452是否存在與第一壓縮記錄文件相關(guān)聯(lián)的篩選數(shù)據(jù)結(jié)構(gòu)。 如果存在,則過(guò)程450處理454篩選數(shù)據(jù)結(jié)構(gòu),以獲得肯定結(jié)果或者否定結(jié) 果。如果給定輔鍵值沒(méi)有通過(guò)篩選(否定結(jié)果),那么過(guò)程450檢查406下 一個(gè)壓縮記錄文件,并且如果該文件存在則對(duì)其重復(fù)篩選。如果給定輔鍵值 通過(guò)篩選(肯定結(jié)果),則過(guò)程450查找458對(duì)應(yīng)于包含給定輔鍵的記錄的 主鍵。如果沒(méi)有篩選數(shù)據(jù)結(jié)構(gòu)與壓縮記錄文件相關(guān)聯(lián),則過(guò)程450查找458 主鍵而不執(zhí)行篩選。
對(duì)于找到的每一個(gè)主鍵,過(guò)程450以給定主鍵值搜索460可能包含記錄 的塊的索引。在搜索460索引之后,如果找到462與包括給定主鍵值的鍵值 范圍相關(guān)聯(lián)的壓縮塊,則過(guò)程450解壓縮464在由索引條目識(shí)別的位置處的 塊,并且以給定主鍵值搜索466結(jié)果記錄中的一個(gè)或多個(gè)記錄。然后,過(guò)程 檢查468下一個(gè)壓縮記錄文件,并且如果該文件存在則對(duì)其重復(fù)篩選。如果 沒(méi)有發(fā)現(xiàn)壓縮塊,則過(guò)程450 4企查468下一個(gè)壓縮記錄文件,并且如果該文 件存在則對(duì)其重復(fù)篩選。
18可以按照出現(xiàn)的順序由過(guò)程400或過(guò)程450返回以給定主鍵或輔4建找到 的多個(gè)記錄,或者,在某些情況下,只返回最后版本的記錄。
上面所描述的記錄存儲(chǔ)與檢索方案可以使用用于在計(jì)算機(jī)上執(zhí)行的軟 件來(lái)實(shí)現(xiàn)。例如,該軟件形成在一個(gè)或多個(gè)經(jīng)編程或可編程的計(jì)算^^幾系統(tǒng)(可 以具有各種結(jié)構(gòu),諸如分布的、客戶端/服務(wù)器、或網(wǎng)格)上執(zhí)行的一個(gè)或多 個(gè)計(jì)算機(jī)程序中的過(guò)程,每個(gè)計(jì)算機(jī)系統(tǒng)包括至少一個(gè)處理器、至少一個(gè)凝: 據(jù)存儲(chǔ)系統(tǒng)(包括易失性存儲(chǔ)器和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一 個(gè)輸入設(shè)備或端口、以及至少一個(gè)輸出設(shè)備或端口。該軟件可以形成大型程 序的一個(gè)或多個(gè)模塊,例如,該大型程序提供與計(jì)算圖表的設(shè)計(jì)和配置相關(guān) 的其它業(yè)務(wù)。圖表的節(jié)點(diǎn)和元素可以被實(shí)施為存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的數(shù) 據(jù)結(jié)構(gòu)或者符合存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型的其它組織的數(shù)據(jù)。
該軟件可以被提供在諸如CD-ROM這樣的介質(zhì)上,其可以被通用或?qū)?用可編程計(jì)算機(jī)讀取或者通過(guò)網(wǎng)絡(luò)遞送(編碼在傳播信號(hào)中)到執(zhí)行它的計(jì) 算機(jī)。所有功能可以在專(zhuān)用計(jì)算機(jī)上執(zhí)行,或者使用諸如協(xié)處理器這樣的專(zhuān) 用硬件執(zhí)行。該軟件可以以分布方式實(shí)施,在該分布方式中,由該庫(kù)欠件指定 的不同的計(jì)算部分由不同的計(jì)算器執(zhí)行。每個(gè)這樣的計(jì)算機(jī)程序一皮優(yōu)選地存 儲(chǔ)在或下載到可由通用或?qū)S每删幊逃?jì)算機(jī)讀取的存儲(chǔ)介質(zhì)或設(shè)備中(例 如,固態(tài)存儲(chǔ)器或介質(zhì)、或者磁介質(zhì)或光介質(zhì)),用于在存儲(chǔ)介質(zhì)或設(shè)備被 計(jì)算機(jī)系統(tǒng)讀取時(shí)配置并運(yùn)行計(jì)算機(jī),以便執(zhí)行這里所描述的過(guò)程。也可以
考慮將本發(fā)明的系統(tǒng)實(shí)施為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其配置有計(jì)算機(jī)程序,其 中,這樣配置的存儲(chǔ)介質(zhì)使得計(jì)算機(jī)系統(tǒng)以指定或預(yù)定義的方式運(yùn)行,以便 執(zhí)行這里所描述的功能。
已經(jīng)描述了本發(fā)明的許多實(shí)施例。但是,應(yīng)當(dāng)理解,可以進(jìn)行各種修改, 而在不脫離本發(fā)明的精神和范圍。例如,上面所描述的某些步驟可以單獨(dú)排 序,從而可以以不同于所述的順序來(lái)執(zhí)行。
將理解的是,前述描述意在說(shuō)明而非局限本發(fā)明的范圍,本發(fā)明的范圍 由后附權(quán)利要求限定。例如,可以以不同的順序來(lái)執(zhí)行上述的許多功能步驟, 而基本不影響總體處理。其它實(shí)施例也在后附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種用于管理數(shù)據(jù)的方法,該方法包括接收可單獨(dú)訪問(wèn)的數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元由鍵值來(lái)識(shí)別;存儲(chǔ)多個(gè)數(shù)據(jù)塊,至少一些塊中的每一個(gè)是通過(guò)組合多個(gè)所述數(shù)據(jù)單元而生成的;以及提供包括針對(duì)每個(gè)所述塊的條目的索引,其中,一個(gè)或多個(gè)條目基于所提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。
2. 如權(quán)利要求1所述的方法,其中,至少一些塊是通過(guò)基于所述4建值的 定義的順序組合所述數(shù)據(jù)單元而生成的。
3. 如權(quán)利要求2所述的方法,其中,所述定義的順序是字母順序。
4. 如權(quán)利要求2所述的方法,其中,所述定義的順序是數(shù)字順序。
5. 如權(quán)利要求2所述的方法,其中,各個(gè)塊是從數(shù)據(jù)單元的各個(gè)集合生 成的,并且這些集合根據(jù)定義的順序?qū)?yīng)于無(wú)重疊的鍵值范圍。
6. 如權(quán)利要求1所述的方法,其中,所述索引中的一個(gè)或多個(gè)條目識(shí)別 與對(duì)應(yīng)塊從其生成的數(shù)據(jù)單元對(duì)應(yīng)的鍵值范圍。
7. 如權(quán)利要求6所述的方法,其中,所述鍵值范圍由包括所述鍵值范圍 的至少一個(gè)極值的信息來(lái)識(shí)別。
8. 如權(quán)利要求7所述的方法,其中,所述4建值范圍由來(lái)自索引中第一條 目的第一極值和來(lái)自索引中第二條目的第二極值來(lái)識(shí)別。
9. 如權(quán)利要求6所述的方法,其中,所述鍵值范圍由包括與對(duì)應(yīng)塊從其 生成的數(shù)據(jù)單元相關(guān)聯(lián)的鍵值的至少一個(gè)極值的信息來(lái)識(shí)別。
10. 如權(quán)利要求9所述的方法,其中,所述鍵值范圍由來(lái)自索引中第一 條目的第 一極值和來(lái)自索引中第二條目的第二極值來(lái)識(shí)別。
11. 如權(quán)利要求6所述的方法,其中,所述索引中至少一些條目中的每 一個(gè)識(shí)別對(duì)應(yīng)塊的存儲(chǔ)位置。
12. 如權(quán)利要求l所述的方法,其中,通過(guò)組合多個(gè)數(shù)據(jù)單元生成塊包 括壓縮數(shù)據(jù)單元的集合。
13. 如權(quán)利要求12所述的方法,其中,解壓縮通過(guò)壓縮數(shù)據(jù)單元的集合 而生成的塊包括處理整個(gè)塊。
14. 如權(quán)利要求l所述的方法,其中,所述數(shù)據(jù)單元是每一個(gè)都具有一 個(gè)或多個(gè)與對(duì)應(yīng)字段相關(guān)聯(lián)的值的記錄。
15. 如權(quán)利要求14所述的方法,其中,識(shí)別所接收的數(shù)據(jù)單元的鍵值對(duì) 應(yīng)于在被接收之前與給定數(shù)據(jù)單元相關(guān)聯(lián)的一個(gè)或多個(gè)字段。
16. 如權(quán)利要求14所述的方法,其中,識(shí)別所接收的數(shù)據(jù)單元的鍵值在 被接收到之后被分配給該數(shù)據(jù)單元。
17. 如權(quán)利要求16所述的方法,其中,鍵值被單調(diào)地分配。
18. 如權(quán)利要求17所述的方法,其中,鍵:值被順序地分配。
19. 如權(quán)利要求l所述的方法,其中,所述存儲(chǔ)的數(shù)據(jù)塊被存儲(chǔ)為塊的 第一集合。
20. 如權(quán)利要求19所述的方法,其中,所述塊的第一集合被存儲(chǔ)在文件中。
21. 如權(quán)利要求19所述的方法,還包括存儲(chǔ)一個(gè)或多個(gè)數(shù)據(jù)塊的第二集 合,所述第二集合中的至少一些塊中的每一個(gè)是從在存儲(chǔ)所述塊的第一集合 之后接收的多個(gè)數(shù)據(jù)單元生成的。
22. 如權(quán)利要求21所述的方法,其中,所述第二集合中的至少一些塊是 通過(guò)壓縮數(shù)據(jù)單元的集合而生成的。
23. 如權(quán)利要求21所述的方法,還包括提供包括用于所述第二集合中每 個(gè)塊的條目的索引,其中, 一個(gè)或多個(gè)條目基于所提供的4A值使能包括數(shù)據(jù) 單元的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。
24. 如權(quán)利要求21所述的方法,還包括 處理塊的第一和第二集合,以便恢復(fù)從其生成塊的數(shù)據(jù)單元;根據(jù)與所述數(shù)據(jù)單元對(duì)應(yīng)的鍵值的順序,排序從第一集合中恢復(fù)的數(shù)據(jù) 單元和從第二集合中恢復(fù)的數(shù)據(jù)單元,以生成排序的數(shù)據(jù)單元的集合;以及生成塊的第三集合,所述第三集合中至少一些塊的每一個(gè)是通過(guò)組合多 個(gè)排序的數(shù)據(jù)單元而生成的。
25. 如權(quán)利要求24所述的方法,其中,排序從第一集合中恢復(fù)的數(shù)據(jù)單 元和從第二集合中恢復(fù)的數(shù)據(jù)單元包括根據(jù)與數(shù)據(jù)單元對(duì)應(yīng)的鍵值的順序,合并從第一集合恢復(fù)的數(shù)據(jù)單元和從第二集合恢復(fù)的數(shù)據(jù)單元,以生成 排序的數(shù)據(jù)單元的集合。
26. 如權(quán)利要求24所述的方法,還包括提供包括用于第三集合中每個(gè)塊的條目的第三集合的索引,其中, 一個(gè)或多個(gè)條目基于所提供的鍵值使能 包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。
27. 如權(quán)利要求l所述的方法,還包括提供與所存儲(chǔ)的塊相關(guān)聯(lián)的篩 選數(shù)據(jù)結(jié)構(gòu),用于確定包括給定屬性值的數(shù)據(jù)單元包括在從其生成所述塊的 數(shù)據(jù)單元中的可能性。
28. 如權(quán)利要求27所述的方法,其中,所述屬性值包括識(shí)別數(shù)據(jù)單元的 鍵值。
29. 如權(quán)利要求27所述的方法,其中,所述篩選數(shù)據(jù)結(jié)構(gòu)對(duì)于給定屬性 值確定包括給定屬性值的數(shù)據(jù)單元肯定沒(méi)有被包括,或者包括給定屬性值的 數(shù)據(jù)單元可能被包括。
30. 如權(quán)利要求29所述的方法,其中,當(dāng)所述數(shù)據(jù)單元沒(méi)有被包括時(shí), 所述篩選數(shù)據(jù)結(jié)構(gòu)確定包括給定屬性值的數(shù)據(jù)單元可能被包括的概率取決 于所述數(shù)據(jù)結(jié)構(gòu)的大小。
31. 如權(quán)利要求30所述的方法,還包括基于從其生成所述塊的數(shù)據(jù)單元 的數(shù)目來(lái)選擇所述篩選數(shù)據(jù)結(jié)構(gòu)的大小。
32. 如權(quán)利要求1所述的方法,還包括提供與所存儲(chǔ)的塊相關(guān)聯(lián)的次級(jí) 索引,用于確定包括給定屬性值的數(shù)據(jù)單元的一個(gè)或多個(gè)鍵值。
33. 如權(quán)利要求32所述的方法,其中,所述數(shù)據(jù)單元是每一個(gè)都具有與 對(duì)應(yīng)字段相關(guān)聯(lián)的一個(gè)或多個(gè)值的記錄,識(shí)別記錄的^t值對(duì)應(yīng)于主鍵值,并 且與次級(jí)索引相關(guān)聯(lián)的屬性值對(duì)應(yīng)于輔鍵值。
34. 如權(quán)利要求32所述的方法,其中,所述次級(jí)索引包括表,該表具有 按所述數(shù)據(jù)單元中除所述鍵值之外的屬性值進(jìn)行排序的行。
35. —種用于管理數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括用于接收可單獨(dú)訪問(wèn)的數(shù)據(jù)單元的裝置,每個(gè)數(shù)據(jù)單元由鍵值來(lái)識(shí)別; 用于存儲(chǔ)多個(gè)數(shù)據(jù)塊的裝置,至少一些塊中的每一個(gè)是通過(guò)組合多個(gè)所述數(shù)據(jù)單元而生成的;以及用于提供包括用于每個(gè)所述塊的條目的索引的裝置,其中, 一個(gè)或多個(gè)條目基于所提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。
36. —種存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的用于管理數(shù)據(jù)的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于使計(jì)算機(jī)執(zhí)行以下步驟的指令接收可單獨(dú)訪問(wèn)的數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元由鍵值來(lái)識(shí)別;存儲(chǔ)多個(gè)數(shù)據(jù)塊,至少一些塊中的每一個(gè)是通過(guò)組合多個(gè)所述數(shù)據(jù)單元而生成的;以及提供包括用于每個(gè)所述塊的條目的索引,其中, 一個(gè)或多個(gè)條目基于所 提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,所述數(shù)據(jù)單元與包括所提供的鍵 值的鍵值范圍對(duì)應(yīng)。
全文摘要
提供一種用于管理數(shù)據(jù)的方法,該方法包括接收可單獨(dú)訪的數(shù)據(jù)單元,每個(gè)數(shù)據(jù)單元由鍵值來(lái)識(shí)別;存儲(chǔ)多個(gè)數(shù)據(jù)塊,至少一些塊中的每一個(gè)是通過(guò)組合多個(gè)所述數(shù)據(jù)單元而生成的;以及提供包括用于每個(gè)所述塊的條目的索引。一個(gè)或多個(gè)條目基于所提供的鍵值使能包括數(shù)據(jù)單元的塊的位置,該數(shù)據(jù)單元與包括所提供的鍵值的鍵值范圍對(duì)應(yīng)。
文檔編號(hào)G06F17/30GK101553813SQ200780040946
公開(kāi)日2009年10月7日 申請(qǐng)日期2007年10月29日 優(yōu)先權(quán)日2006年11月1日
發(fā)明者H·馬克·布羅姆利, 保羅·貝, 埃弗雷姆·M·維施尼亞克, 約翰·L·理查森, 馬歇爾·A·伊斯曼 申請(qǐng)人:起元技術(shù)有限責(zé)任公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宁河县| 康保县| 西吉县| 岚皋县| 淳安县| 苗栗县| 湄潭县| 临夏县| 五原县| 郁南县| 沂南县| 正宁县| 察雅县| 泉州市| 台南县| 财经| 安阳市| 军事| 喀喇沁旗| 沈丘县| 女性| 祁门县| 莱阳市| 鹤庆县| 汉阴县| 剑川县| 南安市| 福贡县| 双城市| 高雄市| 广州市| 潞城市| 广宁县| 东光县| 金秀| 天柱县| 普陀区| 依安县| 白河县| 固镇县| 岢岚县|