提供了在數(shù)據(jù)庫操作的執(zhí)行過程中更有效地使用CPU和易失性存儲(chǔ)器之間的I/O路徑帶寬的技術(shù)。關(guān)系表格中的關(guān)系型數(shù)據(jù)作為列向量存儲(chǔ)在易失性存儲(chǔ)器中,每個(gè)列向量包含表格的特定列的值。不論與列相關(guān)聯(lián)的數(shù)據(jù)類型是什么,可使用二進(jìn)制可比較格式表示列向量內(nèi)的每個(gè)值。在易失性存儲(chǔ)器中時(shí),列向量可被壓縮和/或編碼,并且在CPU中在飛行中被解壓縮/解碼。可替換地,CPU可設(shè)計(jì)為對壓縮和/或編碼的列向量數(shù)據(jù)直接執(zhí)行操作。另外,描述了使CPU能對列向量值執(zhí)行向量處理操作的技術(shù)。
【技術(shù)實(shí)現(xiàn)步驟摘要】
【國外來華專利技術(shù)】用于更高效地使用存儲(chǔ)器至CPU帶寬的技術(shù)相關(guān)申請的交叉引用;權(quán)益聲明本申請主張2012年10月2日提交的臨時(shí)申請61/709142和2011年12月8日提交的臨時(shí)申請61/568644的權(quán)益,根據(jù)U.S.C § 119 (e),通過引用將二者的整體內(nèi)容合并于此,如同在本文中完整闡述一樣。本申請還涉及與本申請同日提交的題為“TECHNIQUES FORMA INTAI NI NG COLUMNVECTORS OF RELAT1NAL DATAffITHIN VOLATILE MEMORY” 的美國專利申請 N0.__(代理案號50277-4068),通過引用將其內(nèi)容合并于此,如同在本文中完整闡述一樣。
本專利技術(shù)涉及關(guān)系型數(shù)據(jù)庫系統(tǒng),更特別地,涉及用于在易失性存儲(chǔ)器中以提高數(shù)據(jù)庫操作效率的方式存儲(chǔ)邏輯上存在于關(guān)系型結(jié)構(gòu)中的數(shù)據(jù)的技術(shù)。
技術(shù)介紹
關(guān)系型數(shù)據(jù)庫系統(tǒng)將數(shù)據(jù)存儲(chǔ)在諸如表和索引之類的關(guān)系型結(jié)構(gòu)中。然而,存儲(chǔ)、檢索和操縱數(shù)據(jù)的實(shí)際格式通常與表的邏輯結(jié)構(gòu)沒有關(guān)系。例如,圖1是常規(guī)關(guān)系表格100的方框圖。關(guān)系表格100包括行rl至r8和列cl至c5。每行一般對應(yīng)于一邏輯實(shí)體,每列對應(yīng)于該實(shí)體的一屬性。例如,在雇員表格中,每行可對應(yīng)于一雇員,每列可對應(yīng)于不同的雇員屬性(姓名、年齡、薪水、電話號碼等)。行和列的交叉點(diǎn)定義一單元。存儲(chǔ)在給定單元內(nèi)的值是用于與所述行相關(guān)聯(lián)的實(shí)體的、與所述列相關(guān)聯(lián)的屬性的值。例如,假設(shè)行r2與名為“Mary”的雇員相關(guān)聯(lián),并且列c2用于屬性“age”。在這種情況下,存儲(chǔ)在由行r2和列c2形成的單元內(nèi)的值(以r2c2示出)可以是17,指示Mary是17歲。已經(jīng)開發(fā)了各種數(shù)據(jù)庫語言以便容易地存取由關(guān)系型數(shù)據(jù)庫系統(tǒng)管理的數(shù)據(jù)。一種常見的數(shù)據(jù)庫語言是SQL。這種語言允許用戶形成對數(shù)據(jù)進(jìn)行引用的查詢,就像數(shù)據(jù)實(shí)際上存儲(chǔ)在關(guān)系型結(jié)構(gòu)中那樣。然而,存儲(chǔ)和訪問關(guān)系型數(shù)據(jù)的實(shí)際結(jié)構(gòu)通常比簡單二維表格復(fù)雜得多。例如,圖2示出了表格100中的數(shù)據(jù)實(shí)際上可由關(guān)系型數(shù)據(jù)庫系統(tǒng)如何存儲(chǔ)在盤200上。如圖2所示,表格的數(shù)據(jù)散布在若干盤塊(disk block) 202、212和222上。在盤塊內(nèi),任意給定行的數(shù)據(jù)一般連續(xù)存儲(chǔ)。每行的數(shù)據(jù)連續(xù)存儲(chǔ)的存儲(chǔ)格式被稱為“行優(yōu)先格式”。例如,行rl的各列的值連續(xù)存儲(chǔ)在盤塊202內(nèi)。然而,諸如行r3和r5之類的某些行的值可能實(shí)際上跨越兩個(gè)盤塊。例如,行r3的列cl和c2的值處于盤塊202中,而行r3的列c3、c4和c5的值處于盤塊212中。 存儲(chǔ)任意給定表格的數(shù)據(jù)的盤塊可以按非特定順序散布在盤各處。每個(gè)盤塊一般具有存儲(chǔ)邏輯填充表格的實(shí)際值(“關(guān)系型數(shù)據(jù)”)的部分以及存儲(chǔ)關(guān)于關(guān)系型數(shù)據(jù)的元數(shù)據(jù)的頭部。例如,盤塊202、212和222分別具有頭部204、214和224以及關(guān)系型數(shù)據(jù)部分 206、216 和 226。1996 年 3 月 11 日提交的題為 “Method and Apparatus for ProvidingIsolat1n Levels in a Database System” 的美國專利 N0.5870758 中不出 了可以在盤塊內(nèi)如何組織關(guān)系型數(shù)據(jù)的例子。圖3是可管理對表格100的訪問的典型數(shù)據(jù)庫系統(tǒng)300的框圖。參考圖3,典型的數(shù)據(jù)庫系統(tǒng)300包括存儲(chǔ)子系統(tǒng)320,數(shù)據(jù)庫系統(tǒng)300管理的數(shù)據(jù)持久地存儲(chǔ)于其上。在圖3所示的數(shù)據(jù)庫系統(tǒng)300中,存儲(chǔ)子系統(tǒng)320包括包含存儲(chǔ)表格100的關(guān)系型數(shù)據(jù)的盤塊 202,212 和 222 的盤 200。除了存儲(chǔ)子系統(tǒng)320之外,數(shù)據(jù)庫系統(tǒng)300包括易失性存儲(chǔ)器330和CPU340。典型地,用于存儲(chǔ)關(guān)系型數(shù)據(jù)的持久儲(chǔ)存器的大小顯著大于當(dāng)數(shù)據(jù)是數(shù)據(jù)庫命令的目標(biāo)時(shí)數(shù)據(jù)必須被載入其中的易失性存儲(chǔ)器330的大小。因此,關(guān)系數(shù)據(jù)庫服務(wù)器一般采用緩沖高速緩存332,數(shù)據(jù)庫服務(wù)器334將包含作為數(shù)據(jù)庫操作的目標(biāo)的數(shù)據(jù)的盤塊的拷貝暫時(shí)存儲(chǔ)在緩沖高速緩存332中。如圖3所示,響應(yīng)于盤塊202內(nèi)的某些數(shù)據(jù)是一操作的目標(biāo),盤塊202的拷貝被加載到緩沖高速緩存332中。當(dāng)數(shù)據(jù)庫服務(wù)器334執(zhí)行以存儲(chǔ)在不同盤塊內(nèi)的數(shù)據(jù)為目標(biāo)的操作時(shí),緩沖高速緩存332被這些盤塊的拷貝填充。一旦緩沖高速緩存332被填滿,將尚未加載的盤塊加載到易失性存儲(chǔ)器中就涉及替換先前加載到易失性存儲(chǔ)器中的盤塊拷貝。如果正被替換的盤塊拷貝已經(jīng)改變,則該盤塊拷貝的數(shù)據(jù)一般需要被回沖到盤。因?yàn)橥ㄟ^I/O路徑360在易失性存儲(chǔ)器330和盤之間移動(dòng)數(shù)據(jù)比通過I/O路徑350在易失性存儲(chǔ)器330和CPU340之間移動(dòng)數(shù)據(jù)慢幾個(gè)數(shù)量級,所以關(guān)系型數(shù)據(jù)庫系統(tǒng)關(guān)注最小化在存儲(chǔ)子系統(tǒng)320和易失性存儲(chǔ)器330之間發(fā)生的I/O量。例如,在題為“SelectivelyReading Data From Cache And Primary Storage” 的美國專利申請 N0.12/691146 中描述了智能地緩存關(guān)系型數(shù)據(jù)的各種技術(shù)。作為另一個(gè)例子,在題為“Structure Of HierarchicalCompressed Data Structure For Tabular Data”的美國專利申請 N0.12/617669 中描述了用于壓縮盤200上的關(guān)系型數(shù)據(jù)從而相同1/0通信量的路徑360可以移動(dòng)更多數(shù)據(jù)的各種技術(shù)。不幸地,最小化1/0路徑360上的通信量的技術(shù)可能導(dǎo)致1/0路徑350的欠佳使用。例如,因?yàn)榇鎯?chǔ)在緩沖高速緩存332中的盤塊拷貝與盤200上的盤塊具有基本相同的尺寸、內(nèi)容和組織,所以可以用最少的變換在易失性存儲(chǔ)器330和盤200之間傳輸關(guān)系型數(shù)據(jù)。然而,一旦在易失性存儲(chǔ)器330中,則該相同盤塊格式可能成為數(shù)據(jù)庫操作的有效處理的障礙。例如,查詢“select clfrom emp where c2>30”請求檢索c2中的值大于30的所有行中的列Cl的值。執(zhí)行該查詢實(shí)際所需的數(shù)據(jù)僅是emp表格的列Cl和c2的數(shù)據(jù)。換言之,為了執(zhí)行所請求的操作,列Cl和c2的值是CPU340僅需查看的值。然而,因?yàn)殛P(guān)系型數(shù)據(jù)存儲(chǔ)為緩沖高速緩存332內(nèi)的盤塊拷貝,并且在這些盤塊拷貝內(nèi)數(shù)據(jù)以行優(yōu)先格式存儲(chǔ),所以大量無關(guān)數(shù)據(jù)將通過1/0路徑350到達(dá)CPU340以便獲得執(zhí)行該操作所需的數(shù)據(jù)。在某些情況下,僅為了使CPU340能夠執(zhí)行涉及僅一或兩列的值的操作,可能數(shù)百列的值必須流過1/0路徑350。本節(jié)中描述的方案是可以尋求的方案,但是不一定是先前構(gòu)思或?qū)で筮^的方案。因此,除非另外指出,否則不應(yīng)假定本節(jié)描述的任意方案僅由于它們被包括在本節(jié)中而被限定為現(xiàn)有技術(shù)。【附圖說明】在附圖中:圖1是示出如何邏輯地組織關(guān)系表格的框圖;圖2是示出關(guān)系表格的關(guān)系型數(shù)據(jù)的典型盤上組織的框圖;圖3是示出典型的關(guān)系型數(shù)據(jù)庫系統(tǒng)的框圖;圖4是示出根據(jù)本專利技術(shù)一實(shí)施例在易失性存儲(chǔ)器內(nèi)的列向量中存儲(chǔ)關(guān)系型數(shù)據(jù)的框圖;圖5是示出兩個(gè)字節(jié)可比較的值之間的比較的框圖;圖6是示出根據(jù)本專利技術(shù)一實(shí)施例的CPU的框圖,該CPU包括用于執(zhí)行可變長度列值的芯片上填充以產(chǎn)生可用于向量處理操作的定長值的轉(zhuǎn)換邏輯器;圖7是示出根據(jù)本專利技術(shù)一實(shí)施例的CPU的框圖,該CPU配置為直接對可變長度值執(zhí)行向量處理操作;圖8是示出長度向量的本文檔來自技高網(wǎng)...

