專利名稱:用于動態(tài)查詢優(yōu)化的方法、設(shè)備和計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及由計(jì)算機(jī)實(shí)現(xiàn)的數(shù)據(jù)處理方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。更具體來講,本發(fā)明涉及酌情動態(tài)地優(yōu)化數(shù)據(jù)庫查詢,以便在查詢調(diào)整時(shí)間界限內(nèi)完成查詢運(yùn)行時(shí)間。
本發(fā)明涉及如下與此一同提交的共同待決并且一同轉(zhuǎn)讓的序號為10/787,722(代理人編號為ROC920030044US1)的美國專利申請,將該篇申請引入于此,以供參考。
背景技術(shù):
在使用SQL的典型數(shù)據(jù)庫查詢過程中,查詢調(diào)整器(governor)是用于執(zhí)行多個(gè)功能的機(jī)構(gòu)。通常,查詢調(diào)整器可以被配置為允許所有查詢均運(yùn)行預(yù)定的最大時(shí)間量,例如對于所有連接的所有查詢或者僅僅對于特殊連接的查詢而言,可以是幾秒。一種特殊的查詢調(diào)整器的功能在于搶占(pre-empt)長時(shí)間運(yùn)行的查詢或者在它們開始以前阻止它們執(zhí)行。這種搶占取決于對于由查詢優(yōu)化器得到的查詢運(yùn)行時(shí)間的估計(jì)值是否超出預(yù)定查詢時(shí)間界限的確定,其中所述查詢時(shí)間界限已經(jīng)由查詢調(diào)整器設(shè)定。如果確定可能超出閾值,那么可以發(fā)布警告并且不運(yùn)行查詢。由于這樣做可以防止不必要地消耗系統(tǒng)資源,所以它是十分有益的。
當(dāng)查詢調(diào)整器依照上述方式管理查詢時(shí),沒有已知的方法來動態(tài)預(yù)測使本來會長時(shí)間運(yùn)行的查詢吻合在預(yù)定查詢時(shí)間界限內(nèi),從而使所述查詢在運(yùn)行時(shí)不會被搶占所需的適當(dāng)計(jì)算機(jī)資源量。此外,沒有已知的方法來動態(tài)地分配適當(dāng)?shù)挠?jì)算機(jī)資源量,以便使所述長時(shí)間運(yùn)行的查詢吻合在預(yù)定查詢時(shí)間界限內(nèi),其中所述分配基于所述動態(tài)預(yù)測。另外,沒有已知的方法用于這樣的系統(tǒng),其中所分配的資源可以從經(jīng)邏輯分區(qū)的環(huán)境和/或網(wǎng)格環(huán)境獲得以便實(shí)現(xiàn)上述任務(wù)。此外,沒有已知的方法來基于為實(shí)現(xiàn)上述任務(wù)而實(shí)際使用的計(jì)算機(jī)資源,向消費(fèi)者分派費(fèi)用或費(fèi)用,更不用說滿足消費(fèi)者的可配置費(fèi)用和性能需求了。
因此,需要一種方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品來提供查詢調(diào)整器,其用于通過阻止執(zhí)行長時(shí)間運(yùn)行的查詢來管理數(shù)據(jù);動態(tài)預(yù)測使查詢的運(yùn)行完成吻合在預(yù)定時(shí)間界限內(nèi)而需要的適當(dāng)計(jì)算機(jī)資源量;基于這種動態(tài)預(yù)測來動態(tài)地分配適當(dāng)?shù)挠?jì)算機(jī)資源量以便在預(yù)定的查詢時(shí)間界限內(nèi)完成查詢運(yùn)行;可以應(yīng)用于經(jīng)邏輯分區(qū)的環(huán)境和/或網(wǎng)格環(huán)境以便分派資源;并且基于實(shí)際使用的計(jì)算機(jī)資源向消費(fèi)者分派費(fèi)用,由此滿足可配置的消費(fèi)者需求。
因此,在這些需要沒有被滿足的情況下,將不會易于實(shí)現(xiàn)利用查詢調(diào)整器來運(yùn)行查詢的真正潛能。
發(fā)明內(nèi)容
本發(fā)明提供了對方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的改進(jìn),以便動態(tài)地預(yù)測適當(dāng)?shù)挠?jì)算機(jī)資源量,其中所述適當(dāng)?shù)挠?jì)算機(jī)資源量應(yīng)被分配以便使查詢在預(yù)定查詢時(shí)間界限內(nèi)完成,否則所述查詢不會在此界限內(nèi)完成。包括以下改進(jìn)依照這些動態(tài)預(yù)測來動態(tài)分配適當(dāng)?shù)挠?jì)算機(jī)資源,而不會帶來負(fù)面影響,并且克服了現(xiàn)有技術(shù)的處理配置的許多缺點(diǎn)。
本發(fā)明的一方面包括對方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的改進(jìn),其具有這樣的優(yōu)勢,即使得被動態(tài)分配的計(jì)算機(jī)資源從經(jīng)邏輯分區(qū)的環(huán)境和/或網(wǎng)格環(huán)境中獲得。
本發(fā)明的另一方面包括對方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品的改進(jìn),其還具有這樣的優(yōu)勢,即基于實(shí)際使用的計(jì)算機(jī)資源來向消費(fèi)者分派費(fèi)用,由此,滿足消費(fèi)者對費(fèi)用和性能的可配置需求。
本發(fā)明的又一方面在于它提供了一種可靠的并且有效的方式來進(jìn)行查詢優(yōu)化。
根據(jù)隨后對示例性實(shí)施例的詳細(xì)描述,將會更加全面地了解本發(fā)明的這些以及其它特征和方面,所述具體實(shí)施例應(yīng)根據(jù)附圖來閱讀。應(yīng)該理解的是,先前的概括性說明和隨后的詳細(xì)說明都是示例性的,而不是限制本發(fā)明。
圖1是依照本發(fā)明的具有經(jīng)由網(wǎng)格環(huán)境提供計(jì)算服務(wù)的供應(yīng)商的環(huán)境的框圖。
圖2是依照示例性實(shí)施例之一的計(jì)算機(jī)系統(tǒng)的框圖。
圖3是例示了經(jīng)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)中的邏輯組件的框圖。
圖4是例示了依照本發(fā)明一個(gè)實(shí)施例的待應(yīng)用于查詢的計(jì)算機(jī)資源的動態(tài)預(yù)測的示例性流程圖。
圖5是例示了依照本發(fā)明一個(gè)實(shí)施例的資源分配及解除分配的示例性流程圖。
圖6是例示由本發(fā)明執(zhí)行的另一方面的處理的示例性流程圖。
圖7是例示了由本發(fā)明執(zhí)行的另一方面的處理的示例性流程圖。
圖8例示了用于允許用戶指定參數(shù)來配置系統(tǒng)操作以便滿足消費(fèi)者需求的圖形用戶界面。
具體實(shí)施例方式
本發(fā)明總體上致力于這樣的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品,其用于酌情動態(tài)預(yù)測并且分配計(jì)算機(jī)資源,以便在預(yù)定查詢時(shí)間界限內(nèi)完成如下查詢,這些查詢由于被預(yù)測為將在預(yù)定查詢時(shí)間界限以外完成,所以它們的運(yùn)行本來會被搶占。優(yōu)化可以包括按照獨(dú)立計(jì)算機(jī)系統(tǒng)和/或網(wǎng)格計(jì)算環(huán)境和/或經(jīng)邏輯分區(qū)的處理器環(huán)境來動態(tài)分配計(jì)算機(jī)資源。因而,系統(tǒng)用戶只需為實(shí)際使用的計(jì)算機(jī)資源付費(fèi),而不用為不需要的資源付費(fèi)。
圖1-3例示了依照本發(fā)明的用于實(shí)現(xiàn)查詢優(yōu)化方法的數(shù)據(jù)處理系統(tǒng)100的一個(gè)示例性實(shí)施例。所例示的實(shí)施例僅僅是可利用的各種系統(tǒng)的一個(gè)示例?,F(xiàn)在參考圖1,該圖示出了用于實(shí)施本發(fā)明的數(shù)據(jù)處理環(huán)境100。通常,所述數(shù)據(jù)處理環(huán)境100包括供應(yīng)商計(jì)算機(jī)系統(tǒng)102和一組一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)1161-116N(合稱為116)。所述供應(yīng)商計(jì)算機(jī)系統(tǒng)102例如被實(shí)施為相對于系統(tǒng)用戶(客戶端)計(jì)算機(jī)系統(tǒng)116的服務(wù)器計(jì)算機(jī)。雖然把所有計(jì)算機(jī)例示為多個(gè)單獨(dú)的實(shí)體,但是實(shí)際上,供應(yīng)商計(jì)算機(jī)系統(tǒng)102和客戶端計(jì)算機(jī)系統(tǒng)116可以是被配置為執(zhí)行各種功能(包括此處所描述的那些功能)的計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)。此外,此處所使用的術(shù)語“客戶端”和“服務(wù)器”僅僅是為方便起見,而不是為了限制。因而,在某些方面,可以作為相對于供應(yīng)商計(jì)算機(jī)系統(tǒng)102的客戶端的客戶端計(jì)算機(jī)系統(tǒng)116本身也可以是相對于一個(gè)或多個(gè)其它客戶端(未示出)的服務(wù)器。
所述供應(yīng)商計(jì)算機(jī)系統(tǒng)102和客戶端計(jì)算機(jī)系統(tǒng)116經(jīng)由網(wǎng)絡(luò)106通信。所述供應(yīng)商計(jì)算機(jī)系統(tǒng)102提供對網(wǎng)格計(jì)算環(huán)境104的訪問。對網(wǎng)格計(jì)算環(huán)境104內(nèi)的各種資源的訪問還可以由不同的服務(wù)供應(yīng)商來提供。所述網(wǎng)格環(huán)境104可以包含多個(gè)不同的計(jì)算資源1201-120N(合稱為120)。所述網(wǎng)格計(jì)算環(huán)境104可以包括并行和分布式計(jì)算系統(tǒng),所述系統(tǒng)允許在運(yùn)行時(shí)根據(jù)資源的可利用性、容量、性能、費(fèi)用和/或用戶的服務(wù)質(zhì)量需求來共享、選擇、并且合并在地理位置上分布的資源。所述網(wǎng)格計(jì)算環(huán)境104可以是包括各種硬件和/或軟件計(jì)算資源的網(wǎng)絡(luò)。這些資源可以經(jīng)由網(wǎng)絡(luò)介質(zhì)106由各式各樣的用戶加以利用和訪問,并且可以在他們之間共享,所述網(wǎng)絡(luò)介質(zhì)諸如是因特網(wǎng)。
在示例性的實(shí)施例中,網(wǎng)絡(luò)106可以是諸如局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN)的多個(gè)適用網(wǎng)絡(luò)中的任何一個(gè),信息可經(jīng)由這些網(wǎng)絡(luò)被轉(zhuǎn)送。所述供應(yīng)商計(jì)算機(jī)系統(tǒng)102可以利用超文本傳輸協(xié)議(HTTP)服務(wù)器122來配置,以便服務(wù)于來自駐留在客戶端計(jì)算機(jī)系統(tǒng)116上的瀏覽器程序的請求。所述HTTP服務(wù)器122和瀏覽器程序提供了便利的并且眾所周知的軟件組件來建立經(jīng)由網(wǎng)絡(luò)106的網(wǎng)絡(luò)連接(例如,TCP/IP連接)。
返回參考供應(yīng)商計(jì)算機(jī)系統(tǒng)102,它可以利用用于為客戶端計(jì)算機(jī)系統(tǒng)116請求網(wǎng)格資源的管理器108來配置。在示例性的實(shí)施例中,所述管理器108管理請求從客戶端計(jì)算機(jī)系統(tǒng)116到適當(dāng)?shù)木W(wǎng)格環(huán)境資源104的路由。在2003年9月11日提交的共同待決的并且共同受讓的序號為10/659,976(代理人編號為ROC920030207US1)的美國申請中描述了這種網(wǎng)格計(jì)算系統(tǒng),將該篇申請的內(nèi)容在此引入,并且作為本申請的一部分。此處將只提供被認(rèn)為是實(shí)現(xiàn)本發(fā)明所需的那些細(xì)節(jié)。
對網(wǎng)格資源的某些請求是基于固定費(fèi)用或者基于依賴于參數(shù)值的費(fèi)用來實(shí)現(xiàn)的。例如,所收取的費(fèi)用取決于處理查詢所需要的時(shí)間。所述管理器108還通過跟蹤用在特定請求上的時(shí)間并且計(jì)算與之相關(guān)聯(lián)的費(fèi)用來監(jiān)控這些請求的進(jìn)度。雖然,把所述管理器108顯示為單個(gè)實(shí)體,但是應(yīng)該注意的是,其可以代表由供應(yīng)商計(jì)算機(jī)系統(tǒng)102內(nèi)的不同軟件和/或硬件組件實(shí)現(xiàn)的不同功能。定價(jià)是相對于各種定價(jià)準(zhǔn)則中的任何一個(gè)來確定的,所述準(zhǔn)則例如包括基于時(shí)間的準(zhǔn)則、請求類型或類別準(zhǔn)則、優(yōu)先級準(zhǔn)則、歷史信息、系統(tǒng)用戶標(biāo)識準(zhǔn)則以及它們的組合。應(yīng)用這些定價(jià)準(zhǔn)則來定義定價(jià)表或者策略,所述管理器108可以訪問它們以便計(jì)算請求的費(fèi)用。在一個(gè)實(shí)施例中,定價(jià)準(zhǔn)則定義在存儲于數(shù)據(jù)庫110中的服務(wù)合同112中。所述數(shù)據(jù)庫110是關(guān)系型數(shù)據(jù)庫。所述數(shù)據(jù)庫110可以利用在諸如DB2中的數(shù)據(jù)庫管理系統(tǒng)(DBMS),其可以從位于Armonk,NY的國際商業(yè)機(jī)器公司購買到,以供數(shù)據(jù)文件111使用。數(shù)據(jù)庫110還可以包含歷史數(shù)據(jù)124,其包括過去接收并且處理的請求記錄,以及所利用的相應(yīng)資源量以及處理各種查詢所花費(fèi)的時(shí)間。對于供應(yīng)商計(jì)算機(jī)系統(tǒng)102的每個(gè)合同系統(tǒng)用戶而言,都會存在服務(wù)合同。在另一個(gè)實(shí)施例中,可以在針對沒有與服務(wù)供應(yīng)商簽訂合同協(xié)議的系統(tǒng)用戶的通用定價(jià)表114中指定定價(jià)準(zhǔn)則。對于各種不同的定價(jià)準(zhǔn)則而言,可能存在不同的通用定價(jià)表114,所述準(zhǔn)則包括上述那些(例如,請求時(shí)間準(zhǔn)則、請求類型或類別準(zhǔn)則、優(yōu)先級準(zhǔn)則、歷史信息、系統(tǒng)用戶標(biāo)識準(zhǔn)則以及它們的組合)。
歷史信息還可以充當(dāng)用于確定定價(jià)表的依據(jù)。定價(jià)表可以把所述一個(gè)或多個(gè)定價(jià)準(zhǔn)則的組合考慮在內(nèi)。所述歷史信息可以由歷史數(shù)據(jù)124提供,所述歷史數(shù)據(jù)124包括與過去處理請求所花費(fèi)的資源量和時(shí)間有關(guān)的信息。可以搜索歷史數(shù)據(jù)124來確定與所接收的請求相同或類似的請求是否從前被處理過。如果類似請求位于歷史數(shù)據(jù)中,那么可以使用與用于處理該請求所利用的資源和所花費(fèi)的時(shí)間相關(guān)的信息來選擇不同的定價(jià)表。當(dāng)然,上述的每個(gè)準(zhǔn)則都是可選的,并且在不同的實(shí)施例中,在確定定價(jià)表的過程中可以利用或者不利用。
參考圖2,該圖例示了計(jì)算機(jī)系統(tǒng)116,其諸如是可以從位于Armonk,NY的國際商業(yè)機(jī)器公司購買到的eServer iSeries計(jì)算機(jī)系統(tǒng)。應(yīng)理解的是,可以想象到使用其它計(jì)算機(jī)系統(tǒng)來實(shí)現(xiàn)本發(fā)明,并且所例示的實(shí)施例僅僅是示例性的。計(jì)算機(jī)系統(tǒng)116包括一個(gè)或多個(gè)處理器130A-N(合稱為130),它們連接至主存儲器140、大容量存儲設(shè)備接口150、顯示器接口160、網(wǎng)絡(luò)接口170和多個(gè)I/O槽180。系統(tǒng)總線125互聯(lián)這些組件。雖然只使用了單個(gè)總線,但是本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明可以利用多個(gè)總線。每一個(gè)處理器可以由一個(gè)或多個(gè)微處理器和/或集成電路來構(gòu)造。所述處理器執(zhí)行主存儲器中的程序指令。所述大容量存儲設(shè)備接口150用于把大容量存儲設(shè)備,諸如直接存取存儲設(shè)備(DASD)155(例如適當(dāng)?shù)腃D RW驅(qū)動器)連接至計(jì)算機(jī)系統(tǒng)。顯示器接口160用于把一個(gè)或多個(gè)顯示器165直接連接至計(jì)算機(jī)系統(tǒng)。所述顯示器165可以是非智能終端或者完全可編程的工作站。網(wǎng)絡(luò)接口170用于把其它計(jì)算機(jī)系統(tǒng)和/或工作站175跨越網(wǎng)絡(luò)連接至計(jì)算機(jī)系統(tǒng)116。應(yīng)指出的是,無論所利用的網(wǎng)絡(luò)連接技術(shù)如何,本發(fā)明都適用,而不管有多少計(jì)算機(jī)系統(tǒng)和/或工作站可以連接至其它計(jì)算機(jī)系統(tǒng)和/或工作站。
主存儲器140包含以下數(shù)據(jù),所述數(shù)據(jù)可由任何處理器130或者任何可以訪問主存儲器的其它設(shè)備來讀或?qū)?。所述主存儲?40可以包括操作系統(tǒng)141。所述主存儲器140存儲可由處理器訪問并執(zhí)行的程序和數(shù)據(jù)。所述操作系統(tǒng)141是多任務(wù)操作系統(tǒng),諸如OS/400TM、AIXTM或者LinuxTM。本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明的精神和范圍不局限于任何一個(gè)操作系統(tǒng)。所述操作系統(tǒng)141管理計(jì)算機(jī)系統(tǒng)的資源,包括處理器130、主存儲器140、大容量存儲設(shè)備接口150、顯示器接口160、網(wǎng)絡(luò)接口170和I/O槽180。任何適當(dāng)?shù)牟僮飨到y(tǒng)都可以利用。操作系統(tǒng)141包括用于操作該系統(tǒng)的應(yīng)用程序。主存儲器140中包括數(shù)據(jù)庫管理系統(tǒng)(DBMS)142。所述數(shù)據(jù)庫管理系統(tǒng)142是用于把數(shù)據(jù)存儲在數(shù)據(jù)庫110中、使用高級查詢語言從中檢取數(shù)據(jù)并且修改存儲在其中的數(shù)據(jù)的應(yīng)用程序,其中所述高級查詢語言例如是標(biāo)準(zhǔn)查詢語言(SQL)。系統(tǒng)用戶可以利用交互式SQL程序143中的涉及SQL命令的查詢。所述查詢用于檢取數(shù)據(jù)并且顯示它。此外,數(shù)據(jù)庫管理系統(tǒng)142中包括查詢優(yōu)化器144、查詢調(diào)整器145和查詢調(diào)度管理器146。所述查詢調(diào)度管理器146依照稍后將描述的方式來管理查詢調(diào)整器145的操作,以便影響使查詢在預(yù)定時(shí)間內(nèi)執(zhí)行所需的計(jì)算機(jī)資源的動態(tài)預(yù)測。所述查詢調(diào)度管理器146還包括計(jì)算機(jī)資源分配器應(yīng)用或者模塊147、實(shí)際計(jì)算機(jī)資源計(jì)量應(yīng)用或者模塊148和查詢歷史機(jī)構(gòu)或者模塊149,如稍后將描述的那樣。所述資源分配器模塊147根據(jù)單機(jī)環(huán)境、經(jīng)邏輯分區(qū)的環(huán)境和網(wǎng)格環(huán)境,也就是根據(jù)對在預(yù)定查詢時(shí)間界限內(nèi)完成查詢運(yùn)行時(shí)間的預(yù)測,來酌情分派計(jì)算機(jī)資源,其中所述預(yù)定查詢時(shí)間界限是由查詢調(diào)整器設(shè)定的。提供了實(shí)際利用計(jì)量模塊148以便用來根據(jù)計(jì)算機(jī)資源的實(shí)際利用來確定費(fèi)用。提供了查詢歷史模塊149,用于為新作業(yè)創(chuàng)建歷史表并且用于為已知查詢更新歷史表。數(shù)據(jù)庫管理系統(tǒng)、SQL應(yīng)用程序、查詢優(yōu)化器、查詢調(diào)度管理器、查詢調(diào)整器、資源分配器、實(shí)際利用計(jì)量器和查詢歷史模塊可以駐留在主存儲器中,但是如已知的那樣,也可以駐留在其它地方。
查詢優(yōu)化器144是用于選擇有效的可執(zhí)行查詢計(jì)劃以便執(zhí)行應(yīng)用于數(shù)據(jù)庫的SQL查詢的應(yīng)用程序。查詢計(jì)劃是執(zhí)行查詢的方法。查詢是用于從數(shù)據(jù)庫檢取數(shù)據(jù)的命令集合。例如,查詢計(jì)劃可以產(chǎn)生所請求的結(jié)果,其中在最短時(shí)間周期內(nèi)運(yùn)行查詢。所述查詢優(yōu)化器144還允許預(yù)測執(zhí)行查詢的運(yùn)行時(shí)間周期,并且表明將用于完成所述任務(wù)的硬件資源。查詢調(diào)整器145是這樣一種應(yīng)用程序,其用于從查詢優(yōu)化器144接收就期望查詢運(yùn)行多長時(shí)間來完成而預(yù)測的值。如果所述查詢具有超出查詢調(diào)整器所設(shè)定的時(shí)間幀或預(yù)定查詢時(shí)間界限值的預(yù)測運(yùn)行長度,則查詢調(diào)整器145進(jìn)行動作以不允許運(yùn)行查詢。查詢調(diào)整器的預(yù)定查詢時(shí)間界限可以被設(shè)置為最小閾值和最大時(shí)限值。所述最小閾值時(shí)間值(例如,秒)被確定為這樣的值,即如果查詢超出該值,則將使查詢調(diào)整器阻止查詢運(yùn)行。最大時(shí)限值是這樣一種最大時(shí)間值(例如,秒),即如果所預(yù)測的查詢運(yùn)行時(shí)間超出該值,將使查詢調(diào)整器阻止查詢運(yùn)行??梢杂上到y(tǒng)用戶或者通過系統(tǒng)配置來建立查詢調(diào)整器145的預(yù)定查詢時(shí)間界限的邊界值或者時(shí)間設(shè)定。
依照本發(fā)明,所述查詢調(diào)度管理器146根據(jù)來自查詢優(yōu)化器144的所預(yù)測的查詢運(yùn)行時(shí)間,動態(tài)地預(yù)測用于使預(yù)測查詢時(shí)間吻合在由查詢調(diào)整器設(shè)定的預(yù)定查詢時(shí)間界限內(nèi)或者在該時(shí)間界限內(nèi)完成預(yù)測查詢運(yùn)行時(shí)間的適當(dāng)計(jì)算機(jī)資源量。這種動態(tài)預(yù)測根據(jù)單機(jī)環(huán)境、或根據(jù)經(jīng)邏輯分區(qū)的環(huán)境和/或網(wǎng)格計(jì)算環(huán)境來考慮可用資源。此后,所述查詢調(diào)度管理器146經(jīng)由計(jì)算機(jī)資源分配器模塊147來動態(tài)地分配/解除分配適當(dāng)?shù)馁Y源,以便使查詢運(yùn)行時(shí)間吻合在由查詢調(diào)整器設(shè)定的預(yù)定查詢時(shí)間界限內(nèi)、或者在該時(shí)間界限內(nèi)完成查詢運(yùn)行時(shí)間。因此,允許執(zhí)行那些由于其預(yù)測的運(yùn)行時(shí)間超出查詢調(diào)整器的預(yù)定查詢時(shí)間界限而使其運(yùn)行本來會被搶占的查詢。此外,根據(jù)完成任務(wù)所實(shí)際使用的計(jì)算機(jī)資源(包括使消費(fèi)者的可配置需求得以滿足),來向消費(fèi)者分派費(fèi)用。
在這一點(diǎn)上,重要的是應(yīng)注意到,雖然本發(fā)明已經(jīng)并將繼續(xù)在全功能計(jì)算機(jī)系統(tǒng)的環(huán)境下來描述,但是本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明能夠以各種形式被作為程序產(chǎn)品來發(fā)行,并且無論用來實(shí)際實(shí)施發(fā)行的計(jì)算機(jī)可讀信號承載介質(zhì)的特定類型或類別如何,本發(fā)明都同樣適用。示例性的實(shí)施例還擴(kuò)展到經(jīng)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)和/或網(wǎng)格環(huán)境。
在這方面,請參考于2003年7月10日提交的共同受讓且共同并待決的公開號為20050010502、US序號為10/616,676的美國專利申請(代理人編號為ROC920030147US1)。然而,將只闡述該專利申請的與理解本發(fā)明有關(guān)的那些方面。邏輯分區(qū)可以在相同的物理計(jì)算機(jī)系統(tǒng)上提供完全不同的計(jì)算環(huán)境。
參考圖3,經(jīng)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)200的一種特殊實(shí)現(xiàn)方式包括N個(gè)邏輯分區(qū),每一邏輯分區(qū)執(zhí)行其自身的各自操作系統(tǒng)。在圖3中,所示出的邏輯分區(qū)225A-N(合稱為225)用于執(zhí)行它們各自的操作系統(tǒng)226A-N(合稱為226)。每一邏輯分區(qū)中的操作系統(tǒng)226可以與其它分區(qū)中的操作系統(tǒng)相同,或者可以是完全不同的操作系統(tǒng)。由此,一個(gè)分區(qū)可以運(yùn)行OS/400操作系統(tǒng),而不同的分區(qū)可以運(yùn)行OS/400的另一實(shí)例,可能是不同的版本。邏輯分區(qū)中的操作系統(tǒng)甚至可以不同于OS/400,只要其與硬件兼容即可。邏輯分區(qū)225由分區(qū)管理器240管理。已知適當(dāng)?shù)姆謪^(qū)管理器240的一個(gè)示例為“Hypervisor(系統(tǒng)管理程序)”,其可以從國際商業(yè)機(jī)器公司購買到。所述分區(qū)管理器240管理資源250,圖3中作為資源240示出。如本申請所使用的那樣,“資源”可以是任何硬件或者軟件或者其組合,它們均由分區(qū)管理器240控制。硬件資源的示例包括處理器、存儲器和硬盤驅(qū)動器。軟件資源的示例包括數(shù)據(jù)庫、內(nèi)部通信(諸如邏輯LAN)或者應(yīng)用程序(諸如文字處理器、電子郵件等等)。所述分區(qū)管理器240控制可以由邏輯分區(qū)225分配的那些資源250。一旦資源可由分區(qū)管理器240利用,那么如果該資源還沒有被分配給邏輯分區(qū),就把該資源歸類為可用資源260,如果多個(gè)邏輯分區(qū)可訪問該資源,則將該資源歸類為共享資源270,并且如果該資源已經(jīng)被專門分配給一邏輯分區(qū),那么將其歸類為專用資源280A-N(合稱為280)。
現(xiàn)在參考圖4,該圖例示了本發(fā)明的查詢管理方法400的示例性步驟,所述方法是由包括查詢調(diào)度管理器146的數(shù)據(jù)處理系統(tǒng)100來實(shí)現(xiàn)的?;旧?,所述查詢管理方法400適當(dāng)?shù)貏討B(tài)分配/解除分配計(jì)算機(jī)資源,以便使如下查詢可以運(yùn)行,該查詢因其運(yùn)行時(shí)間被預(yù)測為過長而本來會使其運(yùn)行被搶占;如查詢調(diào)整器所確定的那樣。查詢調(diào)整器可以被配置為具有這樣的閾值或界限,如果查詢的運(yùn)行時(shí)間超出該閾值或界限,那么將不允許運(yùn)行查詢。另外,所述查詢管理方法400用于分派在完成任務(wù)過程中實(shí)際利用的計(jì)算機(jī)資源的費(fèi)用。在步驟402,所述查詢管理方法400開始。在“獲得事件”步驟404中,查詢是從查詢優(yōu)化器轉(zhuǎn)發(fā)到查詢調(diào)整器的事件,并且包括對用來查詢的查詢運(yùn)行時(shí)間(例如,秒)進(jìn)行預(yù)測的時(shí)間值。從“獲得事件”步驟404起,隨后為查詢調(diào)整器確定步驟406。
在查詢調(diào)整器確定步驟406中,由查詢調(diào)整器就查詢的預(yù)測運(yùn)行時(shí)間(由查詢優(yōu)化器獲得)是否將吻合在預(yù)定查詢時(shí)間界限范圍內(nèi)做出判定。這些預(yù)定的界限例如可以由用戶經(jīng)由待解釋的圖形用戶界面(GUI)屏幕800(圖8)來設(shè)定。如果在步驟406的判定為“否”,也就是說,查詢將不會超出預(yù)定的時(shí)間界限,那么查詢管理方法400返回到“獲得事件”步驟404。此返回之后,所述查詢管理方法400等待下一查詢以進(jìn)行評估?;蛘?,如果在步驟406的確定為“是”,也就是表示因該查詢的預(yù)測運(yùn)行時(shí)間超出預(yù)定時(shí)間界限而產(chǎn)生查詢調(diào)整器搶占,那么隨后為計(jì)算完成時(shí)間的步驟408。具體來講,在計(jì)算完成時(shí)間的步驟408中,應(yīng)用以下算法,其基于為使查詢更快運(yùn)行而進(jìn)行的資源分配來計(jì)算新的查詢運(yùn)行時(shí)間。可以選擇該新的查詢運(yùn)行時(shí)間,以便使該新的查詢運(yùn)行時(shí)間的估計(jì)值不超過預(yù)定時(shí)間界限。因此,所述查詢不會被查詢調(diào)整器搶占。
具體地,參考圖5,該圖例示了在步驟408中執(zhí)行的用于完成計(jì)算新估計(jì)的查詢運(yùn)行時(shí)間的例程或者方法500的任務(wù)的示例性步驟。查詢運(yùn)行時(shí)間例程500可以由調(diào)度模塊146來執(zhí)行。查詢運(yùn)行時(shí)間(例如,秒)的這些新估計(jì)值最好表示更加快速并且在超出預(yù)定時(shí)間界限之前完成的查詢運(yùn)行時(shí)間。例如,所述預(yù)定時(shí)間界限可以是十(10)秒,如由用戶在字段810(圖8)中輸入十(10)秒來建立。因此,只有當(dāng)查詢被估計(jì)為在十(10)秒或更少時(shí)間內(nèi)結(jié)束時(shí),所述查詢調(diào)整器才可以允許該查詢運(yùn)行。正如將解釋的那樣,從其它源動態(tài)地分配適當(dāng)?shù)挠?jì)算機(jī)資源量,以便有助于使查詢在小于10秒的時(shí)間內(nèi)結(jié)束。
在步驟502,查詢運(yùn)行時(shí)間例程500開始,在該步驟中,查詢的運(yùn)行時(shí)間估計(jì)值從步驟504獲得。步驟506跟隨步驟504。在步驟506,由查詢調(diào)整器就所估計(jì)的查詢持續(xù)時(shí)間是否大于由系統(tǒng)用戶在“幫助查詢閾值”字段802(圖8)中輸入的時(shí)間值(如果存在該值)做出判定。通過這樣來執(zhí)行,用戶可以設(shè)定這樣一種預(yù)定時(shí)間界限,在該預(yù)定時(shí)間界限,針對查詢搜索可用資源。在“幫助查詢閾值”字段802中輸入的預(yù)定時(shí)間界限值不必與在字段810(圖8)中輸入的查詢調(diào)整器的有限時(shí)間界限值一致。應(yīng)當(dāng)理解,當(dāng)用戶在“幫助查詢閾值”字段802中輸入值時(shí),用戶可以在“幫助查詢%”字段804(圖8)中輸入非零的百分比值。
在“幫助查詢%”字段804中輸入的值基于由系統(tǒng)用戶就用戶希望適用于使查詢運(yùn)行更快的可用資源的百分比做出的確定。例如,如果估計(jì)查詢所花費(fèi)的時(shí)間長于在“幫助查詢閾值”字段802中輸入的值(例如,5秒),那么用戶可能希望提供適當(dāng)量的來自另一分區(qū)等的附加資源(CPU)以便使查詢運(yùn)行得更快。所添加的附加CPU量將取決于在“幫助查詢%”字段804中輸入的百分比值。例如,所述系統(tǒng)用戶可能希望通過提供增加了20%的附加可用資源來幫助查詢運(yùn)行時(shí)間。另外,本發(fā)明預(yù)想的是,當(dāng)且僅當(dāng)查詢執(zhí)行時(shí)間方面的顯著差異可以達(dá)到諸如50%的改進(jìn)(如用戶在字段809(圖8)中添加的那樣)時(shí),才令查詢調(diào)整器獲取來自可用資源的資源。例如,如果查詢被估計(jì)為在5秒內(nèi)運(yùn)行,那么系統(tǒng)用戶可能想要附加資源以便定義50%的改進(jìn)。還可以輸入其它百分比值。本發(fā)明設(shè)想的是,百分比值可以取決于所運(yùn)行的應(yīng)用、系統(tǒng)或者作業(yè)等等的費(fèi)用和/或類型。附加資源的添加可以取決于對附加瓶頸的預(yù)測,所述預(yù)測是由查詢調(diào)整器進(jìn)行的。由此,處理時(shí)間方面的延遲將是用于估計(jì)由調(diào)整器估計(jì)的運(yùn)行時(shí)間量的因素。
返回參考步驟506,如果判定為“是”,即查詢的估計(jì)運(yùn)行時(shí)間超出“幫助查詢閾值”字段802中的值,那么隨后為“設(shè)定幫助%”步驟508。在步驟508,由用戶在“幫助查詢%”字段804中輸入百分比值。此值用于確定使查詢運(yùn)行更快的附加資源。具體來講,算法使用所述值來定義待添加以便獲得最好在預(yù)定時(shí)間界限內(nèi)的查詢運(yùn)行時(shí)間的附加資源量。待添加的資源量是用于完成上述任務(wù)的預(yù)定量。所述系統(tǒng)本身也可以配置這些值。步驟508之后,執(zhí)行查詢重新計(jì)算步驟510,其中使用了新估計(jì)的查詢運(yùn)行時(shí)間。在步驟510,根據(jù)待分配的資源的增加量來重新計(jì)算新預(yù)測的查詢運(yùn)行時(shí)間。此后,所述查詢運(yùn)行時(shí)間例程500繼續(xù)進(jìn)行,在步驟514中退出;此時(shí),如將要描述的那樣,在步驟410中使用重新計(jì)算的查詢運(yùn)行時(shí)間。
或者,如果在步驟506中的判定為“否”,那么隨后為步驟512。在步驟512,就查詢運(yùn)行時(shí)間是否大于最好由用戶在GUI屏幕800的字段810中設(shè)定的預(yù)定調(diào)整器時(shí)限來做出確定。在步驟512,如果做出的判定為“否”,那么如步驟514,例程退出,然后進(jìn)行到步驟410?;蛘?,如果在步驟512中為“是”,那么隨后為步驟516。在步驟516,就“調(diào)整器幫助標(biāo)志”是否已經(jīng)被設(shè)定做出判定。如果系統(tǒng)用戶對獲得對于所預(yù)測的較長運(yùn)行查詢的幫助感興趣,那么使用所述“幫助標(biāo)志”。如果為“否”,則系統(tǒng)用戶沒有設(shè)定“調(diào)整器幫助標(biāo)志”,那么例程500在步驟514退出。如果為“是”,系統(tǒng)用戶設(shè)定“調(diào)整器幫助標(biāo)志”,如通過在圖8的GUI 800中的字段804中設(shè)定適當(dāng)?shù)闹祦韺?shí)現(xiàn),然后計(jì)算機(jī)資源將被添加。在步驟518,算法通過預(yù)先配置的用戶所選參數(shù)來建立待添加的資源量。這樣做避免了查詢調(diào)整器阻止查詢的執(zhí)行。預(yù)先配置的待添加量將使查詢運(yùn)行時(shí)間在預(yù)定時(shí)間界限內(nèi)完成。在步驟520,將重新計(jì)算新的查詢運(yùn)行時(shí)間。此后,例程500在步驟514中退出,此時(shí),在步驟410,將利用重新配置的運(yùn)行時(shí)間估計(jì)值。
返回到圖4,在步驟410,新估計(jì)的查詢運(yùn)行時(shí)間將被劃分為適當(dāng)?shù)钠瘟浚辉撈瘟康亩嗌偃绻餐龥Q并且共同受讓的序號為10/787,722(代理人編號為ROC920030044US1)的美國專利申請中表明的那樣。例如,把新的查詢時(shí)間劃分為多個(gè)時(shí)間片段和間隔(例如,4個(gè)片段)。處理每個(gè)間隔以便確定可用計(jì)算機(jī)資源對于處理查詢是否足夠。此后,在步驟412進(jìn)行落后(fall behind)判定。就可用資源是否會使得查詢運(yùn)行落后于進(jìn)度進(jìn)行判定。這種判定考慮了在處理查詢期間的、包括在計(jì)算機(jī)系統(tǒng)上進(jìn)行的任何其它需求(諸如瓶頸)在內(nèi)的所增加的查詢運(yùn)行時(shí)間。如果在步驟412的判定為“是”,即所述處理落后,那么在步驟414適當(dāng)?shù)靥砑痈郊淤Y源?;蛘?,如果在步驟412的判定為“否”,那么隨后為“是遠(yuǎn)遠(yuǎn)提前嗎”的判定步驟416。
參考圖6,該圖例示了用于分配出現(xiàn)在步驟414中的適當(dāng)資源的資源分配方法600。在資源分配方法600的操作過程中,把適當(dāng)?shù)馁Y源添加到當(dāng)前處理以便使查詢吻合在預(yù)定的查詢時(shí)間界限內(nèi)。在步驟602,添加資源處理開始。在步驟604,就所述處理是對單機(jī)計(jì)算機(jī)系統(tǒng)還是對未分區(qū)的計(jì)算機(jī)系統(tǒng)執(zhí)行來進(jìn)行確定。如果為“是”,那么隨后為步驟606。在步驟606,應(yīng)用算法來確定應(yīng)該被分配以便減少查詢運(yùn)行時(shí)間的資源量(例如,附加CPU、存儲器)。優(yōu)選的是,在查詢將要運(yùn)行以前,待動態(tài)分配的資源量適于加速查詢運(yùn)行時(shí)間。因而,查詢能夠吻合在預(yù)定時(shí)間界限內(nèi)。在步驟606的這種分配指示之后,然后例程600在步驟607退出,于是查詢管理方法400繼續(xù)。或者,如果為“否”,那么執(zhí)行步驟608。
在步驟608,就所述系統(tǒng)是否是LPAR系統(tǒng)做出判定。如果在步驟608判定為“是”,那么隨后為“可以獲取資源嗎”的判定步驟612。在“可以獲取資源嗎”的步驟612中,就一個(gè)或多個(gè)分區(qū)資源是否可以被切換到發(fā)出請求的分區(qū)以便提供應(yīng)被用來使查詢符合時(shí)間界限的資源進(jìn)行判定。如果在“可以獲取資源嗎”的步驟612中判定為“是”,那么可以在“把資源切換至發(fā)出請求的分區(qū)”的步驟614中切換適當(dāng)量的資源。步驟614之后,處理600然后退出步驟607,于是方法400繼續(xù)?;蛘撸绻凇翱梢垣@取資源嗎”的步驟612中做出為“否”或者否定判定,那么執(zhí)行“應(yīng)該等待嗎”步驟616。在“應(yīng)該等待嗎”步驟616中,可以就所述處理是否應(yīng)該在從其它一個(gè)或多個(gè)分區(qū)請求資源以前等待預(yù)定時(shí)間段進(jìn)行確定。如果在“應(yīng)該等待嗎”的步驟616中的判定為“否”,那么隨后為退出步驟607。此后,所述查詢管理方法400繼續(xù)。或者,如果在“應(yīng)該等待嗎”步驟616中的判定為“是”,那么執(zhí)行等待步驟618。在等待步驟618中,在向“可以獲取資源嗎”步驟612發(fā)送查詢資源請求以前,允許經(jīng)過預(yù)先確定的時(shí)間量。等待的時(shí)間段和等待周期的數(shù)目可以由系統(tǒng)來配置。或者,如果判定為“否”,那么在步驟610中進(jìn)行“網(wǎng)格計(jì)算”判定。在“網(wǎng)格計(jì)算”判定步驟610中,就系統(tǒng)是否處于網(wǎng)格計(jì)算環(huán)境進(jìn)行確定。如果在步驟610的判定為“是”,那么執(zhí)行“資源可用嗎”的判定步驟620。在步驟620,如果判定為“是”,那么執(zhí)行“添加附加資源”的步驟622,并且在步驟607退出。如果在“資源可用嗎”的判定步驟610中的判定為“否”,那么執(zhí)行“應(yīng)該等待嗎”的步驟624。如果在“應(yīng)該等待嗎”步驟624中的判定為“否”,那么所述處理在步驟607退出。如果在“應(yīng)該等待嗎”步驟624中的判定為“是”,那么執(zhí)行等待步驟625,由此在預(yù)定時(shí)間之后,所述處理返回到“資源可用嗎”步驟620。如果在預(yù)定時(shí)間之后沒有資源可用,那么隨后為步驟607,并且在步驟420繼續(xù)查詢管理方法400。
如所提到的那樣,如果在步驟412中的判定是否定的,那么執(zhí)行“是遠(yuǎn)遠(yuǎn)提前嗎”步驟416。如果在步驟416的判定為“否”,那么隨后為步驟420。如果在步驟416的判定為“是”,那么隨后為“減去資源”的步驟418。
參考圖7,該圖例示了將出現(xiàn)在步驟418中的用于分配適當(dāng)資源的資源去除方法700。在方法700的操作過程中,把適當(dāng)?shù)馁Y源添加到當(dāng)前處理以便使查詢在預(yù)定查詢窗口中或接近預(yù)定查詢窗口時(shí)結(jié)束。所述資源去除處理700在步驟702開始。在步驟704,就所進(jìn)行的處理是在單機(jī)計(jì)算機(jī)系統(tǒng)還是未分區(qū)的計(jì)算機(jī)系統(tǒng)上做出確定。如果為“是”,那么在步驟706,應(yīng)用算法來確定可以被解除分配或者被去除而不會給查詢在預(yù)定查詢窗口中或接近預(yù)定查詢窗口時(shí)結(jié)束其運(yùn)行時(shí)間產(chǎn)生負(fù)面影響的計(jì)算機(jī)資源量。具體來講,在步驟706,確定是否可以解除分配適當(dāng)?shù)挠?jì)算機(jī)資源量,諸如CPU。來自步驟706的數(shù)據(jù)被轉(zhuǎn)發(fā)給步驟422。
或者,如果在步驟704確定為“否”,那么可以執(zhí)行步驟708,在該步驟中確定正在運(yùn)行的機(jī)制是否是經(jīng)邏輯分區(qū)的計(jì)算機(jī)系統(tǒng)。如果在步驟708確定為“否”,那么可以執(zhí)行步驟712。在步驟708,就所利用的計(jì)算機(jī)系統(tǒng)是否被邏輯分區(qū)進(jìn)行確定。如果為“否”,那么執(zhí)行步驟712?;蛘?,如果在步驟708的決定為“是”,那么執(zhí)行步驟710。在步驟710,就哪些適當(dāng)?shù)馁Y源可以從執(zhí)行當(dāng)前查詢處理的分區(qū)切換至其它分區(qū)來通知分區(qū)管理器240。這種切換取決于適當(dāng)?shù)妮斎?。如果在步驟708的確定為“否”,那么執(zhí)行步驟712。在步驟712,就網(wǎng)格計(jì)算環(huán)境104是否耦合至計(jì)算機(jī)系統(tǒng)100進(jìn)行確定。如果在步驟712中判定為“否”,那么處理700進(jìn)行到步驟716?;蛘撸绻卸椤笆恰?,那么執(zhí)行步驟714,在該步驟中將涉及適當(dāng)資源量的數(shù)據(jù)轉(zhuǎn)發(fā)給網(wǎng)格控制器。網(wǎng)格控制器可用于把這些資源從計(jì)算機(jī)系統(tǒng)100切換回到網(wǎng)格環(huán)境104。
返回參考圖4來繼續(xù)該方法。在“可以結(jié)束嗎”的步驟420中,假定該時(shí)刻存在可用資源,那么就重新計(jì)算出的查詢運(yùn)行時(shí)間是否可以在預(yù)定時(shí)間段內(nèi)結(jié)束進(jìn)行判定。如果在步驟420的判定為“否”,那么根據(jù)“減去資源”步驟422,早先要動態(tài)分配的資源將會被收回或者減去。此后,在步驟424,由查詢調(diào)整器放棄查詢?;蛘?,如果在“可以結(jié)束嗎”步驟420中對于特定時(shí)間片段或者間隔的判定為“是”,那么在預(yù)定時(shí)間段內(nèi)執(zhí)行“等待”步驟426。等待是為了完成在劃分為片段的步驟410中創(chuàng)建的所有片段。在“等待”步驟426之后,然后執(zhí)行“結(jié)束了嗎”的判定步驟428。在“結(jié)束了嗎”的判定步驟428中,就新的查詢估計(jì)是否在預(yù)定查詢時(shí)間界限或者運(yùn)行時(shí)間內(nèi)完成進(jìn)行確定。如果為“否”,那么處理循環(huán)返回至步驟412,以便重復(fù)所述處理?;蛘?,如果在“結(jié)束了嗎”的判定步驟428中的判定為“是”,那么在“減去資源”步驟430中去除或者減少不需要的附加資源?!皽p去資源”步驟430之后,在步驟432,所述查詢管理方法400在步驟432終止或者退出。
圖8例示了用于允許系統(tǒng)用戶配置在執(zhí)行本發(fā)明步驟的過程中所使用的參數(shù)的圖形用戶界面(GUI)配置屏幕800。在這方面,提供了字段802,其中針對用于控制“幫助查詢閾值”的參數(shù)而輸入值。所述幫助查詢閾值可以包括用于定義如下閾值的時(shí)間值(例如,秒),如果查詢運(yùn)行超過所述閾值,將使查詢調(diào)整器搶占查詢的運(yùn)行。字段804用于使系統(tǒng)用戶選擇查詢運(yùn)行中所利用的計(jì)算機(jī)資源的增加量,這將改善查詢時(shí)間性能,以便使查詢在預(yù)定時(shí)間界限內(nèi)。例如,這些值可以涉及計(jì)算機(jī)資源的百分?jǐn)?shù)增加(10%、20%等等)。字段806用于使用戶設(shè)定“調(diào)整器助手標(biāo)志”。如果在字段806中設(shè)定了所述標(biāo)志,那么查詢調(diào)度管理器146將允許查詢調(diào)整器操作以便分配與使查詢在預(yù)定時(shí)間界限內(nèi)運(yùn)行有關(guān)的資源。如果預(yù)測查詢的運(yùn)行超出查詢調(diào)整器的時(shí)限,那么將進(jìn)行此操作。至于查詢調(diào)整器的時(shí)限,用戶可以在字段810中以時(shí)間(例如,秒)為單位標(biāo)識查詢運(yùn)行的最大調(diào)整器時(shí)限。字段808允許用戶輸入用于防止查詢超時(shí)的所添加的計(jì)算機(jī)資源。附加計(jì)算機(jī)資源量可以取決于所提供的已知的計(jì)算機(jī)資源的百分?jǐn)?shù)增加,諸如預(yù)先選定的百分?jǐn)?shù)增加(例如,10%、20%等等)。就增加計(jì)算機(jī)資源來講,還可以利用其它算法。
在這一點(diǎn)上,雖然已經(jīng)在全功能計(jì)算機(jī)系統(tǒng)的環(huán)境下描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明能夠作為程序產(chǎn)品被發(fā)行。無論用來實(shí)際進(jìn)行所述發(fā)行的計(jì)算機(jī)可讀信號承載介質(zhì)的特定類型如何,本發(fā)明都同樣適用。
本發(fā)明的一個(gè)方面被實(shí)現(xiàn)為供計(jì)算機(jī)系統(tǒng)或者環(huán)境使用的程序產(chǎn)品。程序產(chǎn)品的一個(gè)或多個(gè)程序定義了這些實(shí)施例(包括此處所述的方法)的功能,并且可以被包含在各種信號承載介質(zhì)上。例示性的信號承載介質(zhì)包括、但不局限于(i)永久地存儲在非可寫存儲介質(zhì)(例如,通常位于計(jì)算機(jī)內(nèi)的諸如可由光盤驅(qū)動器讀取的CD-ROM盤的只讀存儲器設(shè)備)上的信息;(ii)存儲在可寫存儲介質(zhì)(例如,通常位于軟盤驅(qū)動器或者硬盤驅(qū)動器內(nèi)的軟盤)上的可變信息;以及(iii)由通信介質(zhì),諸如經(jīng)由計(jì)算機(jī)或者包括無線通信在內(nèi)的電話網(wǎng)絡(luò)傳送到計(jì)算機(jī)的信息。后一實(shí)施例還特別包括從因特網(wǎng)以及其它網(wǎng)絡(luò)下載的信息。當(dāng)這種信號承載介質(zhì)承載用于指導(dǎo)本發(fā)明的功能的計(jì)算機(jī)可讀指令時(shí),這種信號承載介質(zhì)再現(xiàn)本發(fā)明的實(shí)施例。
一般說來,用于實(shí)現(xiàn)本發(fā)明實(shí)施例的例程可以是操作系統(tǒng)或者專用應(yīng)用程序、組件、程序、模塊、對象或指令序列的一部分。
在這一點(diǎn)上,雖然已經(jīng)在全功能計(jì)算機(jī)系統(tǒng)的環(huán)境下描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明能夠作為程序產(chǎn)品被發(fā)行。無論用來實(shí)際進(jìn)行所述發(fā)行的計(jì)算機(jī)可讀信號承載介質(zhì)的特定類型如何,本發(fā)明都同樣適用。
一般說來,用于實(shí)現(xiàn)本發(fā)明實(shí)施例的例程可以是操作系統(tǒng)或者專用應(yīng)用程序、組件、程序、模塊、對象或指令序列的一部分。本發(fā)明的計(jì)算機(jī)程序通常由多個(gè)指令組成,所述指令將由本地計(jì)算機(jī)變換為機(jī)器可讀的格式并由此變換為可執(zhí)行指令。此外,程序由變量和數(shù)據(jù)結(jié)構(gòu)組成,該變量或數(shù)據(jù)結(jié)構(gòu)要么本地地駐留于該程序,要么在存儲器或存儲設(shè)備上可以找到。另外,以下描述的各種程序可以基于本發(fā)明的特定實(shí)施例中的用來實(shí)現(xiàn)它們的應(yīng)用來識別。然而,應(yīng)該理解的是,所利用的任何特定程序命名都僅僅是為方便起見。由此,不應(yīng)該把本發(fā)明限制為僅僅用于由這種命名所識別和/或隱含的任何特定應(yīng)用。
此處闡明的實(shí)施例和示例是為了更好地解釋本發(fā)明及其實(shí)際應(yīng)用而提供的,由此,本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)和使用本發(fā)明。然而,本領(lǐng)域技術(shù)人員將意識到的是先前已經(jīng)提供的描述和示例僅僅是為了例示和示例的目的。已闡明的描述不意味著窮舉或者把本發(fā)明限制為所公開的具體形式。在描述附圖中例示的上述示例性實(shí)施例的過程中,為了清楚使用了專用術(shù)語。然而,本發(fā)明不意味著局限于所選擇的專用術(shù)語。應(yīng)該理解的是,每一專用術(shù)語包括按類似方式操作以便實(shí)現(xiàn)類似目的的所有技術(shù)等效手段。在不脫離所附權(quán)利要求書的精神和范圍的情況下,可以根據(jù)上述教導(dǎo)做出許多修改和變化。
權(quán)利要求
1.一種系統(tǒng),包括至少一個(gè)處理器;耦合至至少一個(gè)處理器的存儲器;以及駐留在所述存儲器中并且可由所述至少一個(gè)處理器執(zhí)行的管理器,用于相對于至少一個(gè)預(yù)定查詢時(shí)間界限來評估查詢的運(yùn)行時(shí)間,并且用于動態(tài)預(yù)測用來在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成查詢運(yùn)行時(shí)間的適當(dāng)計(jì)算機(jī)資源量。
2.如權(quán)利要求1所述的系統(tǒng),其中所述動態(tài)預(yù)測包括所述管理器評估所述查詢和待分配的可用計(jì)算機(jī)資源,以使得所述查詢能夠在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成運(yùn)行時(shí)間的執(zhí)行。
3.如權(quán)利要求1所述的系統(tǒng),其中所述管理器根據(jù)所述動態(tài)預(yù)測來分配/解除分配適當(dāng)?shù)挠?jì)算機(jī)資源量,以使得所述查詢運(yùn)行時(shí)間能夠在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成。
4.如權(quán)利要求3所述的系統(tǒng),其中所述管理器進(jìn)一步在查詢執(zhí)行以前分配/解除分配適當(dāng)?shù)挠?jì)算機(jī)資源量。
5.如權(quán)利要求1所述的系統(tǒng),其中所述至少一個(gè)預(yù)定查詢時(shí)間界限包括預(yù)定最大查詢時(shí)間界限,并且其中如果所述查詢運(yùn)行時(shí)間超出所述預(yù)定最大查詢時(shí)間界限,那么在運(yùn)行期間,所述查詢管理器停止所述查詢的運(yùn)行。
6.如權(quán)利要求1所述的系統(tǒng),其中所述管理器開出使查詢運(yùn)行時(shí)間在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成所實(shí)際利用的計(jì)算機(jī)資源的費(fèi)用。
7.如權(quán)利要求1所述的系統(tǒng),其中所述管理器進(jìn)一步分配/解除分配由所述至少一個(gè)處理器的一個(gè)或多個(gè)處理器分區(qū)提供的計(jì)算機(jī)資源。
8.如權(quán)利要求1所述的系統(tǒng),其中所述管理器進(jìn)一步分配/解除分配由聯(lián)網(wǎng)的計(jì)算網(wǎng)格提供的資源。
9.如權(quán)利要求1所述的系統(tǒng),其中所述管理器進(jìn)一步分配/解除分配由聯(lián)網(wǎng)的計(jì)算網(wǎng)格和/或所述至少一個(gè)處理器的一個(gè)或多個(gè)處理器分區(qū)提供的資源。
10.如權(quán)利要求1所述的系統(tǒng),還包括用戶接口,其允許用戶為所預(yù)測的計(jì)算機(jī)資源分配建立參數(shù)值。
11.如權(quán)利要求3所述的系統(tǒng),其中所述管理器依照用戶策略把所分配的資源增加預(yù)定的增加等級。
12.一種在系統(tǒng)中的由計(jì)算機(jī)實(shí)現(xiàn)的方法,所述系統(tǒng)具有至少一個(gè)處理器;耦合至所述至少一個(gè)處理器的存儲器;以及駐留在所述存儲器中并且可執(zhí)行的管理器;所述方法包括相對于至少一個(gè)預(yù)定查詢時(shí)間界限來評估查詢的運(yùn)行時(shí)間,并且動態(tài)預(yù)測用于在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成查詢運(yùn)行時(shí)間的適當(dāng)計(jì)算機(jī)資源量。
13.如權(quán)利要求12所述的方法,其中所述動態(tài)預(yù)測包括評估所述查詢以及可用的計(jì)算機(jī)資源。
14.如權(quán)利要求12所述的方法,還包括根據(jù)計(jì)算機(jī)資源的動態(tài)預(yù)測來分配適當(dāng)?shù)挠?jì)算機(jī)資源量,以使得所述查詢運(yùn)行時(shí)間能夠在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成。
15.如權(quán)利要求12所述的方法,還包括向消費(fèi)者開出為使查詢在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成其運(yùn)行時(shí)間所實(shí)際利用的計(jì)算機(jī)資源的費(fèi)用。
16.如權(quán)利要求12所述的方法,其中所述資源分配是由聯(lián)網(wǎng)的計(jì)算網(wǎng)格提供的。
17.如權(quán)利要求12所述的方法,其中所述資源分配是由所述至少一個(gè)處理器的一個(gè)或多個(gè)處理器分區(qū)提供的。
18.如權(quán)利要求12所述的方法,其中所述資源分配是由聯(lián)網(wǎng)的計(jì)算網(wǎng)格和/或所述至少一個(gè)處理器的一個(gè)或多個(gè)處理器分區(qū)提供的。
19.如權(quán)利要求12所述的方法,還包括響應(yīng)于經(jīng)由用戶接口的輸入來根據(jù)計(jì)算機(jī)費(fèi)用為附加計(jì)算機(jī)資源建立參數(shù)值。
20.如權(quán)利要求14所述的方法,其中響應(yīng)于適當(dāng)?shù)挠?jì)算機(jī)資源量的動態(tài)預(yù)測,把所分配的計(jì)算機(jī)資源增加或減少預(yù)定的等級。
21.如權(quán)利要求12所述的方法,其中所述資源是在查詢執(zhí)行以前分配的。
22.如權(quán)利要求12所述的方法,其中所述至少一個(gè)預(yù)定查詢時(shí)間界限包括預(yù)定最大查詢時(shí)間界限,并且其中如果查詢運(yùn)行時(shí)間超出所述預(yù)定最大查詢時(shí)間界限,那么阻止查詢運(yùn)行。
23.一種用于實(shí)現(xiàn)包括處理器的計(jì)算機(jī)系統(tǒng)中的查詢優(yōu)化的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括當(dāng)被執(zhí)行時(shí)進(jìn)行下列步驟的指令,所述步驟為相對于至少一個(gè)預(yù)定查詢時(shí)間界限來評估查詢的運(yùn)行時(shí)間;并且動態(tài)預(yù)測用于在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成查詢運(yùn)行時(shí)間的適當(dāng)?shù)挠?jì)算機(jī)資源量。
24.一種聯(lián)網(wǎng)環(huán)境,包括計(jì)算資源的網(wǎng)格;所述網(wǎng)格的請求管理器,用于接收一個(gè)或多個(gè)消費(fèi)者的對于利用所述網(wǎng)格的計(jì)算資源的請求;消費(fèi)者的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng),耦合至所述請求管理器;所述一個(gè)計(jì)算機(jī)系統(tǒng)包括一個(gè)或多個(gè)處理器;耦合至所述一個(gè)計(jì)算機(jī)系統(tǒng)中的至少一個(gè)所述處理器的存儲器;以及駐留在所述存儲器中并且可由所述至少一個(gè)處理器執(zhí)行的調(diào)度管理器,用于相對于預(yù)定的時(shí)間查詢運(yùn)行時(shí)間界限來評估數(shù)據(jù)查詢的運(yùn)行時(shí)間,并且動態(tài)預(yù)測用于在預(yù)定查詢時(shí)間界限內(nèi)完成所述查詢的執(zhí)行而要分配的適當(dāng)?shù)挠?jì)算機(jī)資源量,其中所述請求管理器根據(jù)所述動態(tài)預(yù)測來動態(tài)地分配/解除分配所述網(wǎng)格計(jì)算資源中的計(jì)算資源。
25.一種在聯(lián)網(wǎng)環(huán)境中使用的由計(jì)算機(jī)實(shí)現(xiàn)的方法,包括計(jì)算資源的網(wǎng)格,以及用于接收一個(gè)或多個(gè)消費(fèi)者的對于利用所述網(wǎng)格的計(jì)算資源的請求的請求管理器;其中消費(fèi)者的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)被耦合至所述請求管理器,并且包括一個(gè)或多個(gè)處理器;耦合至所述一個(gè)或多個(gè)處理器中的至少一個(gè)的存儲器;以及駐留在所述存儲器中并且可由所述至少一個(gè)處理器執(zhí)行的調(diào)度管理器,所述由計(jì)算機(jī)實(shí)現(xiàn)的方法包括如下步驟相對于至少一個(gè)預(yù)定查詢時(shí)間界限來評估數(shù)據(jù)查詢的運(yùn)行時(shí)間,并且動態(tài)預(yù)測用于在所述至少一個(gè)預(yù)定查詢時(shí)間界限內(nèi)完成查詢的執(zhí)行而要分配的適當(dāng)?shù)挠?jì)算機(jī)資源量,其中所述請求管理器根據(jù)所述動態(tài)預(yù)測來動態(tài)地分配/解除分配所述網(wǎng)格計(jì)算資源中的計(jì)算資源。
26.一種用于為處理器系統(tǒng)中的查詢作業(yè)提供基于收費(fèi)的處理的方法,其中費(fèi)用取決于按照用戶配置的參數(shù)、用于在預(yù)定的查詢處理服務(wù)期中或非常接近于預(yù)定的查詢處理服務(wù)期時(shí)完成查詢作業(yè)處理的計(jì)算機(jī)資源的實(shí)際利用;所述處理器系統(tǒng)包括至少一個(gè)處理器,耦合至所述至少一個(gè)處理器的存儲器以及駐留在所述存儲器中的查詢調(diào)度管理器;其中所述調(diào)度管理器的處理可執(zhí)行使得能夠監(jiān)控查詢作業(yè)在多個(gè)時(shí)間片段中的每一個(gè)中的執(zhí)行進(jìn)度,所述時(shí)間片段通常在所述預(yù)定的查詢作業(yè)服務(wù)期內(nèi)被監(jiān)控;動態(tài)地預(yù)測通常在所述預(yù)定服務(wù)期中或非常接近于所述預(yù)定服務(wù)期時(shí)完成所述查詢作業(yè)所需的計(jì)算機(jī)資源量;根據(jù)所預(yù)測的所需計(jì)算機(jī)資源量來動態(tài)分配用于處理所述查詢作業(yè)的計(jì)算機(jī)資源;并且計(jì)量所需計(jì)算機(jī)資源的實(shí)際利用以便開出處理所述查詢作業(yè)的費(fèi)用。
27.一種為在預(yù)定服務(wù)期期間執(zhí)行查詢而提供基于收費(fèi)的計(jì)算機(jī)資源的動態(tài)分配的方法,包括如下步驟為一個(gè)或多個(gè)用戶提供處理系統(tǒng),其中所述系統(tǒng)包括用于提供可變計(jì)算機(jī)資源的至少一個(gè)資源;并且建立通常在為執(zhí)行所述查詢而分配的預(yù)定服務(wù)期內(nèi)被監(jiān)控的多個(gè)時(shí)間片段,使得能夠監(jiān)控查詢部分在每個(gè)時(shí)間片段中的執(zhí)行進(jìn)度;并且根據(jù)對于已經(jīng)在每個(gè)所述時(shí)間片段中執(zhí)行的那些查詢部分的進(jìn)度的監(jiān)控和在所述預(yù)定服務(wù)期內(nèi)完成所述查詢所需的處理系統(tǒng)的計(jì)算機(jī)資源量,來預(yù)測所述查詢是否將通常地在所述預(yù)定服務(wù)期內(nèi)執(zhí)行;并且計(jì)量所需計(jì)算機(jī)資源的實(shí)際利用以便開出處理所述查詢的費(fèi)用。
28.一種在由計(jì)算機(jī)實(shí)現(xiàn)的處理中使用以便為在預(yù)定服務(wù)期中或接近預(yù)定服務(wù)期時(shí)執(zhí)行查詢而提供基于收費(fèi)的計(jì)算機(jī)資源的動態(tài)分配的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括可由計(jì)算機(jī)讀取并且具有計(jì)算機(jī)程序代碼的介質(zhì),所述計(jì)算機(jī)程序代碼適于提供調(diào)度管理器,用于管理在由計(jì)算機(jī)實(shí)現(xiàn)的處理中的至少一個(gè)處理器的動態(tài)分配,其中所述由計(jì)算機(jī)實(shí)現(xiàn)的處理用于向查詢處理提供附加計(jì)算機(jī)資源;其中所述調(diào)度管理器駐留在存儲器中,并且可由所述至少一個(gè)處理器執(zhí)行,以便動態(tài)地預(yù)測在所述預(yù)定服務(wù)期中或者非常接近于所述預(yù)定服務(wù)期時(shí)完成所述查詢所需的計(jì)算機(jī)資源量;動態(tài)地分配計(jì)算機(jī)資源以便在所述預(yù)定服務(wù)期內(nèi)完成所述查詢,并且計(jì)量所需計(jì)算機(jī)資源的實(shí)際利用以便開出處理所述查詢的費(fèi)用。
全文摘要
用于響應(yīng)于對查詢運(yùn)行時(shí)間的預(yù)測來酌情動態(tài)地調(diào)節(jié)計(jì)算機(jī)資源以及用于反映實(shí)際利用的計(jì)算機(jī)資源的費(fèi)用的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算機(jī)資源的費(fèi)用符合消費(fèi)者需求。
文檔編號G06F9/46GK1934566SQ200580004637
公開日2007年3月21日 申請日期2005年2月24日 優(yōu)先權(quán)日2004年2月26日
發(fā)明者艾瑞克·勞倫斯·巴斯尼斯, 莫哈默德·馬基德, 蘭蒂·威廉·魯羅, 約翰·馬休·桑托蘇索 申請人:國際商業(yè)機(jī)器公司