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

并行化查詢的多核調(diào)度的制作方法

文檔序號:6579313閱讀:200來源:國知局
專利名稱:并行化查詢的多核調(diào)度的制作方法
技術(shù)領(lǐng)域
本說明書涉及并行化查詢執(zhí)行的多核查詢調(diào)度。
背景技術(shù)
大型數(shù)據(jù)庫和其他軟件應(yīng)用的大小在該應(yīng)用的使用上可能是一個限制因素,特別 是當應(yīng)用/數(shù)據(jù)的查詢和其他操作本身很長并且很復(fù)雜時。例如,用戶可能想要發(fā)布一個 復(fù)雜的查詢以便從具有成千上萬個記錄的相關(guān)數(shù)據(jù)庫中獲得結(jié)果,在這種情況下,提供相 應(yīng)查詢結(jié)果的響應(yīng)時間可能長得難以接受。此外,該情況可能促使可用計算資源的無效使 用,例如,通過允許一個用戶相對其他當前用戶過度地消耗該資源。作為減輕該問題的方法,多核(例如,多個CPU)計算系統(tǒng)的使用方便了并行查詢 執(zhí)行的發(fā)展。例如,通過使用兩個可用核,可以相互并行地計算多個查詢(和/或它的多個 部分)。從而,例如,兩個等效的查詢可以在小于執(zhí)行其中之一應(yīng)當花費的時間的雙倍時間 內(nèi)執(zhí)行。然而,難以采用有效的或最佳的方式實現(xiàn)這樣的并行查詢的實施。例如,存在與多 個核分攤/分配多個查詢相關(guān)聯(lián)的成本,以及與重新結(jié)合或合并查詢結(jié)果相關(guān)聯(lián)的成本。 例如,根據(jù)討論中的查詢的性質(zhì)以及并行化的程度,這些成本可能限制并且可能最終壓制 或掩沒并行化的好處。而且,一個或多個正在運行的查詢的運行時環(huán)境的復(fù)雜性和不可預(yù)見性可能加劇 多核并行查詢處理的難度。例如,即使在討論中的查詢(或多個查詢)的運行時之前將并 列查詢的可接受計劃公式化,也可能發(fā)生以下情況可能發(fā)生降低所計劃的查詢調(diào)度的功 效或愿望的運行時事件(例如,當處理核具有遠大于或遠小于預(yù)期的運行時可用性時)。因此,并行化查詢(或它的部分)的多核處理的有效調(diào)度是一個困難以及重大挑 戰(zhàn)。在這點上的失敗可能非常限制可用計算資源的效率以及可用人力資源的生產(chǎn)力。

發(fā)明內(nèi)容
根據(jù)一個一般方面,包含記錄在計算機可讀介質(zhì)上的指令的系統(tǒng)可以包括操作 符管理器,其被配置成用于確定可用核的數(shù)量并且在查詢的多個操作符之間分配核,存在 通過含有操作符的運行中集合的操作符的多個查詢路徑。操作符管理器可以包括狀態(tài)監(jiān) 視器,配置成用于確定可用核的數(shù)量并且確定操作符的運行中集合;關(guān)鍵路徑選擇器,配置 成用于從查詢路徑以及操作符的運行中集合中確定查詢的關(guān)鍵路徑;以及工作量管理器, 配置成給運行中集合以及關(guān)鍵路徑的運行中的操作符分配可用核的第一個核,并且此后從 關(guān)鍵路徑選擇器接收新關(guān)鍵路徑并且給該新關(guān)鍵路徑的運行中的操作符分配可用核的第 二個核。實施方式可以具有一個或多個以下特征。例如,關(guān)鍵路徑選擇器可以配置成確定 關(guān)鍵路徑,包括對每個查詢路徑的操作符的操作符執(zhí)行時間總計以及之后選擇具有最大的 查詢路徑總計執(zhí)行時間作為關(guān)鍵路徑。關(guān)鍵路徑選擇器可以配置成通過在為運行中集合以及關(guān)鍵路徑的運行中的操作符分配第一個核之后,為每個查詢路徑重新計算總計操作符執(zhí) 行時間并且選擇具有最大的查詢路徑總計執(zhí)行時間的新關(guān)鍵路徑來確定新關(guān)鍵路徑。關(guān)鍵 路徑選擇器可以配置成確定新關(guān)鍵路徑,包括在給運行中集合以及關(guān)鍵路徑的運行中的操 作符分配第一個核之后,為每個查詢路徑計算總計操作符執(zhí)行時間;確定潛在的關(guān)鍵路徑 用于給運行中集合以及潛在的關(guān)鍵路徑的運行中的操作符分配第二個核,該潛在的關(guān)鍵路 徑具有最大的查詢路徑總計執(zhí)行時間;根據(jù)工作量管理器確定給運行中集合以及潛在的關(guān) 鍵路徑的運行中的操作符分配第二個核將不會提供它的執(zhí)行時間上的凈利益;并且確定具 有第二大的查詢路徑總計執(zhí)行時間的新關(guān)鍵路徑。工作量管理器可以配置成分配第一個核,包括確定運行中集合以及關(guān)鍵路徑的運 行中的操作符的減函數(shù),第一個核的分配將導(dǎo)致它的執(zhí)行時間的凈減。操作符管理器可以 配置成繼續(xù)給查詢路徑的運行中的操作符分配可用的核,直到工作量管理器根據(jù)運行中的 操作符的減函數(shù)確定給任何運行中的操作符分配任何可用核都不會導(dǎo)致它的執(zhí)行時間的 減少為止。狀態(tài)監(jiān)視器可以配置成檢測狀態(tài)的變化,包括新的可用或不可用核、查詢的運行 中的操作符的開始或完成,并且可以配置成根據(jù)狀態(tài)的變化停止或開始操作符管理器的操 作。系統(tǒng)可以包括配置成確定包括所述查詢的多個查詢的查詢管理器,其中該查詢管 理器包括查詢選擇器,配置成確定可用核的總數(shù)量以及配置成給操作符管理器分配可用 核的總數(shù)量的可用核用于通過所述核并行處理查詢;以及查詢監(jiān)視器,配置成監(jiān)視多個查 詢以便確定它們的狀態(tài)。在這種情況下,查詢選擇器可以配置成確定與多個查詢相關(guān)聯(lián)的樹的形狀并且根 據(jù)樹的形狀和可用核的總數(shù)量確定多查詢處理算法。查詢選擇器可以配置成實施包括剩 余時間最短任務(wù)優(yōu)先(SRJF)算法的多查詢處理算法,根據(jù)該算法查詢監(jiān)視器從多個查詢 中選擇用最短剩余時間來完成的查詢,并且查詢選擇器給該查詢分配可用核以便由操作符 管理器在它的并行處理中使用。查詢選擇器可以配置成實施包括利益驅(qū)動平衡關(guān)鍵路徑 (BD-BCP)算法的多查詢處理算法,根據(jù)該算法執(zhí)行循環(huán)賽,在該循環(huán)賽中查詢監(jiān)視器從多 個查詢中根據(jù)向它分配核的經(jīng)驗選擇具有最大利益的查詢,并且查詢選擇器給該查詢分配 第一個核,隨之繼續(xù)該循環(huán)賽,查詢監(jiān)視器根據(jù)從多個可用核向它分配核的經(jīng)驗選擇具有 下一個最大利益的下一個查詢。根據(jù)另一個一般方面,一種計算機實現(xiàn)的方法可以包括確定含有多個操作符的 查詢,該操作符包括操作符的運行中集合,存在通過該集合的多個查詢路徑;確定可用核的 數(shù)量,根據(jù)多個查詢路徑的每一個的總計執(zhí)行時間確定多個查詢路徑的關(guān)鍵路徑;給運行 中集合以及關(guān)鍵路徑中的第一操作符分配第一個可用核;根據(jù)該分配確定通過多個查詢路 徑的新關(guān)鍵路徑;以及給運行中集合以及新關(guān)鍵路徑中的第二操作符分配第二可用核。實施方式可以具有一個或多個以下特征。例如,確定關(guān)鍵路徑可以包括總計每個 查詢路徑的操作符的操作符執(zhí)行時間,并且選擇具有最大的查詢路徑總計執(zhí)行時間作為關(guān) 鍵路徑。分配第一個可用核可以包括確定與運行中集合以及關(guān)鍵路徑中的第一操作符相關(guān) 的減函數(shù),該第一個可用核的分配將導(dǎo)致它的執(zhí)行時間的減少。確定新關(guān)鍵路徑可以包括在給運行中集合以及關(guān)鍵路徑中的第一操作符分配了 第一個可用核之后為每個查詢路徑計算總計操作符執(zhí)行時間;確定潛在關(guān)鍵路徑,用于給
6運行中集合以及潛在關(guān)鍵路徑的運行中的操作符分配第二可用核,該潛在關(guān)鍵路徑具有最 大的查詢路徑總計執(zhí)行時間;確定給運行中集合以及潛在關(guān)鍵路徑的運行中的操作符分配 第二可用核將不會提供它的執(zhí)行時間的凈利益;以及確定具有下一個最大的查詢路徑總計 執(zhí)行時間作為新關(guān)鍵路徑。確定查詢可以包括從多個查詢中確定所述查詢;確定核的總數(shù)量,以及確定多 個查詢中具有最短剩余時間來完成的查詢;以及根據(jù)所確定的具有最短剩余時間來完成的 查詢,給該查詢分配核總數(shù)量的可用核。確定查詢可以包括從多個查詢中確定所述查詢; 確定核的總數(shù)量,為多個查詢的每一個設(shè)計與查詢執(zhí)行時間的減少相關(guān)聯(lián)的有益長度,該 執(zhí)行時間的減少是由于給每個查詢分配核總數(shù)量的至少一個核以便通過所述核進行處理 而引起的;根據(jù)該設(shè)計給查詢分配核總數(shù)量的至少一個核;根據(jù)該分配為多個查詢的每一 個重新設(shè)計有益長度;以及根據(jù)該重新設(shè)計給查詢分配核總數(shù)量的至少第二核,核總數(shù)量 的第一個和第二核由此構(gòu)成查詢的可用核。根據(jù)另一個一般方面,計算機程序產(chǎn)品可以有形地具體實施到計算機可讀介質(zhì)上 并且可以包括指令,當執(zhí)行時,該指令配置成確定包括多個操作符的查詢,該操作符包括 操作符的運行中集合,存在通過該集合的多個查詢路徑;確定可用核的數(shù)量;根據(jù)多個查 詢路徑的每一個的總計執(zhí)行時間確定多個查詢路徑的關(guān)鍵路徑,給運行中集合以及關(guān)鍵路 徑中的第一操作符分配第一個可用核;根據(jù)該分配確定通過多個查詢路徑的新關(guān)鍵路徑; 以及給運行中集合以及新關(guān)鍵路徑中的第二操作符分配第二個可用核。實施方式可以具有一個或多個以下特征。例如,可以通過對每個查詢路徑的操作 符的操作符執(zhí)行時間總計并且選擇具有最大的查詢路徑總計執(zhí)行時間的關(guān)鍵路徑來確定 關(guān)鍵路徑??梢酝ㄟ^以下方式來分配第一個可用核根據(jù)與運行中集合以及關(guān)鍵路徑中的 第一操作符相關(guān)的減函數(shù)確定給它分配第一個可用核將導(dǎo)致它的執(zhí)行時間的減少。在附圖和下面的說明中闡述了一個或多個實施例的細節(jié)。根據(jù)說明書以及附圖, 并且根據(jù)權(quán)利要求,其它特征將是顯而易見的。