【技術(shù)保護(hù)點(diǎn)】
一種方法,包括:在易失性存儲(chǔ)器內(nèi)保持用于關(guān)系型數(shù)據(jù)庫的關(guān)系表格的多個(gè)列向量;其中所述多個(gè)列向量包括特定列向量;其中所述特定列向量連續(xù)地存儲(chǔ)來自所述關(guān)系表格的特定列的值;其中所述特定列向量內(nèi)的值以特定格式存儲(chǔ)在所述易失性存儲(chǔ)器中;其中所述特定格式是(a)壓縮格式或(b)可變寬度格式之一;在數(shù)據(jù)庫命令的執(zhí)行過程中,以所述特定格式將所述特定列向量的連續(xù)部分從所述易失性存儲(chǔ)器傳輸?shù)紺PU;其中所述連續(xù)部分包括與所述關(guān)系表格的特定列的多個(gè)值對應(yīng)的第一值集合;以及基于所述第一值集合,針對所述多個(gè)值中的每一個(gè)值,所述CPU生成對所述每一個(gè)值執(zhí)行所述數(shù)據(jù)庫命令要求的至少一個(gè)操作的結(jié)果;其中生成結(jié)果的步驟在向CPU傳輸所述連續(xù)部分之后并且在與所述多個(gè)值對應(yīng)的數(shù)據(jù)在所述易失性存儲(chǔ)器和所述CPU之間的任何進(jìn)一步傳輸之前執(zhí)行。
【技術(shù)特征摘要】
【國外來華專利技術(shù)】2011.12.08 US 61/568,644;2012.10.02 US 61/709,1421.一種方法,包括: 在易失性存儲(chǔ)器內(nèi)保持用于關(guān)系型數(shù)據(jù)庫的關(guān)系表格的多個(gè)列向量; 其中所述多個(gè)列向量包括特定列向量; 其中所述特定列向量連續(xù)地存儲(chǔ)來自所述關(guān)系表格的特定列的值; 其中所述特定列向量內(nèi)的值以特定格式存儲(chǔ)在所述易失性存儲(chǔ)器中; 其中所述特定格式是(a)壓縮格式或(b)可變寬度格式之一; 在數(shù)據(jù)庫命令的執(zhí)行過程中,以所述特定格式將所述特定列向量的連續(xù)部分從所述易失性存儲(chǔ)器傳輸?shù)紺PU ; 其中所述連續(xù)部分包括與所述關(guān)系表格的特定列的多個(gè)值對應(yīng)的第一值集合;以及基于所述第一值集合,針對所述多個(gè)值中的每一個(gè)值,所述CPU生成對所述每一個(gè)值執(zhí)行所述數(shù)據(jù)庫命令要求的至少一個(gè)操作的結(jié)果; 其中生成結(jié)果的步驟在向CPU傳輸所述連續(xù)部分之后并且在與所述多個(gè)值對應(yīng)的數(shù)據(jù)在所述易失性存儲(chǔ)器和所述CPU之間的任何進(jìn)一步傳輸之前執(zhí)行。2.如權(quán)利要求1所述的方法,其中,生成結(jié)果的步驟包括在CPU內(nèi)執(zhí)行向量處理操作,所述向量處理操作同時(shí)地生成對所述多個(gè)值中的所述每一個(gè)值執(zhí)行所述至少一個(gè)操作的結(jié)果。3.如權(quán)利要求2所述的方法,其中,執(zhí)行所述向量處理操作是響應(yīng)于單個(gè)SMD指令進(jìn)行的。4.如權(quán)利要求1所述的方法,其中: 所述數(shù)據(jù)庫命令包括指定涉及來自所述特定列的值的比較操作的謂詞;且 所述至少一個(gè)操作包括在所述謂詞中指定的所述比較操作。5.如權(quán)利要求1所述的方法,其中: 所述至少一個(gè)操作涉及來自所述特定列的值和來自所述關(guān)系表格中的與所述特定列不同的第二列的值; 其中所述多個(gè)列向量中的第二列向量對應(yīng)于所述第二列;且 該方法還包括,在所述數(shù)據(jù)庫命令的執(zhí)行過程中,從所述易失性存儲(chǔ)器向所述CPU傳輸所述第二列向量的一系列連續(xù)值。6.如權(quán)利要求1所述的方法,其中,所述特定格式是壓縮格式。7.如權(quán)利要求6所述的方法,其中: ...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:L·J·艾利松,A·加尼薩,V·瑪瓦,J·卡姆普,A·C·帕蒂哈克,S·K·查萬,M·J·格爾森,A·L·霍利維,M·巴哈塔查爾瓦,
申請(專利權(quán))人:甲骨文國際公司,
類型:發(fā)明
國別省市:美國;US
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會(huì)獲得科技券。