亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

多租戶數(shù)據(jù)庫應(yīng)用的遵守服務(wù)等級協(xié)議的布局的制作方法

文檔序號:6578635閱讀:174來源:國知局
專利名稱:多租戶數(shù)據(jù)庫應(yīng)用的遵守服務(wù)等級協(xié)議的布局的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多租戶數(shù)據(jù)庫(multi-tenant database)應(yīng)用的布局。
背景技術(shù)
軟件作為服務(wù)(Software as a service, SaaS)通常指的是由提供商向用戶提供 軟件應(yīng)用的功能,經(jīng)常是通過網(wǎng)絡(luò)遠(yuǎn)程提供。例如,這樣的提供商維護(hù)實(shí)現(xiàn)軟件應(yīng)用所需要 的硬件、人力資源和其它基礎(chǔ)設(shè)施,從而降低總成本和用戶為了訪問軟件和從軟件中受益 所需要做出的努力。這樣的場景的例子可能涉及數(shù)據(jù)庫應(yīng)用。例如,提供商可以維護(hù)多個(gè)服務(wù)器、相關(guān) 聯(lián)的存儲(chǔ)空間和其它計(jì)算資源,并且可以使用這些計(jì)算資源將數(shù)據(jù)庫應(yīng)用作為服務(wù)提供給 多個(gè)用戶??赡艹3J沁@樣的情況,這樣的提供商可能期望在同一時(shí)間或重疊時(shí)間向多個(gè) 用戶提供這樣的數(shù)據(jù)庫應(yīng)用,而不同的用戶則對于他們希望如何訪問和使用數(shù)據(jù)庫應(yīng)用有 著不同的需求和/或偏好。與此同時(shí),提供商可能在將數(shù)據(jù)庫應(yīng)用作為服務(wù)來提供方面面 臨著各種約束條件,并且尤其是,可能面臨著與計(jì)算資源相關(guān)的各種約束條件,這些計(jì)算資 源可用于在不同用戶之間進(jìn)行分配。結(jié)果是,對于提供商來說難以在仍然維持用戶方所期望的服務(wù)體驗(yàn)的同時(shí)以最優(yōu) 化提供商的資源的方式將軟件作為服務(wù)來提供。

發(fā)明內(nèi)容
根據(jù)一個(gè)基本方面,一種包括記錄在計(jì)算機(jī)可讀介質(zhì)上的指令的計(jì)算機(jī)系統(tǒng)可以 包括布局管理器,其被配置為確定多個(gè)租戶數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)庫到多個(gè)服務(wù)器中一個(gè) 服務(wù)器的布局,其中,所述多個(gè)租戶數(shù)據(jù)庫包括原始租戶數(shù)據(jù)庫和從原始租戶數(shù)據(jù)庫復(fù)制 的復(fù)制租戶數(shù)據(jù)庫。所述布局管理器可以包括輸入處理器,其被配置為確定掌控所述多個(gè) 租戶數(shù)據(jù)庫與所述多個(gè)服務(wù)器的關(guān)聯(lián)的服務(wù)等級協(xié)議(SLA)的約束條件,并且被配置為確 定與所述多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算約束條件;并且,所述布局管理器可以包括染色體比較 器,其被配置為將多個(gè)染色體進(jìn)行比較,每個(gè)染色體包括所述多個(gè)租戶數(shù)據(jù)庫中每一個(gè)數(shù) 據(jù)庫到所述多個(gè)服務(wù)器中一個(gè)服務(wù)器的潛在布局,并且被配置為在符合SLA約束條件的的 基礎(chǔ)上和相對于計(jì)算約束條件將所述多個(gè)染色體中的每一個(gè)進(jìn)行比較,以由此輸出多個(gè)染 色體的選定子集。所述布局管理器可以包括染色體組合器,其被配置為將多個(gè)染色體的選 定子集的染色體進(jìn)行組合,以得到下一代染色體,用于輸出到所述染色體組合器以及用于 針對SLA約束條件和計(jì)算約束條件將下一代染色體的染色體進(jìn)行后續(xù)比較,作為在所述染 色體比較器和染色體組合器之間的多個(gè)染色體的進(jìn)化循環(huán)的部分。所述布局管理器可以包 括布局選擇器,其被配置為監(jiān)控所述進(jìn)化循環(huán)以及從其中選擇選定的染色體用于實(shí)施基于 該染色體的布局。實(shí)施方式可以具有一個(gè)或多個(gè)以下特征。例如,所述SLA約束條件可以對于多個(gè) 服務(wù)器指定針對相應(yīng)租戶的多個(gè)租戶數(shù)據(jù)庫的負(fù)載均衡和容錯(cuò)二者,這二者通過將相應(yīng)租戶的多個(gè)租戶數(shù)據(jù)庫的至少兩個(gè)租戶數(shù)據(jù)庫安裝到所述多個(gè)服務(wù)器的至少兩個(gè)上來提供。 所述SLA約束條件可以指定與所述多個(gè)租戶數(shù)據(jù)庫相關(guān)聯(lián)的租戶的至少兩個(gè)級別,所述至 少兩個(gè)級別包括相較于普通級別具有對多個(gè)服務(wù)器的資源優(yōu)先訪問權(quán)的高級級別。對于后者,所述SLA約束條件可以指定所述優(yōu)先訪問權(quán)根據(jù)這樣的布局來指定 相較于普通租戶的租戶數(shù)據(jù)庫的布局來說,高級租戶的租戶數(shù)據(jù)庫布置在多個(gè)服務(wù)器中具 有相對較低負(fù)載的服務(wù)器上。所述SLA約束條件還可以規(guī)定所述優(yōu)先訪問權(quán)包括優(yōu)先容 錯(cuò),該優(yōu)先容錯(cuò)根據(jù)這樣的布局來指定相較于普通租戶的租戶數(shù)據(jù)庫在所述多個(gè)服務(wù)器 的布置來說,高級租戶的租戶數(shù)據(jù)庫布置在所述多個(gè)服務(wù)器中較多的服務(wù)器上。所述輸入處理器可以被配置為輸入至少一個(gè)與租戶相關(guān)聯(lián)的租戶情況,該租戶與 多個(gè)租戶數(shù)據(jù)庫相關(guān)聯(lián),所述至少一個(gè)租戶情況指定相關(guān)聯(lián)的租戶數(shù)據(jù)庫的數(shù)據(jù)大小和作 業(yè)請求特征,并且其中,所述染色體比較器被配置為使用所述至少一個(gè)租戶情況,相對于 SLA約束條件和計(jì)算約束條件來評價(jià)所述多個(gè)比較器。所述輸入處理器可以被配置為輸入 偏好參數(shù),該偏好參數(shù)是從偏好調(diào)節(jié)器接收到的,并且表示所述染色體比較器評價(jià)至少一 個(gè)SLA約束條件的方式。所述布局管理器可以包括染色體生成器,該染色體生成器被配置為生成初始染色 體種群,用于所述染色體比較器進(jìn)行評價(jià),該初始染色體種群各自由大小為T的陣列組成, 該陣列的元素編號為1到S,其中T是所述多個(gè)租戶數(shù)據(jù)庫的數(shù)量,S是所述多個(gè)服務(wù)器的 數(shù)量。所述染色體組合器可以被配置為將多個(gè)染色體對進(jìn)行組合,包括將每對的每個(gè)成員 分成多個(gè)部分,然后將來自每對的至少某些部分組合到新的染色體中。所述染色體比較器可以被配置為評價(jià)每個(gè)染色體,包括創(chuàng)建多個(gè)染色體變種,其 中每個(gè)染色體變種都與所述多個(gè)服務(wù)器的相應(yīng)服務(wù)器的潛在故障相關(guān)聯(lián)。所述染色體比較 器可以被配置為評價(jià)每個(gè)染色體,包括將所述多個(gè)服務(wù)器的每個(gè)服務(wù)器的負(fù)載進(jìn)行歸一化 并且計(jì)算服務(wù)器的負(fù)載的標(biāo)準(zhǔn)偏差。所述染色體比較器可以被配置為針對多個(gè)時(shí)間段的每 個(gè)時(shí)間段評價(jià)所述多個(gè)染色體中的每一個(gè),然后將最終的多個(gè)評價(jià)組合以得到針對相應(yīng)染 色體的總評價(jià)。所述布局選擇器可以被配置為在預(yù)定數(shù)量代的進(jìn)化循環(huán)之后、或者在確定選定的 染色體在預(yù)定程度上滿足SLA約束條件之后,選擇選定的染色體。根據(jù)另一個(gè)一般方面,一種計(jì)算機(jī)實(shí)施的方法可以包括確定多個(gè)租戶數(shù)據(jù)庫中 的每個(gè)和多個(gè)服務(wù)器中的至少一個(gè),其中所述租戶數(shù)據(jù)庫包括原始租戶數(shù)據(jù)庫和從原始租 戶數(shù)據(jù)庫復(fù)制的復(fù)制租戶數(shù)據(jù)庫。該方法可以包括確定掌控所述多個(gè)租戶數(shù)據(jù)庫對所述 多個(gè)服務(wù)器的訪問的服務(wù)等級協(xié)議SLA的約束條件;確定與所述多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算 約束條件;在符合SLA約束條件的基礎(chǔ)上和相對于計(jì)算約束條件評價(jià)多個(gè)染色體,每個(gè)染 色體包括所述多個(gè)租戶數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)庫到所述多個(gè)服務(wù)器中一個(gè)服務(wù)器的潛在布 局。所述方法可以包括輸出選定的多個(gè)染色體的子集;將選定的多個(gè)染色體的子集的染 色體進(jìn)行組合,以得到下一代染色體,用于輸出到所述染色體組合器以及用于針對SLA約 束條件和計(jì)算約束條件將下一代染色體的染色體進(jìn)行后續(xù)比較,作為所述多個(gè)染色體的進(jìn) 化循環(huán)的部分;以及從該進(jìn)化循環(huán)中選擇選定的染色體用于實(shí)施基于該染色體的布局。實(shí)施方式可以具有一個(gè)或多個(gè)以下特征。例如,所述SLA約束條件可以對于多個(gè) 服務(wù)器指定針對相應(yīng)租戶的多個(gè)租戶數(shù)據(jù)庫的負(fù)載均衡和容錯(cuò)二者,這二者通過將相應(yīng)租戶的多個(gè)租戶數(shù)據(jù)庫的至少兩個(gè)租戶數(shù)據(jù)庫安裝到所述多個(gè)服務(wù)器的至少兩個(gè)上來提供。 所述SLA約束條件可以指定與所述多個(gè)租戶數(shù)據(jù)庫相關(guān)聯(lián)的租戶的至少兩個(gè)級別,所述至 少兩個(gè)級別包括相較于普通級別具有對多個(gè)服務(wù)器的資源優(yōu)先訪問權(quán)的高級級別。確定所 述SLA約束條件可以包括接收偏好參數(shù),該偏好參數(shù)表示所述染色體比較器評價(jià)至少一個(gè) SLA約束條件的方式。根據(jù)另一個(gè)一般方面,一種計(jì)算機(jī)程序產(chǎn)品可以有形地具體實(shí)現(xiàn)在計(jì)算機(jī)可讀介 質(zhì)上并且可以包括當(dāng)運(yùn)行時(shí)被配置為執(zhí)行如下操作的指令確定多個(gè)租戶數(shù)據(jù)庫中的每個(gè) 到多個(gè)服務(wù)器中的一個(gè)的布局,其中所述租戶數(shù)據(jù)庫包括原始租戶數(shù)據(jù)庫和從原始租戶數(shù) 據(jù)庫復(fù)制的復(fù)制租戶數(shù)據(jù)庫。當(dāng)運(yùn)行時(shí)所述指令還可以被配置為將所述多個(gè)租戶數(shù)據(jù)庫 在所述多個(gè)服務(wù)器上的潛在布局表達(dá)為染色體,該染色體用大小為T的陣列表達(dá)并且還被 配置為確定連續(xù)代的染色體,以及監(jiān)控所述連續(xù)代并且從其中選擇選定的染色體用于實(shí)施 基于該染色體的布局,該陣列的元素編號為1到S,其中T是所述多個(gè)租戶數(shù)據(jù)庫的數(shù)量,S 是所述多個(gè)服務(wù)器的數(shù)量。實(shí)施方式可以具有一個(gè)或多個(gè)以下特征。例如,所述確定連續(xù)代可以通過相對 于服務(wù)等級協(xié)議(SLA)的約束條件以及相對于與所述多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算約束條件 評價(jià)當(dāng)前代染色體,所述SLA約束條件掌控所述多個(gè)租戶數(shù)據(jù)庫與所述多個(gè)服務(wù)器的關(guān)聯(lián) 性。所述確定所述連續(xù)代可以通過基于所述評價(jià)確定選定的當(dāng)前代的子集,將選定的子集 對進(jìn)行組合來得到下一代,然后對該下一代重新執(zhí)行所述評價(jià),以得到其另一個(gè)選定的子 集。下面在附圖和說明書中闡述了一個(gè)或多個(gè)實(shí)施方式的細(xì)節(jié)。從說明書和附圖中以 及從權(quán)利要求中其它特征將變得明顯。