圖1是用于調(diào)度并行化查詢的多核查詢調(diào)度系統(tǒng)的框圖。圖2是由圖1的系統(tǒng)執(zhí)行的多個查詢的框圖。圖3是示出使用圖1的系統(tǒng)、用于查詢的操作符的示例性調(diào)度函數(shù)的框圖。圖4是示出圖1的系統(tǒng)的示例性操作的流程圖。圖5是示出使用圖1的系統(tǒng)執(zhí)行圖2的查詢的示例性操作的流程圖。圖6是示出使用圖1的系統(tǒng)執(zhí)行圖3的查詢的示例性操作的流程圖。圖7A和7B是示出圖5的操作的示例性結(jié)果的圖表。圖8A和8B是示出圖6的操作的示例性結(jié)果的圖表。
具體實施例方式圖1是用于調(diào)度并行查詢的多核查詢調(diào)度系統(tǒng)100的框圖。系統(tǒng)100中,查詢調(diào) 度器102被配置成調(diào)度多個查詢104、106、108以及每個單獨查詢的多個部分(例如,操作 符)的并行執(zhí)行。系統(tǒng)100能夠在執(zhí)行查詢104、106、108的運行時期間以下面的方式提供這些并行執(zhí)行以最佳的并且動態(tài)的方式利用可用計算資源,同時最小化或避免這樣的情 況,其中與并行化相關(guān)聯(lián)的開銷壓制或掩沒了并行化的好處。圖1中,查詢調(diào)度器102與計算設(shè)備110相關(guān)聯(lián)(例如,可以在計算設(shè)備110上執(zhí) 行或者與之相關(guān)聯(lián))。計算設(shè)備110,其可以代表不止一個計算設(shè)備,將被理解成與公知的 硬件和軟件組件相關(guān)聯(lián),因此不需要在這里詳細描述它們。為了理解圖1的操作,計算設(shè)備 110被圖解為包含數(shù)據(jù)庫應(yīng)用112或者與之相關(guān)聯(lián),其可以被理解成代表,例如,任何相關(guān) 的數(shù)據(jù)庫和關(guān)聯(lián)組件(例如,數(shù)據(jù)庫管理系統(tǒng)(DBMS)、索引、圖表和/或?qū)嶋H數(shù)據(jù))。因此,查詢104、106、108可以被呈現(xiàn)給數(shù)據(jù)庫應(yīng)用112,以便從其獲得查詢結(jié)果。 在本上下文中,可以理解的是,術(shù)語“查詢”通常用于表示實際上可以由計算設(shè)備110使用 數(shù)據(jù)庫應(yīng)用112或其他相應(yīng)應(yīng)用來并行執(zhí)行的任何任務(wù)。例如,除了從數(shù)據(jù)庫中檢索數(shù)據(jù), 查詢104、106、108還可以表示請求由應(yīng)用執(zhí)行計算的查詢或其他任務(wù),該應(yīng)用之后應(yīng)當返 回它的結(jié)果。根據(jù)并行計算的領(lǐng)域,其他這樣的使用和示例將是清楚的,并且不必在這里討 論,所以應(yīng)當理解的是,所提供的示例僅僅是為了說明以及示例而被包括于此,并且因此不 應(yīng)當被認為是限定性的。計算設(shè)備110被圖示為包括多個核114、116、118。在這點上,術(shù)語“核”應(yīng)當被理解 為指代或包括多個計算平臺,在這些平臺中可以使用多個處理器、中央處理單元(CPU)或 其他處理資源,包括網(wǎng)絡(luò)/設(shè)備群。例如,并行查詢處理被稱為用于改善現(xiàn)有SMP/CMP (對 稱多處理/芯片級多處理)服務(wù)器的數(shù)據(jù)庫性能的一個選項,特別是對于能夠有效處理大 量數(shù)據(jù)和復(fù)雜查詢的高性能數(shù)據(jù)庫系統(tǒng)。因此,在本說明書中,應(yīng)當理解的是,術(shù)語“核”表 示具有在其中多個處理選項可用的任意這種環(huán)境內(nèi)的處理能力的單元。在這樣的環(huán)境中,已知的是,核114、116、118可以被動態(tài)地分配給多個應(yīng)用或它 們的任務(wù)。例如,在圖1中,為了說明可以在應(yīng)用112、120(或者它們的任務(wù))內(nèi)部以及之 間分配核114、116、118這一點,示出了獨立的應(yīng)用120。例如,在給定的時間,核114、116可 以被分配到數(shù)據(jù)庫應(yīng)用112,同時核118可以被分配到應(yīng)用120。在這樣的例子中,可以是 這樣數(shù)據(jù)庫應(yīng)用112的任務(wù)被視為比應(yīng)用120的那些任務(wù)更重要或更緊急,所以為了加快 處理數(shù)據(jù)庫應(yīng)用112的任務(wù)(例如,處理查詢104、106、108),將兩個核114、116分配到數(shù)據(jù) 庫應(yīng)用112。具體來說,每個查詢104、106、108可以包括多個操作符,諸如查詢104的操作符 120-128。這些操作符可以表示與數(shù)據(jù)庫應(yīng)用112相關(guān)的各種查詢操作(諸如,例如,用于 從數(shù)據(jù)庫應(yīng)用112選擇數(shù)據(jù)的“選擇”操作,或者用于結(jié)合其數(shù)據(jù)的“結(jié)合”操作,下面提供 了這些操作更加詳細的例子和說明)。操作符可以形成具有反映查詢的根本特性和結(jié)構(gòu)的 特征形狀的樹。下面提供了這些操作符樹的更詳細的例子和說明。在上面的例子中,可以將核114、116中的一個或兩個都分配給查詢104 ( S卩,給它 的操作符120-128)。一般而言,像剛才所描述的那樣,可以預(yù)期的是,給特殊的操作符/任 務(wù)諸如操作符120分配兩個核114、116將導(dǎo)致該操作符比只分配給它核114或116中的 一個完成得更快。例如,每個操作符120-128被示為具有這樣的數(shù)字對其代表核114、116 中的一個或兩個被分配給相應(yīng)操作符這兩種可能性。因此,操作符120被示為具有數(shù)字對 4/3,該數(shù)字對表示僅用分配給它的一個核114用4個時間單位將它完成,而使用分配給它 的兩個核114、116用3個時間單位將它完成。類似地,操作符122、124、126的數(shù)字對4/3,8/5和3/2分別表示為每個操作符分配兩個核114、116的好處。然而,如上所述,分配越多的核將導(dǎo)致越快地處理任務(wù)這樣的一般假定可能不總 是正確的。例如,操作符128被示為具有數(shù)字對3/3,其表示操作符128花費了 3個時間單 位而無論是給它分配了核114、116中的一個還是兩個。在這種情況下,明顯可見,給操作符 128分配第二個核最多是不好不壞,并且通常將表示對努力和計算資源的潛在浪費,這些 努力和計算資源用到別處可能更好(例如,使用核之一來處理查詢106或者應(yīng)用120的任 務(wù))。關(guān)于為什么操作符的執(zhí)行時間一般不與分配給它的核的數(shù)量按正比或線性比例 減少(例如,加倍所分配核的數(shù)量的結(jié)果不會導(dǎo)致執(zhí)行時間的減半),存在許多可能原因。 下面詳細地討論了這些原因的示例。通常,一個可能的重要原因涉及與配置和執(zhí)行討論中 的操作符的并行化處理相關(guān)的計算開銷,討論中的操作符例如操作符120。在這點上,查詢調(diào)度器102被示為包括開銷管理器130,其被配置成使用例如核 114,116配置并執(zhí)行例如操作符120的并行化處理。例如,為了給操作符120分配兩個核 114、116,操作符120的某些操作或計算必須分配給核114,而其他的分配給核116。然而, 由于在單個操作符120內(nèi),這些操作可以相互依賴,所以,例如,必須決定哪些操作分配給 哪個核,和/或如何從操作符120中分離這些操作,以及最后如何合并回操作符120中。為 了確保滿意的結(jié)果,通常必須追蹤(track)并管理這些劃分。此外,可以根據(jù)相關(guān)系統(tǒng)結(jié)構(gòu) (例如,計算設(shè)備110的)和/或根據(jù)討論中的操作符120的特性有區(qū)別地產(chǎn)生并行操作的 這些分離/追蹤/合并。為了給出一些具體的示例,公知的是,在相關(guān)數(shù)據(jù)庫系統(tǒng)中存在用于數(shù)據(jù)處理的 多個操作符,可以采用一種或多種方式并行化其中的每個操作符。例如,對于‘選擇’操作 符,數(shù)據(jù)表可以被劃分成多個部分并且可以在這些部分上并行地處理選擇。然后來自這些 部分的結(jié)果可以被集中在一起用于輸出。如果在選擇條件下表格的屬性是按區(qū)間劃分的, 則只需要處理這些部分的子集。對于‘排序(sort) ’操作符,表格首先可以被簡單劃分并且 局部地排序每個部分,然后可以應(yīng)用合并排序(merge-sort)以便獲得最終結(jié)果。這可能導(dǎo) 致合并階段相當大的開銷。對于‘計劃(project)’操作符,當并行地選擇所有的數(shù)據(jù)時,可 以執(zhí)行不需要副本刪除(duplicate elimination)的計劃。如果需要副本刪除,則一旦在 并行排序中發(fā)現(xiàn)這些副本就可以刪除它們。對于‘結(jié)合(join)’操作符,存在許多并行結(jié)合 算法,其中許多算法共享這樣的思想持續(xù)劃分兩個結(jié)合表格然后并行地結(jié)合相應(yīng)部分。作 為最后一個示范性操作符,對于‘總計(aggregate) ’操作符,也可以劃分表格并且在每個部 分上局部地計算該集合。然后,可以集中來自每個部分的結(jié)果以便計算最終結(jié)果。如上述討論所示,可以采用劃分和合并(partition-and-merge)的方式并行化多 數(shù)的數(shù)據(jù)庫操作符。如上所述,雖然并行化執(zhí)行一個操作符具有減少總體執(zhí)行時間的潛在 好處,但是當過多地并行化操作符時,由于并行化造成的開銷可能抵消該好處。如由開銷管 理器130管理的開銷,可能主要由以下原因造成例如,(1)啟動成本(即,開始并行操作所 需的時間),(2)終止成本(即,結(jié)束并行操作所需的時間,諸如合并結(jié)果),以及(3)同步 成本(即,每個并行處理相互同步所需的時間)。通常,并行化的程度越高可能導(dǎo)致越嚴重 的資源競爭,嚴重地降低并行化效果。在術(shù)語中,將多個核分配給單個操作符以及包括相關(guān)聯(lián)開銷管理的操作符的操作的最終并行化,是指操作符內(nèi)部的并行化。該操作符內(nèi)部的并行化可以與操作符之間的并 行化相對照,其中,如下面詳細描述的,可用核盡可能被分配給多個運行中的操作符。例如, 不是將兩個核114、116都分配給操作符120 (操作符內(nèi)部的并行化),而是,查詢調(diào)度器102 可以將核114分配給操作符120,與此同時,將核116分配給操作符122(操作符之間的并行 化)。如下面詳細說明的,查詢調(diào)度器102被配置成確定是否、何時以及如何將核114、 116、118中的一些或全部分配給一個或多個查詢104、106、108,以及一旦分配完畢,則確定 是否以及如何在單個查詢(例如,查詢104)內(nèi)使用一個或兩個操作符內(nèi)部和/或操作符之 間的并行化。也就是說,除了做出關(guān)于單個查詢104的決定之外,查詢調(diào)度器102可以配置 成在查詢104、106、108本身內(nèi)部以及這些查詢之間分配核114、116、118。在分離的查詢中 (與在單個查詢的操作符中相對)分配核114、116、118在這里被稱為查詢之間的并行化。因此,查詢調(diào)度器102包括用于管理查詢之間的并行化的查詢管理器132以及用 于管理查詢內(nèi)部的并行化的操作符管理器134(例如,操作符內(nèi)部和/或操作符之間的并行 化)。例如,查詢管理器132可以負責(zé)確定應(yīng)當將三個核114、116、118還是兩個核114、116 分配給查詢104,剩余的一個核118分配給查詢106,而沒有核分配給查詢108 (直到至少完 成了其他的查詢104、106之一為止或者直到更多的核變得可用為止)。在另一個例子中,查 詢管理器132可以將全部三個核分配給查詢104直到完成查詢,然后可以將全部三個核分 配給查詢106直到完成查詢,然后分配給查詢108,直到該組查詢104、106、108完成為止。當然,除了這些組合之外的其他示范性組合也是可能的,但是通常如下所述,查詢 管理器132可以負責(zé)分配核114、116、118以便總體上最小化查詢組104、106、108的平均響 應(yīng)時間(或者獲得一些其他的性能度量)。因此,查詢選擇器136可以負責(zé)選擇哪個查詢 104、106、108接收哪個(以及多少)核114、116、118。查詢監(jiān)視器138監(jiān)視查詢并且當需要 附加的動作時,通知查詢選擇器136。例如,如果查詢管理器132的查詢計劃是給查詢104、 106,108中具有最短剩余時間去完成的查詢分配所有的核114、116、118,則可以首先將所 有的核114、116、118分配給查詢104。然后,查詢監(jiān)視器138監(jiān)視查詢104的執(zhí)行,并且檢 測查詢104何時完成,在該時間點核114、116、118可能是空閑的,并且查詢選擇器136可以 確定之后查詢108具有最短的剩余時間去完成,從而將核114、116、118分配給查詢108。下 面例如針對圖2提供了查詢管理器132的操作的進一步描述和例子。在查詢選擇器136給給定查詢(諸如查詢104)分配了核114、116、118中的某 些或全部的時間內(nèi),操作符管理器134負責(zé)在該查詢的操作符(例如,查詢104的操作符 120-128)內(nèi)部以及之間分配可用核。例如,如果查詢選擇器136給查詢104分配核114、 116,并且給查詢106分配核118,則操作符管理器134可以被配置成在查詢104的操作符 120-128內(nèi)部以及之間分配核114、116。這種通過操作符管理器134在查詢104的操作符120-128內(nèi)部以及它們之間進行 的分配核114、116(或者其他可用核)可能發(fā)生,諸如上面所述的操作符內(nèi)部以及操作符之 間并行化的組合??梢詮纳厦娴恼f明中看到,在該上下文中給操作符分配多個核可以相當 可觀地減少它的執(zhí)行時間(例如,操作符124被示為當被分配第二個核116時,其執(zhí)行時間 從8個時間單位減少到5個時間單位)。另一方面,由于并行化開銷以及其他可能的原因, 這種逐漸增加或已增加的核的數(shù)量的分配可能不會導(dǎo)致該操作符的執(zhí)行時間有任何相應(yīng)減少(諸如操作符128,無論使用了一個還是兩個核,其都花費3個時間單位來執(zhí)行)。擴展這個概念,顯而易見的是,給單個操作符分配多個核在某種程度上實際上變 得適得其反并且導(dǎo)致該操作符執(zhí)行時間變得更長而不是更短。例如,還是關(guān)于操作符128, 可以看到,分配第三個核118可能容易導(dǎo)致操作符128的執(zhí)行時間增加到4個時間單位。再 有,這可能是由于這樣的事實,與并行化操作符128的并行化開銷相關(guān)的計算考慮可能掩 沒了向它的處理貢獻額外的核的所有好處。在本說明書中,這種操作符的執(zhí)行時間與分配給它的多個核之間的關(guān)系在這里被 稱為該操作符的減函數(shù)f。p (η),所以對于討論中的操作符,對于給定數(shù)量“η”的核,估計執(zhí) 行時間EET= [11[&1)(11)],其中11表示用11=1的一個核執(zhí)行操作符所需的時間。因此, 操作符的執(zhí)行時間的減少(或者缺少)被表示為分配給它的核的數(shù)量的函數(shù)。因此,對于 操作符的三個因子,執(zhí)行時間ΕΕΤ、核的數(shù)量‘η’以及減函數(shù)f。p(η),應(yīng)當明顯看到,可以使 用這三個因子的任意兩個來推導(dǎo)第三個??梢愿鶕?jù)經(jīng)驗確定給定操作符的減函數(shù),或者在 某些情況下可以根據(jù)討論中的操作符的知識、相關(guān)的系統(tǒng)結(jié)構(gòu)以及影響減函數(shù)的其他特征 來推導(dǎo)該函數(shù)。下面討論這種減函數(shù)的特征和例子,并且圖3中示出了不同的相應(yīng)操作符 的示例性減函數(shù)。除了執(zhí)行操作符內(nèi)部并行化之外,核114、116、118以及查詢調(diào)度器102可以用于 執(zhí)行操作符之間的并行化,如上所述。在這種情況下,多個核每次都被盡可能地分配給多個 不同的(運行中的)操作符。因此,圖1中,如上所述,給操作符120分配兩個核114、116 而不給操作符122分配(至少直到操作符120完成才分配給操作符122)是操作符內(nèi)部并 行化的一個例子。相反,通過給操作符120分配一個核而給操作符122分配另一個核來分 配兩個核114、116提供了操作符之間的并行化的例子。在兩個例子中,兩個核114、116被 一起并行使用,但是在第一個(操作符內(nèi)部)例子中,核114、116用于討論中的單個操作符 120,而在第二個(操作符之間)例子中,兩個核114、116被分別并且單獨應(yīng)用到兩個操作 符 120、122。這兩個不同類型的并行化具有不同的特征和優(yōu)點/缺點,并且因此可以或多或少 適合于最小化給定查詢的(即,它的操作符的)執(zhí)行時間。例如,通常,可以理解的是,操作 符內(nèi)部與操作符之間的并行化之間通常存在一個折衷。具體來說,操作符內(nèi)部并行化通常 是不受操作符之間的相關(guān)性限制的。然而,操作符內(nèi)部并行化的開銷可能隨著并行化的程 度增加而增長。與此同時,查詢評估樹(例如,線性樹或濃密樹(bushy tree),如下面結(jié)合 圖5以及圖7A/7B所述)的形狀可能很大程度地影響操作符之間的并行化。例如,線性樹 可以為并行執(zhí)行提供比濃密樹更少的機會。另一方面,操作符之間的并行化不必要求頻繁 的劃分和合并,這使得并行化的開銷相對較小。因此,操作符內(nèi)部并行化可能遭受如上所述的并行化開銷。與此同時,操作符之間 的并行化可能遭受這樣的事實只可能盡可能快地以最慢的路徑允許的速度那樣執(zhí)行通過 操作符樹的路徑的查詢。在說明這點的簡單例子中,可以理解的是,如果給操作符樹的三個 主要并行分支中的每一個都分配核114、116、118中單獨的一個,則最慢的分支將指示完成 查詢的總體時間,這是因為,即使快速地完成了其他兩個分支(以及相應(yīng)的核),查詢作為 一個整體也將被迫等待其余的/最慢的路徑。圖1的查詢104的例子可以說明執(zhí)行操作符內(nèi)部和/或之間的并行化的某些不同特征。例如,如果給查詢104分配兩個核114、116,并且最大化操作符內(nèi)部的并行化,則兩 個核114、116每次都將被正確地分配給一個就緒/運行中的操作符。例如,可以首先將核 114、116分配給操作符120,在操作符120完成之后,可以將核114、116分配給操作符122, 然后分配給操作符124,然后分配給操作符126,然后分配給操作符128。因此查詢104的總 執(zhí)行時間(根據(jù)與各個相關(guān)聯(lián)的數(shù)字對所確定的那樣)是3+3+5+2+3 = 16個時間單位。相反,如果操作符之間的并行化被最大化,如上所述,則核114、116每次都將被盡 可能分配給多個操作符。例如,首先將兩個核114、116分別分配給操作符120和122,然后 分別分配給操作符124和126。在這一點,只有操作符128會被剩下,因此將兩個核分配給 操作符128。因此在這種情況下,查詢104的總執(zhí)行時間將是4+8+3 = 15 (這里,在該計算 中,操作符120、122花費相同的時間去完成,并且操作符126的執(zhí)行時間被包含在操作符 124的執(zhí)行時間內(nèi),該執(zhí)行時間更長)。在最后一個例子中,可以以混合方式使用操作符內(nèi)部以及操作符之間的并行化。 例如,首先給操作符120、122分別分配兩個核114、116,并且給操作符124分配兩個核。在 操作符124完成之后,可以將核114、116繼續(xù)分配給操作符126和128。因此在該例子中, 查詢104的總執(zhí)行時間是4+5+2+3 = 14,它是三個例子中最好的。因此,上面的例子說明,諸如查詢104這樣的查詢最佳執(zhí)行時間不但依賴于查詢 計劃的特性(即,每個操作符的執(zhí)行時間以及操作符之間的相關(guān)性)而且依賴于并行化執(zhí) 行具體的操作符的開銷。即,如果操作符依賴于另一個操作符的完成,則相互依賴的操作符 之間的核的分配將只是盡可能有助于最慢路徑上的操作符的執(zhí)行時間。然而,試圖通過增 加最慢路徑上操作符的操作符內(nèi)部并行化來減少最慢路徑上操作符的執(zhí)行時間,這可能與 充足的并行化開銷相關(guān)聯(lián),該開銷抵消或掩沒最慢路徑的或者作為整體來說的查詢的并行 化的好處。在這點上,上面提及的最慢路徑是在這里被稱為關(guān)鍵路徑(或CP)的一個例子。更 一般地,這樣的查詢的關(guān)鍵路徑是查詢內(nèi)的一組操作符,形成一個從當前運行中的操作符 之一到出口操作符的路徑,該路徑的計算成本的總和是最大的。這里可以使用查詢的關(guān)鍵 路徑CP的長度(CPL)作為查詢內(nèi)CP的每個操作符的單獨估計執(zhí)行時間的總和。用于確定 每個單獨操作符的估計執(zhí)行時間的某些技術(shù)是公知的,并且下面提供與本說明書有關(guān)的或 對理解本說明書有用的具體例子。在操作符管理器134的實踐中,狀態(tài)監(jiān)視器140可以用于監(jiān)視查詢104的操作符 120-128的當前狀態(tài)和/或用于確定核114、116、118的當前狀態(tài)(例如,在給定的時間所給 的核是否可用)。因此,狀態(tài)監(jiān)視器140可以用于確定操作符120-128的當前運行中的集 合(RS)。例如,在查詢104中,可能發(fā)生的是,操作符120必須在任何其他操作符122-126 可能開始之前完成,在這種情況下操作符120可能是運行中的集合的唯一成員。另一個例 子中,可以并行執(zhí)行操作符120和122,所以操作符120、122可以是當前運行中的集合(RS) 的成員。當狀態(tài)監(jiān)視器140確定運行中的集合的操作符之一完成時,狀態(tài)監(jiān)視器140就可 以確定一個新的運行中的集合,該集合減去了至少已完成的操作符并且可以增加任何新開 始的操作符。關(guān)鍵路徑選擇器142可以從狀態(tài)監(jiān)視器輸入信息并且確定討論中的查詢的當前 的關(guān)鍵路徑。例如,如剛才所提及的,關(guān)鍵路徑選擇器142可以確定當前運行中的集合的每個操作符,并且可以使用每個路徑的每個操作符的估計執(zhí)行時間(EET)并且假設(shè)為每個非 運行中的操作符(即,操作符的非運行中的集合的成員)分配/將分配一個核,來為每個這 樣的操作符計算用于完成(例如,用于操作符128的完成)的所有可能路徑。因此,可以看 到的是,在具有并行執(zhí)行線程的查詢中,在任意給定的時刻將會發(fā)生,在每個線程內(nèi)將運行 /執(zhí)行零個或者一個操作符。從每個這樣的運行中的操作符開始,查詢路徑從那開始到查詢 的結(jié)束一直存在。因此,這樣的操作符的運行中的集合可以用于定義多個查詢路徑,從其中 選擇關(guān)鍵路徑用于執(zhí)行算法。在圖1中,操作符120、122可以構(gòu)成操作符的運行中集合的成員,所以第一查詢路 徑將從運行中的操作符120到結(jié)束操作符128 —直存在,而第二查詢路徑將從運行中的操 作符122到結(jié)束操作符128 —直存在。因此,狀態(tài)監(jiān)視器140可以檢測這些操作符120、122 正在運行以及核114、116可用于在查詢104內(nèi)進行分配。然后,關(guān)鍵路徑選擇器142可以 確定在運行中的操作符120開始的查詢路徑具有總計最高的估計執(zhí)行時間并且因此是具 有相關(guān)聯(lián)的關(guān)鍵路徑長度(CPL)的關(guān)鍵路徑。然后,工作量管理器146可以輸入所確定的當前關(guān)鍵路徑(包括關(guān)于操作符120、 122的信息,該操作符是當前運行中集合的成員,以及關(guān)鍵路徑的運行中的操作符120的標 識)。然后,工作量管理器146負責(zé)確定是否給當前的關(guān)鍵路徑(即,給它的當前運行中的 操作符120)分配可用核,以便減少當前關(guān)鍵路徑的長度(例如,總計的估計執(zhí)行時間)。如 上所述,減少關(guān)鍵路徑的長度在某種意義上可以對減少整個查詢104的執(zhí)行時間具有最大 的或者最可能的有益效果。在給當前的關(guān)鍵路徑分配核的過程中,工作量管理器146可以依賴關(guān)鍵路徑的運 行中的操作符的減函數(shù)。例如,工作量管理器146可以訪問減函數(shù)的數(shù)據(jù)庫148,該減函數(shù) 包括關(guān)鍵路徑的運行中的操作符120的減函數(shù)。因此,工作量管理器146可以確定給關(guān)鍵路 徑的運行中的操作符120分配可用核是否會提供運行中的操作符120的執(zhí)行時間的減少。如果會,則工作量管理器146可以給運行中的操作符120分配可用核。如果(如 由狀態(tài)監(jiān)視器140所確定的那樣)要分配剩余的其他核,則關(guān)鍵路徑選擇器142可以選擇 一個新關(guān)鍵路徑。在某些情況下,之前計算的關(guān)鍵路徑可以仍然是關(guān)鍵路徑即使在新分配 之前的可用核(以及操作符120的執(zhí)行時間的相關(guān)聯(lián)減少)的情況下,所以操作符120可 以繼續(xù)是新確定的(在這種情況下,同樣的)關(guān)鍵路徑的運行中的操作符。然而,在其他情況下,給運行中的操作符120分配可用核的行為可以減少當前關(guān) 鍵路徑的長度,以使它變得更短,而通過查詢104的操作符樹的另一個查詢路徑成為關(guān)鍵 路徑(例如,從操作符122開始的查詢路徑)。在這兩種情況下,工作量管理器146再次執(zhí) 行給新確定的(例如,相同或不同的)關(guān)鍵路徑的運行中的操作符分配可用核的函數(shù),如果 相應(yīng)的減函數(shù)指示這樣的分配將提供查詢104的執(zhí)行時間的減少的凈利益。然而,如果減 函數(shù)指示給新的關(guān)鍵路徑的運行中的操作符分配可用核將維持或增加運行中的操作符的 執(zhí)行時間,則關(guān)鍵路徑選擇器142可以確定次優(yōu)關(guān)鍵路徑并且重復(fù)相關(guān)運行中的操作符的 處理。下面將例如針對圖3提供操作符管理器134的操作的更詳細的附加說明和例子。因此,操作符管理器134的以上描述說明了這樣的操作其中確定關(guān)鍵路徑并接 收可用核,然后可以創(chuàng)建新的/不同的關(guān)鍵路徑,然后向該路徑本身可以分配一個可用核。 例如,只要附加的核是可用的就重復(fù)該過程,或者重復(fù)該過程直到再沒有將從附加的可用核獲益的關(guān)鍵路徑存在為止。因此,該過程被稱為使用平衡的關(guān)鍵路徑(BCP),因為它通過 討論中的查詢的操作符樹而動態(tài)地平衡和最優(yōu)化。因此,本說明書提供了用于最優(yōu)化多核系統(tǒng)上執(zhí)行的并行化查詢的查詢調(diào)度結(jié)構(gòu) 的例子。如所述的,為了加速查詢104、106、108的總體響應(yīng),查詢調(diào)度器102可以用于在運 行時調(diào)整操作符內(nèi)部、操作符之間以及查詢之間的并行化。查詢調(diào)度器102可以被配置成 確定應(yīng)當并行化多少個查詢和查詢操作符,以及它們的執(zhí)行順序。查詢調(diào)度器102可以在 運行時調(diào)整操作符內(nèi)部、操作符之間以及查詢之間的并行化,以便最小化在線到達查詢的 總體平均響應(yīng)時間。為了達到這些目標,操作符管理器134可以用于執(zhí)行所述的平衡關(guān)鍵路徑(BCP) 算法,以便調(diào)度單個查詢并行執(zhí)行來最小化它的響應(yīng)時間。此外,可以由查詢管理器132來 實施用于調(diào)度多個查詢的執(zhí)行的策略,以便最小化它們的平均響應(yīng)時間。如這里詳細描述 的,這里描述的算法和策略可以用于考慮運行時環(huán)境中可用核的數(shù)量以及其他因素,諸如 查詢/操作符樹的形狀以及并行化開銷。圖2是由圖1的系統(tǒng)執(zhí)行的多個查詢的框圖。具體來說,圖2示出了圖1的三個 查詢104、106、108以及將由查詢管理器132在查詢104、106、108內(nèi)部以及查詢104、106、 108之間分配的核114、116、118,如這里所述。在圖2中,查詢104、106、108被示為分別具有用于完成標號為202、204、206的剩 余時間。正如可以看到的那樣,完成查詢104的長度202的時間比完成查詢108的長度206 的時間短,完成查詢108的長度206又比完成查詢106的長度204的時間短。還是在圖2中,完成長度202、204、206的每個時間被示為分別與有益長度 (benefit length) 208、210、212相關(guān)聯(lián)。即,完成查詢104的長度202的時間具有有益長 度208,該有益長度表示增加執(zhí)行查詢104的附加核將有益于(即,減少)完成查詢104的 時間的范圍。換句話說,如可以從圖1的上述討論中理解的,有時給正在執(zhí)行的查詢(或它 的操作符)增加一個核可以具有較大的有益效果,而在其他情況下這樣的增加可能沒有好 處或者可能是有害的。因此,有益長度208、210、212表示給每個查詢(例如,給特殊的查詢 操作符)增加一個或多個核的凈效益。如可以看到的,有益長度212是最小的,而有益長度 208較大,有益長度210最大,其再次表示這樣的事實給查詢106增加一個核對于查詢106 的總完成時間將具有一個較大的凈利益。然后,在一個實施例中,查詢選擇器136可以使用剩余時間最短任務(wù)優(yōu)先 (shortest remaining job first,SRJF)算法給一個或多個查詢分配核。在該算法中,一次 將盡可能多的核分配給具有最短完成長度時間的查詢,在這種情況下,該查詢是查詢104, 如將核114、116、118連接到查詢104的虛線所示。當最短的剩余任務(wù)(完成時間)完成 時,查詢監(jiān)視器138就這樣報告給查詢選擇器136,在此之后查詢選擇器136可以選擇下一 個剩余時間最短的任務(wù),在這種情況下該查詢可以是查詢108。因此,查詢選擇器136可以 給查詢108分配所有三個核114、116、118(本例中為了簡單,假設(shè)增加該數(shù)量的核繼續(xù)減少 討論中的查詢的執(zhí)行時間并且不會被操作符內(nèi)部的并行化開銷的有害影響或者其他有害 的并行化考慮因素所掩沒)。在其他實施例中,查詢選擇器136可以使用利益驅(qū)動平衡關(guān)鍵路徑(BD-BCP)算 法,在該算法中查詢選擇器136基于它在增加另一個核將有益于查詢整體的程度進行決定,所以在當前的核分配時哪個查詢最受益,就將接受可用核。如圖2中顯而易見的,查詢 106具有最長的有益長度210,因此在BD-BCP實施例中,查詢106將接收核114。如果增加 核114至少不會減少有益長度210比有益長度208小,則下一個核,即核116,也將會被分配 給查詢106,并且如果有益長度210保持最長并因此接收最后的核118,則在下文中將應(yīng)用 相同的注釋(comment),如將核114、116、118連接到查詢106的直線所示。其他的例子中, 如果它證明,在分配了核之后,有益長度208、212之一比(減少的)有益長度210長,則具 有當前最長的有益長度的相應(yīng)查詢將接收可用核。因此,對于多個查詢,當查詢調(diào)度器102使能查詢之間的并行化時,查詢調(diào)度器 102可以考慮如何有效地調(diào)度查詢并且因此可以至少在剛才描述的SRJF和BD-BCP的兩個 策略/算法之間進行選擇。在這點上,SRJF策略可以通過給估計將在最短的時間內(nèi)完成的 查詢(例如,查詢104)供給盡可能多的可用核來最小化多個查詢的總平均響應(yīng)時間,如剛 才所述的。另一方面,SRJF很可能導(dǎo)致高度的操作符內(nèi)部并行化,由于可以利用更多的核 來盡快地完成最短的剩余任務(wù)。此外,正如已經(jīng)描述的,較高程度的操作符內(nèi)部并行化通常 表示(由開銷管理器130執(zhí)行的/管理的)較高的并行化開銷。如所述的,如果并行化開 銷最后壓制并行化的好處,則響應(yīng)時間甚至比沒有并行化執(zhí)行還要長。因此,SRJF可能不 總是最佳的選擇。然后,在當前描述的例子中,同時執(zhí)行多個查詢,例如,執(zhí)行中的查詢是相互部分 重疊的。在這種情況下,可以使用多個不同的準則來判斷調(diào)度或最優(yōu)化算法的效率。在本 例中,如已經(jīng)提及的,使用平均響應(yīng)時間(ART)。查詢的平均響應(yīng)時間通常可以包括或者涉 及發(fā)布查詢的時間與完成查詢的時間之間的時間間隔。在本說明書中,參考ART的最小化 描述了多查詢選擇,但是應(yīng)當理解的是,所述技術(shù)也可以應(yīng)用到其他適當?shù)臏蕜t。因此,圖2示出了用于考慮查詢之間的并行化的兩個不同策略。當試圖通過向其 分配可用核而并行化執(zhí)行重疊查詢時,查詢選擇器136可以被配置成在這兩個策略之間進 行選擇。通常,例如,這些技術(shù)可以涉及可能與討論中的查詢相關(guān)的并行化開銷的范圍,和/ 或查詢樹的形狀可以指示哪個策略可能是最佳的。此外,多個可用核可以提供選擇哪個策 略的指示。下面參照圖5、圖7A和圖7B更加詳細地描述了這種用于在所描述的兩個多查詢 選擇策略SRJF與BD-BCP之間進行選擇的選擇準則的特性和使用。圖3是示出使用圖1的系統(tǒng)的、用于查詢的操作符的示范性調(diào)度函數(shù)的框圖。對 于圖3的例子,詳細說明了查詢106,并且對于該例子假設(shè)六個核是可用的。即,假設(shè)計算設(shè) 備110中至少6個核是可用的,以及如果存在其他查詢(諸如查詢104、108),則假設(shè)查詢 選擇器136(根據(jù)圖2、圖5、圖7A/7B)已給所示的查詢106分配至少6個核。然后,在查詢 106本身中,為了給查詢106的不同操作符分配6個可用核,圖1的操作符管理器134可以 負責(zé)執(zhí)行上述的平衡關(guān)鍵路徑(Balanced Critical Path, BCP)算法。更加具體來說,在圖3中,控制操作符302和304管理任務(wù)操作符306、308和310 的執(zhí)行順序,如所示的那樣。操作符306與減函數(shù)312相關(guān),操作符308與減函數(shù)314相 關(guān),而操作符310與減函數(shù)316相關(guān)。如所示的那樣,減函數(shù)312說明每次給它分配第一、 第二、第三、第四以及第五個核(如χ軸的核所示)時操作符306經(jīng)歷執(zhí)行時間的減少(如 y軸的EET所示),但是增加第六個核(由于并行化開銷)會導(dǎo)致操作符306的執(zhí)行時間的 增加。與此同時,減函數(shù)314說明每次給它分配第一和第二個核時操作符308經(jīng)歷執(zhí)行時間的減少,但是增加第三個核(由于并行化開銷)會導(dǎo)致操作符308的執(zhí)行時間的增加。另 一方面,減函數(shù)316說明隨著分配給它的核而穩(wěn)定地減少操作符310的執(zhí)行時間(表示最 小并行化開銷或不存在并行化開銷)。對于各種減函數(shù)312、314、316,并且通常來說,如上所述,減函數(shù)f。p(n)在這里被 提供為一個這樣的系數(shù)當在不同數(shù)量的核上運行時獲取(capture)操作符執(zhí)行時間中的 差。即,操作符的減函數(shù)描述了通過不同程度的并行化將操作符并行化的好處。操作符的 減函數(shù)的特征可以依賴于系統(tǒng)結(jié)構(gòu)(即,CPU/核速度、存儲器的大小和帶寬、I/O速度或者 是否共享了高速緩存)。這些因素以及相關(guān)的因素可以決定不同程度的并行化的潛在的競 爭開銷(contention overhead)。另一方面,當不同類型的操作符被并行化時它們還可以有 區(qū)別地行為。這是由于以下的事實造成的并行化操作符的開銷還與操作符的特性密切相 關(guān)。例如,并行排序可能需要預(yù)劃分處理或者后合并排序(post-merge-sort),以便獲得正 確的最終結(jié)果,其引入了比并行選擇更多的啟動開銷和結(jié)束開銷。即使在同一個操作符中, 當選擇性或謂詞不同時,減函數(shù)都可能有所不同。例如,具有復(fù)雜謂詞的選擇是更加計算密 集型(computational intensive)的,所以存儲器的競爭被減輕。因此,通過沒有任何謂詞 的不同減函數(shù)可以特征化這樣的選擇。考慮以上以及相關(guān)的因素,可以看到的是,當執(zhí)行之前編譯了查詢時,如果不同程 度地并行化操作符,則可以根據(jù)系統(tǒng)結(jié)構(gòu)、操作符的類型以及操作符的潛在資源利用率/ 競爭評估每個操作符的減函數(shù)。也可以通過其他方法確定該減函數(shù)。例如,一種策略可以包 括適應(yīng)性地根據(jù)配置信息(profilinginformation)適當關(guān)閉最佳數(shù)量的并行處理器。例 如,如果試探性地嘗試給一個并行化的操作符增加一些處理器可以提高它的性能,則可以 永久地分配給它這些處理器。由于減函數(shù)只是理論上擁有一個極值,所以最佳數(shù)量的并行 處理器的點也可以按經(jīng)驗理論上接近極值。然后,在操作中,操作符管理器134可以如下分配核318-328。當狀態(tài)監(jiān)視器140 確定操作符306、308、310處于準備運行的狀態(tài)(假設(shè)全都可以一起開始并且并行化運行) 時,關(guān)鍵路徑選擇器142可以根據(jù)通過控制操作符302的每個運行中的操作符306、308、310 確定查詢路徑,然后可以從這些查詢路徑中選擇一個關(guān)鍵路徑。如所示的那樣,由在操作符306開始的關(guān)鍵路徑330表示該第一關(guān)鍵路徑。因此, 工作量管理器146可以給關(guān)鍵路徑330的運行中的操作符306分配第一核318。然后,可 以確定新關(guān)鍵路徑332具有一個運行中的操作符308,其可能導(dǎo)致給它分配核320??梢栽?次確定新關(guān)鍵路徑,這次是再次具有運行中的操作符306的關(guān)鍵路徑334,從而給它分配核 322。繼續(xù)該例子,可能發(fā)生的是,所述核318-322的分配可以充分減少操作符306、308 的執(zhí)行時間,確定在操作符310開始的新關(guān)鍵路徑336。因此,可以給操作符310分配核 324。這導(dǎo)致關(guān)鍵路徑338的存在以及給操作符308分配核326。在圖3中所示的最后一個例子中,可能發(fā)生的是,即使在給操作符308分配核326 之后,也可能在操作符308繼續(xù)引發(fā)最終關(guān)鍵路徑。然而,在這種情況下,工作量管理器146 可以根據(jù)減函數(shù)314確定給操作符308分配最后剩余的核328將導(dǎo)致向操作符308分配三 個核320、326和328。然而,減函數(shù)314示出給操作符308分配第三個核將導(dǎo)致它的執(zhí)行時 間增加而非減少。
在這種情況下,工作量管理器146可以根據(jù)關(guān)鍵路徑選擇器確定下一個最好的關(guān) 鍵路徑,即,下一個最長的或者下一個最慢的關(guān)鍵路徑,這種情況下其導(dǎo)致一個新關(guān)鍵路徑 340的確定。如所示的那樣,這個新關(guān)鍵路徑由操作符306發(fā)起并且因此操作符306接收第 六個和最后一個核328。因此,根據(jù)這個例子以及這里的說明書可以理解的是,本說明書中 術(shù)語“關(guān)鍵路徑”可以指通過查詢的現(xiàn)有查詢路徑的最長路徑的實際關(guān)鍵路徑或者字面上 的關(guān)鍵路徑,和/或可以包括當由于核的減函數(shù)而造成實際的關(guān)鍵路徑被取消(rule out) 分配可用核時被確定為新關(guān)鍵路徑的有效關(guān)鍵路徑,如剛才所給的例子那樣。圖4是示出圖1的系統(tǒng)的示例性操作的流程圖400。具體來說,圖4說明操作符管 理器134的示例性操作,其可以由這里描述的(包括對于下面的圖5和圖7A/7B所述)查 詢管理器132的操作來補充。下面參照圖6和8A/8B還提供了操作符管理器134的操作的 另外的例子。在圖4中,可以確定包括多個操作符的查詢,存在通過包括操作符的運行中集合 的操作符的多個查詢路徑(402)。例如,參照圖1和圖3的例子,操作符管理器134可以確 定查詢106。具體來說,操作符管理器134可以從查詢管理器132接收正在被計算設(shè)備110 和數(shù)據(jù)庫應(yīng)用112緊急處理或日常處理的查詢106的標識。如圖3中所示,查詢106可以包 括操作符302-310,其中的操作符306-310形成一個運行中集合(例如,任何或所有這些操 作符正在運行或者可能正在運行,而不必等待前面操作符的完成),所以存在通過查詢106 的示例性潛在查詢路徑330/334/340、332/338以及336??梢源_定多個可用核(404)。例如,操作符管理器134可以根據(jù)查詢管理器132確 定已經(jīng)分配的用于處理查詢106的核的某個子集。例如,如圖3中,當六個核318-328可用 時,可能發(fā)生的是,所有六個核或它的某個子集將可用于處理查詢106??梢岳斫獾氖牵瑺顟B(tài)監(jiān)視器140可以用于確定查詢106和/或可用核的當前的狀 態(tài)或即將來臨的狀態(tài)。即,狀態(tài)監(jiān)視器140可以與查詢管理器132通信以便確定該信息,和 /或可以直接與計算設(shè)備110/數(shù)據(jù)庫應(yīng)用112以及查詢106交互??梢愿鶕?jù)多個查詢路徑的每一個的總執(zhí)行時間確定多個查詢路徑的關(guān)鍵路徑 (406)。例如,如所述的那樣,關(guān)鍵路徑選擇器142可以選擇查詢路徑330作為關(guān)鍵路徑,因 為該查詢路徑的個別操作符的總計/合計估計執(zhí)行時間是所有查詢路徑中最大的/最長 的。第一個可用核可以分配給運行中集合中以及關(guān)鍵路徑中的第一操作符(408)。例 如,工作量管理器146可以給關(guān)鍵路徑330中的操作符306、308、310的運行中集合的運行 中/第一操作符306分配核318。正如可以理解的那樣,在這樣做時,工作量管理器146可 以根據(jù)相關(guān)的減函數(shù)(例如,312)確保增加可用核將實際減少運行中/第一操作符306的 執(zhí)行時間。可以根據(jù)該分配確定通過多個查詢路徑的新關(guān)鍵路徑(410)。例如,由于先前可用 核318的分配,查詢路徑332可以被確定為新關(guān)鍵路徑,如由關(guān)鍵路徑選擇器142使用查詢 路徑的最新估計的執(zhí)行時間確定的那樣,所述最新估計的執(zhí)行時間包括現(xiàn)在使用核318的 操作符306的減少的執(zhí)行時間。第二個可用核可以分配給運行中集合以及新關(guān)鍵路徑中的第二操作符(412)。例 如,工作量管理器146可以給新關(guān)鍵路徑332中的操作符306、308、310的運行中集合的運行中/第二操作符308分配核320。正如可以理解的那樣,在這樣做時,工作量管理器146 可以根據(jù)相關(guān)的減函數(shù)(例如,314)再次確保增加可用核將實際減少運行中/第二操作符 308的執(zhí)行時間。正如可以理解的,該分配過程可以繼續(xù)直到,例如,所有運行中的操作符都根據(jù)它 們各自的減函數(shù)被分配了最大數(shù)量的核為止,或者直到所有可用核都被分配了為止。狀態(tài) 監(jiān)視器140可以確定這些條件中的一個或兩個,并且還可以確定可能影響操作符管理器的 操作的其他狀態(tài)變化。在后面的情況下,例如,狀態(tài)監(jiān)視器可以確定操作符306的完成(根 據(jù)圖4的操作,在這種情況下,分配給它的所有核變得可用于再分配),或者可以確定新操 作符已經(jīng)開始執(zhí)行(并且因此根據(jù)圖4可以要求核被分配給新操作符),或者可以確定新核 在其它情況下變得可用(例如,諸如當先前提供給個別應(yīng)用120的核完成了與之相關(guān)聯(lián)的 某些任務(wù)并且隨后變得可用時)。雖然圖4不是明確地描述,但是可以理解的是,在給第一個操作符分配了第一個 可用核后,關(guān)鍵路徑選擇器142可以確定潛在的關(guān)鍵路徑以及運行中集合的相關(guān)聯(lián)的潛在 的運行中的操作符;即,可以確定實際上/字面上具有通過查詢106的最長估計執(zhí)行時間的 查詢路徑。在這樣的情況下,可能發(fā)生的是,例如,當給這樣的潛在關(guān)鍵路徑以及相關(guān)聯(lián)的 潛在運行中的操作符分配第二個可用核時,工作量管理器146可以根據(jù)相關(guān)減函數(shù)確定該 分配實際上將不會導(dǎo)致運行中/潛在操作符的執(zhí)行時間的減少(諸如上述圖3的例子,其 中核328將分配給潛在的關(guān)鍵路徑332/338,但是由于減函數(shù)314而被禁止)。因此,可能發(fā)生的是,只有在這樣的確定之后,關(guān)鍵路徑選擇器142才可以選擇新 關(guān)鍵路徑以及將實際接收可用核的分配的相關(guān)聯(lián)的運行中的操作符(例如,諸如圖3的新 關(guān)鍵路徑340以及核328向運行中的操作符306的分配)。因此,正如已經(jīng)說明的那樣,術(shù) 語“(新)關(guān)鍵路徑”可以指具有最長估計執(zhí)行時間的查詢路徑,和/或也可以指或包括具 有最長的估計執(zhí)行時間的查詢路徑,該最長的估計執(zhí)行時間也將由于給運行中的操作符分 配可用核而受益。圖5是示出使用圖1的系統(tǒng)執(zhí)行圖2的查詢的示例性操作的流程圖500。更具 體來說,圖5示出了接收多個重疊查詢104、106、108的操作,同時多個核可用于處理查詢 104、106、108(例如,至少核114、116、118和/或在附加的或可替換的例子中,圖3的核 318-328)。因此,圖5示出了接收多個查詢104、106、108,確定首先處理哪個查詢(或哪些 查詢),往那里分配核用于使用查詢內(nèi)部處理技術(shù)(例如,這里描述的有關(guān)圖1、3、4,6和8 的平衡關(guān)鍵路徑技術(shù))進行處理的整個過程,并且根據(jù)需要重復(fù)該過程直到完成查詢104、 106,108 為止。因此,在圖5中,可以確定查詢104、106、108、查詢特征以及可用核(例如,核114、 116,118)的數(shù)量(502)。例如,查詢管理器132,例如,查詢監(jiān)視器138,可用于確定某些或 所有這些特征。在本上下文中,術(shù)語“查詢特征”通常指查詢104、106、108的屬性,所述屬 性在決定使用哪個查詢之間處理技術(shù)時可能是有用的(例如,諸如上述的在剩余時間最短 任務(wù)優(yōu)先(SRJF)算法和利益驅(qū)動平衡關(guān)鍵路徑(BD-BCP)算法之間的選擇)。例如,討論中的查詢的查詢/操作符樹的形狀在這方面可能是有用的。具體來 說,如果查詢具有包含若干串行連接的操作符的結(jié)構(gòu)(因此可能形成冗長的關(guān)鍵路徑),則 BD-BCP算法的應(yīng)用由于受益于減少關(guān)鍵路徑的機會而可能是有益的。在這點上,可以理解的是,在這種情況下,使用SRJF算法可能導(dǎo)致分配給查詢額外數(shù)量的核,從處理給定操作 符的多個核的并行化開銷可能減輕/掩沒/勝于分配給操作符/查詢的核的好處這一意義 上來說,如上所述)。相反,如果查詢具有沒有這種串行連接的操作符的結(jié)構(gòu),則SRJF算法 相對來說可能更有用,由于所分配的核可能分配給查詢的不同操作符并且因此較不可能引 起并行化開銷。下面詳細提供了諸如查詢的數(shù)量、核的數(shù)量以及查詢特征的因素如何影響 該查詢處理選擇過程的更多細節(jié)。因此,在圖5中,可以根據(jù)之前確定的因素選擇查詢執(zhí)行計劃(504),正如上面提 及的那樣。在本例中,兩種可能的查詢處理計劃被描述為SRJF和BD-BCP算法,雖然也存在 其他可能性。根據(jù)所選擇的查詢處理計劃(例如,SRJF或BD-BCP),選擇查詢并分配核(506)。 例如,如圖2中所示,如果使用SRJF算法,則可以選擇查詢104,并且為了盡快完成查詢104 的處理可以將所有三個核114、116、118 (或圖3的例子中的所有6個核318-328)分配給查 詢104。另一方面,如圖3中所示,如果選擇了 BD-BCP算法,則可用核被分配給查詢106 (如 所說明的那樣,由于查詢106被示為具有最長的有益長度210)。查詢管理器132可以負責(zé) 做出這些決定并且給最終查詢分配所確定的數(shù)量的核。下面針對圖7A和7B提供了關(guān)于做 出這樣的決定的進一步的例子和討論。雖然通常可以注意到,BD-BCP算法中核的分配按照 相對較精細的間隔尺寸,其中每次考慮一個核并(不)分配到候選查詢。相反,在SRJF算 法中,在一個步驟中,盡可能多的所需核被大批分配到一個查詢。一旦給查詢分配了多個核,則操作符管理器134就可以配置成在所選的查詢之中 (即,在它的操作符之中)分配核(508)。例如,如所描述的那樣,操作符管理器134可以根 據(jù)每個操作符各自的減函數(shù)執(zhí)行圖3和圖4實施貪婪算法(greedy algorithm)的例子。下 面參照圖6和圖8A/8B提供了操作符管理器134的操作的更多例子。只要還沒有完成討論中的查詢(510)并且還沒有分配最大數(shù)量的核(512),就可 以繼續(xù)在查詢的操作符之中分配核的處理(508)。即,如果工作量管理器146確定查詢的 所有運行中的操作符已經(jīng)達到了一個點,在該點處額外核的分配將不會減少(或者將增 加)它的執(zhí)行時間,則工作量管理器146就將確定已經(jīng)分配給該查詢的最大數(shù)量的核并且 將至少暫時停止給它的操作符分配核(并且可以釋放任何可用核以用于處理其他查詢)。 因此,如果達到了該條件(512),則在繼續(xù)前進之前狀態(tài)監(jiān)視器140將繼續(xù)等待狀態(tài)的改變 (518),諸如運行中的操作符或查詢的完成,之前非運行中的操作符或查詢的開始,或新的 可用核。如果發(fā)生了這樣的狀態(tài)改變,則可以繼續(xù)查詢操作符之中的核分配處理,如所描述 的那樣(508)。另一方面,一旦查詢完成(510),則如果不存在剩余的查詢(514),就可以再等待 狀態(tài)改變(518)。如果查詢有剩余(514)但是沒有核是可用的(516),那就可以再等待狀態(tài) 改變(518)。然而,如果查詢有剩余(514)并且核是可用的(516),則可以繼續(xù)處理之前(或 新)選擇的查詢執(zhí)行計劃(例如,SRJF或BD-BCP) (504)。圖6是示出使用圖1的系統(tǒng)執(zhí)行圖3的例子的場景中的查詢106的示例性操作的 流程圖600。S卩,圖6示出了圖4的更具體的例子以及圖5的操作508,以及與圖5的操作 510-518類似的或相似的例子。然后,在圖6中,假設(shè)已經(jīng)選擇了查詢處理計劃并且已經(jīng)給查詢106分配了最終數(shù)量的核,例如,圖3的六個核318-328。然后,開始確定查詢106的關(guān)鍵路徑,通過討論中的 查詢的運行中的操作符選擇(第一)查詢路徑(602)。例如,關(guān)鍵路徑選擇器142可以選擇 運行中的操作符306。然后,可以確定查詢路徑的(估計)執(zhí)行時間(604)。例如,關(guān)鍵路徑選擇器可以 使用為運行中的操作符306當前分配的核的數(shù)量來計算查詢路徑中每個操作符的估計執(zhí) 行時間,否則的話假設(shè)給當前查詢路徑的任意非運行中核分配單個核。更具體來說,可以通過操作符的執(zhí)行成本確定一個查詢的執(zhí)行時間以及它們之間 的相關(guān)性。運行時期間可以用不同數(shù)量的核來執(zhí)行操作符,從而使得可能難以確定這樣的 操作符的精確執(zhí)行成本。響應(yīng)時間估計是執(zhí)行之前用于預(yù)計響應(yīng)時間的一種技術(shù)。在本說 明書和例子中,使用在這里被稱為估計執(zhí)行時間(Estimation Execution Time, EET)的估 計。如剛才描述的那樣,對于運行中集合(例如,實際運行或準備運行)中的操作符,EET可 以根據(jù)減函數(shù)以及所占用核的數(shù)量計算EET。對于被堵塞的操作符,可以被估計為采用分配 的一個核來運行這些操作符。因此,對于正在執(zhí)行的查詢Q中的每個操作符oPi,運行中集 合包含已經(jīng)分配了核的所有操作符。下面是一個正式的定義,其中EETi = f。p(η);如果oPi 在Q的運行中集合中,或者可替換地,EETi = f。p(l);如果oPi不在Q的運行中集合中。因此,可以看到的是,如果不能相對精確地估計操作符的優(yōu)先級,則分配算法可能 為核生成無效率的安排。從而,如所述的那樣,這里用于確定關(guān)鍵路徑(CP)的操作符優(yōu)先 級的查詢樹的一個這樣的屬性形成從當前運行中的操作符之一到出口操作符的一條路徑, 該路徑的計算成本的總和最大。CP的長度(CPL)被定義為每個操作符的EET的總和。由于 查詢始終是樹結(jié)構(gòu)并且查詢執(zhí)行從葉子操作符應(yīng)用到出口操作符,所以從一個運行中的操 作符opi到出口操作符的每個路徑都是唯一的。假設(shè)變量opij表示從opi到出口操作符 的路徑中編號為j的操作符,而ni是它的路徑中的操作符的數(shù)量,則CPL是運行中集合中 的操作符從j = O到Iii求和后的EETif的最大值。如果還沒有到達最后的查詢路徑(606),則繼續(xù)選擇查詢路徑(602)以及計算它 們各自的執(zhí)行時間(604)的處理過程。一旦到達了最后的查詢路徑(606),就可以選擇關(guān)鍵 路徑(608),例如,具有最長總計/總執(zhí)行時間的查詢路徑。然后,工作量管理器146可以選擇關(guān)鍵路徑的運行中的操作符(610),諸如運行中 的操作符306。然后,工作量管理器146可以參考它的減函數(shù)(例如,減函數(shù)312)以便確定 是否已經(jīng)給它分配了最大數(shù)量的核(612)。如果沒有,則可以給關(guān)鍵路徑的運行中的操作符 分配核(616)。然而,如果已經(jīng)分配了最大數(shù)量的核,則如果沒有剩余查詢路徑(613),則狀態(tài)監(jiān) 視器140可以被分派為等待任何狀態(tài)變化(622),諸如完成/開始查詢或操作符和/或新的 可用核。如所示的,如果確實有查詢路徑剩余(613),則可以選擇新的關(guān)鍵路徑(614),諸如 確定的查詢路徑下一個最長的查詢路徑。再有,工作量管理器146可以檢查相應(yīng)的減函數(shù) 以便確定是否已經(jīng)給它分配了最大數(shù)量的核(612)。一旦該分析的結(jié)果確定還沒有達到最 大數(shù)量(612),則可以分配一個核(616)。如果更多的核可用于分配(618),則可以選擇新的關(guān)鍵路徑(620),并且繼續(xù)選擇 完全新計算的關(guān)鍵路徑的過程(602-608),該過程包括可用查詢路徑的重新計算。否則,再 次地,狀態(tài)監(jiān)視器140可以等待狀態(tài)改變(622)。
從而,工作量管理器146可以執(zhí)行給關(guān)鍵路徑的運行中的操作符分配核。為了提 高一個運行中的查詢的耗用時間,可以使用所述的技術(shù),該技術(shù)給CP中的操作符分配更多 的可用核。具體來說,通過縮短這個查詢的CPL從而減少執(zhí)行長度。換句話說,CP中的操 作符被設(shè)置成保持相對于其他就緒的操作符最高的優(yōu)先級。因此,所述的增量、貪婪算法可 用于給相應(yīng)查詢樹中的運行中的操作符以及就緒的操作符分配核。由于在一個這樣的分配之后CP可能改變,因此為了避免在重要的操作符之前給 較為不重要的操作符分配核,在分配處理期間,例如在運行時期間,可以動態(tài)地確定操作符 的優(yōu)先級。具體來說,在已經(jīng)給一個操作符分配了核之后重新計算操作符的優(yōu)先級,所以, 如上所述,重復(fù)執(zhí)行以下的三個步驟。具體來說,確定運行中的查詢的CP,給CP中的運行中 的操作符分配一個核,并且從上方的操作符到根操作符重新計算執(zhí)行長度。用于執(zhí)行這些 技術(shù)的相應(yīng)算法是這里所述的平衡關(guān)鍵路徑,其包含平衡位于每個潛在CP的頂部的每個 操作符的執(zhí)行成本。這里描述的特殊情況導(dǎo)致何時已經(jīng)完全分配了 CP中的一個運行中的 操作符。然后,根據(jù)相應(yīng)的減函數(shù),給它分配的任何新核將僅僅減少消耗時間而沒有任何好 處。因此,不給它分配新核,并且該操作符所屬的CP可能因此從BCP算法中排除。下面提 供了有關(guān)算法3的BCP算法的具體例子。圖7A和7B是示出了圖5的操作結(jié)果的例子的圖表。如上所述,例如,對于圖1、 圖2和圖5 (例如,操作504),它們的查詢管理器132可以被配置成選擇查詢執(zhí)行計劃,諸如 SRJF 或 BD-BCP。在這點上,如這里所述的,查詢被表示成數(shù)據(jù)庫操作符的一個樹,其中每個邊表示 操作符之間的相關(guān)性。如圖1和圖3中所示,每個邊表示兩個操作符之間的相關(guān)性。例如, 在圖1中,在完成操作符120和操作符122的評估之前不能評估操作符124。形式上,查詢 Q = (0P,D)被定義成具有一組操作符OP以及一組操作符之間的相關(guān)性D的一個樹。查詢 可以被建模成具有無界的(查詢、時間戳)對序列的在線到達查詢,所以O(shè)AQ= KQptsl), (Q2,ts2),. . . }。然后,假設(shè)N個核具有彼此相同的計算能力,則這N個核中使用的符號被表
不為 C= Ic1, C2. . . , CN} O因此,如所述的以及其它可能的特征,給定N個核的集合C = {Cl,C2. . . , cN}、在線 到達查詢OAQ = KQ1, tsl),(Q2, ts2),…}、查詢中每個操作符的減函數(shù)以及查詢樹的形狀 /特征,查詢調(diào)度器102就可以確定如何給不同的查詢以及查詢中不同的操作符分配核,以 及分配給單個操作符的核的數(shù)量,以使得查詢的平均響應(yīng)時間被最小化(或者其他適當?shù)?性能度量被最優(yōu)化)。為了說明圖7A/7B和圖8A/8B的例子,引用了兩個具體類型的查詢樹結(jié)構(gòu),即,深 樹查詢和二叉樹查詢。二叉樹查詢的例子被表示成圖7A中的元素702。在二叉樹查詢中, 通過結(jié)合操作符來組織查詢樹中的所有非葉子節(jié)點。由表格掃描操作符來表示每個葉子節(jié) 點。二叉樹查詢的數(shù)量級可以被指定為[Iog2N]。這種類型的查詢可以被視是濃密樹查詢 的例子,有多個數(shù)據(jù)庫管理系統(tǒng)支持該類型的查詢并且該類型的查詢?yōu)椴僮鞣g并行化 提供了機會。同時,在深樹(deep-tree)查詢中,它的一個例子如圖7B中所示的元素704, 由一個入口和一個出口將查詢的主體組織為結(jié)合操作符的一個鏈。結(jié)合的其他入口是,例 如,表格掃描操作符。深樹查詢的數(shù)量級被指定為[N/2],其中在本上下文中N指查詢樹中 操作符的數(shù)量。圖7A和7B中,示例性的查詢樹表示其中N = 7的例子。
21 算法1如基本上針對圖5描述的那樣,算法1中,第7行定義了返回條件,即,要么沒有可 用核、要么運行中的查詢集合中的每個查詢被完全分配,在該點處完成了一輪的動態(tài)調(diào)度 過程。從第10行到第16行,識別出具有最短剩余時間的任務(wù)的查詢。注意,這樣的識別基使用上面的符號和激勵,可以理解的是,如上面針對圖2所描述的那樣,剩余時間 最短任務(wù)優(yōu)先(SRJF)算法的意圖是為估計將在最短時間內(nèi)完成的查詢提供盡可能多的可 用核。因此,在核分配開始時,對于每個查詢,可以由它的CPL估計完成時間。然后,在選擇 了具有最短CPL的正確查詢之后,為了盡可能多地減少這個查詢的執(zhí)行時間,查詢調(diào)度器 102可以嘗試給它分配所有的可用核。如果仍然存在可用核,則將選擇下一個最短查詢以便 將核分配給其。繼續(xù)這個過程,直到核用完或者所有查詢都被完全分配了核為止。當以后 為單個查詢分配核時,可以應(yīng)用這里描述的BCP算法。作為SRJF算法的預(yù)期結(jié)果,其試圖通過給它分配更多核來最小化相對最短查詢 的執(zhí)行時間,每個查詢的等待時間的總和相對較短,并且,每個查詢的響應(yīng)時間(它是上面 兩個時間的總和)也變得很短。如果最短查詢處于充分核分配狀態(tài),則仍然可以給除最短 查詢之外的查詢分配核。算法1描述了 SRJF的偽代碼。SRJF的輸入包括運行中的查詢的集合以及可用核 的數(shù)量。由于每個查詢是用它的時間戳在線到達的,如上所述,因而時間戳比當前的時間線 (time line)長的查詢不包括在運行中的查詢內(nèi),并且在運行了一輪之后,同樣應(yīng)用到已經(jīng) 完成的一些查詢。此外,可用核被定義為除了被其他應(yīng)用以及運行中的查詢中的某些專用 操作符(exclusiveoperators)所占用的那些可用核之外的所有可用核。SRJF的輸出是已 經(jīng)分配了一些可用核的運行中的查詢的更新集合。于關(guān)鍵路徑的合理估計,如這里所描述的那樣。第17行試圖使用BCP算法給相關(guān)的查詢分 配可用核。如果這樣的分配是成功的,則可用核的數(shù)量因此被減少,并且可以用新的狀態(tài)來 更新被分配的查詢(例如,用新的分配更新查詢的運行中集合)。第18行使用函數(shù)來檢查 查詢是否已經(jīng)被完全分配。即,如果相關(guān)查詢的運行中集合中的每個操作符都處于完全分 配的狀態(tài),則狀態(tài)被設(shè)置為真,否則狀態(tài)被設(shè)置為假。從第19到22行的區(qū)域表示這樣的查 詢?nèi)绻摬樵円呀?jīng)被完全分配,則應(yīng)當將其從輸入的運行中查詢集合(QS)移動到已完全 分配的查詢集合(FQS)。在完成了分配過程之后,QS和FQS中的所有運行中的查詢在第24 行中應(yīng)當被組合,然后在第25行中返回一個更新的運行中的查詢。由于SRJF優(yōu)選給一個查詢分配最大數(shù)量的核,所以盡可能多地鼓勵操作符內(nèi)部 以及操作符之間(一個查詢內(nèi)的)的并行化。然而,該傾向可能引發(fā)更多的操作符內(nèi)部并 行化開銷,并且,結(jié)果,例如,有關(guān)同步、通信以及競爭可能消耗系統(tǒng)的計算資源。于是,為了 結(jié)合SRJF使用,可以使用BD-BCP算法。BD-BCP的意圖在于最大化查詢層次中的每個核分配的利益。即,算法選擇具有最 多CPL減少量(最大利益)的查詢來分配核,如上面針對圖2的描述。在分配一個核的每 個步驟中,可以通過模擬已經(jīng)分配了該核而預(yù)先計算查詢的所有減數(shù)據(jù)。然后,選擇帶來最 大利益的操作符進行實際分配。如針對圖5已經(jīng)描述的那樣,繼續(xù)該過程直到用完所有的可用核或者所有的查詢 變成完全分配為止。形式上,可以為查詢集合OAQ中的查詢Qi定義利益增量Δ”然后,如 果關(guān)鍵路徑CPi中運行中的操作符op被完全分配,則八1是0。否則,如果op已經(jīng)被分配 了 m個核并且還沒有完全分配,則Ai= (fop (m)-fop (m+l))0在一種特殊的情況下,可能發(fā)生的是,OAQ中的查詢的所有利益增量都是零,即,每 個CPi中的操作符OP處于完全分配的狀態(tài)。為了打破這個束縛,可以選擇占用的長度比CP 短但是比其他路徑長的路徑作為新CP??梢匝h(huán)地應(yīng)用這個規(guī)則直到達到了分配的完成條 件為止。下面的算法2描述了 BD-BCP的示例性偽代碼。輸入和輸出包括運行中的查詢的 集合以及可用核的數(shù)量,正如SRJF算法中的那樣。主要的差別位于第10行到第19行,其 中,BD-BCP策略中,通過關(guān)鍵路徑上的利益增量的差而不是像SRJF中那樣關(guān)鍵路徑的長度 來選擇候選查詢。此外,兩個算法1和2之間的分配粒度(granularity)是不同的。具體來說,例如, 第20行描述了 BD-BCP中的分配處于精細粒度,該粒度獲得一個核并且分配給候選查詢。但 是,在SRJF中,在一步中將所需要的那么多的核分配給一個查詢。然后,如算法1的SRJF算法中,從第21到25行,檢查完全分配的查詢并且從輸入 的運行中查詢集合(QS)移動到完全分配的查詢集合(FQS)。然后,在完成了分配處理之后, 可以將所有運行中的查詢組合為更新的運行中查詢集合。在分配的每個步驟中,BD-BCP試圖將核應(yīng)用到能夠最大地減少執(zhí)行時間的查詢。 例如,該分配可以通過減少并行化開銷來達到最大的利益。因此,算法2的BD-BCP算法不 優(yōu)選操作符內(nèi)部、操作符之間的并行化,也不優(yōu)選查詢之間的并行化。但是,可以看到的是, 與SRJF算法相比,BD-BCP算法對于查詢之間的情況投入了更多的關(guān)注,這是由于每個查詢 都有在每一步中分配核的機會。 算法2通過上面的討論,可以看到的是,許多因素(為了列舉一些,例如,可用核的數(shù)量、 查詢的數(shù)量、或者查詢內(nèi)操作符的數(shù)量)可能影響SRJF和BD-BCP算法的性能。特別對于 在線到達查詢,這些因素可能隨著時間快速并且連續(xù)變化。因此,由于不同的查詢形狀以及 系統(tǒng)快照(system snapshot),可以最有利地應(yīng)用不同的并行調(diào)度策略。下面,提供了復(fù)雜的并行多查詢調(diào)度的分析與討論。具體來說,討論了因素影響 SRJF算法的性能的一種方式。在在線到達的情況下,SRJF算法的思想包括選擇“剩余時間 最短”查詢,而之后盡可能多地分配核使得這個查詢盡可能早地完成。至少兩個因素影響它的性能核的數(shù)量以及查詢/操作符的數(shù)量。關(guān)于核的數(shù)量, 可以理解的是,SRJF算法通常目的在于為查詢安排執(zhí)行順序以便總體上最小化查詢的平均 響應(yīng)時間。當核的數(shù)量相對較小時,這一般是正確的,這是由于,例如,如果給最短的查詢分 配了所有可用核則核的數(shù)量越少意味著開銷越少。這種情況下極端的情況是,當核的數(shù)量 =1時,在這種情況中沒有并行化可以被平衡(leverage)并且SRJF—般比BD-BCP算法執(zhí) 行得更好。另一方面,如果核的數(shù)量相當大,那么由于SRJF算法選擇最短的查詢并且給那 個查詢分配盡可能多的核,所以那個查詢的并行化開銷可能掩沒這樣的調(diào)度的好處。此外, 該策略還忽略了一個事實如果將分配給最短查詢的一些核分配給查詢之間并行化的其他 查詢,則這些核可能獲得更多的利益。關(guān)于查詢/操作符的數(shù)量,可以看到的是,SRJF算法的性能的關(guān)鍵考慮因素 是由給最短的查詢分配太多的核而引發(fā)的并行化開銷。開銷一般來自于過度并行化 (over-parallelize)查詢中的操作符。因此,如果查詢中操作符的數(shù)量非常小,則平均下來,每個操作符將分配較多的核,并且這可能導(dǎo)致操作符內(nèi)部的過度并行化。另一方面,如 果最短的查詢中的操作符的數(shù)量很大,則通過SRJF算法分配給查詢的那些核很可能被分 配給查詢中的不同操作符(注意,如果將多個核分配給單個操作符將引起過多的操作符內(nèi) 部并行化開銷,則單個查詢中實現(xiàn)的BCP算法傾向于將它們分配給查詢中的不同操作符)。 在這種情況下,可以避免操作符內(nèi)部的過度并行化??傊厦娴膬蓚€因素都可能影響SRJF算法的性能。因此,固定核的數(shù)量,并且改 變每個查詢的操作符的數(shù)量將引起SRJF算法性能的改變。類似地,當固定查詢中操作符的 數(shù)量時,不同數(shù)量的核可能對性能有影響。通過比較,BD-BCP算法可能受相同因素或不同因素的不同影響。例如,如上所述, 每次分配核時,BD-BCP算法都選擇可能導(dǎo)致最大的響應(yīng)時間減少的查詢并且將核分配給該 查詢。因此,關(guān)于可用核的數(shù)量,與SRJF策略不同,BD-BCP策略的本質(zhì)是關(guān)于在當前的 步驟選擇可以最大化響應(yīng)時間減少量的查詢,該最大化是局部最優(yōu)化的。之后的狀態(tài)可能 變得與當前的估計非常不同。如果可用核的數(shù)量存在限制則這種情況可能變得更糟,因為 當核的數(shù)量相對較小時,BCP算法本身中關(guān)鍵路徑長度的估計(如上所述,并且下面針對算 法3進行具體說明)可能是不準確的。因此,對于較小數(shù)量的核,由于不準確的估計,BD-BCP 算法的性能可能降低。此外,如與SRJF算法相比較的那樣,BD-BCP算法傾向于給不同的查 詢分配核,以使得已被分配的查詢可以執(zhí)行相對較長的時間。當核的數(shù)量較小時,許多其他 的查詢可能等待這些非常持久的查詢,所以全部查詢的平均響應(yīng)時間可能變得相對較長。 另一方面,如果核的數(shù)量是充足的(不是太少也不是太多),則BCP算法的關(guān)鍵路徑的估計 可能是更準確并且更穩(wěn)定的,其將從整體上提供BD-BCP算法的穩(wěn)定性。對于操作符的數(shù)量,可以看到的是,BD-BCP算法將所有的就緒操作符一起考慮,并 且從所有查詢中選擇(使用BCP算法)能夠最大化響應(yīng)時間減少量的操作符。如果可用核 的數(shù)量是固定的,則改變當前就緒操作符的數(shù)量也可以影響B(tài)D-BCP算法的整體上的性能。 即,這里較大數(shù)量的操作符可以暗示BCP算法以及BD-BCP算法本身的較低的穩(wěn)定性。下面的表1總結(jié)了基于對多查詢調(diào)度的上述分析的一個策略。表1示出了 BD-BCP 算法適用于傾向于生成深樹查詢的數(shù)據(jù)庫管理系統(tǒng)。推薦SRJF算法用于傾向于生成二叉 樹查詢的數(shù)據(jù)庫管理系統(tǒng)。通常,如表1中所示,當使用具有較少核以及較低并行化開銷的深樹查詢時,或者 當使用具有較多(即,充足的)核以及較高的并行化開銷的二叉樹時,BD-BCP與SRJF之間 的性能是不相上下的。對于所有的多查詢調(diào)度,通過充足的核,所有所描述的技術(shù)的性能變 得非常相似,因為,通過較大數(shù)量的核,所有可用操作符被分配了足夠的核并且在完全并行 化條件下運行。對于多查詢調(diào)度,SRJF和BD-BCP的性能顯著地受多種因素的影響。因此, 可以看到的是,對于一個這樣的策略難以在所有環(huán)境下提供最好的性能。反而,對于二叉樹 查詢,SRJF表現(xiàn)出較好的性能,這是由于例如消耗較小的開銷。同時,由于它的查詢之間的 并行化不需要消耗更多的開銷,所以BD-BCP更適合深樹查詢。 表1結(jié)合圖7A和7B示出了上面討論的例子。具體來說,圖7A示出了二叉類型的樹 702,SRJF算法對于減少平均響應(yīng)時間提供了較好的結(jié)果,特別是當核的數(shù)量較小時,相對 于BD-BCP算法或連續(xù)并均勻地給查詢分配核的傳統(tǒng)循環(huán)賽方法更是如此。另一方面,圖7B 示出了深樹類型的查詢704,與SRJF算法以及傳統(tǒng)的循環(huán)賽方法相比,BD-BCP算法在減少 平均響應(yīng)時間上是優(yōu)秀的。根據(jù)上面的討論,可以構(gòu)建類似的圖表以便說明對于每個算法 以及查詢樹類型,較大或較小數(shù)量的查詢/操作符對減少平均響應(yīng)時間的影響。圖8A和圖8B是示出圖6的操作的示例性結(jié)果的圖表。S卩,圖8A和圖8B示出了 上面結(jié)合圖1、圖3、圖4和圖6描述的BCP算法的例子,下面的算法3提供了它的偽代碼的 例子。如上面的詳細說明,BCP算法依賴以下的事實,通過它的連續(xù)部分可能確定并行化 執(zhí)行中一個查詢的最大加速,以使得可以給該連續(xù)部分分配較多的核,以便減少它的執(zhí)行 時間。在這點上,一個查詢中的連續(xù)部分以及它的執(zhí)行時間的估計二者都可以被確定為BCP 算法的一部分。在算法3中,BCP的輸入包括運行中的查詢以及可用核的數(shù)量。在查詢運行期間, 當任何狀態(tài)被更新時,可以通過該算法重新調(diào)度輸入查詢,如所描述的那樣,這些狀態(tài)更新 可以指查詢內(nèi)部的狀態(tài)(例如,某些運行中的操作符完成并喚醒其他的操作符)以及查詢 外部的狀態(tài)(例如,由于其他應(yīng)用釋放某些核,因此這些核變得可用)。BCP算法的輸出是 已經(jīng)分配了一些可用核的更新了的運行中的查詢。第8行定義了完成條件是要么分配了所有的可用核,要么給每個操作符分配了最 大數(shù)量的核。從第11行到第17行,選擇了位于關(guān)鍵路經(jīng)上的操作符。第18行試圖在所選 擇的操作符上應(yīng)用一個核。如果操作符符合最大數(shù)量核的條件,則分配返回假,否則返回 真。并且,在這個函數(shù)內(nèi)部,如果分配成功,則根據(jù)它的減函數(shù)更新這個操作符的EET。分配的結(jié)果是,將操作符從候選運行中集合(RS)移動到完全分配運行中集合 (FRS),如第22、23行中所述,或者它消耗一個核,如第20行中所描述的那樣。在結(jié)束了分 配算法之后,在第26行中可以組合RS和FRS中的所有操作符,然后,在第27行中返回至一 個運行中的查詢。對于可用核的每個分配,根據(jù)運行中集合中每個操作符的EET計算CPL。
算法3這里描述的各種技術(shù)的實現(xiàn)方式可以被實施在數(shù)字電子電路中,或者實施在計算 機硬件、固件、軟件,或者它們的組合中。實現(xiàn)方式可以實施為計算機程序產(chǎn)品,即實實在在 地具體實施在信息載體中的計算機程序,信息載體例如在機器可讀存儲設(shè)備中或者在傳播 的信號中,以供數(shù)據(jù)處理裝置執(zhí)行,或者控制數(shù)據(jù)處理裝置的操作,所述數(shù)據(jù)處理裝置例如 可編程處理器、計算機、多個計算機。計算機程序,諸如上面描述的計算機程序,可以用任何 形式的編程語言編寫,包括匯編語言或解釋語言,并且,它可以被以任何形式部署,包括作 為獨立的程序或者作為模塊、組件、子程序或其他適于在計算環(huán)境中使用的單元。計算機程 序可以被部署為在一個計算機上執(zhí)行或在位于一個地點或跨過多個地點分布并被通信網(wǎng) 絡(luò)互連起來的多個計算機上執(zhí)行。方法步驟可以被一個或多個可編程處理器執(zhí)行,所述可編程處理器執(zhí)行計算機程 序,以便通過對輸入數(shù)據(jù)操作和產(chǎn)生輸出來執(zhí)行功能。方法步驟還可以被專用邏輯電路執(zhí) 行,或者裝置可以被實施為專用邏輯電路,所述專用邏輯電路例如FPGA(現(xiàn)場可編程門陣 列)或ASIC (專用集成電路)。作為例子,適于執(zhí)行計算機程序的處理器包括通用和專用微處理器,以及任何類 型的數(shù)字計算機的任意一個或多個處理器。一般來說,處理器將從只讀存儲器或隨機存取 存儲器接收指令和數(shù)據(jù),或者從兩者都接收指令和數(shù)據(jù)。計算機的元件可以包括至少一個 用于執(zhí)行指令的處理器,和用于存儲指令和數(shù)據(jù)的一個或多個存儲器設(shè)備。一般來說,計算 機還可以包括,或者被可操作地連接,以從一個或多個用于存儲數(shù)據(jù)的海量儲存設(shè)備接收 數(shù)據(jù),或把數(shù)據(jù)傳送到海量儲存設(shè)備,或者二者皆有,所述海量儲存設(shè)備例如磁盤、磁光盤或光盤。適于具體實施計算機程序指令和數(shù)據(jù)的信息載體包括所有形式的非易失性存儲 器,作為例子,包括半導(dǎo)體存儲器器件,例如EPR0M、EEPROM和閃存設(shè)備、磁盤,例如內(nèi)置硬 盤或可移動磁盤、磁光盤和CD-ROM以及DVD-ROM盤。處理器和存儲器可以以專用邏輯電路 補充,或者被包含在專用邏輯電路中。為了提供和用戶的交互,實現(xiàn)方式可以在具有顯示設(shè)備和鍵盤以及定點設(shè)備的計 算機上實施,顯示設(shè)備例如陰極射線管(CRT)或液晶顯示器(LCD)監(jiān)視器,用于向用戶顯示 信息,鍵盤和指示設(shè)備例如鼠標或軌跡球,用戶利用它們可以提供到計算機的輸入。其他種 類的設(shè)備也可以被用來提供和用戶的交互;例如,提供給用戶的反饋可以是任何形式的感 覺反饋,例如視覺反饋、聽覺反饋或觸覺反饋,并且,來自用戶的輸入可以被以任何形式接 收,包括聲音、語音或觸覺輸入。實現(xiàn)方式可以被在包括后端組件或包括中間件組件或包括前端組件的計算系統(tǒng) 中實施,或者在這些后端、中間件、前端組件的任意組合中實施,后端組件例如數(shù)據(jù)服務(wù)器, 中間件組件例如應(yīng)用服務(wù)器,前端組件例如具有圖形用戶界面,或Web瀏覽器的客戶端計 算機,通過圖形用戶界面或Web瀏覽器,用戶可以和實現(xiàn)方式進行交互??梢岳脭?shù)字數(shù)據(jù) 通信的任何形式或介質(zhì)互連組件,數(shù)字數(shù)據(jù)通信介質(zhì)例如通信網(wǎng)絡(luò)。通信網(wǎng)絡(luò)的例子包括 局域網(wǎng)(LAN)和廣域網(wǎng)(WAN),例如因特網(wǎng)。雖然如這里所描述的那樣已經(jīng)示出了所描述的實現(xiàn)方式的某些特征,但是本領(lǐng)域 普通技術(shù)人員現(xiàn)在應(yīng)當想到很多修改、替換,變化或等同物。因此應(yīng)當理解,所附權(quán)利要求 旨在覆蓋所有這些修改和變化。
權(quán)利要求
一種包括記錄在計算機可讀介質(zhì)上的指令的系統(tǒng),該系統(tǒng)包括操作符管理器,配置成用于確定可用核的數(shù)量并且在查詢的多個操作符之中分配核,所述操作符包括操作符的運行中集合,存在通過該集合的多個查詢路徑,該操作符管理器包括狀態(tài)監(jiān)視器,配置成用于確定可用核的數(shù)量并且用于確定操作符的運行中集合,關(guān)鍵路徑選擇器,配置成用于從查詢路徑以及操作符的運行中集合中確定查詢的關(guān)鍵路徑,以及工作量管理器,配置成給運行中集合以及關(guān)鍵路徑的運行中的操作符分配可用核的第一個核,并且此后從關(guān)鍵路徑選擇器接收新關(guān)鍵路徑并且給新關(guān)鍵路徑的運行中的操作符分配可用核的第二個核。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述關(guān)鍵路徑選擇器配置成用于確定關(guān)鍵路徑,包 括總計每個查詢路徑的操作符的操作符執(zhí)行時間,并且此后選擇具有最大的查詢路徑總計 執(zhí)行時間的關(guān)鍵路徑。
3.如權(quán)利要求2所述的系統(tǒng),其中,所述關(guān)鍵路徑選擇器配置成用于在給運行中集合 以及關(guān)鍵路徑的運行中的操作符分配了第一個核之后,通過為每個查詢路徑重新計算總計 操作符執(zhí)行時間并且選擇具有最大的查詢路徑總計執(zhí)行時間的新關(guān)鍵路徑,來確定新關(guān)鍵 路徑。
4.如權(quán)利要求1所述的系統(tǒng),其中,所述關(guān)鍵路徑選擇器配置成用于確定新關(guān)鍵路徑, 包括在給運行中集合以及關(guān)鍵路徑的運行中的操作符分配了第一個核之后,為每個查詢路 徑計算總計操作符執(zhí)行時間;確定潛在的關(guān)鍵路徑,用于給運行中集合以及潛在的關(guān)鍵路徑的運行中的操作符分配 第二個核,該潛在的關(guān)鍵路徑具有最大的查詢路徑總計執(zhí)行時間;根據(jù)工作量管理器確定給運行中集合以及潛在的關(guān)鍵路徑的運行中的操作符分配第 二個核將不會帶來它的執(zhí)行時間的凈利益;以及確定具有第二大的查詢路徑總計執(zhí)行時間為新關(guān)鍵路徑。
5.如權(quán)利要求1所述的系統(tǒng),其中,所述工作量管理器配置成分配第一個核,包括根據(jù) 運行中集合以及關(guān)鍵路徑的運行中的操作符的減函數(shù)確定第一個核的分配將導(dǎo)致它的執(zhí) 行時間的凈減。
6.如權(quán)利要求1所述的系統(tǒng),其中,所述操作符管理器配置成繼續(xù)給查詢路徑的運行 中的操作符分配可用核,直到所述工作量管理器根據(jù)運行中的操作符的減函數(shù)確定給任何 運行中的操作符分配任何可用核都將不會導(dǎo)致它的執(zhí)行時間的減少為止。
7.如權(quán)利要求1所述的系統(tǒng),其中,所述狀態(tài)監(jiān)視器配置成檢測包括新的可用或不可 用核的狀態(tài)變化、查詢的運行中的操作符的開始或完成,并且配置成根據(jù)該狀態(tài)變化停止 或開始所述操作符管理器的操作。
8.如權(quán)利要求1所述的系統(tǒng),包括查詢管理器,配置成用于確定多個查詢,包括所述查詢,其中該查詢管理器包括查詢選擇器,配置成用于確定可用核的總數(shù)量并配置成給所述操作符管理器分配可用 核總數(shù)量的可用核,以便通過所述可用核進行查詢的并行處理;以及查詢監(jiān)視器,配置成監(jiān)視多個查詢以便確定它們的狀態(tài)。
9.如權(quán)利要求8所述的系統(tǒng),其中,所述查詢選擇器配置成用于確定與多個查詢相關(guān) 聯(lián)的樹的形狀并且用于根據(jù)樹的形狀以及可用核的總數(shù)量確定多查詢處理算法。
10.如權(quán)利要求9所述的系統(tǒng),其中,所述查詢選擇器配置成執(zhí)行包括剩余時間最短任 務(wù)優(yōu)先SRJF算法的多查詢處理算法,根據(jù)該算法,所述查詢監(jiān)視器從多個查詢中選擇用最 短剩余時間來完成的查詢,并且所述查詢選擇器給該查詢分配可用核,以便由所述操作符 管理器在它的并行處理中使用。
11.如權(quán)利要求9所述的系統(tǒng),其中,所述查詢選擇器配置成執(zhí)行包括利益驅(qū)動平衡關(guān) 鍵路徑BD-BCP算法的多查詢處理算法,根據(jù)該算法執(zhí)行循環(huán)賽,在該循環(huán)賽中所述查詢監(jiān) 視器從多個查詢中選擇具有向其分配核獲得最大利益的查詢,并且該查詢選擇器給該查詢 分配第一個核,隨之繼續(xù)該循環(huán)賽,查詢監(jiān)視器根據(jù)從多個可用核中選擇具有向其分配核 獲得下一個最大利益的下一個查詢。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述操作符的運行中集合包括查詢的每個并行線 程中的查詢的每個運行中的操作符,其中多個查詢路徑中包括從每個這樣的運行中的操作 符到查詢的結(jié)束的路徑。
13.一種計算機可執(zhí)行的方法,包括確定包括多個操作符的查詢,該操作符包括操作符的運行中集合,存在通過該集合的 多個查詢路徑;確定可用核的數(shù)量;根據(jù)多個查詢路徑的每一個的總執(zhí)行時間確定多個查詢路徑的關(guān)鍵路徑; 給運行中集合以及關(guān)鍵路徑中的第一操作符分配第一個可用核; 根據(jù)該分配確定通過多個查詢路徑的新關(guān)鍵路徑;以及 給運行中集合以及新關(guān)鍵路徑中的第二操作符分配第二個可用核。
14.如權(quán)利要求13所述的方法,其中,確定關(guān)鍵路徑包括 對每個查詢路徑的操作符的操作符執(zhí)行時間進行總計;以及 選擇具有最大的查詢路徑總計執(zhí)行時間的關(guān)鍵路徑。
15.如權(quán)利要求13所述的方法,其中,分配第一個可用核包括根據(jù)與運行中集合以及 關(guān)鍵路徑中的第一操作符相關(guān)的減函數(shù),確定給它分配第一個可用核將導(dǎo)致它的執(zhí)行時間 減少。
16.如權(quán)利要求13所述的方法,其中,確定新關(guān)鍵路徑包括在給運行中集合以及關(guān)鍵路徑中的第一操作符分配了第一個可用核之后,為每個查詢 路徑計算總計操作符執(zhí)行時間;確定潛在的關(guān)鍵路徑,用于給運行中集合以及潛在的關(guān)鍵路徑的運行中的操作符分配 第二個可用核,該潛在的關(guān)鍵路徑具有最大的查詢路徑總計執(zhí)行時間;確定給運行中集合以及潛在的關(guān)鍵路徑的運行中的操作符分配第二個可用核將不會 提供它的執(zhí)行時間的凈利益;以及確定具有下一個最大的查詢路徑總執(zhí)行時間的新關(guān)鍵路徑。
17.如權(quán)利要求13所述的方法,其中,確定查詢包括 從多個查詢中確定查詢; 確定核的總數(shù)量;以及確定多個查詢中用最短剩余時間來完成的查詢;以及根據(jù)所確定的用最短剩余時間來完成的查詢,給該查詢分配核總數(shù)量的可用核。
18.如權(quán)利要求13所述的方法,其中,確定查詢包括 從多個查詢中確定查詢; 確定核的總數(shù)量;為多個查詢的每一個設(shè)計與查詢執(zhí)行時間的減少相關(guān)聯(lián)的有益長度,該時間的減少是 由給每個查詢分配總數(shù)量的核中的至少一個核以便通過所述核進行處理而引起的; 根據(jù)該設(shè)計給查詢分配核總數(shù)的至少一個核; 根據(jù)該分配為多個查詢的每一個重新設(shè)計有益長度;以及根據(jù)該重新設(shè)計給查詢分配總數(shù)量的核中的至少第二個核,總數(shù)量的核中的第一個核 和第二個核由此形成查詢的可用核。
全文摘要
本發(fā)明提供并行化查詢的多核調(diào)度系統(tǒng)和方法。操作符管理器可以配置成確定可用核的數(shù)量并且在查詢的多個操作符中分配核,該操作符包括操作符的運行中集合,存在通過該集合的多個查詢路徑。操作符管理器可以包括狀態(tài)監(jiān)視器,配置成用于確定可用核的數(shù)量并且用于確定操作符的運行中集合;關(guān)鍵路徑選擇器,配置成用于從查詢路徑中確定查詢的關(guān)鍵路徑以及操作符的運行中集合;以及工作量管理器,配置成給運行中集合以及關(guān)鍵路徑的運行中的操作符分配可用核的第一個核,并且此后從關(guān)鍵路徑選擇器接收新關(guān)鍵路徑并且給新關(guān)鍵路徑的運行中的操作符分配可用核的第二個核。
文檔編號G06F9/50GK101908003SQ20091015957
公開日2010年12月8日 申請日期2009年6月5日 優(yōu)先權(quán)日2009年6月5日
發(fā)明者許儉, 閆劍鋒, 黎文憲 申請人:Sap股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
曲麻莱县| 浪卡子县| 信丰县| 阿拉善盟| 江城| 梓潼县| 滨州市| 深州市| 沂水县| 民勤县| 五家渠市| 秦皇岛市| 铜山县| 宜阳县| 特克斯县| 苍梧县| 平乐县| 娄烦县| 荔波县| 忻城县| 任丘市| 肇庆市| 安达市| 莫力| 平邑县| 皮山县| 焦作市| 罗田县| 阳高县| 龙游县| 邵东县| 清新县| 平江县| 广水市| 弋阳县| 长春市| 东兰县| 襄垣县| 平山县| 凤庆县| 中阳县|