[發(fā)明專利]用于數(shù)據(jù)庫計算引擎的分離處理路徑有效
| 申請?zhí)枺?/td> | 201210438550.2 | 申請日: | 2012-09-21 |
| 公開(公告)號: | CN103177059A | 公開(公告)日: | 2013-06-26 |
| 發(fā)明(設(shè)計)人: | D·貝烏姆吉斯;C·本斯伯格;L·弗里克 | 申請(專利權(quán))人: | SAP股份公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京市柳沈律師事務(wù)所 11105 | 代理人: | 邵亞麗 |
| 地址: | 德國瓦*** | 國省代碼: | 德國;DE |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 數(shù)據(jù)庫 計算 引擎 分離 處理 路徑 | ||
技術(shù)領(lǐng)域
此處描述的主題涉及用于使用分離處理路徑在一個或多個表上執(zhí)行操作的計算模型。
背景技術(shù)
近些年,計算機處理硬件的中央處理單元(CPU)一般通過增加處理器核心的數(shù)量而非通過提高時鐘頻率經(jīng)歷了最大的性能提升。因此,為了最大化性能,現(xiàn)代軟件通過允許并行執(zhí)行并具有適合核心數(shù)量的規(guī)模的架構(gòu),有利地使用了多核CPU的益處。對于數(shù)據(jù)管理系統(tǒng),充分利用并行處理能力通常需要把存儲的數(shù)據(jù)分區(qū)為部分或“分區(qū)”為計算可以并行執(zhí)行。
數(shù)據(jù)庫程序或數(shù)據(jù)庫管理系統(tǒng)通常把數(shù)據(jù)顯示為列和行的二維表,然而,數(shù)據(jù)通常存儲為一維串?;谛械拇鎯νǔσ恍械闹狄黄鹦蛄谢?,然后是下一行的值,等等,而基于列的存儲通常對一列的值一起序列化,然后是下一列的值,等等。
通常,當(dāng)需要在許多行上但僅需要為數(shù)據(jù)所有列的尤其小的子集計算聚集的時候,基于列的系統(tǒng)更有效率,因為讀取較小的數(shù)據(jù)子集比讀取全部數(shù)據(jù)要快。當(dāng)一列的新值被一次提供到所有行的時候,基于列的系統(tǒng)可以更有效率,因為該列數(shù)據(jù)可以高效地寫入并替換舊的列數(shù)據(jù)而不接觸行的其它列。當(dāng)同時需要單獨行的許多列,以及當(dāng)行尺寸相對小的時候,由于整個行可以使用單一的磁盤尋道檢索,基于行的系統(tǒng)可以更有效率。當(dāng)寫入一個新行時如果所有列數(shù)據(jù)在同時被提供,由于整個行可以使用單一的磁盤尋道寫入,基于行的系統(tǒng)也可以更有效率。
基于列的存儲可以幫助使用多處理器核心并行地執(zhí)行操作。在列存儲中,數(shù)據(jù)被縱向的分區(qū),所以在不同的列上的操作可以容易地并行處理。如果多個列需要搜索或聚集,每個這些操作可以分配到不同的處理器核心。另外,一個列上的操作可以通過分區(qū)該列為多個由不同處理器核心處理的部分而并行處理。列數(shù)據(jù)通常是相同的類型,這能為在基于列的數(shù)據(jù)存儲可獲得而在基于行的數(shù)據(jù)存儲中不能獲得的存儲容量優(yōu)化創(chuàng)造機會。例如,一些現(xiàn)代壓縮方案可以利用相鄰數(shù)據(jù)的相似性進行壓縮。為了改進基于列數(shù)據(jù)的壓縮,通常的方法涉及到對行進行分類(sorting)。例如,使用位圖索引,分類通常可以提高壓縮近似一個數(shù)量級。在傳統(tǒng)的系統(tǒng)中,按列的壓縮一般以檢索效率為代價獲得存儲空間需求的減少。當(dāng)數(shù)據(jù)位于單獨的位置時從單一的行中檢索全部數(shù)據(jù)是更有效的,比如在基于行的架構(gòu)中。進一步,獲得越大的相鄰壓縮,隨機存儲就會越難,因為數(shù)據(jù)通常需要解壓以讀取。因此,傳統(tǒng)的基于列的架構(gòu)通常通過旨在最小化存取壓縮數(shù)據(jù)需求的額外機制得到加強。這些額外機制可以導(dǎo)致更低的壓縮有效率和/或存取壓縮數(shù)據(jù)的增加的處理需求。
當(dāng)前可用的關(guān)系數(shù)據(jù)庫管理系統(tǒng)可以基于應(yīng)用于分離數(shù)據(jù)庫的指定標(biāo)準(zhǔn)完成分區(qū)。一般來說,利用分區(qū)關(guān)鍵值來基于特定標(biāo)準(zhǔn)分配分區(qū)。通常使用的方法包括范圍分區(qū),列表分區(qū),散列分區(qū),循環(huán)(round?robin)分區(qū)以及混合(composite)分區(qū)。在范圍分區(qū)中,可以通過確定分區(qū)關(guān)鍵值是否在特定范圍之內(nèi)來定義分區(qū)。例如,可以創(chuàng)建一個分區(qū),其包含在其中郵政編碼的列的值在70000到79999之間的所有行。在列表分區(qū)中,可以為分區(qū)分配列表的值并且如果分區(qū)關(guān)鍵值具有在該列表上的值中的一個值,則可以選擇該分區(qū)。例如,建立一個包含北歐國家相關(guān)數(shù)據(jù)的分區(qū),該分區(qū)可以包括在其中國家名稱的列包含文本串的值為冰島、挪威、瑞典、芬蘭、丹麥等等的所有行。在散列分區(qū)中,散列函數(shù)的值可以確定分區(qū)中的成員。例如,對于具有四個分區(qū)的分區(qū)方案,散列函數(shù)可以返回0到3中的一個值以指定四個分區(qū)之一。循環(huán)分區(qū)可以用于在多個數(shù)據(jù)分區(qū)和/或服務(wù)器或者服務(wù)器進程之間,按照可用分區(qū)或服務(wù)器或服務(wù)器進程之間的預(yù)設(shè)循環(huán),分配存儲和/或處理負(fù)載。舉例來說,第一數(shù)據(jù)單元可以被定向到三個分區(qū)中的第一分區(qū),第二數(shù)據(jù)單元可以被定向到第二分區(qū),第三數(shù)據(jù)單元可以被定向到第三分區(qū),第四數(shù)據(jù)單元可以被定向到第一分區(qū),如此繼續(xù)。在混合分區(qū)中,可以允許其它分區(qū)方案的特定組合,例如通過首先應(yīng)用范圍分區(qū)然后應(yīng)用散列分區(qū)來組合。
發(fā)明內(nèi)容
一方面,一種方法包括在計算模型內(nèi)定義的動態(tài)分離節(jié)點接收由基于該計算模型產(chǎn)生的計算計劃正在操作的數(shù)據(jù)。應(yīng)用一分區(qū)規(guī)范到包含至少一些所接收數(shù)據(jù)的表的一個或多個參考列。該應(yīng)用使表被分離使得表中的多個記錄根據(jù)分區(qū)規(guī)范被分區(qū)。為每個分區(qū)設(shè)置一單獨的處理路徑,使用該單獨處理路徑從分離節(jié)點繼續(xù)執(zhí)行計算計劃使得每個單獨的處理路徑被分配到多個可用處理節(jié)點中的一個處理節(jié)點。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于SAP股份公司,未經(jīng)SAP股份公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210438550.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





