国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種事務(wù)分配方法和裝置的制作方法

      文檔序號(hào):6435059閱讀:177來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):一種事務(wù)分配方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,尤其涉及一種事務(wù)分配方法和裝置。
      背景技術(shù)
      數(shù)據(jù)庫(kù)管理系統(tǒng)是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來(lái)的一種較為理想的數(shù)據(jù)處理核心機(jī)構(gòu)。數(shù)據(jù)庫(kù)管理系統(tǒng)中訪(fǎng)問(wèn)并可能更新數(shù)據(jù)庫(kù)中各種數(shù)據(jù)的一個(gè)程序執(zhí)行單元稱(chēng)為事務(wù),數(shù)據(jù)庫(kù)管理系統(tǒng)中事務(wù)的運(yùn)行任務(wù)由中央處理器(Central Processing Unit, CPU)來(lái)承擔(dān)。起初,數(shù)據(jù)庫(kù)管理系統(tǒng)只使用單個(gè)單核CPU來(lái)執(zhí)行事務(wù),后來(lái),隨著用戶(hù)應(yīng)用水平的提高,只使用單個(gè)單核CPU已經(jīng)很難滿(mǎn)足實(shí)際應(yīng)用的需求,因而各廠(chǎng)商紛紛通過(guò)采用對(duì)稱(chēng)式多處理器(Symmetric Multi Processor, SMP)集群來(lái)解決這一問(wèn)題。所謂SMP系統(tǒng)是指匯集了多個(gè)單核CPU的數(shù)據(jù)庫(kù)事務(wù)執(zhí)行集群,數(shù)據(jù)庫(kù)管理系統(tǒng)將事務(wù)對(duì)稱(chēng)地分配于 SMP集群之上執(zhí)行,極大地提高了系統(tǒng)的數(shù)據(jù)處理能力。目前,多核CPU技術(shù)的出現(xiàn),大大提高了單個(gè)CPU的處理能力,因?yàn)槎嗪薈PU適合用于執(zhí)行事務(wù)內(nèi)并行度較高的事務(wù)。同時(shí),數(shù)據(jù)庫(kù)管理中,用戶(hù)應(yīng)用水平還在不斷提高,為了滿(mǎn)足更高的實(shí)際應(yīng)用的需求,用戶(hù)在SMP集群中裝備多核CPU,多核CPU可以對(duì)同一個(gè)事務(wù)中的多條語(yǔ)句進(jìn)行并行執(zhí)行,使得集群的處理能力大為增強(qiáng)。集群中裝備有核數(shù)不等的 CPU,不再是對(duì)稱(chēng)式多處理器SMP集群,而產(chǎn)生一種新的非對(duì)稱(chēng)式多處理器集群。但是,對(duì)非對(duì)稱(chēng)式多處理器集群而言,目前的事務(wù)分配方法為隨機(jī)分配CPU用于執(zhí)行事務(wù),這樣可能導(dǎo)致核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),而核少的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),造成非對(duì)稱(chēng)式多處理器集群負(fù)載失衡的問(wèn)題,降低了數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。

      發(fā)明內(nèi)容
      本發(fā)明實(shí)施例提供了一種事務(wù)分配方法和裝置,用于在非對(duì)稱(chēng)式多處理器集群中,根據(jù)事務(wù)的事務(wù)內(nèi)并行度將事務(wù)分配到合適的CPU中執(zhí)行,解決非對(duì)稱(chēng)式多處理器集群負(fù)載失衡的問(wèn)題,提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。一種事務(wù)分配方法,包括獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度;根據(jù)所述事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序;根據(jù)中央處理器CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序;將所述排序后的隊(duì)列中的事務(wù)依次分配給所述排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。一種事務(wù)分配裝置,包括并行度獲取模塊,用于獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度;事務(wù)排序模塊,用于根據(jù)所述事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序;中央處理器CPU排序模塊,用于根據(jù)中央處理器CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序;分配模塊,用于將所述排序后的隊(duì)列中的事務(wù)依次分配給所述排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)根據(jù)事務(wù)的事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)事務(wù)進(jìn)行排序,再根據(jù)CPU的核數(shù),按照前述的排序規(guī)則對(duì)空閑CPU進(jìn)行排序,最后將排序后的事務(wù)依次分配到排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),實(shí)現(xiàn)非對(duì)稱(chēng)式多處理器集群負(fù)載平衡,從而提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。


      圖1為本發(fā)明第一實(shí)施例的事務(wù)分配方法基本流程圖;圖2為本發(fā)明第二實(shí)施例的事務(wù)分配方法詳細(xì)流程圖;圖3為本發(fā)明第二實(shí)施例舉例事務(wù)的資源前趨圖;圖4為本發(fā)明第三實(shí)施例的事務(wù)分配方法詳細(xì)流程圖;圖5為本發(fā)明第三實(shí)施例舉例事務(wù)的資源前趨圖;圖6為本發(fā)明第四實(shí)施例的事務(wù)分配裝置基本結(jié)構(gòu)圖;圖7為本發(fā)明第五實(shí)施例的事務(wù)分配裝置詳細(xì)結(jié)構(gòu)圖。
      具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種事務(wù)分配方法,用于在非對(duì)稱(chēng)式多處理器集群中,根據(jù)事務(wù)的事務(wù)內(nèi)并行度將事務(wù)分配到合適的CPU中執(zhí)行,解決非對(duì)稱(chēng)式多處理器集群負(fù)載失衡的問(wèn)題,提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。本發(fā)明實(shí)施例還提供用于實(shí)現(xiàn)該方法的相關(guān)裝置, 以下將分別進(jìn)行詳細(xì)說(shuō)明。本發(fā)明第一實(shí)施例的事務(wù)分配方法基本流程請(qǐng)參見(jiàn)圖1,主要包括步驟101、獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度。數(shù)據(jù)庫(kù)管理系統(tǒng)獲取隊(duì)列中每一個(gè)事務(wù)的事務(wù)內(nèi)并行度。其中,一個(gè)事務(wù)的事務(wù)內(nèi)并行度為某個(gè)數(shù)值N,即該事務(wù)內(nèi)最多有N條語(yǔ)句可并行執(zhí)行,為了避免在執(zhí)行該事務(wù)過(guò)程中出現(xiàn)可并行語(yǔ)句等待的情況,需要分配核數(shù)為N的CPU 來(lái)執(zhí)行該事務(wù),這樣則正好能夠避免可并行的語(yǔ)句等待,同時(shí)也不會(huì)造成CPU資源的浪費(fèi)。102、根據(jù)事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)步驟101中所獲取的隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度,按照預(yù)先設(shè)定的排序規(guī)則對(duì)隊(duì)列中的所有事務(wù)進(jìn)行排序。103、根據(jù)CPU的計(jì)算核數(shù)量,按照排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)CPU的計(jì)算核數(shù)量,按照與步驟102中所使用的排序規(guī)則相同的排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。104、將排序后的隊(duì)列中的事務(wù)依次分配給排序后的CPU中執(zhí)行。
      數(shù)據(jù)庫(kù)管理系統(tǒng)將步驟102中排序后的隊(duì)列中的事務(wù)依次分配給步驟103中排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),如此操作,完成事務(wù)分配工作。本實(shí)施例中,步驟102和步驟103中所述的排序規(guī)則的設(shè)定需滿(mǎn)足本實(shí)施例方法的實(shí)施需要,即按照該排序規(guī)則進(jìn)行排序后的事務(wù)分配到按照該排序規(guī)則進(jìn)行排序后CPU 中執(zhí)行,需使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。本實(shí)施例方法,首先獲取事務(wù)的事務(wù)內(nèi)并行度,根據(jù)事務(wù)的事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)事務(wù)進(jìn)行排序,再根據(jù)CPU的核數(shù),按照前述的排序規(guī)則對(duì)空閑CPU進(jìn)行排序,最后將排序后的事務(wù)依次分配到排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),實(shí)現(xiàn)非對(duì)稱(chēng)式多處理器集群負(fù)載平衡, 從而提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。本發(fā)明第二實(shí)施例將對(duì)第一實(shí)施例的事務(wù)分配方法進(jìn)行詳細(xì)描述,本發(fā)明第二實(shí)施例的事務(wù)分配方法詳細(xì)流程請(qǐng)參見(jiàn)圖2,主要包括步驟201、獲取等待隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句的資源快照。數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)所述等待隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句進(jìn)行預(yù)編譯,即對(duì)其進(jìn)行語(yǔ)法和詞法分析。具體操作是找出語(yǔ)句中的操作關(guān)鍵字和操作對(duì)象。語(yǔ)句中的操作關(guān)鍵字有4個(gè)選擇select、插入insert、刪除delete和更新update,其中,除select為讀操作外,其余均為寫(xiě)操作。操作對(duì)象是指被操作的數(shù)據(jù)表。經(jīng)過(guò)上述語(yǔ)法分析和詞法分析,可得到語(yǔ)句的資源快照,所述資源快照用于指示所述語(yǔ)句的讀資源集合和寫(xiě)資源集合。例如,資源快照的形式為77:{冼坍—{(^}。其中乂代表事務(wù)的唯一編號(hào),y代表事務(wù)中語(yǔ)句的順序號(hào),集合{A,B}代表讀操作的操作對(duì)象為表 A和表B的數(shù)據(jù),集合{C}代表寫(xiě)操作把數(shù)據(jù)寫(xiě)入操作對(duì)象表C。集合{A,B}為語(yǔ)句 7的讀資源集合,集合{C}為語(yǔ)句的寫(xiě)資源集合。202、根據(jù)所述資源快照,獲取所述語(yǔ)句的讀資源集合和寫(xiě)資源集合。資源快照用于指示所述等待隊(duì)列中事務(wù)中的語(yǔ)句的讀資源集合和寫(xiě)資源集合,系統(tǒng)可根據(jù)資源快照獲取所述語(yǔ)句的讀資源集合和寫(xiě)資源集合。203、根據(jù)讀資源集合和寫(xiě)資源集合,為等待隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)步驟202中所獲取的讀資源集合和寫(xiě)資源集合,為等待隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖,所述資源前趨圖指示所述事務(wù)中語(yǔ)句間的依賴(lài)關(guān)系。其中,事務(wù)中的每條語(yǔ)句在資源前趨圖中表示為一個(gè)節(jié)點(diǎn)。例如,一個(gè)事務(wù)中有9 條語(yǔ)句,依次為El E9,任意兩條語(yǔ)句第一語(yǔ)句和第二語(yǔ)句有依賴(lài)關(guān)系,即第一語(yǔ)句的讀資源集合和第二語(yǔ)句的寫(xiě)資源集合的交集不為空,或第一語(yǔ)句的寫(xiě)資源集合和第二語(yǔ)句的讀資源集合的交集不為空,或第一語(yǔ)句的寫(xiě)資源集合和第二語(yǔ)句的寫(xiě)資源集合的交集不為空,則在代表第一語(yǔ)句和第二語(yǔ)句的兩個(gè)節(jié)點(diǎn)間畫(huà)一條有方向的線(xiàn)段,方向?yàn)橛纱砼判蜉^前的語(yǔ)句的節(jié)點(diǎn)指向代表排序較后的語(yǔ)句的節(jié)點(diǎn)。假設(shè)為上述事務(wù)建立的資源前趨圖如圖3。204、計(jì)算資源前趨圖的寬度,資源前趨圖的寬度等于事務(wù)的事務(wù)內(nèi)并行度。如圖3所示的資源前趨圖,計(jì)算圖中入度為0的節(jié)點(diǎn)個(gè)數(shù),圖中只有El的入度為0,記資源前趨圖寬度為max = 1 ;去除入度為0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后El以及以El為起點(diǎn)的有向線(xiàn)段被去除,此時(shí)入度為0的節(jié)點(diǎn)個(gè)數(shù)為3,這三個(gè)節(jié)點(diǎn)為E2、E3和E4,因?yàn)楸静僮髦腥攵葹?的節(jié)點(diǎn)個(gè)數(shù)比上一操作中入度為0的節(jié)點(diǎn)的個(gè)數(shù)大,則記資源前趨圖寬度為max = 3,否則保持max值不變;去除入度為0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后入度為0的節(jié)點(diǎn)個(gè)數(shù)為2,這兩個(gè)節(jié)點(diǎn)為E4和E5,保持max = 3不變;去除入度為0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后入度為0的節(jié)點(diǎn)個(gè)數(shù)為4,這兩個(gè)節(jié)點(diǎn)為E4、E6、E7和E8,記max = 4 ;去除入度為 0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后入度為O的節(jié)點(diǎn)個(gè)數(shù)為3,這三個(gè)節(jié)點(diǎn)為E4、E8和E9,保持max = 4不變。所以獲取到的所述資源前趨圖的寬度為4,其事務(wù)的內(nèi)事務(wù)并行度為4。205、根據(jù)事務(wù)內(nèi)并行度,按照降序排列規(guī)則對(duì)等待隊(duì)列中的事務(wù)進(jìn)行排序。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)步驟204中所獲取的等待隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度,按照降序排列規(guī)則對(duì)等待隊(duì)列中的所有事務(wù)進(jìn)行排序。206、根據(jù)CPU的計(jì)算核數(shù)量,按照降序排列規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)CPU的計(jì)算核數(shù)量,按照與步驟205中相同的降序排列規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。207、將排序后的等待隊(duì)列中的事務(wù)依次分配給排序后的CPU中執(zhí)行。數(shù)據(jù)庫(kù)管理系統(tǒng)將步驟205中排序后的等待隊(duì)列中的事務(wù)依次分配給步驟206中排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),如此操作,完成事務(wù)分配工作。本實(shí)施例中,步驟205和步驟206中所述的排序規(guī)則的設(shè)定滿(mǎn)足本實(shí)施例方法的實(shí)施需要,即按照降序排列規(guī)則進(jìn)行排序后的事務(wù)分配到按照該排序規(guī)則進(jìn)行排序后CPU 中執(zhí)行,使核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。本實(shí)施例方法,首先獲取等待隊(duì)列每個(gè)事務(wù)中每條語(yǔ)句的資源快照,通過(guò)所述資源快照獲取語(yǔ)句的寫(xiě)資源集合和讀資源集合,從而建立每個(gè)事務(wù)的資源前趨圖,再計(jì)算該資源前趨圖的寬度,得到事務(wù)的事務(wù)內(nèi)并行度,根據(jù)事務(wù)的事務(wù)內(nèi)并行度,按照降序排列規(guī)則對(duì)事務(wù)進(jìn)行排序,再根據(jù)CPU的核數(shù),按照前述的降序排列規(guī)則對(duì)空閑CPU進(jìn)行排序,最后將排序后的事務(wù)依次分配到排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),實(shí)現(xiàn)非對(duì)稱(chēng)式多處理器集群負(fù)載平衡, 從而提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。本發(fā)明第三實(shí)施例將對(duì)第一實(shí)施例的事務(wù)分配方法進(jìn)行詳細(xì)描述,本發(fā)明第三實(shí)施例的事務(wù)分配方法詳細(xì)流程請(qǐng)參見(jiàn)圖4,主要包括步驟401、獲取等待隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句的資源快照。數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)所述等待隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句進(jìn)行預(yù)編譯,即對(duì)其進(jìn)行語(yǔ)法和詞法分析。具體操作是找出語(yǔ)句中的操作關(guān)鍵字和操作對(duì)象。語(yǔ)句中的操作關(guān)鍵字有4個(gè)選擇select、插入insert、刪除delete和更新update,其中,除select為讀操作外,其余均為寫(xiě)操作。操作對(duì)象是指被操作的數(shù)據(jù)表。
      6
      經(jīng)過(guò)上述語(yǔ)法分析和詞法分析,可得到語(yǔ)句的資源快照,所述資源快照用于指示所述語(yǔ)句的讀資源集合和寫(xiě)資源集合。例如,資源快照的形式為77:{冼坍—{(^}。其中乂代表事務(wù)的唯一編號(hào),y代表事務(wù)中語(yǔ)句的順序號(hào),集合{A,B}代表讀操作的操作對(duì)象為表 A和表B的數(shù)據(jù),集合{C}代表寫(xiě)操作把數(shù)據(jù)寫(xiě)入操作對(duì)象表C。集合{A,B}為語(yǔ) 句的讀資源集合,集合{C}為語(yǔ)句的寫(xiě)資源集合。402、根據(jù)所述資源快照,獲取所述語(yǔ)句的讀資源集合和寫(xiě)資源集合。資源快照用于指示所述等待隊(duì)列中事務(wù)中的語(yǔ)句的讀資源集合和寫(xiě)資源集合,系統(tǒng)可根據(jù)資源快照獲取所述語(yǔ)句的讀資源集合和寫(xiě)資源集合。403、根據(jù)讀資源集合和寫(xiě)資源集合,為等待隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)步驟402中所獲取的讀資源集合和寫(xiě)資源集合,為等待隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖,所述資源前趨圖指示所述事務(wù)中語(yǔ)句間的依賴(lài)關(guān)系。其中,事務(wù)中的每條語(yǔ)句在資源前趨圖中表示為一個(gè)節(jié)點(diǎn)。例如,一個(gè)事務(wù)中有9 條語(yǔ)句,依次為Fl F9,任意兩條語(yǔ)句第一語(yǔ)句和第二語(yǔ)句有依賴(lài)關(guān)系,即第一語(yǔ)句的讀資源集合和第二語(yǔ)句的寫(xiě)資源集合的交集不為空,或第一語(yǔ)句的寫(xiě)資源集合和第二語(yǔ)句的讀資源集合的交集不為空,或第一語(yǔ)句的寫(xiě)資源集合和第二語(yǔ)句的寫(xiě)資源集合的交集不為空,則在代表第一語(yǔ)句和第二語(yǔ)句的兩個(gè)節(jié)點(diǎn)間畫(huà)一條有方向的線(xiàn)段,方向?yàn)橛纱砼判蜉^前的語(yǔ)句的節(jié)點(diǎn)指向代表排序較后的語(yǔ)句的節(jié)點(diǎn)。假設(shè)為上述事務(wù)建立的資源前趨圖如圖5。404、計(jì)算資源前趨圖的寬度,資源前趨圖的寬度等于事務(wù)的事務(wù)內(nèi)并行度。如圖5所示的資源前趨圖,計(jì)算圖中入度為0的節(jié)點(diǎn)個(gè)數(shù),圖中只有Fl的入度為 0,記資源前趨圖寬度為max = 1 ;去除入度為0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后Fl以及以Fl為起點(diǎn)的有向線(xiàn)段被去除,此時(shí)入度為0的節(jié)點(diǎn)個(gè)數(shù)為3,這三個(gè)節(jié)點(diǎn)為F2、F3和F4,因?yàn)楸静僮髦腥攵葹?的節(jié)點(diǎn)個(gè)數(shù)比上一操作中入度為0的節(jié)點(diǎn)的個(gè)數(shù)大,則記資源前趨圖寬度為max = 3,否則保持max值不變;去除入度為0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后入度為0的節(jié)點(diǎn)個(gè)數(shù)為2,這兩個(gè)節(jié)點(diǎn)為F4和F5,保持max = 3不變;去除入度為0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后入度為0的節(jié)點(diǎn)個(gè)數(shù)為4,這兩個(gè)節(jié)點(diǎn)為F4、F6、F7和F8,記max = 4 ;去除入度為 0的節(jié)點(diǎn)和以這些入度為0的節(jié)點(diǎn)為起點(diǎn)的有向線(xiàn)段,保留出度為0的節(jié)點(diǎn),此操作步驟后入度為O的節(jié)點(diǎn)個(gè)數(shù)為3,這三個(gè)節(jié)點(diǎn)為F4、F8和F9,保持max = 4不變。所以獲取到的所述資源前趨圖的寬度為4,其事務(wù)的內(nèi)事務(wù)并行度為4。405、根據(jù)事務(wù)內(nèi)并行度,按照升序排列規(guī)則對(duì)等待隊(duì)列中的事務(wù)進(jìn)行排序。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)步驟404中所獲取的等待隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度,按照升序排列規(guī)則對(duì)等待隊(duì)列中的所有事務(wù)進(jìn)行排序。406、根據(jù)CPU的計(jì)算核數(shù)量,按照升序排列規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。數(shù)據(jù)庫(kù)管理系統(tǒng)根據(jù)CPU的計(jì)算核數(shù)量,按照與步驟405中相同的升序排列規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。407、將排序后的等待隊(duì)列中的事務(wù)依次分配給排序后的CPU中執(zhí)行。數(shù)據(jù)庫(kù)管理系統(tǒng)將步驟405中排序后的等待隊(duì)列中的事務(wù)依次分配給步驟406中排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),如此操作,完成事務(wù)分配工作。本實(shí)施例中,步驟405和步驟406中所述的排序規(guī)則的設(shè)定滿(mǎn)足本實(shí)施例方法的實(shí)施需要,即按照降序排列規(guī)則進(jìn)行排序后的事務(wù)分配到按照該排序規(guī)則進(jìn)行排序后CPU 中執(zhí)行,使核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。本實(shí)施例方法,首先獲取等待隊(duì)列每個(gè)事務(wù)中每條語(yǔ)句的資源快照,通過(guò)所述資源快照獲取語(yǔ)句的寫(xiě)資源集合和讀資源集合,從而建立每個(gè)事務(wù)的資源前趨圖,再計(jì)算該資源前趨圖的寬度,得到事務(wù)的事務(wù)內(nèi)并行度,根據(jù)事務(wù)的事務(wù)內(nèi)并行度,按照降序排列規(guī)則對(duì)事務(wù)進(jìn)行排序,再根據(jù)CPU的核數(shù),按照前述的降序排列規(guī)則對(duì)空閑CPU進(jìn)行排序,最后將排序后的事務(wù)依次分配到排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),實(shí)現(xiàn)非對(duì)稱(chēng)式多處理器集群負(fù)載平衡, 從而提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。本發(fā)明第四實(shí)施例的事務(wù)分配裝置結(jié)構(gòu)請(qǐng)參見(jiàn)圖6,主要包括并行度獲取模塊601,并行度獲取模塊601獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度,并將所述事務(wù)內(nèi)并行度數(shù)據(jù)發(fā)送至事務(wù)排序模塊602。事務(wù)排序模塊602,事務(wù)排序模塊602接收并行度獲取模塊601發(fā)送的事務(wù)內(nèi)并行度數(shù)據(jù),并根據(jù)事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序。CPU排序模塊603,CPU排序模塊603根據(jù)中央處理器CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。分配模塊604,分配模塊604將排序后的隊(duì)列中的事務(wù)依次分配給排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。本實(shí)施例方法,首先并行度獲取模塊601獲取事務(wù)的事務(wù)內(nèi)并行度,事務(wù)排序模塊602根據(jù)事務(wù)的事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)事務(wù)進(jìn)行排序,CPU排序模塊603根據(jù) CPU的核數(shù),按照前述的排序規(guī)則對(duì)空閑CPU進(jìn)行排序,最后分配模塊604將排序后的事務(wù)依次分配到排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的 CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),實(shí)現(xiàn)非對(duì)稱(chēng)式多處理器集群負(fù)載平衡,從而提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。本發(fā)明第五實(shí)施例將對(duì)第四實(shí)施例中的事務(wù)分配裝置進(jìn)行詳細(xì)描述,第五實(shí)施例的事務(wù)分配裝置詳細(xì)結(jié)構(gòu)圖請(qǐng)參見(jiàn)圖7,主要包括并行度獲取模塊701,并行度獲取模塊701獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度,并將所述事務(wù)內(nèi)并行度數(shù)據(jù)發(fā)送至事務(wù)排序模塊702。并行度獲取模塊701還包括資源快照獲取單元7011,資源快照獲取單元7011獲取隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句的資源快照;資源集合獲取單元7012,資源集合獲取單元7012根據(jù)資源快照獲取單元7011所獲取的資源快照,獲取語(yǔ)句的讀資源集合和寫(xiě)資源集合;前趨圖建立單元7013,前趨圖建立單元7013根據(jù)資源集合獲取單元7012所獲取的讀資源集合和寫(xiě)資源集合,為隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖;前趨圖寬度計(jì)算單元7014,前趨圖寬度計(jì)算單元7014計(jì)算前趨圖建立單元7013所建立的資源前趨圖的寬度,所述資源前趨圖的寬度等于所述隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度。事務(wù)排序模塊702,事務(wù)排序模塊702接收并行度獲取模塊701發(fā)送的事務(wù)內(nèi)并行度數(shù)據(jù),并根據(jù)事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序。CPU排序模塊703,CPU排序模塊703根據(jù)中央處理器CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序。分配模塊704,分配模塊704將排序后的隊(duì)列中的事務(wù)依次分配給排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。本實(shí)施例方法,首先資源快照獲取單元7011獲取隊(duì)列每個(gè)事務(wù)中每條語(yǔ)句的資源快照,資源集合獲取單元7012通過(guò)所述資源快照獲取語(yǔ)句的寫(xiě)資源集合和讀資源集合, 從而前趨圖建立單元7013建立每個(gè)事務(wù)的資源前趨圖,前趨圖寬度計(jì)算單元7014再計(jì)算資源前趨圖的寬度,即得到事務(wù)的事務(wù)內(nèi)并行度,事務(wù)排序模塊702根據(jù)事務(wù)的事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)事務(wù)進(jìn)行排序,CPU排序模塊703根據(jù)CPU的核數(shù),按照前述的排序規(guī)則對(duì)空閑CPU進(jìn)行排序,最后分配模塊704將排序后的事務(wù)依次分配到排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù),實(shí)現(xiàn)非對(duì)稱(chēng)式多處理器集群負(fù)載平衡,從而提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。以上對(duì)本發(fā)明所提供的一種事務(wù)分配方法和裝置進(jìn)行了詳細(xì)介紹,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在具體實(shí)施方式
      及應(yīng)用范圍上均會(huì)有改變之處, 綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
      權(quán)利要求
      1.一種事務(wù)分配方法,其特征在于,包括 獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度;根據(jù)所述事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序; 根據(jù)中央處理器CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序;將所述排序后的隊(duì)列中的事務(wù)依次分配給所述排序后的CPU中執(zhí)行,使得核數(shù)多的 CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度包括步驟獲取隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句的資源快照,所述資源快照用于指示所述語(yǔ)句的讀資源集合和寫(xiě)資源集合,所述讀資源集合為所述語(yǔ)句中讀操作的操作對(duì)象的集合,所述寫(xiě)資源集合為所述語(yǔ)句中寫(xiě)操作的操作對(duì)象的集合;根據(jù)所述資源快照,獲取所述語(yǔ)句的讀資源集合和寫(xiě)資源集合; 根據(jù)所述讀資源集合和寫(xiě)資源集合,為隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖,所述資源前趨圖用于指示所述事務(wù)中語(yǔ)句間的依賴(lài)關(guān)系;計(jì)算所述資源前趨圖的寬度,所述資源前趨圖的寬度等于所述隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度。
      3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于, 所述排序規(guī)則為升序排列規(guī)則或降序排列規(guī)則。
      4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于, 所述隊(duì)列為等待隊(duì)列。
      5.一種事務(wù)分配裝置,其特征在于,包括并行度獲取模塊,用于獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度;事務(wù)排序模塊,用于根據(jù)所述事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序;中央處理器CPU排序模塊,用于根據(jù)CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序;分配模塊,用于將所述排序后的隊(duì)列中的事務(wù)依次分配給所述排序后的CPU中執(zhí)行, 使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。
      6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述并行度獲取模塊包括資源快照獲取單元,用于獲取隊(duì)列中每個(gè)事務(wù)中的每條語(yǔ)句的資源快照,所述資源快照用于指示所述語(yǔ)句的讀資源集合和寫(xiě)資源集合,所述讀資源集合為所述語(yǔ)句中讀操作的操作對(duì)象的集合,所述寫(xiě)資源集合為所述語(yǔ)句中寫(xiě)操作的操作對(duì)象的集合;資源集合獲取單元,用于根據(jù)所述資源快照,獲取所述語(yǔ)句的讀資源集合和寫(xiě)資源集合;前趨圖建立單元,用于根據(jù)所述讀資源集合和寫(xiě)資源集合,為隊(duì)列中的每個(gè)事務(wù)建立資源前趨圖,所述資源前趨圖用于指示所述事務(wù)中語(yǔ)句間的依賴(lài)關(guān)系;前趨圖寬度計(jì)算單元,用于計(jì)算所述資源前趨圖的寬度,所述資源前趨圖的寬度等于所述隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度。
      全文摘要
      本發(fā)明實(shí)施例公開(kāi)了一種事務(wù)分配方法和裝置,用于在非對(duì)稱(chēng)式多處理器集群中,根據(jù)事務(wù)的事務(wù)內(nèi)并行度將事務(wù)分配到合適的中央處理器CPU中執(zhí)行。本發(fā)明實(shí)施例方法包括獲取隊(duì)列中的每個(gè)事務(wù)的事務(wù)內(nèi)并行度;根據(jù)所述事務(wù)內(nèi)并行度,按照排序規(guī)則對(duì)隊(duì)列中的事務(wù)進(jìn)行排序;根據(jù)CPU的計(jì)算核數(shù)量,按照所述排序規(guī)則對(duì)系統(tǒng)中的空閑CPU進(jìn)行排序;將所述排序后的隊(duì)列中的事務(wù)依次分配給所述排序后的CPU中執(zhí)行,使得核數(shù)多的CPU執(zhí)行事務(wù)內(nèi)并行度高的事務(wù),核少的CPU執(zhí)行事務(wù)內(nèi)并行度低的事務(wù)。通過(guò)實(shí)施本發(fā)明的技術(shù)方案,能夠解決非對(duì)稱(chēng)式多處理器集群負(fù)載失衡的問(wèn)題,提高數(shù)據(jù)庫(kù)管理系統(tǒng)的性能。
      文檔編號(hào)G06F17/30GK102306205SQ20111030334
      公開(kāi)日2012年1月4日 申請(qǐng)日期2011年9月30日 優(yōu)先權(quán)日2011年9月30日
      發(fā)明者趙雷 申請(qǐng)人:蘇州大學(xué)
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1