• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    并行數據庫中算子復用的實現方法技術

    技術編號:7071200 閱讀:266 留言:0更新日期:2012-04-11 18:40
    一種并行數據庫中算子復用的實現方法,包括如下步驟:步驟1、使用普通的查詢規劃方法為查詢生成串行的查詢計劃,所述查詢計劃是一個二叉樹結構;步驟2、自頂向下掃描執行所述查詢計劃,尋找可復用的物化類算子,并更改查詢計劃結構,將線程級物化算子改為全局復用的物化算子;步驟3、對步驟2生成的更改后的查詢計劃進行并行化處理,生成用于多個線程并行執行的計劃森林;步驟4、對步驟3生成的計劃森林進行全局復用算子合并處理,生成用于可供多個線程并行執行且可復用物化算子的有向圖計劃;步驟5、各個線程并行執行所述有向圖中的各自的計劃部分,第一個執行到全局復用算子的線程稱之為主線程,由主線程鎖住該全局復用算子并真正執行該算子及其以下的計劃,其他線程等待;步驟6、所述主線程執行完該算子之后解鎖,其他線程開始從該全局復用算子中讀取數據并繼續各自的計劃樹;步驟7、所述主線程等待所有的計劃都讀取完畢全局復用算子的數據之后釋放該算子物化的數據。

    【技術實現步驟摘要】

    本專利技術涉及一種數據庫系統,尤其是涉及一種并行數據庫的算子復用的實現方法。
    技術介紹
    隨著信息技術的發展和普及,數據正在以指數速度迅速膨脹,處理海量數據越來越成為計算機領域面臨的重要問題。數據庫領域興起的對0LAP、DSS、數據挖掘等的研究本質上都是對海量數據處理的研究。目前解決海量數據處理問題比較流行的技術是并行查詢技術和集群技術。并行查詢技術一直以來都是數據庫領域的研究熱點,學術界提出了多種并行查詢的體系架構 Share-Everything (完全共享)架構、Share-Memory (共享內存)架構、Share-Disk (共享磁盤)架構以及 Siare-Nothing (無共享)架構。Siare-Memory 架構和 Siare-Everything 架構都會共享主存儲器,進程或線程會通過內存交換數據。但是目前流行的Siare-Memory和 Share-Everything架構的并行數據庫系統都是使用共享內存進行通信和數據交換,而沒有利用多個并行進程或線程之間的算子復用。在基于分區的并行架構下,多個線程或進程獨立的執行各自的任務,同一條查詢語句的查詢內并行往往是多個進程或線程執行結構幾乎完全相同的語句,所不同的只是其中涉及到的部分表不同。在這種情況下,各個進程或線程都把各自的查詢執行一遍,而不考慮算子的復用是對資源的極大浪費。
    技術實現思路
    為了解決上述問題,本專利技術提供了一種在SM架構的并行數據庫中通過實現算子復用技術來提高系統的資源利用率和性能。本專利技術采用如下的技術方案步驟1、使用普通的查詢規劃方法,為查詢生成串行的查詢計劃,所述查詢計劃是一個二叉樹結構;步驟2、自頂向下掃描執行所述查詢計劃,尋找可復用的物化類算子,并更改查詢計劃結構,將線程級物化算子改為全局復用的物化算子;步驟3、對步驟2生成的更改后的查詢計劃進行并行化處理,生成用于多個線程并行執行的計劃森林;步驟4、對步驟3生成的計劃森林進行全局復用算子合并處理,生成用于可供多個線程并行執行且可復用物化算子的有向圖計劃;步驟5、各個線程并行執行所述有向圖中的各自的計劃部分,第一個執行到全局復用算子的線程稱之為主線程,由主線程鎖住該全局復用算子并真正執行該算子及其以下的計劃,其他線程等待;步驟6、所述主線程執行完該算子之后解鎖,其他線程開始從該全局復用算子中讀取數據并繼續各自的計劃樹;步驟7、所述主線程等待所有的計劃都讀取完畢全局復用算子的數據之后釋放該算子物化的數據。本專利技術是對SM架構的并行數據庫查詢執行流程的優化,關鍵特點在于對多個線程中相同的物化算子進行共享。和普通的并行查詢執行流程相比,不僅節省CPU和內存資源,還將少了 IO讀取,不增加任何成本。附圖說明下面結合附圖和具體實施方式對本專利技術作進一步的說明。圖1示出了步驟1生成的計劃樹結構的示意圖;圖2示出了步驟2的計劃樹結構的示意圖;圖3示出了步驟3的計劃森林結構的示意圖;圖4示出了步驟4的有向圖計劃結構的示意圖;圖5示出了計劃執行階段的數據流程圖。具體實施例方式下面結合附圖和具體實施例對本專利技術做進一步的詳細描述通過在數據庫的查詢優化階段對多線程的并行計劃進行掃描從中尋找可供復用的算子,將可供復用的算子修改為全局共享算子,并更改計劃結構,將計劃樹變成計劃森林,并進一步改寫成有向圖。通過并行執行該有向圖計劃,在計劃執行過程中復用物化算子的中間結果。本方法主要包括以下步驟計劃生成階段步驟一使用普通的查詢規劃方法,為查詢生成串行的查詢計劃,該查詢計劃是一個二叉樹結構。其中查詢涉及到分區表,因此部分葉節點是對分區表的掃描。如圖1所示,某一個查詢為 select*from A,B,P where A. a = B. b and A. a = P. ρ ;其中 Α、Β 不是分區表,P 為分區表,子分區為Pl,Ρ2。該計劃樹表明在該查詢中,首先對B表創建Hash表,由A和B表通過HashJoin方式進行連接,然后對A、B的連接的結果創建Hash表,再和P表通過HashJoin 方式進行連接。步驟二自頂向下掃描執行計劃,尋找可復用的物化類算子,并更改計劃結構,將線程級物化算子改為全局復用的物化算子。當找到一個之后,不再繼續向下掃描子樹。可復用的物化算子的判斷標準是如果某物化算子及其以下的計劃樹都不包含分區表,那么這個物化算子是可被復用的。如本例中的計劃,如圖2所示,自頂向下掃描計劃會首先發現對A、B的連接結果創建Hash表是可復用的物化算子,因此修改該Hash算子為GlobalHash算子。雖然如果繼續向下掃描會發現對B表創建Hash表也是一個可被復用的物化算子,但是因為對 B表創建Hash表是對A、B的連接結果創建Hash表的子樹,我們在尋找到一個可復用算子之后停止繼續向下掃描,因此對B表創建Hash表將不被復用。步驟三對步驟二生成的查詢計劃進行并行化處理,生成用于多個線程并行執行的計劃。 具體方法是掃描計劃中分區表,如果所有涉及到分區表分區方式相同,那么就可以把計劃復制同分區數相同的分數,并把每個計劃里的分區主表用分區子表替換,形成一個計劃森林。如圖3所示,本例中的分區表為P,分區數為2。因此將步驟二中的計劃復制為2份,并將每個計劃樹中的P表分別修改為Pl和P2。步驟四對步驟三生成的計劃森林進行全局復用算子合并處理,生成用于可供多個線程并行執行且可復用物化算子的有向圖計劃。具體方法是掃描計劃森林中各個計劃樹,遇到全局物化算子就把各個計劃樹中的相同位置的全局物化算子合并成一個。如圖4所示,本例中的計劃森林被合并成如下有向圖計劃。計劃執行階段并行計劃的執行實際上是多個線程并發執行,并互相進行數據傳輸的過程。物化算子復用技術在計劃執行過程中所做的工作就是只有一個線程實際的執行了該算子以及其之下的計劃,其他線程都沒有執行,而只是復用了結果。具體的方法是各個線程并行執行有向圖中的各自的計劃部分,第一個執行到全局復用算子的線程稱之為主線程,由主線程鎖住該全局復用算子并真正執行該算子及其以下的計劃,其他線程等待。主線程執行完該算子之后解鎖,其他線程開始從該全局復用算子中讀取數據并繼續各自的計劃樹。主線程等待所有的計劃都讀取完畢全局復用算子的數據之后釋放該算子物化的數據。本例中數據流圖如圖5所示。從圖中可以看出,兩個線程并行執行各自的Hashjoin,其中主線程要完成P1、A、B三個表的連接,而另一個線程要完成P2同A、B表的連接。但是只有主線程執行了 A與B的HashJoin以及對A、B連接結果創建Hash表,另一個線程直接從GlobalHash算子里讀取數據同P2表做Hashjoin。顯然,通過對算子的復用,對B表創建Hash表和對A、B 的連接結果創建Hash表的操作只做了一次,節省了內存和CPU資源;對A、B的連接操作只做了一次,節省了 CPU資源;對A、B表的數據讀取只做了一次,節省了 IO資源。本專利技術是對SM架構的并行數據庫查詢執行流程的優化,關鍵特點在于對多個線程中相同的物化算子進行共享。和普通的并行查詢執行流程相比,不僅節省CPU和內存資源,還將少了 IO讀取,不增加任何成本。經測試,在TPC-H100G基準測試中使用算子復用技術可將CPU資源使用率降低16%,內存使用降低32%本文檔來自技高網...

    【技術保護點】
    1.一種并行數據庫中算子復用的實現方法,包括如下步驟:步驟1、使用普通的查詢規劃方法,為查詢生成串行的查詢計劃,所述查詢計劃是一個二叉樹結構;步驟2、自頂向下掃描執行所述查詢計劃,尋找可復用的物化類算子,并更改查詢計劃結構,將線程級物化算子改為全局復用的物化算子;步驟3、對步驟2生成的更改后的查詢計劃進行并行化處理,生成用于多個線程并行執行的計劃森林;步驟4、對步驟3生成的計劃森林進行全局復用算子合并處理,生成用于可供多個線程并行執行且可復用物化算子的有向圖計劃;步驟5、各個線程并行執行所述有向圖中的各自的計劃部分,第一個執行到全局復用算子的線程稱之為主線程,由主線程鎖住該全局復用算子并真正執行該算子及其以下的計劃,其他線程等待;步驟6、所述主線程執行完該算子之后解鎖,其他線程開始從該全局復用算子中讀取數據并繼續各自的計劃樹;步驟7、所述主線程等待所有的計劃都讀取完畢全局復用算子的數據之后釋放該算子物化的數據。

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:李陽何清法顧云蘇馮柯蔣志勇徐巖饒路李曉鵬劉榮趙婧
    申請(專利權)人:天津神舟通用數據技術有限公司
    類型:發明
    國別省市:12

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 日韩av无码免费播放| 老司机无码精品A| 中国无码人妻丰满熟妇啪啪软件| 国产成人无码一区二区三区在线 | 国产精品无码专区| 日韩人妻无码精品久久免费一| 少妇人妻av无码专区| 久久人妻无码中文字幕| 办公室丝袜激情无码播放| 日韩亚洲AV无码一区二区不卡| 国产精品无码AV天天爽播放器| 亚洲va无码va在线va天堂| 人妻中文字幕AV无码专区| 亚洲AV无码成人专区| 无码人妻熟妇AV又粗又大| 日产无码1区2区在线观看| 无码少妇一区二区浪潮免费| 亚洲成AV人在线观看天堂无码| 日韩人妻无码精品无码中文字幕| 亚洲一区二区三区无码国产 | 国产成人无码AV一区二区在线观看| 无码人妻AⅤ一区二区三区| 野花在线无码视频在线播放| 蕾丝av无码专区在线观看| 亚洲国产AV无码一区二区三区| 国产精品多人p群无码| 国产台湾无码AV片在线观看| 国产高清不卡无码视频| 黑人巨大无码中文字幕无码 | 无码日本电影一区二区网站| 无码人妻精品一区二区三18禁 | 国产成人亚洲综合无码| 97无码免费人妻超级碰碰碰碰| 人妻av无码一区二区三区| 久久亚洲AV成人出白浆无码国产 | 久久无码精品一区二区三区| 狠狠久久精品中文字幕无码| 久久久国产精品无码一区二区三区| 亚洲国产av高清无码| 精品无码人妻一区二区三区| 人妻无码久久一区二区三区免费|