圖1是布置(place)多租戶數(shù)據(jù)庫應(yīng)用的布局系統(tǒng)(placement system)的框圖。圖2是示出圖1的系統(tǒng)中所使用的染色體(chromosome)的示例組合的框圖。圖3是將容錯(cuò)(fault tolerance)并入圖1的系統(tǒng)中的示例染色體的框圖。圖4是圖示圖1的系統(tǒng)的示例操作的流程圖。圖5是可以用于圖1的示例中的示例染色體比較器的框圖。圖6是示出圖1和圖5的系統(tǒng)的示例操作的第一流程圖。圖7是示出圖1和圖5的系統(tǒng)的示例操作的第二流程圖。圖8是示出圖1和圖5的系統(tǒng)的示例操作的第三流程圖。圖9是示出圖1和圖5的系統(tǒng)的示例操作的第四流程圖。
具體實(shí)施例方式圖1是布置(place)多租戶數(shù)據(jù)庫應(yīng)用的布局系統(tǒng)(placement system) 100的 框圖。在系統(tǒng)100中,布局管理器102被配置為在向租戶104提供期望等級的個(gè)人定制 服務(wù)的同時(shí),以最優(yōu)化服務(wù)器106a-106n的計(jì)算資源的方式分配關(guān)于服務(wù)器組(server farm) 106的多個(gè)服務(wù)器的多個(gè)租戶104的布局。而且,布局管理器102可以以快速、有效、可 重復(fù)的方式并且針對各種不同租戶的數(shù)量、類型和工作需求的大范圍示例實(shí)現(xiàn)這些目標(biāo)。
更加具體來說,如上所述,可以理解的是,服務(wù)器組106可以由第三方托管商提 供,該第三方托管商(host)例如將數(shù)據(jù)庫應(yīng)用提供給租戶104。也就是說,如已知的那樣, 為了以節(jié)省成本的方式將數(shù)據(jù)庫應(yīng)用作為SaaS提供物(offering)來托管(host),擁有服 務(wù)器組106的提供商/托管商可以部署常用的多重租用(multi-tenancy)部署策略,其中 數(shù)據(jù)庫應(yīng)用的一個(gè)實(shí)例(instance)被許多企業(yè)(business)(即,租戶104)共享。這種多 重租用不僅有助于節(jié)省諸如用于硬件、軟件和數(shù)據(jù)中心的基本建設(shè)費(fèi)用,還有助于節(jié)省諸 如用于人力和電力的運(yùn)作費(fèi)用。但是,多重租用也會(huì)造成軟件部署的高成本,例如由于針對 租戶104定制數(shù)據(jù)庫應(yīng)用的部署所需要的高復(fù)雜度和必要條件而造成的高成本。如下面將 詳細(xì)描述的那樣,這些針對一個(gè)或多個(gè)租戶104提供數(shù)據(jù)庫應(yīng)用的定制的需求常常被記錄 在眾所周知的服務(wù)等級協(xié)議(SLA)中。租戶104中的每一個(gè)都可以有這樣的SLA,該SLA掌控(govern)租戶104對服務(wù) 器106a-106n托管的數(shù)據(jù)庫應(yīng)用的訪問。在這方面,可以理解的是,租戶104可以分別代表 例如使用托管服務(wù)的企業(yè)或公司,其中,每個(gè)這樣的租戶將由此典型地具有使用同一個(gè)租 戶賬戶訪問所托管的應(yīng)用的多個(gè)用戶。特定租戶賬戶的這多個(gè)用戶可以被稱為租戶實(shí)例。SLA的一個(gè)方面涉及關(guān)于租用級別(tenancy class)的每個(gè)租戶的識別 (identification),在該上下文中,術(shù)語“級別”指的是提供給一個(gè)租戶的服務(wù)等級或服務(wù) 類型,該服務(wù)等級或服務(wù)類型優(yōu)于或者不同于提供給另一個(gè)租戶的服務(wù)等級或服務(wù)類型。 在圖1的示例中,并且在這里通常來說,雖然可以理解的是,級別的數(shù)量可以大于2,但是示 例中假設(shè)存在兩個(gè)級別,稱為高級(premium)租戶108和普通(regular)租戶110。在圖1 的示例中,可以給高級租戶108提供比普通租戶110更高等級的容錯(cuò)和/或更加快速的響 應(yīng)時(shí)間(例如,對特定數(shù)據(jù)庫查詢做出響應(yīng)所需要的時(shí)間)。下面將更加詳細(xì)地描述掌控租 戶104對服務(wù)器106的訪問的SLA的其它方面。如上所述,“多重租用”本身用于托管的數(shù)據(jù)庫應(yīng)用這一概念是眾所周知的。在該 意義上,雖然在圖1中沒有專門示出,但是已知這種托管的數(shù)據(jù)庫應(yīng)用一般有兩層運(yùn)行在 (例如,網(wǎng)絡(luò)和應(yīng)用)服務(wù)器上的應(yīng)用層和運(yùn)行在數(shù)據(jù)庫系統(tǒng)上的數(shù)據(jù)庫層。為了本說明書 中示例的目的,將假設(shè)多重租用發(fā)生在服務(wù)的數(shù)據(jù)庫層上。實(shí)現(xiàn)多租戶數(shù)據(jù)庫應(yīng)用的一種已知方法被稱為數(shù)據(jù)庫空間方法(database space approach),其一般適用于例如這樣的租戶,其具有相對較大數(shù)據(jù)和計(jì)算負(fù)載,和/或?qū)?shù) 據(jù)隔離和安全性具有高等級需求。在數(shù)據(jù)庫空間方法中,允許多個(gè)用戶運(yùn)行在同一個(gè)數(shù)據(jù) 庫系統(tǒng)上,同時(shí)它們的數(shù)據(jù)被分別存儲(chǔ)在分離的數(shù)據(jù)空間中。該方法具有用戶數(shù)據(jù)隔離的 優(yōu)點(diǎn),并且通常幾乎不需要或者完全不需要對應(yīng)用進(jìn)行修改??赡軐τ谙到y(tǒng)級資源帶來開 銷,諸如系統(tǒng)表格和其它所應(yīng)用的程序,因?yàn)槊總€(gè)數(shù)據(jù)庫空間都需要這些資源。通過用于多重租用的數(shù)據(jù)空間方法,租戶的數(shù)據(jù)庫可以被復(fù)制到多個(gè)服務(wù)器(例 如,完全復(fù)制),以便既實(shí)現(xiàn)容錯(cuò)又實(shí)現(xiàn)負(fù)載均衡。例如,高級租戶108a可以具有一定大小 的數(shù)據(jù)并且這些數(shù)據(jù)與每小時(shí)涉及訪問該數(shù)據(jù)的一定數(shù)量的作業(yè)相關(guān)聯(lián)。如果相應(yīng)的數(shù)據(jù) 庫被復(fù)制,那么就可以將原始數(shù)據(jù)庫存儲(chǔ)在第一服務(wù)器(例如,服務(wù)器106a)上,同時(shí)可以 將復(fù)制的數(shù)據(jù)庫存儲(chǔ)在第二服務(wù)器(例如,服務(wù)器106b)上。然后,當(dāng)關(guān)于訪問數(shù)據(jù)庫的請 求(例如,數(shù)據(jù)庫查詢)到達(dá)時(shí),可以將請求路由到租戶數(shù)據(jù)庫和復(fù)制的租戶數(shù)據(jù)庫中任意 一個(gè)或者路由到它們二者。當(dāng)這兩個(gè)數(shù)據(jù)庫都可用時(shí),這樣的配置對于服務(wù)器106a/106b提供了負(fù)載均衡,這是因?yàn)椴樵兛梢员唤惶娴芈酚芍练?wù)器106a/106b中的每一個(gè),所以 不需要兩個(gè)服務(wù)器中的任何一個(gè)對所有查詢都做出響應(yīng)。而且,在服務(wù)器106a/106b中的 一個(gè)出故障或者不可用的情況下,更多查詢?nèi)匀豢梢员宦酚傻椒?wù)器106a/106b中的剩余 一個(gè),從而在系統(tǒng)100中提供容錯(cuò)水平(a level of fault tolerance)。已知的是,以最優(yōu)方式相對于服務(wù)器106a-106n分配或布置租戶104是個(gè)難題。例 如,如果一個(gè)或多個(gè)租戶數(shù)據(jù)庫被分配給一個(gè)服務(wù)器并且只消耗了那個(gè)服務(wù)器相對較小部 分的計(jì)算資源,那么所談?wù)摰淖鈶艟涂赡軙?huì)接收到高等級的服務(wù),但是服務(wù)器組106的托 管商將經(jīng)歷低效率并且浪費(fèi)地使用服務(wù)器資源。另一方面,如果租戶104(或多個(gè)租戶)被 分配給一個(gè)服務(wù)器并且消耗了那個(gè)服務(wù)器所有或者近乎所有的計(jì)算資源,那么這可能充分 利用托管商/提供商的資源,但是可能會(huì)為所談?wù)摰囊粋€(gè)或多個(gè)租戶提供較慢或者不能令 人滿意的體驗(yàn)。甚至對于相對較小數(shù)量的服務(wù)器和租戶來說,可能也難以通過匹配租戶的 預(yù)期同時(shí)最優(yōu)化托管商的資源的方式給每個(gè)租戶數(shù)據(jù)庫布置相應(yīng)的服務(wù)器。對于較大數(shù)量的服務(wù)器和租戶來說,由于將T個(gè)租戶分配到S個(gè)服務(wù)器的解空間 大小為ST,因而給租戶布置服務(wù)器的問題被擴(kuò)展地相當(dāng)大。在多租戶數(shù)據(jù)庫應(yīng)用的上下文 中將租戶分配到服務(wù)器這個(gè)一般問題是已知的,正如對該問題的許多可能解也是已知的一 樣。圖1的系統(tǒng)100 (具體說來,布局管理器102)通過快速并且有效的方式超出了這些已 知的解,以找出租戶104到服務(wù)器106的合適的布局。系統(tǒng)100還允許租戶104和服務(wù)器 106遵守基本(Underlying)SLA,該SLA可以包括例如容錯(cuò)和負(fù)載均衡并且考慮服務(wù)器106 的(可用)計(jì)算資源(例如,處理資源和存儲(chǔ)資源)之間的可能的異類性。具體說來,系統(tǒng)100可以實(shí)現(xiàn)被稱為遺傳算法(Genetic Algorithm, GA)的隨機(jī)化 算法方法,該遺傳算法一般指的是達(dá)爾文自然選擇的計(jì)算機(jī)模擬,達(dá)爾文自然選擇通過連 續(xù)代(successive generations)的迭代來向問題/解空間中的最優(yōu)解收斂。這種遺傳算 法被系統(tǒng)100用來將SLA的要求并入到布局最優(yōu)化過程中。而且,系統(tǒng)100能夠提出租戶 104到服務(wù)器106的“可用最佳(best-available) ”布局,即使在沒有完全匹配所有SLA要 求的已知解的時(shí)候也是如此。因此,在圖1中,布局管理器102可以被配置為確定租戶104的多個(gè)租戶數(shù)據(jù)庫中 的每一個(gè)到多個(gè)服務(wù)器106中的一個(gè)服務(wù)器的布局,其中,多個(gè)租戶數(shù)據(jù)庫包括原始租戶 數(shù)據(jù)庫和從原始租戶數(shù)據(jù)庫復(fù)制的復(fù)制租戶數(shù)據(jù)庫(例如,為了這里所提到的容錯(cuò)和/或 負(fù)載均衡的目的)。在這點(diǎn)上,可以理解的是,作為術(shù)語,“租戶104”可以指代相應(yīng)的租戶 數(shù)據(jù)庫或者與相應(yīng)的租戶數(shù)據(jù)庫互換使用。例如,圖1中示為租戶108a的Tp,el可以指代所 談?wù)摰淖鈶舻淖鈶魯?shù)據(jù)庫,其可以被復(fù)制用于利用服務(wù)器106的相應(yīng)服務(wù)器來存儲(chǔ)。以此 方式,可以以簡明扼要的形式來表示和描述租戶(數(shù)據(jù)庫)到服務(wù)器的示例布局,諸如下面 關(guān)于圖2和圖3所描述的那樣。當(dāng)然,應(yīng)當(dāng)理解的是,在實(shí)踐中,給定租戶實(shí)際上可能具有 多于一個(gè)待復(fù)制/存儲(chǔ)的數(shù)據(jù)庫。在系統(tǒng)100中,上述遺傳算法方法可以例如通過創(chuàng)建“染色體”來實(shí)現(xiàn),“染色體” 代表上述將“T”個(gè)租戶布置到“S”個(gè)服務(wù)器上的問題的可能解。下面提供這種租戶-服務(wù) 器染色體的特定示例并且將例如參照圖2和圖3詳細(xì)進(jìn)行討論??梢允褂枚鄠€(gè)輸入來創(chuàng)建這些染色體并且最終進(jìn)行評價(jià)。例如,如圖1所示,可以 存在SLA約束條件112,當(dāng)創(chuàng)建/評價(jià)染色體(可能解)時(shí)可以將這些約束條件考慮在內(nèi)。下面將提供這些SLA約束條件的具體示例,但是一般說來,應(yīng)當(dāng)理解,這些約束條件反映的 是要提供給給定租戶的數(shù)據(jù)庫服務(wù)的必要特征和/或期望特征。為此,SLA約束條件112可 以包括對于負(fù)載均衡和/或容錯(cuò)的最低要求,并且可以定義對于高級(相較于普通)租戶 在這些及其它方面在服務(wù)上的差別。這樣的SLA約束條件112中的某些條件可以是必需的 /必不可少的,而其它條件可以是可選的,同時(shí)還有一些條件可以被并入以基于用戶的偏好 來改變程度(degree)。計(jì)算約束條件114指的是關(guān)于服務(wù)器106a-106n的計(jì)算資源的輸入。例如,每個(gè) 這樣的服務(wù)器在處理能力(例如,可以在給定時(shí)間單位內(nèi)處理的作業(yè)請求的最大數(shù)量或大 小)或存儲(chǔ)容量方面可能多少有一點(diǎn)不同。有點(diǎn)類似地,租戶情況(context) 116可以指代 每個(gè)租戶104的特定需求或特征。僅僅舉兩個(gè)例子來說,例如,某些租戶可能需要大型數(shù)據(jù) 庫,但是可能相對不頻繁地訪問數(shù)據(jù)庫,而相反地,其它租戶可能具有較小的數(shù)據(jù)庫,這些 數(shù)據(jù)庫被較為頻繁地訪問。應(yīng)當(dāng)理解,可以相對于計(jì)算約束條件114和/或租戶情況116來定義SLA約束條 件112。例如,SLA約束條件112可能要求每個(gè)租戶104的應(yīng)用數(shù)據(jù)都必須適應(yīng)于服務(wù)器 106a-106n中的一個(gè)(例如,必須至少適應(yīng)于服務(wù)器106a-106n的最小存儲(chǔ)空間)。因此, 這樣的SLA約束條件可能被一個(gè)租戶滿足但可能不被另一個(gè)(具有較大應(yīng)用數(shù)據(jù)大小的) 租戶滿足。如上所述,可能需要滿足SLA約束條件112中的一些條件,以便布局解(placement solution)(被表示為染色體)被視為是可行的,而同時(shí)放寬或去除其它SLA約束條件112。 因此,示出偏好調(diào)節(jié)器118,其可以用于提供這種在必要的SLA約束條件和可選的SLA約束 條件之間的指示(designation),而且針對非必要的SLA約束條件還提供在何種程度上可 以放寬或去除這些約束條件。對于后者,例如,SLA約束條件可以規(guī)定布置給高級租戶108 的服務(wù)器的負(fù)載應(yīng)當(dāng)比提供給普通租戶110的服務(wù)器的負(fù)載少(這意味著對高級租戶 有更快的響應(yīng)時(shí)間)。因此,偏好調(diào)節(jié)器118可以用于要求維持的差,或者可以用于通 過只要求維持加/減來放寬該約束條件,其中,偏好調(diào)節(jié)器118允許值的調(diào)整。 下面將詳細(xì)提供偏好調(diào)節(jié)器118的這一示例用途及其它示例用途。因此,在布局管理器102中,輸入處理器(handler) 120可以被配置為確定某些或 全部輸入112-118,例如,包括掌控多個(gè)租戶數(shù)據(jù)庫與多個(gè)服務(wù)器的關(guān)聯(lián)的SLA約束條件 112和多個(gè)服務(wù)器106a-106n相關(guān)聯(lián)的計(jì)算約束條件114。然后,遺傳算法管理器112可 以被配置為使用所接收到的輸入來創(chuàng)建表示租戶104到服務(wù)器106a-106n的布局的可能 解的多個(gè)染色體,其中可以對照例如SLA約束條件112來評價(jià)這些可能解。根據(jù)遺傳算 法,這些經(jīng)過評價(jià)的染色體中最好的一個(gè)可以被“再生”以創(chuàng)建新一代染色體或新一種群 (population)的染色體,然后新一代染色體或新一種群(population)的染色體本身可以 被評價(jià),從而選擇其子集以供進(jìn)一步再生和后續(xù)評價(jià)。通過這樣的方式,每一代/每一種群 的染色體都將趨于向?qū)⒆鈶?04布置到服務(wù)器106a-106n的最優(yōu)解收斂。最終,布局選擇 器124可以用于選擇解(染色體)中的特定一個(gè),用于執(zhí)行租戶104到服務(wù)器106a-106n 的實(shí)際分配或布局。更加具體說來,遺傳算法管理器122可以包括染色體生成器126,其被配置為生成 租戶-服務(wù)器染色體。這樣的生成過程可以隨機(jī)發(fā)生,或者可以包括關(guān)于將特定租戶布置或不布置給特定服務(wù)器的一些初始方針或限制。如上所述,下面將針對圖2和圖3來提供這 種染色體的示例。但是一般說來,可以理解的是,染色體只是對于上述的租戶-服務(wù)器布局 問題的潛在的解,其可以被實(shí)施為數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括大小為租戶總數(shù)T的陣列(包 括原始租戶數(shù)據(jù)庫和復(fù)制的租戶數(shù)據(jù)庫)并且具有從1到S的元素值,其中S代表可用服 務(wù)器的總數(shù)。例如,這樣的染色體的簡單示例可以是這樣情況兩個(gè)租戶Tl和T2以及兩個(gè) 服務(wù)器Sl和S2。然后,可能的布局解(染色體)可以包括[T1/S1,T2/S2]、或[T2/S1,T1/ S2]、或[T1/S1,T2/S1](也即沒有租戶在S2上)、或[T1/S2,T2/S2](也即,沒有租戶在Sl 上)。當(dāng)然,如上所述,較大數(shù)量的租戶和服務(wù)器導(dǎo)致可用的染色體池呈指數(shù)增長,因而 難以或不可能生成,更別說評價(jià),所有的可能解。許多因素可能加劇這一困難。例如,可 能存在時(shí)間約束條件,該時(shí)間約束條件可能出現(xiàn)在計(jì)算布局解/分配時(shí),諸如出現(xiàn)在新租 戶或新服務(wù)器可能變?yōu)榭捎没虿豢捎脮r(shí)(例如,服務(wù)器故障)。而且,如上所述,各種輸入 112-118可能是復(fù)雜的,這是因?yàn)?,僅僅給出幾個(gè)例子來說,SLA約束條件112可能在類型和 程度上有所不同,服務(wù)器106a-106n在它們的計(jì)算資源方面可能是異類的,并且租戶情況 116也可能相當(dāng)不同并且可能隨著時(shí)間而改變。因此,染色體生成器126生成初始染色體種群或集合,而非嘗試產(chǎn)生并評價(jià)所有 可能解,然后該初始染色體種群或集合被染色體比較器128評價(jià),所述染色體比較器128被 配置為在符合SLA約束條件112的基礎(chǔ)上并且相對于計(jì)算約束條件114 (并且還有例如租 戶情況116和/或從偏好調(diào)節(jié)器118接收到的用戶偏好)將染色體種群進(jìn)行比較,以便由 此輸出選定的多個(gè)染色體的子集,該子集代表租戶104對服務(wù)器106a-106n的可用最佳匹 配/布局。下面將提供染色體比較器128的比較和評價(jià)過程的細(xì)節(jié)和示例。然后,染色體組合器130可以接收選定的多個(gè)染色體的子集并且可以被配置為將 選定的多個(gè)染色體的子集的染色體進(jìn)行組合,以便得到下一代(下一種群)染色體,作為在 染色體比較器128和染色體比較器130之間連續(xù)代的多個(gè)染色體的進(jìn)化循環(huán)的一部分,下 一代染色體用于輸出到染色體比較器128,染色體比較器128接著可以針對輸入處理器120 的輸入執(zhí)行對下一代染色體的其它后續(xù)比較,所述輸入包括例如輸入112-118。對于連續(xù)代 中的每一代,新的染色體種群代表或包括租戶104相對于服務(wù)器106a-106n的可能的改進(jìn) 布局或最優(yōu)布局。從而,新的代/種群可以被迭代地創(chuàng)建,直到遇到最優(yōu)解(例如,直到滿 足包括SLA約束條件的所有輸入),或者直到遇到達(dá)到某個(gè)預(yù)定義滿足等級的輸入,或者直 到計(jì)算新的代/種群的時(shí)間被用完(在該時(shí)間點(diǎn),可以選擇當(dāng)前代的最佳解)。因此,假定如上所述的SLA約束條件112的情況下,可以理解,系統(tǒng)100能夠找出 租戶104到服務(wù)器106a-106n的最優(yōu)分配,以使得絕對滿足必要SLA約束條件,同時(shí)按照用 戶所提供的優(yōu)先級滿足可選SLA約束條件,并且使得貫穿所有租戶作業(yè)的最大完成時(shí)間最 小化。對于后者,這種貫穿所有作業(yè)的最大完成時(shí)間可以被稱為完工時(shí)間(makespan)。從 而,系統(tǒng)100可以被配置為最小化給定測量周期期間的完工時(shí)間。舉幾個(gè)例子來說,這樣的 測量周期可以是每小時(shí)、每天或每周。在這里所提供的示例中,假定租戶104代表這樣的業(yè) 務(wù),其在一般的一天24小時(shí)中在使用中經(jīng)歷重大并且相當(dāng)(somewhat)可預(yù)測的變化。從 而,在下面的示例中,使用一小時(shí)作為時(shí)間單位,以使得可以使用每小時(shí)平均負(fù)載來在24 小時(shí)時(shí)間序列上均衡服務(wù)器106a-106n上的負(fù)載分布。
如上所述,可以相對于作為判斷布局成功的方法的完工時(shí)間的最小化,來定義已 知的將T個(gè)租戶分配到S個(gè)服務(wù)器上的負(fù)載均衡問題。但是,這樣的結(jié)果可能在許多情況 下都不令人滿意。例如,僅最小化完工時(shí)間的解可以產(chǎn)生這樣的分配高級租戶103面臨的 響應(yīng)時(shí)間不能夠滿足它們區(qū)別于普通租戶110的SLA要求。相反,系統(tǒng)100能夠?qū)⒏嘁?素而不僅僅是完工時(shí)間并入到布局過程中,作為判斷最終布局的方法,并且可以以靈活快 速的方式這樣做,這樣的方式在實(shí)際最佳解不可得到時(shí)提供可用最佳解。如上所述,布局選擇器124可以被配置為監(jiān)控進(jìn)化循環(huán)并且從中選擇選定的染色 體,以基于該染色體實(shí)現(xiàn)布局。如剛才所述的那樣,選定的染色體/解可以代表最佳(最 優(yōu))解,或者可以代表可用最佳解。從而,布局選擇器124可以通過確定是否、在何時(shí)以及 如何中斷或者終止進(jìn)化循環(huán)并且提取最佳或可用最佳解。然后,布局選擇器124可以輸出 選定的染色體和/或在合適的服務(wù)器中執(zhí)行實(shí)際發(fā)送和/或安裝租戶數(shù)據(jù)。在圖1中,可以理解的是,系統(tǒng)100被示為使用代表或多或少的離散功能的各種功 能塊或模塊。提供這樣的圖示是為了清楚和方便,但是可以理解的是,各種功能可以重疊或 者在所描述的模塊中組合,或者可以由未專門示出在圖1中的一個(gè)或多個(gè)模塊來實(shí)現(xiàn)。當(dāng) 然,根據(jù)需要,也包括對圖1的系統(tǒng)100有用的傳統(tǒng)功能,諸如例如復(fù)制租戶數(shù)據(jù)庫的功能。 再有,為了清楚和方便起見,沒有明確示出這些傳統(tǒng)元件。從而,系統(tǒng)100可以將服務(wù)器106a-106n的狀態(tài)在為空和被一個(gè)或多個(gè)租戶數(shù)據(jù) 庫填充至不同程度二者之間進(jìn)行變換。同時(shí),系統(tǒng)100可以將租戶數(shù)據(jù)庫從第一狀態(tài)變換 為第二狀態(tài),第一狀態(tài)為被存儲(chǔ)在第一服務(wù)器中(服務(wù)器106a-106n中的任何一個(gè)或者其 它離線服務(wù)器,例如,所談?wù)摰淖鈶舻姆?wù)器),第二狀態(tài)為被存儲(chǔ)在服務(wù)器106a-106n的 另一個(gè)(不同的)服務(wù)器中。如上所述,租戶數(shù)據(jù)庫可以存儲(chǔ)近乎所有類型的數(shù)據(jù),諸如例 如商業(yè)界中的數(shù)據(jù)類型,其中數(shù)據(jù)可以包括物理事物,包括用戶、雇員或待售商品。如所示的那樣,系統(tǒng)100可以與計(jì)算設(shè)備132相關(guān)聯(lián),從而將計(jì)算設(shè)備132變換為 設(shè)計(jì)用于確定和實(shí)現(xiàn)如這里所述的布局過程的專用機(jī)器。在這種意義上來說,可以理解的 是,計(jì)算設(shè)備132可以包括所有標(biāo)準(zhǔn)元件,其包括未在圖1中具體示出的處理器、存儲(chǔ)器、電 源、外圍設(shè)備以及其它計(jì)算元件。系統(tǒng)100還可以與顯示設(shè)備134相關(guān)聯(lián)(例如,監(jiān)視器或 其它顯示器),其可以用于提供圖形用戶界面(GUI) 136。GUI136可以用于例如接收使用偏 好調(diào)節(jié)器118的偏好,輸入或修改SLA約束條件112或者管理或利用系統(tǒng)100。可以添加或 包括將對實(shí)現(xiàn)系統(tǒng)100有用的系統(tǒng)100的其它元件,如對于本領(lǐng)域普通技術(shù)人員來說明顯 可見的那樣。圖2是示出圖1的系統(tǒng)100中所使用的染色體202、204的示例組合的框圖。也 就是說,染色體202、204可以是由染色體比較器128確定的多個(gè)染色體或染色體種群中的 一對染色體,其將被輸出到染色體組合器130,如這里所描述的那樣。這樣的染色體對可 以被輸入到染色體組合器130,然后以親本(parent)染色體的角色被組合,來執(zhí)行性別交 叉(sexual crossover)的模擬,以得到新的子染色體206,如上所述,新的子染色體206因 此而成為可以與同一代的其它成員一起作為進(jìn)化循環(huán)的一部分被輸入回染色體比較器128 以優(yōu)化租戶104到服務(wù)器106a-106n的布局的新一代染色體的一部分。因此,遺傳算法管 理器122將遺傳算法作為達(dá)爾文自然選擇的計(jì)算機(jī)模擬來提供,其通過各個(gè)代的迭代來向 問題空間的最佳解收斂。
在圖2的示例中,染色體202-206分別代表大小為T = 7的陣列(具有被標(biāo)記為 208-220的租戶數(shù)據(jù)庫T1-T7)的部分,該陣列的元素值在1到S = 5之間(具有被標(biāo)記為 222-230的服務(wù)器S1-S5)。可以假設(shè)圖2是只具有一個(gè)級別租戶的簡化示例,并且在圖2 中,沒有為容錯(cuò)而復(fù)制租戶數(shù)據(jù)庫。因此,圖2只示出了一個(gè)或多個(gè)租戶數(shù)據(jù)庫208-220可 以布置在服務(wù)器222-230中的服務(wù)器上的概念,盡管不是每個(gè)服務(wù)器都需要用于一個(gè)具體 的解(例如,子染色體206不使用服務(wù)器S4228)。圖2還示出了遺傳重組的概念,如遺傳算法管理器122中所執(zhí)行的那樣。在圖2 中,圖2示出了使用兩點(diǎn)交叉方案,通過染色體組合器130將施加到親本雙方202、204以產(chǎn) 生新的子染色體206的染色體重組。使用該方法,第一親本202的隨機(jī)選擇的連續(xù)分段(由 隨機(jī)切口 1和2來限定)被復(fù)制到子體206,然后再加上第二親本204中的尚未從第一親本 的分段中拿開的所有剩余項(xiàng)。在圖2中,由隨機(jī)切口 1和2限定的親本染色體202、204的 部分以陰影線表示并且被相應(yīng)的箭頭指示為在子染色體206內(nèi)組合,并保持與親本中一樣 的出現(xiàn)次序。這樣的組合只是可能的重組技術(shù)的一個(gè)示例。一般說來,從遺傳算法的已知特征 中可以理解,親本染色體可以通過模擬性別交叉來重組以產(chǎn)生子染色體,并且在子染色體 內(nèi)可能出現(xiàn)偶然引起的突變,這將產(chǎn)生兩個(gè)親本中都沒有的新特征。這樣的突變可以隨機(jī) 生成,或者根據(jù)預(yù)定義的技術(shù)由染色體組合器130生成。然后,子染色體可以被傳遞回染色體比較器128,如所述的那樣,染色體比較器 128可以被配置為評價(jià)子染色體并且然后將其分級,之后選擇子染色體的最佳子集作為下 一代的親本染色體,從而再次模擬自然選擇。世代循環(huán)(generational loop)或進(jìn)化循環(huán) (evolutionary loop)可以在例如滿足某最優(yōu)條件之后或者在滿足某停止條件之后終止。 對于后者舉例來說,布局選擇器124可以被配置為監(jiān)控遺傳算法管理器122,并且在經(jīng)過了 100代之后或者到遺傳算法管理器122在預(yù)設(shè)數(shù)量的代之后沒有產(chǎn)生更好的解時(shí),終止進(jìn) 化循環(huán)。為了比較并評價(jià)染色體,染色體比較器可以實(shí)現(xiàn)評價(jià)函數(shù),該函數(shù)合并或反映例 如各種輸入112-118??梢栽?4小時(shí)期間每小時(shí)應(yīng)用該評價(jià)函數(shù),以得到總得分,然后該總 得分被用于選擇子染色體的最佳子集以作為下一代的親本染色體。下面更加詳細(xì)地提供評 價(jià)函數(shù)的特定示例。圖3是將容錯(cuò)并入圖1的系統(tǒng)中的示例染色體的框圖。更加具體說來,圖3示出 了根據(jù)2等級方案提供的不同服務(wù),該方案既包括高級租戶302,又包括普通租戶304,并且 合并了如這里所描述的容錯(cuò)。在本示例中為了提供容錯(cuò),為每個(gè)高級租戶302 (包括高級租戶306、308)創(chuàng)建了 兩個(gè)完全復(fù)制數(shù)據(jù)庫(full replica database),并且針對每個(gè)普通租戶304(包括普通租 戶310、312、314、316)創(chuàng)建了一個(gè)完全復(fù)制數(shù)據(jù)庫。于是,如圖所示,高級租戶306與原始 租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫318、320、322相關(guān)聯(lián),高級租戶308與原始租戶數(shù)據(jù)庫和復(fù) 制租戶數(shù)據(jù)庫324、326、328相關(guān)聯(lián)。類似地,普通租戶310與原始租戶數(shù)據(jù)庫和復(fù)制租戶 數(shù)據(jù)庫330、332相關(guān)聯(lián),普通租戶312與原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫334、336相關(guān) 聯(lián),普通租戶314與原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫338、340相關(guān)聯(lián),普通租戶316與原 始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫342、344相關(guān)聯(lián)。
因此,原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫318-344可以被分配/布置到在圖3中 示為346、348、350、352的四個(gè)服務(wù)器S1-S4。在沒有服務(wù)器發(fā)生故障的第一個(gè)例子中,租 戶數(shù)據(jù)庫如圖所示在四個(gè)服務(wù)器346-352中分配,租戶數(shù)據(jù)庫318-344分別分布到服務(wù)器 346、348、350、346、348、350、348、352、350、352、352、348、352 和 346。例如,分別與普通租戶 312,314關(guān)聯(lián)的租戶數(shù)據(jù)庫336和338都被分配給服務(wù)器S4352。在另一個(gè)示例中,與高級 租戶306相關(guān)聯(lián)的原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫318-322被分別分配給服務(wù)器346、 348、350。這樣,可以通過將原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫在不同服務(wù)器346-352中分 布來實(shí)現(xiàn)負(fù)載均衡。而且,因?yàn)槿绻?wù)器346-352其中之一發(fā)生故障,那么出故障的服務(wù)器上的每 個(gè)租戶數(shù)據(jù)庫的至少一個(gè)其它副本會(huì)存在于較大系統(tǒng)中,所以可以提供容錯(cuò)。例如,正如剛 剛提到的,與高級租戶306相關(guān)聯(lián)的原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫318-322被分別分 配到服務(wù)器346、348、350。因此,如果服務(wù)器Sl 346發(fā)生故障而使得租戶數(shù)據(jù)庫318不可 用(如圖3中塊354所示),那么剩余的租戶數(shù)據(jù)庫320和322仍然可用。類似地,租戶數(shù) 據(jù)庫324和344也將是不可用的,此時(shí)這些租戶數(shù)據(jù)庫的副本應(yīng)當(dāng)在相應(yīng)的無故障服務(wù)器 上繼續(xù)可用。圖3示出了更多的示例,S卩,其中服務(wù)器S2 348發(fā)生故障(如塊356所示) 的示例,其中服務(wù)器S3 350發(fā)生故障(如塊358所示)的示例,以及其中服務(wù)器S4 352發(fā) 生故障(如塊360所示)的示例。因此,圖3示出了這樣的示例其中,兩個(gè)高級租戶306、308被分別復(fù)制兩次、同 時(shí)四個(gè)普通租戶310-316被分別復(fù)制一次,從而總共(二)X(三)+ (四)X( 二)或總共 十四個(gè)原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫要分布在四個(gè)可用服務(wù)器上。如圖所示,結(jié)果是 陣列大小為14的染色體362,該陣列的值關(guān)于S1-S4 (346-352)而定義,如上面針對圖2已 提到的那樣。在圖3中,可以理解的是,表示容錯(cuò)與為每個(gè)可能的服務(wù)器故障創(chuàng)建新的染色體 364、366、368、370 —樣簡單,如所示的那樣。然后,可以以與標(biāo)準(zhǔn)染色體362 —樣的方式,使 用圖1的系統(tǒng)100評價(jià)最終得到的染色體364-370。應(yīng)當(dāng)清楚的是,雖然為了簡單和簡要起 見,圖3限于一個(gè)服務(wù)器故障的示例,但是,可以用同樣的方式來表示多個(gè)同時(shí)發(fā)生的服務(wù)
器故障。圖4是示出圖1的系統(tǒng)的示例操作的流程圖400。具體說來,如上面針對圖1-3所 提到的那樣,圖1的系統(tǒng)100可以被配置為將租戶數(shù)據(jù)庫(也即,為了負(fù)載均衡和容錯(cuò)的目 的的原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫)到可用服務(wù)器的潛在布局表示為遺傳算法的染 色體。圖1的各個(gè)輸入112-118對于產(chǎn)生和評價(jià)染色體是可用的。然后,第一代染色體的選 定的染色體可以組合形成第二代染色體,在第二代染色體上可以重復(fù)基于輸入112-118評 價(jià)染色體的過程,從而可以選擇第二代的子集用于再生第三代染色體。這樣的進(jìn)化循環(huán)的 后續(xù)迭代或重復(fù)使得能夠發(fā)生其中代的成員向最優(yōu)布局解收斂的自然選擇的過程。如這里 的示例中所示,各個(gè)輸入112-118中的某些或全部可以隱式地或直接地并入這樣的遺傳算 法中,從而確保結(jié)果得到的最優(yōu)化的解在期望的程度上(也即,完全地或部分地)滿足SLA 約束條件112和其它輸入滿足。然后,在圖4中,可以確定多個(gè)租戶數(shù)據(jù)庫中的每一個(gè)以及多個(gè)服務(wù)器中的至少 一個(gè)(402)。租戶數(shù)據(jù)庫包括原始租戶數(shù)據(jù)庫和從原始租戶數(shù)據(jù)庫復(fù)制得來的復(fù)制租戶數(shù)據(jù)庫,如所述的那樣。例如,這些租戶數(shù)據(jù)庫可以包括租戶104或者與租戶104有關(guān),租戶 104包括高級租戶108和普通租戶110。上面針對圖3提供并討論了這些租戶數(shù)據(jù)庫的復(fù) 制的示例,諸如,當(dāng)用原始/復(fù)制租戶數(shù)據(jù)庫318、320、322來表示租戶306時(shí)。服務(wù)器可以 包括服務(wù)器組106的服務(wù)器106a-106n。可以確定掌控多個(gè)租戶數(shù)據(jù)庫到多個(gè)服務(wù)器的訪問的服務(wù)等級協(xié)議(SLA)的約 束條件(404)。例如,輸入處理器120可以確定SLA約束條件112。如所述的那樣,SLA約 束條件112可以包括所要求的且必須被滿足的約束條件和/或可以包括放寬的和/或可 選的SLA約束條件。SLA約束條件112可以指定例如用于服務(wù)器106a-106n之間的負(fù)載均 衡的參數(shù),或者用于包括針對與普通租戶110相對的高級租戶108的區(qū)別服務(wù)等級的租戶 104之間的負(fù)載均衡的參數(shù)。SLA約束條件112還可以指定針對高級租戶和/或普通租戶 108/110所需要的容錯(cuò)等級,以及提供給與普通租戶相對的高級租戶的區(qū)別服務(wù)的其它特 征。這里描述了 SLA約束條件的其它示例??梢源_定與多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算約束條件(406)。例如,輸入處理器120可以 確定計(jì)算約束條件114,其可以與服務(wù)器106a-106n的能力有關(guān)。例如,服務(wù)器106a-106n 可以具有異類計(jì)算能力(例如,不同的處理速度或存儲(chǔ)容量)。這些計(jì)算約束條件114可以 與評價(jià)SLA約束條件112相關(guān)。例如,如果SLA約束條件指定每個(gè)租戶數(shù)據(jù)庫必須完整地 裝入其所分配的服務(wù)器,則如果計(jì)算約束條件114說明給定服務(wù)器的存儲(chǔ)容量太小而無法 容納整個(gè)租戶數(shù)據(jù)庫,那么該服務(wù)器就可以被排除作為針對所談?wù)摰淖鈶魯?shù)據(jù)庫的布局候 選服務(wù)器。在這點(diǎn)上,應(yīng)當(dāng)理解,輸入處理器120也可以輸入租戶情況116,租戶情況(tenant context) 116可以指定諸如給定租戶的數(shù)據(jù)庫的大小、或者該租戶多久輸出一次向租戶數(shù) 據(jù)庫請求數(shù)據(jù)的作業(yè)請求之類的內(nèi)容。與此同時(shí),偏好調(diào)節(jié)器118允許系統(tǒng)100的用戶指定 根據(jù)計(jì)算約束條件114和租戶情況116來匹配SLA約束條件112的方式或者程度。例如, 偏好調(diào)節(jié)器118可以允許用戶指定放寬的SLA約束條件實(shí)際上被放寬到何種程度。例如, 雖然SLA約束條件112可以指定在用于給定租戶/租戶數(shù)據(jù)庫的三個(gè)服務(wù)器之間完全相等 的負(fù)載均衡。然而,偏好調(diào)節(jié)器118可以指定在完全相等(completely equality)的給定 百分比差內(nèi)的實(shí)際負(fù)載均衡是可以被接受的,其中,偏好調(diào)節(jié)器118可以用于提高或降低 可接受的百分比差。這里提供了有關(guān)輸入112-116的可調(diào)節(jié)偏好的其它示例。然后,可以在符合SLA約束條件基礎(chǔ)上并且相對于計(jì)算約束條件來評價(jià)多個(gè)染色 體,其中,每個(gè)染色體可以包括多個(gè)租戶數(shù)據(jù)庫中每一個(gè)到多個(gè)服務(wù)器中的一個(gè)服務(wù)器的 潛在布局(408)。例如,遺傳算法管理器122的染色體生成器126可以用于隨機(jī)生成將租 戶104 (包括原始租戶數(shù)據(jù)庫和復(fù)制租戶數(shù)據(jù)庫)布置到服務(wù)器106a-106n的染色體,如在 圖2中針對染色體202、204所示的那樣。如在圖3中針對染色體362-370進(jìn)一步所示,可 以簡單地通過創(chuàng)建從中去除了特定服務(wù)器以表示其(潛在)故障的染色體來表示以及合并 容錯(cuò)的等級。評價(jià)可以基于一個(gè)或多個(gè)評價(jià)函數(shù)進(jìn)行。下面針對圖5-9提供這些評價(jià)函數(shù)的具 體示例。如上所述,評價(jià)可以基于輸入112-118中的任意一個(gè)或全部來進(jìn)行。執(zhí)行評價(jià)的 結(jié)果可以包括將得分分配給所生成的多個(gè)染色體中的每個(gè)染色體。然后,可以輸出多個(gè)染色體的選定的子集(410)。例如,染色體比較器128可以執(zhí)行評價(jià),然后將選定的染色體子集輸出到染色體組合器130。作為多個(gè)染色體的進(jìn)化循環(huán)的一部分,多個(gè)染色體的選定子集中的染色體可以被 組合以得到下一代染色體,以便相對于SLA約束條件和計(jì)算約束條件對該下一代染色體中 的染色體進(jìn)行后續(xù)評價(jià)(412)。例如,染色體組合器130可以執(zhí)行這樣的選定的染色體子集 的組合,諸如按照上面針對圖2所討論的示例,或者使用遺傳算法領(lǐng)域已知的其它(重新) 組合技術(shù)。然后,染色體比較器128對于新一代染色體可以簡單地重新執(zhí)行上述的評價(jià)函 數(shù),從而將選定的染色體子集重新輸出回染色體組合器130??梢詮倪x定的染色體中選擇染色體以利用其來實(shí)現(xiàn)布局(414)。例如,布局選擇 器124可以被配置為基于某預(yù)設(shè)準(zhǔn)則,從染色體比較器128或染色體組合器130選擇特定 染色體。例如,布局選擇器130可以在充分滿足SLA約束條件112之后或者在執(zhí)行了特定 數(shù)目的進(jìn)化循環(huán)之后選擇染色體。有利的是,布局選擇器130可以在遺傳算法期間的幾乎 任意時(shí)刻選擇解(染色體),該解然后將代表可用最佳解并且不需要等到算法完成的時(shí)候。圖5是可以用于圖1的示例中的示例染色體比較器128的框圖。更加具體說來, 圖5示出了染色體比較器128的示例,該染色體比較器128被配置為通過執(zhí)行與特定SLA 約束條件112相對的特定評價(jià)函數(shù)來評價(jià)/評分/比較染色體。在這點(diǎn)上,應(yīng)當(dāng)理解的是, 這些特定示例僅僅為了示出各種實(shí)施例以幫助理解更多相關(guān)概念,并且不受限于本領(lǐng)域技 術(shù)人員所清楚的其它實(shí)施例。為了下面的示例,如上面針對圖1-3所描述的假定在服務(wù)器組106中使用多租戶 數(shù)據(jù)庫應(yīng)用,并且每個(gè)高級租戶被復(fù)制到三個(gè)服務(wù)器上,并且以輪詢(round robin)方式將 請求路由到這些服務(wù)器。類似地,每個(gè)普通租戶使得其數(shù)據(jù)被復(fù)制到兩個(gè)服務(wù)器上。于是, 高級租戶和普通租戶分別可以經(jīng)受住兩個(gè)服務(wù)器和一個(gè)服務(wù)器故障。在圖5-9的示例中,假定(例如,被要求或規(guī)定的指定程度上)實(shí)施下列六個(gè)SLA 約束條件,如下面詳細(xì)描述的那樣。具體說來,第一約束條件可以指定在經(jīng)過校準(zhǔn)以歸一化 異類計(jì)算能力之后在服務(wù)器之間均衡負(fù)載??梢詫⒇?fù)載均衡管理器502包括在內(nèi)以管理該 約束條件。第二約束條件可以指定在相同等級的所有租戶(以及相同租戶的所有租戶實(shí)例) 之間均衡負(fù)載,即使在發(fā)生服務(wù)器故障時(shí)(容錯(cuò))也是如此??梢詫⒇?fù)載分布管理器504 包括在內(nèi)以實(shí)施該約束條件。第三約束條件可以指定提供給高級租戶的服務(wù)器的負(fù)載比提供給普通租戶的服 務(wù)器的負(fù)載少X%。在這點(diǎn)上,可以理解,分配較多的服務(wù)器給高級租戶不一定確保更好的 響應(yīng)時(shí)間,這是因?yàn)槔珥憫?yīng)時(shí)間還可能依賴于高級租戶的負(fù)載等級、分配給相同服務(wù)器 的普通租戶的數(shù)量和普通租戶的負(fù)載。可以將高級負(fù)載分布管理器506包括在內(nèi)以實(shí)施該 約束條件。當(dāng)提到這些示例中的負(fù)載時(shí),基于這樣的認(rèn)知來考慮日常的負(fù)載分布租戶的負(fù) 載在一天之中可能極為不同。例如,租戶可能在其業(yè)務(wù)時(shí)間期間負(fù)載較重,而對于不同租 戶、不同行業(yè)和不同地理區(qū)域來說業(yè)務(wù)時(shí)間本身可能有所不同。因此,可以考慮流量模式的 時(shí)間局部性(temporal locality of traffic patterns),并且對于較高精度的負(fù)載均衡, 可以將負(fù)載分布看作每小時(shí)平均負(fù)載的時(shí)間序列。對于這前三個(gè)約束條件,可以遵守下列規(guī)定這些約束條件可以以不同的期望程度被實(shí)施,并且不代表要施加到最終得到的布局上的絕對的或極端的(all-or-nothing) 要求。例如,系統(tǒng)管理員可以配置與系統(tǒng)故障發(fā)生時(shí)相對的正常工作期間負(fù)載均衡的重要 性(importance)。在另一個(gè)示例中,如上所述,不需要嚴(yán)格均勻地均衡負(fù)載,而是可以是在 給定的誤差范圍或幅度(a certain window or margin of error)內(nèi)均勻地均衡負(fù)載并且 仍然是可接受的??梢杂善谜{(diào)節(jié)器118來指定可以在何種程度上實(shí)現(xiàn)或調(diào)整這些參數(shù)。第四SLA約束條件可以指定既用于高級租戶數(shù)據(jù)庫又用于普通租戶數(shù)據(jù)庫的數(shù) 據(jù)應(yīng)當(dāng)被復(fù)制,其中經(jīng)由復(fù)制的容錯(cuò)的程度可以隨租戶級別不同而有所不同。一般地,對于 同一租戶級別中的所有租戶來說,容錯(cuò)等級可以相同,與普通租戶級別相比通過在更多的 服務(wù)器上進(jìn)行復(fù)制來向高級租戶提供更高等級的容錯(cuò),這里的示例假設(shè)對高級租戶進(jìn)行兩 次復(fù)制而對普通租戶進(jìn)行一次復(fù)制??梢詫⑷蒎e(cuò)管理器508包括在內(nèi)以實(shí)施該約束條件。第五SLA約束條件可以指定相同的租戶數(shù)據(jù)庫的復(fù)制本不應(yīng)當(dāng)布置在相同的服 務(wù)器上,這是因?yàn)檫@樣的分配沒有任何好處??梢詫?fù)制管理器510包括在內(nèi)以實(shí)施該第 五約束條件。第六SLA約束條件可以承認(rèn)(recognize)每個(gè)服務(wù)器都具有一個(gè)存儲(chǔ)容量限制 (如計(jì)算約束條件114所指定的那樣),并且每個(gè)租戶具有“固定”大小的應(yīng)用數(shù)據(jù)(在一 個(gè)時(shí)間段內(nèi))(如租戶情況116所指定的那樣)。租戶數(shù)據(jù)庫的應(yīng)用數(shù)據(jù)必須裝入一個(gè)服務(wù) 器。為了簡便起見,假定系統(tǒng)100不會(huì)為了一天中不同小時(shí)的負(fù)載等級變化而到處移動(dòng)租 戶數(shù)據(jù)的復(fù)制本以進(jìn)行調(diào)整??梢詫⑷萘抗芾砥?12包括在內(nèi)以實(shí)施該第六約束條件。上面所述的第四、第五和第六約束條件可以被視為絕對約束條件,也即,為了使特 定布局(染色體)將被視為是可行的而必須滿足的約束條件。換句話說,不滿足這些特定 約束條件的染色體會(huì)被立即丟棄。最后,在圖5中,可以根據(jù)需要使用得分編譯器(score compiler) 514,以便在計(jì) 算正在進(jìn)行的得分參數(shù)時(shí)跟蹤它們,然后合計(jì)或者編譯與染色體比較器(128)的評價(jià)函數(shù) 相關(guān)聯(lián)的一個(gè)或多個(gè)得分。圖6是示出圖1和圖5的系統(tǒng)的示例操作的第一流程圖600。在圖6的示例中, 輸入處理器120可以確定正如上面所描述的六個(gè)SLA約束條件所表示的那些SLA約束條件 112中的某些或全部約束條件、與服務(wù)器106a-106n的處理和存儲(chǔ)限制相關(guān)的計(jì)算約束條 件114、與各個(gè)租戶104的工作負(fù)荷要求和數(shù)據(jù)庫大小相關(guān)的租戶情況116以及與通過偏好 調(diào)節(jié)器118接收的與上述某些或全部相關(guān)的偏好(602)。然后,染色體生成器126可以產(chǎn)生第一或初始染色體種群(604)。例如,染色體生 成器126可以簡單地通過隨機(jī)分配租戶給服務(wù)器來產(chǎn)生預(yù)定數(shù)量的染色體。然后,染色體 比較器128可以針對每個(gè)染色體執(zhí)行評價(jià)函數(shù),以便將得分與每個(gè)染色體相關(guān)聯(lián)(606)???以使用組件502-504來執(zhí)行評價(jià)函數(shù),并且下面針對圖7-9提供評價(jià)函數(shù)的特定示例?;谠u價(jià)和評分,可以通過染色體比較器128得到選定的染色體子集。然后,可以 將該選定的染色體子集傳遞到染色體組合器130,染色體組合器130然后可以將染色體對 進(jìn)行組合,以得到下一代染色體(610)。圖2提供了如何執(zhí)行這些組合的示例,很顯然,也那 樣可以使用其它技術(shù)。于是,通過將下一代染色體返回到染色體比較器128,迭代的進(jìn)化循環(huán)可以進(jìn)行下 去,如圖1和圖6中所示。總體說來,每一代都將大體上向可接受的或優(yōu)化的解前進(jìn)??梢栽陬A(yù)定數(shù)目的迭代/代之后、或者當(dāng)SLA約束條件在所要求程度上全部得到滿足時(shí)、或者在 到達(dá)時(shí)限或某其它停止指標(biāo)(indicator)之后,終止該循環(huán)。可以由布局選擇器124進(jìn)行 這些確定,布局選擇器124接著可以選擇可用最佳染色體來用作布局解(612)。圖7是示出圖1和圖5的系統(tǒng)的示例操作的第二流程圖700。具體說來,圖7示出 了由圖1和圖5的染色體比較器128所使用的評價(jià)函數(shù)的某些方面的執(zhí)行。在圖7中,從染色體種群中選擇染色體(702)。染色體比較器128可以首先檢查必 要的SLA約束條件以及可以被容易地檢驗(yàn)的SLA約束條件。例如,可以由復(fù)制管理器510 檢查第五SLA約束條件以便確保租戶數(shù)據(jù)庫沒有在同一服務(wù)器上被重復(fù)(被復(fù)制)(704), 這是因?yàn)?,如所述的那樣,從容錯(cuò)的觀點(diǎn)來看這樣的布局毫無用處。因此,如果發(fā)生了這樣 的重復(fù),那么可以將所談?wù)摰娜旧w丟棄(706)。如果不是這樣的話,容量管理器512可以檢驗(yàn)第六SLA約束條件,該條件要求租戶 數(shù)據(jù)庫(各自作為一個(gè)整體)必須裝入其可能被布置到的至少一個(gè)服務(wù)器(708)。如果任 何租戶數(shù)據(jù)庫在該意義上太大了,那么可能又一次丟棄相關(guān)染色體(706)。容錯(cuò)管理器508可以檢查染色體以確保該染色體包括總共三個(gè)租戶數(shù)據(jù)庫(一個(gè) 原始的和兩個(gè)復(fù)制的)用于每個(gè)高級租戶,以及總共兩個(gè)租戶數(shù)據(jù)庫(一個(gè)原始的和一個(gè) 復(fù)制的)用于每個(gè)普通租戶。如果不是這樣的話,那么可以丟棄該染色體(706)。通過這樣 的方式,可以保持所要求的容錯(cuò)等級上的差別。然后,負(fù)載均衡管理器502和負(fù)載分布管理器504可以執(zhí)行它們各自的功能,以實(shí) 施上述第一和第二 SLA約束條件,同時(shí)高級負(fù)載分布管理器506可以用于監(jiān)控和/或?qū)嵤?第三SLA約束條件??梢允褂孟旅娴姆柡蛻T例(notation and convention)來進(jìn)行這些計(jì)算以及下 列計(jì)算。具體說來,每個(gè)服務(wù)器Si被稱為具有計(jì)算能力C0mpP0WerSi,其以每小時(shí)處理的作 業(yè)數(shù)量來度量。每個(gè)服務(wù)器還具有存儲(chǔ)容量StorageCapsi。T= U^t2,... ,tj表示復(fù)制 后(post-implication)租戶的集合,其中每個(gè)租戶t」每小時(shí)的負(fù)載為Loadtj的作業(yè)并且 具有DataVolumetj的數(shù)據(jù)量。Tlffe是高級租戶集合,Tms是普通租戶集合,以使得(TlffeU Treg =T 并且 Tpre Π Treg = null (至))。服務(wù)器106a-106n可以在它們的計(jì)算能力/約束條件方面是相異的。從而,每個(gè) 服務(wù)器都具相對于其計(jì)算能力的歸一化負(fù)載(normalized load),其中服務(wù)器S的這種歸 一化負(fù)載可以表示為Ls。高級租戶的服務(wù)器和高級租戶的副本的服務(wù)器可以被定義為集 合Spre = {spl,sp2,. . . SpJ,而Sreg = {srl, sr2,. . . srJ}表示普通租戶的服務(wù)器和普通租戶的 副本的服務(wù)器。如可以理解的那樣,Spre和Sreg可以有重疊。使用上述符號,負(fù)載均衡管理 器502和/或負(fù)載分布管理器504可以命令(mandate)和/或執(zhí)行關(guān)于得到具有高級租戶 (714)和普通租戶(716)的服務(wù)器的負(fù)載的運(yùn)算。然后,σpre 可以是{Lspl,Lsp2,. . . LspJ 的標(biāo)準(zhǔn)偏差,而 σ reg 可以是{Lsrl,Lsr2,· ·., LsrjI的標(biāo)準(zhǔn)偏差。然后,一般說來,較小的σρΜ表示容納高級租戶的所有服務(wù)器上的負(fù)載 分布較恒定,從而高級租戶的體驗(yàn)更為流暢。相同的推理也適用于普通租戶的Oreg,盡管 對于具有普通租戶而沒有高級租戶的服務(wù)器來說可以容忍較大的Oreg值。一般說來,可以 理解的是,優(yōu)選的布局應(yīng)當(dāng)在可能的程度上最小化σρΜ和二者,以提供更好的用戶體 驗(yàn)。因此,負(fù)載均衡管理器502可以計(jì)算參數(shù)Qme(720)和Ome(722)。
如上所述,第三約束條件可以指定高級租戶可以被提供具有比提供給普通租戶的 服務(wù)器少的負(fù)載的服務(wù)器。該約束條件反映了向高級租戶提供更好服務(wù)的商業(yè)價(jià)值 (business value)與輕負(fù)載服務(wù)器相關(guān)聯(lián)。例如,如果期望高級租戶被提供以負(fù)載比提供 給普通租戶的服務(wù)器的負(fù)載少的服務(wù)器,并且布局產(chǎn)生對于高級租戶的平均負(fù)載AVGpm 和對于普通租戶的平均負(fù)載AVG,eg,那么差(differential) (AVGreg-AVGpre) /AVGreg越接近于
,第三SLA約束條件越接近于被滿足。從而,如圖7中所示,負(fù)載分布管理器504可以被 配置為計(jì)算AVGpm (720)和AVGreg(724)。然后,高級負(fù)載分布服務(wù)器506可以被配置為確定 這些參數(shù)之間的百分比差(percent difference) (726),如上所述。然后,可以將該百分比 差與參數(shù)比較,以便確定參數(shù)Odiff (728),該參數(shù)用于判斷對于所談?wù)摰娜旧w在何種 程度上實(shí)現(xiàn)第三SLA約束條件。然后,一般說來,在圖7中被評分的染色體可以具有如公式1所示的初始得分CJ pre+ O reg+① diff,公式1其中,在表示相對于第三SLA約束條件的約束條件的較小標(biāo)準(zhǔn)偏差和較小百 分比差時(shí)優(yōu)選較小的得分。但是,除此這外,并且如上所述,例如針對圖6,可以通過偏好調(diào) 節(jié)器118來接收偏好參數(shù),這些參數(shù)定義上述得分組件取值的范圍和方式。具體說來,α可以表示可以由用戶配置的權(quán)重,用于表示他們在使高級租戶占用 的服務(wù)器的負(fù)載或普通租戶占用的服務(wù)器的負(fù)載更加均衡時(shí)的偏好(preference)。與此同 時(shí),β表示用于調(diào)節(jié)實(shí)現(xiàn)區(qū)別負(fù)載要求Odiff的期望程度的參數(shù)。然后,可以如公式2中所 示更加充分地表示染色體得分,其可以由得分編譯器來確定(730)α σ pre+(l-a) σ reg+β Odiff公式 2圖8是示出圖1和圖5的系統(tǒng)的示例操作的第三流程圖800。具體說來,圖8示出 了用于在出現(xiàn)服務(wù)器故障時(shí)提供包括負(fù)載均衡在內(nèi)的容錯(cuò)的特定技,諸如上面針對圖3所 述的那些技術(shù),以及諸如可以由圖5的容錯(cuò)管理器508連同負(fù)載均衡管理器502和/或負(fù) 載分布管理器504 —起執(zhí)行的技術(shù)。如從上面的描述理解的那樣,如這里所描述的用于多租戶數(shù)據(jù)庫應(yīng)用的數(shù)據(jù)庫空 間方法可以使用內(nèi)容已知(content-aware)路由器或其它已知技術(shù),將相同租戶的請求分 布到多個(gè)服務(wù)器(每個(gè)服務(wù)器容納該租戶的原始版本的數(shù)據(jù)庫或復(fù)制版本的數(shù)據(jù)庫)。當(dāng) 服務(wù)器發(fā)生故障時(shí),諸如上面針對圖3所述的那樣,路由器必須將發(fā)送到故障服務(wù)器的請 求重新引導(dǎo)到其它工作著的服務(wù)器。為了即使在發(fā)生服務(wù)器故障時(shí)也確保負(fù)載均衡,還必 須評價(jià)在正常工作期間的布局。因此,對于正在被評分的給定染色體(諸如圖3的染色體 362),可以確定多個(gè)染色體變種(variant)(諸如染色體變種364-370),在這些染色體變種 中的每一個(gè),服務(wù)器中的不同服務(wù)器被假定發(fā)生了故障。然后,可以根據(jù)上面針對圖6和圖 7所描述的評價(jià)函數(shù)來對染色體和染色體變種評分。而且,如下面所描述的那樣,可以針對 在較大評價(jià)函數(shù)的給定實(shí)現(xiàn)中要求這樣的容錯(cuò)負(fù)載均衡的程度來接收和包括用戶偏好。然后,在圖8中,對于正在被評分的染色體,從染色體中去除服務(wù)器Si,以創(chuàng)建第一 染色體變種(802),在該第一染色體變種中服務(wù)器Si發(fā)生故障并且未來所有對該服務(wù)器的 請求都必須被重新路由到其它服務(wù)器。然后,針對染色體變種重新計(jì)算上面的參數(shù)σρΜ、 σ @和Cdiff (804)。如果Si不是該染色體中的最后一個(gè)服務(wù)器,那么該過程接下來去除下 一個(gè)服務(wù)器(802)。
如果不是這樣的話,可以得到染色體的負(fù)載均衡得分(808)。也就是說,可以計(jì)算 或從存儲(chǔ)器中檢索如圖7中所確定的得分(730)。然后,可以重新執(zhí)行如上面針對圖7的描 述的相同技術(shù),以得到針對每個(gè)染色體變種和相關(guān)聯(lián)的服務(wù)器故障的負(fù)載均衡得分(810)。結(jié)果是使用上面的公式1和公式2,得到(諸如針對圖3的染色體362)正常負(fù)載 均衡得分(沒有服務(wù)器發(fā)生故障),以及若干各自對應(yīng)于染色體變種(例如,如圖3的染色 體變種364-370)的得分??梢园慈旧w變種的數(shù)目將染色體變種的得分平均,以得到容錯(cuò) 得分 ScoreFt (814)??梢岳斫獾氖?,可以將服務(wù)器組106中的服務(wù)器故障視為相對可能或相對不可 能,或者給定租戶或其它用戶可以具有相對較高或相對較低的承受服務(wù)器故障的風(fēng)險(xiǎn)容 限。由于這些和其它相關(guān)或類似原因,對于特定租戶來說容錯(cuò)得分和相關(guān)聯(lián)的分析可以相 對重要或相對不重要。因此,偏好調(diào)節(jié)器118可以使得用戶可以根據(jù)容錯(cuò)得分的權(quán)重輸入 偏好,其中該偏好在本說明書中表示為λ。因此,在使用該權(quán)重因子λ時(shí),可以理解,較小 的λ值表明正常情況下(也即,沒有服務(wù)器崩潰的情況下)布局的高得分是首選的。另一 方面,較小的λ表示相對于負(fù)載均衡的更好容錯(cuò)能力的偏好。因此,可以使用公式3,例如由得分編譯器514得到最終得分(814)(1-λ ) Score+λ (ScoreFt)公式 3再次,術(shù)語Score和Sc0reFt應(yīng)當(dāng)被理解為表示例如根據(jù)圖7和圖8的操作所計(jì)算 的上面公式2的輸出。圖9是示出圖1和圖5的系統(tǒng)的示例操作的第四流程圖900。如上所述,為了解決 租戶和/或服務(wù)器的負(fù)載和其它特征每小時(shí)都不同的問題,按小時(shí)來進(jìn)行布局決策可能有 用。因此,在圖9中,針對小時(shí)h來計(jì)算最終得分,以得到每小時(shí)的得分(902)。如果不是 例如24小時(shí)周期/日的最后一小時(shí)(904),那么就可以計(jì)算下一個(gè)小時(shí)的得分(902)。如 果不是這樣的話,可以將每小時(shí)的得分平均,以得到總的染色體得分(906)。為此,最終得分可以用于所談?wù)摰娜旧w,并且類似地,可以對于給定種群/代中 的每一個(gè)染色體計(jì)算最終得分。然后,如所述的那樣,染色體比較器128可以相應(yīng)地為這些 染色體分等級并且將染色體的選定子集作為如上所述的遺傳算法的進(jìn)化循環(huán)的一部分轉(zhuǎn) 送到染色體組合器130,。這樣,圖1和圖5將這一事實(shí)考慮在內(nèi)在一天的一個(gè)小時(shí)內(nèi),可能一個(gè)或多個(gè)服 務(wù)器會(huì)具有高負(fù)載。正如針對圖9所描述的那樣,這里所描述的系統(tǒng)和方法能夠在一天的 24小時(shí)內(nèi)實(shí)施負(fù)載均衡。如果所描述的算法只知道租戶每天的負(fù)載并且相應(yīng)地計(jì)算布局,那么可用的最佳 布局終究會(huì)導(dǎo)致服務(wù)器的過大的最大負(fù)載。但是,如果所描述的算法被提供了一天之間每 個(gè)小時(shí)的租戶負(fù)載,然后如所描述的那樣通過將24小時(shí)內(nèi)的這些布局得分進(jìn)行平均來評 價(jià)布局,那么每個(gè)服務(wù)器24小時(shí)內(nèi)的服務(wù)器最大負(fù)載就可以被最小化。圖6-9描述了可以用于圖1和圖5的系統(tǒng)的特定評價(jià)函數(shù)的操作,并且在傳達(dá)其 所包括的功能和特征的程度上對其進(jìn)行描述。但是,應(yīng)當(dāng)理解,在圖1和圖5的系統(tǒng)的實(shí)際 操作或執(zhí)行中,可以采用許多變形和優(yōu)化。例如,當(dāng)在圖9中計(jì)算每小時(shí)的得分時(shí),許多沒 有按小時(shí)變化的參數(shù)(諸如是否在一個(gè)服務(wù)器上復(fù)制特定租戶數(shù)據(jù),如上面的第五SLA約 束條件所禁止的)不需要重新計(jì)算。應(yīng)當(dāng)清楚,在實(shí)際實(shí)施圖1和圖5的系統(tǒng)中可以包括其它效率和優(yōu)化。 在下文中,將給出代碼或偽碼的實(shí)際部分,它們提供了這些實(shí)際實(shí)施方式的示例。 具體說來,下面給出算法1,其中變量t代表當(dāng)前代的染色體,P(t)代表該代的種群。如這 里所描述的那樣,染色體通過多代的適應(yīng)和選擇而進(jìn)化。另外,如算法1中所示,某些實(shí)施 方式中的染色體組合器130可以將一個(gè)或多個(gè)突變包括到染色體種群中。也就是說,可以 隨機(jī)變更或突變一個(gè)或多個(gè)染色體的具體方面,以探索解空間的多個(gè)部分,這些解空間的 部分在遺傳算法的正常運(yùn)行期間將不會(huì)被碰到。因此,類似于上面的圖4和圖6的示例,算 法1表示遺傳算法和相關(guān)聯(lián)操作的總體運(yùn)行。注意在下面的算法中,第一到第六SLA約束 條件被分別稱為REQ1-REQ6。
算法1 遺傳搜索算法_ 如算法1中可見的那樣,實(shí)際評價(jià)函數(shù)在其第8行發(fā)生。算法2提供了可以怎樣 實(shí)施這樣的評價(jià)函數(shù)的進(jìn)一步的細(xì)節(jié)。具體說來,例如,在第5行,類似于圖7的操作,它在 沒有服務(wù)器故障的正常工作情況下計(jì)算每個(gè)染色體的得分。為了這樣做,算法2調(diào)用如下 所述的算法3。然后,從第7行到第10行,類似于圖8的操作,它再次使用算法3,對當(dāng)服務(wù) 器發(fā)生故障時(shí)相同布局的性能進(jìn)行評價(jià)。在每一次迭代中,都假定服務(wù)器中的一個(gè)服務(wù)器 發(fā)生故障并且布置在故障服務(wù)器上的原始負(fù)載被重新引導(dǎo)(redirect)至包含與故障服務(wù) 器相同的租戶數(shù)據(jù)庫副本的其它服務(wù)器。在第11行中,通過應(yīng)用參數(shù)λ來計(jì)算染色體的 最終得分,以考慮相對于負(fù)載均衡的容錯(cuò)能力的偏好。 算法2中所引用的評價(jià)布局函數(shù)在下面的算法3中示出。在算法3中,如上面所 述,示出了圖7和圖8的操作以及圖9的操作。具體說來,第6-10行檢查是否存在布置在同 一服務(wù)器的相同租戶的副本。如果是的話,這樣的布局就將得到無窮大(infinite)或有效 無窮大(effective infinite)的得分,因?yàn)檫@種情況違犯了所要求的第五SLA約束條件。類似地,從第12行到第17行,關(guān)于服務(wù)器的硬盤空間是否足夠容納所分配的副本 來對每個(gè)服務(wù)器進(jìn)行檢查,如第六SLA約束條件所要求的那樣。所有不能接納所分配的租 戶數(shù)據(jù)庫的服務(wù)器將再次導(dǎo)致無窮大或有效無窮大的得分。如果滿足上面兩個(gè)條件,那么就在24小時(shí)內(nèi)逐小時(shí)地評價(jià)布局,如圖9所示。更 新高級租戶和普通租戶所占用的服務(wù)器的統(tǒng)計(jì)數(shù)字(第20-29行)并且通過在第30行將 用戶偏好并入來計(jì)算該小時(shí)的得分。最后,將24小時(shí)內(nèi)的平均得分返回作為該染色體的最 終得分。
圖1-9以及上面所描述的公式和算法提供了可以怎樣通過隱含地并入SLA約束條 件112和其它輸入114-118的方式,將租戶數(shù)據(jù)庫分配到服務(wù)器組106中的多個(gè)服務(wù)器的 一般性示例和特定示例。從而,可以明確地并入潛在的必要約束條件,同時(shí)可以在不同程度 上并入其它約束條件,所述程度可以由用戶根據(jù)期望使用偏好調(diào)節(jié)器118修改。
下面的描述提供了如何針對關(guān)于圖5-9的示例具體描述的不同偏好參數(shù)使用偏 好調(diào)節(jié)器118的附加示例和說明。如上面一般所述的那樣,偏好參數(shù)α可以用于表示對于 均衡高級租戶和普通租戶所占用的服務(wù)器的負(fù)載的用戶偏好,因此較大的α表示均衡高 級租戶的負(fù)載更加重要,而相對較小的α表示均衡普通租戶的負(fù)載更加重要。偏好參數(shù)β 用于實(shí)施不同級別的租戶之間的區(qū)別負(fù)載(differential load),也即,用于確定實(shí)際的區(qū) 別負(fù)載可以與所指定的或所期望的區(qū)別負(fù)載偏離的程度。最后,偏好參數(shù)λ可以如所描述 的那樣使用,以使得該參數(shù)的較大的值表示用戶對罕有服務(wù)器故障的正常情況關(guān)注較少而 對服務(wù)器故障較普遍的情況關(guān)注較多,而該參數(shù)的較小的值表示用戶對罕有服務(wù)器故障的 正常情況關(guān)注較多而對服務(wù)器故障較普遍的情況關(guān)注較少。一般說來,在各種實(shí)施例中,除 了參數(shù)β可以如上所述被設(shè)置為無窮大或有效無窮大以從考慮對象中有效去除給定染色 體之外,參數(shù)α、β和λ可以被設(shè)置為0到1之間不同的值。對于參數(shù)α,可以理解,用戶可以指定他們期望怎樣均衡高級租戶或普通租戶所 占用的服務(wù)器負(fù)載的偏好(也即,他們想要均衡哪個(gè)級別的租戶負(fù)載)。較大的α表示用于 高級租戶的負(fù)載均衡更加重要,反過來較小的α表示均衡普通租戶的負(fù)載更加重要。上面 的示例算法能夠返回非常接近于用戶偏好的解,因此,如果α較大,那么算法將得出這樣 的解其中,高級租戶的負(fù)載比普通租戶的負(fù)載更好地被均衡。另一方面,給定較小的α, 算法可以產(chǎn)生這樣的結(jié)果該結(jié)果使普通租戶的負(fù)載更加均衡。即使是在可用服務(wù)器或服 務(wù)器的盤空間上有限制,參數(shù)α也可以用于實(shí)施高級租戶與普通租戶之間期望的負(fù)載均 衡。而且,一般說來,α的變化對參數(shù)β的效力幾乎或完全沒有影響。關(guān)于參數(shù)β,更加具體說來,如上所述,可以理解的是,該參數(shù)涉及用戶對實(shí)施區(qū) 別負(fù)載的偏好。如果用戶更加注重在不同級別的租戶之間實(shí)施區(qū)別負(fù)載,也即,β較大,那 么算法就有效地響應(yīng)以滿足該要求。但是,當(dāng)基本參數(shù)和odiff(高級租戶與普通租戶 之間的期望區(qū)別負(fù)載以及染色體匹配該期望區(qū)別的程度)增大時(shí),那么相對較小或較大的 β值可能在實(shí)施上或多或少地有困難,這尤其依賴于服務(wù)器盤空間的限制。關(guān)于參數(shù)和Odiff本身,可以理解的是,如上所定義的函數(shù)Φ本身可以被調(diào) 整,以滿足不同的偏好。例如,如果高級租戶接收到比普通租戶差的服務(wù)(如下面條件所定 義的那樣普通租戶的平均響應(yīng)時(shí)間比高級租戶的平均響應(yīng)時(shí)間短),那么參數(shù)Odiff就可 以被設(shè)置為無窮大或有效無窮大,因?yàn)檫@樣的情況一般是完全不可接受的。另一方面,如果 高級租戶相對于普通租戶來說得到太多的益處,那么提供給普通租戶的服務(wù)可能會(huì)急劇惡 化。因此,當(dāng)普通租戶與高級租戶之間的差超過(對于SLA約束條件來說該條件不是必 要的并且在最佳情況下向高級租戶提供過度的好處)時(shí),那么將再次分配無窮大或有效無 窮大的值。如已經(jīng)討論的那樣,參數(shù)λ可以用于指定用戶是更加關(guān)注正常情況(其中服務(wù) 器故障罕有發(fā)生)還是更加關(guān)注服務(wù)器故障發(fā)生相對頻繁的情況。為了表示該情況,可以 考慮,Serveri崩潰,那么由高級租戶和普通租戶戰(zhàn)用的服務(wù)器的最終負(fù)載偏差被定義為 devpre(i)和devreg(i),同時(shí)當(dāng)沒有服務(wù)器崩潰時(shí),該偏差可以就用devpre和如、68來表示。當(dāng)較大的λ被指定為表示用戶對于服務(wù)器故障情況下的負(fù)載均衡更加關(guān)心時(shí), 那么deVpre和dev,eg的平均值將變得較小。與此同時(shí),devpre和dev,eg沒有顯著地受到負(fù)面 影響。原因在于,當(dāng)服務(wù)器中任意一個(gè)崩潰時(shí)負(fù)載仍然是均衡的暗示著負(fù)載在所有服務(wù)器上也是均衡的。另一方面,如果在所有服務(wù)器上負(fù)載已經(jīng)是均衡的,那么當(dāng)服務(wù)器崩潰發(fā)生 時(shí)該負(fù)載不會(huì)總是同樣地均衡。因此,本說明書提供一種在將η個(gè)作業(yè)分配到m個(gè)服務(wù)器這一負(fù)載均衡問題上取 得進(jìn)步的方法(advance),其包括考慮實(shí)現(xiàn)SLA約束條件所需的額外復(fù)雜度。這里所描述的 布局算法靈活到足以將不同形式的各種SLA約束條件并入其中,并且即使它沒有生成滿足 所有要求的解決方案,也能夠產(chǎn)生最佳的可能布局解。所描述的遺傳算法提供這樣的解決 布局問題的解,并且具有將各種不同形式的SLA約束條件封裝到它的評價(jià)中的靈活性。從 而,這里所描述的系統(tǒng)和方法提供了封裝各種不同形式的SLA約束條件的完整框架以及考 慮到可用資源、需求以及情況(context)漸進(jìn)地找到滿足所述約束條件的最佳可能解的遺 傳算法。這里描述的各種技術(shù)的實(shí)施方式可以被實(shí)施在數(shù)字電子電路中,或者實(shí)施在計(jì)算 機(jī)硬件、固件、軟件,或者它們的組合中。實(shí)施方式可以實(shí)施為計(jì)算機(jī)程序產(chǎn)品,即有形地具 體體現(xiàn)在信息載體中的計(jì)算機(jī)程序,信息載體例如機(jī)器可讀存儲(chǔ)設(shè)備或者傳播的信號,以 供數(shù)據(jù)處理裝置執(zhí)行,或者控制數(shù)據(jù)處理裝置的操作,所述數(shù)據(jù)處理裝置例如可編程處理 器、計(jì)算機(jī)、多個(gè)計(jì)算機(jī)。計(jì)算機(jī)程序,諸如上面描述的計(jì)算機(jī)程序,可以用任何形式的編程 語言編寫,包括匯編語言或解釋語言,并且,它可以被以任何形式部署,包括作為獨(dú)立的程 序或者作為模塊、組件、子程序或其他適于在計(jì)算環(huán)境中使用的單元。計(jì)算機(jī)程序可以被部 署為在一個(gè)計(jì)算機(jī)上執(zhí)行或在位于一個(gè)地點(diǎn)或分布在多個(gè)地點(diǎn)并被通信網(wǎng)絡(luò)互連起來的 多個(gè)計(jì)算機(jī)上執(zhí)行。方法步驟可以被一個(gè)或多個(gè)可編程處理器執(zhí)行,所述可編程處理器執(zhí)行計(jì)算機(jī)程 序,以通過對輸入數(shù)據(jù)操作和產(chǎn)生輸出來執(zhí)行功能。方法步驟還可以被用于特殊目的的邏 輯電路執(zhí)行,或者裝置可以被實(shí)施為用于特殊目的的邏輯電路,所述用于特殊目的的邏輯 電路例如FPGA(現(xiàn)場可編程門陣列)或ASIC(專用集成電路)。作為例子,適于執(zhí)行計(jì)算機(jī)程序的處理器包括通用和專用微處理器,以及任何類 型的數(shù)字計(jì)算機(jī)的任意一個(gè)或多個(gè)處理器。一般說來,處理器將從只讀存儲(chǔ)器或隨機(jī)存取 存儲(chǔ)器接收指令和數(shù)據(jù),或者從兩者都接收指令和數(shù)據(jù)。計(jì)算機(jī)的元件可以包括至少一個(gè) 用于執(zhí)行指令的處理器和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。一般說來,計(jì)算 機(jī)還可以包括,或者被可操作地耦合以從一個(gè)或多個(gè)用于存儲(chǔ)數(shù)據(jù)的海量存儲(chǔ)設(shè)備接收數(shù) 據(jù),或把數(shù)據(jù)傳送到海量存儲(chǔ)設(shè)備,或者二者皆有,所述海量存儲(chǔ)設(shè)備例如磁盤、磁光盤或 光盤。適于具體實(shí)施計(jì)算機(jī)程序指令和數(shù)據(jù)的信息載體包括所有形式的非易失性存儲(chǔ)器, 包括例如半導(dǎo)體存儲(chǔ)器件,例如EPR0M、EEPROM和閃存器件;磁盤,例如內(nèi)置硬盤或可移動(dòng) 磁盤;磁光盤;以及⑶-ROM和DVD-ROM盤。處理器和存儲(chǔ)器可以由用于特殊目的的邏輯電 路補(bǔ)充,或者被包含在用于特殊目的的邏輯電路中。為了提供與用戶的交互,實(shí)施方式可以在具有顯示設(shè)備和鍵盤以及定點(diǎn) (pointing)設(shè)備的計(jì)算機(jī)上實(shí)施,顯示設(shè)備例如陰極射線管(CRT)或液晶顯示器(IXD)監(jiān) 視器,用于向用戶顯示信息,鍵盤和指示設(shè)備例如鼠標(biāo)或跟蹤球,用戶利用它們可以提供到 計(jì)算機(jī)的輸入。其他種類的設(shè)備也可以被用來提供和用戶的交互;例如,提供給用戶的反饋 可以是任何形式的感覺反饋,例如視覺反饋、聽覺反饋或觸覺反饋,并且,來自用戶的輸入 可以被以任何形式接收,包括聲音、語音或觸覺輸入。
實(shí)施方式可以被在包括后端組件或包括中間件組件或包括前端組件的計(jì)算系統(tǒng) 中實(shí)施,或者在這些后端、中間件、前端組件的任意組合中實(shí)施,后端組件例如數(shù)據(jù)服務(wù)器, 中間件組件例如應(yīng)用服務(wù)器,前端組件例如具有圖形用戶界面或Web瀏覽器的客戶端計(jì)算 機(jī),通過圖形用戶界面或Web瀏覽器,用戶可以和實(shí)施方式進(jìn)行交互。可以利用數(shù)字?jǐn)?shù)據(jù)通 信的任何形式或介質(zhì)互連組件,數(shù)字?jǐn)?shù)據(jù)通信的介質(zhì)例如通信網(wǎng)絡(luò)。通信網(wǎng)絡(luò)的例子包括 局域網(wǎng)(LAN)和廣域網(wǎng)(WAN),例如因特網(wǎng)。雖然如這里所描述的那樣已經(jīng)示出了所描述的實(shí)施方式的某些特征,但是本領(lǐng)域 技術(shù)人員現(xiàn)在應(yīng)當(dāng)想到很多修改、替換,變化或等同物。因此應(yīng)當(dāng)理解,所附權(quán)利要求旨在 覆蓋落入實(shí)施例的范圍內(nèi)的所有這些修改和變化。
權(quán)利要求
一種包括記錄在計(jì)算機(jī)可讀介質(zhì)上的指令的計(jì)算機(jī)系統(tǒng),該系統(tǒng)包括布局管理器,其被配置為確定多個(gè)租戶數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)庫到多個(gè)服務(wù)器中一個(gè)服務(wù)器的布局,其中,所述多個(gè)租戶數(shù)據(jù)庫包括原始租戶數(shù)據(jù)庫和從原始租戶數(shù)據(jù)庫復(fù)制的復(fù)制租戶數(shù)據(jù)庫,其中,所述布局管理器包括輸入處理器,其被配置為確定掌控所述多個(gè)租戶數(shù)據(jù)庫與所述多個(gè)服務(wù)器的關(guān)聯(lián)的服務(wù)等級協(xié)議SLA的約束條件,并且被配置為確定與所述多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算約束條件,染色體比較器,其被配置為將多個(gè)染色體進(jìn)行比較,每個(gè)染色體包括所述多個(gè)租戶數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)庫到所述多個(gè)服務(wù)器中一個(gè)服務(wù)器的潛在布局,并且被配置為在符合SLA約束條件的基礎(chǔ)上并且相對于計(jì)算約束條件將所述多個(gè)染色體中的每一個(gè)進(jìn)行比較,從而輸出所述多個(gè)染色體的選定子集;染色體組合器,其被配置為將所述多個(gè)染色體的選定子集中的染色體進(jìn)行組合以得到下一代染色體,作為在所述染色體比較器和染色體組合器之間的多個(gè)染色體的進(jìn)化循環(huán)的一部分,該下一代染色體用于輸出到所述染色體比較器并且用于相對于SLA約束條件和計(jì)算約束條件對所述下一代染色體中的染色體進(jìn)行的后續(xù)比較;以及布局選擇器,其被配置為監(jiān)控所述進(jìn)化循環(huán)以及從其中選擇選定的染色體用于實(shí)施基于所述選定的染色體的布局。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述SLA約束條件對于所述多個(gè)服務(wù)器規(guī)定針對相 應(yīng)租戶的多個(gè)租戶數(shù)據(jù)庫的負(fù)載均衡和容錯(cuò)二者,這二者通過將相應(yīng)租戶的多個(gè)租戶數(shù)據(jù) 庫中的至少兩個(gè)租戶數(shù)據(jù)庫安裝到所述多個(gè)服務(wù)器中的至少兩個(gè)服務(wù)器上來提供。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述SLA約束條件規(guī)定與所述多個(gè)租戶數(shù)據(jù)庫相關(guān) 聯(lián)的租戶的至少兩個(gè)級別,所述至少兩個(gè)級別包括相較于普通級別具有對多個(gè)服務(wù)器的資 源優(yōu)先訪問權(quán)的高級級別。
4.如權(quán)利要求3所述的系統(tǒng),其中,所述SLA約束條件規(guī)定按如下方式指定所述優(yōu)先訪 問權(quán)與普通租戶的租戶數(shù)據(jù)庫的布局相比,高級租戶的租戶數(shù)據(jù)庫被布置在多個(gè)服務(wù)器 中具有相對較低負(fù)載的服務(wù)器上。
5.如權(quán)利要求3所述的系統(tǒng),其中,所述SLA約束條件規(guī)定所述優(yōu)先訪問權(quán)包括優(yōu)先容 錯(cuò),所述優(yōu)先容錯(cuò)是按照如下方式來指定的與普通租戶的租戶數(shù)據(jù)庫在所述多個(gè)服務(wù)器 上的布局相比,高級租戶的租戶數(shù)據(jù)庫被布置在所述多個(gè)服務(wù)器中的較多的服務(wù)器上。
6.如權(quán)利要求1所述的系統(tǒng),其中,所述輸入處理器被配置為輸入至少一個(gè)關(guān)于與所 述多個(gè)租戶數(shù)據(jù)庫相關(guān)聯(lián)的租戶的租戶情況,所述至少一個(gè)租戶情況指定相關(guān)聯(lián)的租戶數(shù) 據(jù)庫的數(shù)據(jù)大小和作業(yè)請求特征,并且其中,所述染色體比較器被配置為使用所述至少一 個(gè)租戶情況,相對于SLA約束條件和計(jì)算約束條件來評價(jià)所述多個(gè)染色體。
7.如權(quán)利要求1所述的系統(tǒng),其中,所述輸入處理器被配置為輸入偏好參數(shù),該偏好參 數(shù)是從偏好調(diào)節(jié)器接收的,并且表示所述染色體比較器評價(jià)所述SLA約束條件中的至少一 個(gè)約束條件的方式。
8.如權(quán)利要求1所述的系統(tǒng),其中,所述布局管理器包括染色體生成器,該染色體生成 器被配置為生成初始染色體種群,用于由所述染色體比較器進(jìn)行評價(jià),該初始染色體種群 各自被形成為大小為T的陣列,該陣列的元素的值為數(shù)字1到S,其中T是所述多個(gè)租戶數(shù)據(jù)庫的數(shù)量,S是所述多個(gè)服務(wù)器的數(shù)量。
9.如權(quán)利要求1所述的系統(tǒng),其中,所述染色體組合器被配置為將所述多個(gè)染色體中 的染色體對進(jìn)行組合,包括將每對染色體的每個(gè)成員劃分為多個(gè)部分,然后將來自每對的 至少某些部分組合到新的染色體中。
10.如權(quán)利要求1所述的系統(tǒng),其中,所述染色體比較器被配置為評價(jià)每個(gè)染色體,包 括創(chuàng)建多個(gè)染色體變種,其中每個(gè)染色體變種都與所述多個(gè)服務(wù)器的相應(yīng)服務(wù)器的潛在故 障相關(guān)聯(lián)。
11.如權(quán)利要求1所述的系統(tǒng),其中,所述染色體比較器被配置為評價(jià)每個(gè)染色體,包 括將所述多個(gè)服務(wù)器的每個(gè)服務(wù)器的負(fù)載進(jìn)行歸一化并且計(jì)算所述服務(wù)器的負(fù)載的標(biāo)準(zhǔn)偏差。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述染色體比較器被配置為針對多個(gè)時(shí)間段中的 每個(gè)時(shí)間段評價(jià)所述多個(gè)染色體中的每一個(gè),然后將最終的多個(gè)評價(jià)組合以得到針對相應(yīng) 染色體的總評價(jià)。
13.如權(quán)利要求1所述的系統(tǒng),其中,所述布局選擇器被配置為在進(jìn)化循環(huán)的預(yù)定數(shù)量 的代之后、或者在確定所述選定的染色體在預(yù)定程度上滿足SLA約束條件之后,選擇所述 選定的染色體。
14.一種計(jì)算機(jī)實(shí)施的方法,包括確定多個(gè)租戶數(shù)據(jù)庫中的每個(gè)租戶數(shù)據(jù)庫和多個(gè)服務(wù)器中的至少一個(gè)服務(wù)器,其中所 述租戶數(shù)據(jù)庫包括原始租戶數(shù)據(jù)庫和從所述原始租戶數(shù)據(jù)庫復(fù)制的復(fù)制租戶數(shù)據(jù)庫;確定掌控所述多個(gè)租戶數(shù)據(jù)庫對所述多個(gè)服務(wù)器的訪問的服務(wù)等級協(xié)議SLA的約束 條件;確定與所述多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算約束條件;在符合所述SLA約束條件的基礎(chǔ)上并且相對于所述計(jì)算約束條件評價(jià)多個(gè)染色體,每 個(gè)染色體包括所述多個(gè)租戶數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)庫到所述多個(gè)服務(wù)器中一個(gè)服務(wù)器的潛 在布局;輸出所述多個(gè)染色體的選定子集;將所述多個(gè)染色體的選定子集中的染色體進(jìn)行組合以得到下一代染色體,作為所述多 個(gè)染色體的進(jìn)化循環(huán)的部分,下一代染色體用于相對于SLA約束條件和計(jì)算約束條件對下 一代染色體中的染色體進(jìn)行的后續(xù)比較,;以及從該進(jìn)化循環(huán)中選擇選定的染色體用于實(shí)施基于該染色體的布局。
15.如權(quán)利要求14所述的方法,其中,所述SLA約束條件對于所述多個(gè)服務(wù)器規(guī)定針對 相應(yīng)租戶的多個(gè)租戶數(shù)據(jù)庫的負(fù)載均衡和容錯(cuò)二者,這二者通過將所述相應(yīng)租戶的多個(gè)租 戶數(shù)據(jù)庫的至少兩個(gè)租戶數(shù)據(jù)庫安裝到所述多個(gè)服務(wù)器的至少兩個(gè)服務(wù)器上來提供。
16.如權(quán)利要求14所述的系統(tǒng),其中,所述SLA約束條件規(guī)定與所述多個(gè)租戶數(shù)據(jù)庫相 關(guān)聯(lián)的租戶的至少兩個(gè)級別,所述至少兩個(gè)級別包括相較于普通級別具有對所述多個(gè)服務(wù) 器的資源的優(yōu)先訪問權(quán)的高級級別。
17.如權(quán)利要求14所述的系統(tǒng),其中,確定所述SLA約束條件包括接收偏好參數(shù),該偏 好參數(shù)表示所述染色體比較器評價(jià)所述SLA約束條件中的至少一個(gè)約束條件的方式。
全文摘要
本發(fā)明提供一種計(jì)算機(jī)系統(tǒng),其包括確定多個(gè)租戶數(shù)據(jù)庫到多個(gè)服務(wù)器的布局的布局管理器。該布局管理器包括輸入處理器,其確定掌控多個(gè)租戶數(shù)據(jù)庫到多個(gè)服務(wù)器的關(guān)聯(lián)的服務(wù)等級協(xié)議SLA的約束條件以及與多個(gè)服務(wù)器相關(guān)聯(lián)的計(jì)算約束條件;染色體比較器,其相對于SLA約束條件和計(jì)算約束條件比較每個(gè)染色體,以輸出多個(gè)染色體的選定子集,每個(gè)染色體包括多個(gè)租戶數(shù)據(jù)庫中的每一個(gè)到多個(gè)服務(wù)器中的一個(gè)的潛在布局;染色體組合器,其將多個(gè)染色體的選定子集中的染色體組合以得到下一代染色體,其被輸出到染色體比較器以用于后續(xù)比較;以及布局選擇器,其監(jiān)控所述進(jìn)化循環(huán)以及從其中選擇選定的染色體用于實(shí)施基于選定的染色體的布局。
文檔編號G06F17/30GK101931609SQ20091014621
公開日2010年12月29日 申請日期2009年6月22日 優(yōu)先權(quán)日2009年6月22日
發(fā)明者許儉, 黎文憲 申請人:Sap股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1