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

一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法

文檔序號(hào):6634916閱讀:338來源:國(guó)知局
一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法
【專利摘要】本發(fā)明涉及一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,包括:初始集群無機(jī)器損壞時(shí)保證集群中各個(gè)機(jī)器負(fù)載均衡;有1臺(tái)機(jī)器損壞后,對(duì)請(qǐng)求分發(fā)機(jī)制適當(dāng)調(diào)整保證集群內(nèi)各個(gè)機(jī)器負(fù)載均衡;有多臺(tái)機(jī)器損壞后,若所有數(shù)據(jù)分片均保證有大于1臺(tái)可用機(jī)器時(shí),對(duì)請(qǐng)求分發(fā)機(jī)器做適當(dāng)?shù)恼{(diào)整,最大限度的保證集群內(nèi)各個(gè)機(jī)器負(fù)載均衡。本發(fā)明可以從宏觀的角度,從概率的角度,粗粒度的保證采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)的負(fù)載均衡,特別是當(dāng)有機(jī)器損壞時(shí),保證可工作機(jī)器合理的均攤負(fù)載壓力,避免了某些機(jī)器負(fù)載過高導(dǎo)致短時(shí)間內(nèi)更多機(jī)器損壞的情況,避免了短板問題的出現(xiàn)。
【專利說明】一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于分布式數(shù)據(jù)庫(kù)【技術(shù)領(lǐng)域】,尤其是涉及一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù) 庫(kù)負(fù)載均衡的計(jì)算方法。

【背景技術(shù)】
[0002] 在當(dāng)今,面對(duì)海量數(shù)據(jù)存儲(chǔ)與處理的壓力,單機(jī)數(shù)據(jù)庫(kù)已經(jīng)無法承擔(dān)此重任。而隨 著分布式技術(shù)發(fā)展日趨成熟,分布式數(shù)據(jù)庫(kù)已經(jīng)成為了業(yè)界的主流趨勢(shì)。現(xiàn)在的分布式數(shù) 據(jù)庫(kù)大多采用多節(jié)點(diǎn)數(shù)據(jù)庫(kù)并行工作模式,如GreenPlum,Vertica等,將海量數(shù)據(jù)通過一 定的分布算法存儲(chǔ)到集群中的各個(gè)節(jié)點(diǎn),使每一個(gè)數(shù)據(jù)節(jié)點(diǎn)所存的數(shù)據(jù)量不至于太大,在 執(zhí)行復(fù)雜的查詢時(shí)能夠明顯的縮短執(zhí)行時(shí)間,而節(jié)點(diǎn)間的并行處理是提高整體查詢性能的 有力手段。分布式數(shù)據(jù)庫(kù)在海量數(shù)據(jù)存儲(chǔ)、計(jì)算等領(lǐng)域表現(xiàn)出的天然的優(yōu)勢(shì)引起了學(xué)術(shù)界 和工業(yè)界越來越多的關(guān)注。
[0003] 分布式數(shù)據(jù)庫(kù)系統(tǒng)是基于單節(jié)點(diǎn)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是計(jì)算機(jī)技 術(shù)、數(shù)據(jù)存儲(chǔ)技術(shù)和網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。出于高性能、高可靠性與高擴(kuò)展性的考慮,分布 式數(shù)據(jù)庫(kù)系統(tǒng)需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)分片,并且通常需要增加一定數(shù)量的冗余數(shù)據(jù)。冗余 數(shù)據(jù)會(huì)浪費(fèi)很多存儲(chǔ)空間,并且容易造成各備份分片之間的不一致性,此外多數(shù)據(jù)分片也 會(huì)帶來機(jī)器的負(fù)載均衡問題,最優(yōu)負(fù)載均衡很難達(dá)到,在實(shí)際應(yīng)用中通常會(huì)導(dǎo)致某些分片 的訪問壓力過大,造成機(jī)器損壞,引發(fā)數(shù)據(jù)庫(kù)集群的短板問題。
[0004] 分布式數(shù)據(jù)庫(kù)中一般都會(huì)對(duì)數(shù)據(jù)進(jìn)行分片,每個(gè)數(shù)據(jù)分片都會(huì)有若干冗余分片, 以防分片不可用或者機(jī)器不可用。面對(duì)高并發(fā),高訪問量的業(yè)務(wù),需要保證分布式數(shù)據(jù)庫(kù)系 統(tǒng)能夠持久、高效的提供服務(wù)。數(shù)據(jù)分片損壞以及機(jī)器損壞、不可用是無法避免的,特別是 某臺(tái)機(jī)器的負(fù)載特別高的時(shí)候更是如此。因此,如何保證負(fù)載均衡,使負(fù)載均攤到所有可用 的機(jī)器上,降低負(fù)載較高的機(jī)器訪問壓力就變得尤為重要。尤其是在分布式數(shù)據(jù)庫(kù)集群中 有機(jī)器損壞的時(shí)候,如果沒有很好的調(diào)整各個(gè)可用機(jī)器的請(qǐng)求訪問壓力,那么很可能其他 機(jī)器因?yàn)楦卟l(fā)大壓力的訪問也會(huì)很快的損壞。
[0005] 分布式數(shù)據(jù)庫(kù)的數(shù)據(jù)分片的粒度可以是某個(gè)固定大小的數(shù)據(jù)塊,可以是表級(jí)別 的,甚至也可以是數(shù)據(jù)庫(kù)級(jí)別的,根據(jù)數(shù)據(jù)庫(kù)的應(yīng)用領(lǐng)域與具體的實(shí)現(xiàn)方式來決定。同一部 署地?cái)?shù)據(jù)分片的部署方式主要有機(jī)器之間互備,多機(jī)器之間交叉?zhèn)浞莸鹊炔渴鸱绞?,例?GreenPlum就是多機(jī)器之間交叉?zhèn)浞莸姆绞健?br> [0006] 為了保證分布式數(shù)據(jù)庫(kù)的負(fù)載均衡,可以將請(qǐng)求以Round Robin的方式或者是隨 機(jī)選取的方式發(fā)往該請(qǐng)求所對(duì)應(yīng)的數(shù)據(jù)分片的可用機(jī)器中,但是一旦數(shù)據(jù)庫(kù)集群中有機(jī)器 損壞后,這些方式存在很大弊端,可能會(huì)導(dǎo)致某一機(jī)器負(fù)載過重,形成短板,造成短時(shí)間內(nèi) 更多機(jī)器的損壞。


【發(fā)明內(nèi)容】

[0007] 針對(duì)上述問題,本發(fā)明要解決的問題是提供一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù) 載均衡的計(jì)算方法,以主要解決數(shù)據(jù)庫(kù)集群中負(fù)載均衡問題,特別是解決有機(jī)器損壞時(shí)的 負(fù)載均衡問題。
[0008] 本發(fā)明的核心思想是:初始集群無機(jī)器損壞時(shí)保證集群中各個(gè)機(jī)器負(fù)載均衡;有 1臺(tái)機(jī)器損壞后,對(duì)請(qǐng)求分發(fā)機(jī)制適當(dāng)調(diào)整保證集群內(nèi)各個(gè)機(jī)器負(fù)載均衡;有多臺(tái)機(jī)器損 壞后,若所有數(shù)據(jù)分片均保證有大于1臺(tái)可用機(jī)器時(shí),對(duì)請(qǐng)求分發(fā)機(jī)器做適當(dāng)?shù)恼{(diào)整,最大 限度的保證集群內(nèi)各個(gè)機(jī)器負(fù)載均衡。
[0009] 為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:
[0010] 一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,包含:
[0011] 當(dāng)無機(jī)器損壞時(shí),以從概率上均分的方式保證所下發(fā)的請(qǐng)求均攤到數(shù)據(jù)分片所在 的各個(gè)可用機(jī)器中;具體的,若針對(duì)集群中對(duì)某個(gè)數(shù)據(jù)分片進(jìn)行訪問的請(qǐng)求,獲取到對(duì)該數(shù) 據(jù)分片的請(qǐng)求的可用機(jī)器數(shù)目記為n,則n臺(tái)機(jī)器均以1/n的概率承擔(dān)該請(qǐng)求的訪問,當(dāng)訪 問量足夠大的時(shí)候,可以從概率的角度保證負(fù)載均衡,這樣的優(yōu)勢(shì)在于幾乎沒有引入任何 額外的計(jì)算代價(jià);
[0012] 當(dāng)有1臺(tái)機(jī)器損壞時(shí),因?yàn)榉植际綌?shù)據(jù)庫(kù)對(duì)每個(gè)數(shù)據(jù)分片至少都會(huì)有1個(gè)額外的 備份分片,所以此時(shí)的數(shù)據(jù)庫(kù)集群還是可用的;針對(duì)這種狀況,集群請(qǐng)求分發(fā)負(fù)載均衡方法 迅速?gòu)乃袛?shù)據(jù)分片均攤請(qǐng)求的壓力切換為非均攤的方式;需要先計(jì)算每個(gè)機(jī)器的理論最 優(yōu)負(fù)載,若所下發(fā)的請(qǐng)求訪問到損壞機(jī)器的數(shù)據(jù)分片時(shí),需要由該數(shù)據(jù)分片對(duì)應(yīng)的可用機(jī) 器承擔(dān),針對(duì)每個(gè)數(shù)據(jù)分片,利用可用機(jī)器的理論最優(yōu)負(fù)載值與當(dāng)前負(fù)載值計(jì)算出對(duì)該分 片的請(qǐng)求以什么樣的概率分配到各個(gè)可用機(jī)器,最終保證所有當(dāng)前可工作機(jī)器負(fù)載均衡;
[0013] 當(dāng)有大于1臺(tái)機(jī)器損壞時(shí),因?yàn)榉植际綌?shù)據(jù)庫(kù)每個(gè)數(shù)據(jù)分片至少都會(huì)有1個(gè)額外 的備份分片,所以有大于等于2臺(tái)機(jī)器損壞時(shí)存在著整個(gè)數(shù)據(jù)庫(kù)集群不可用的風(fēng)險(xiǎn)(例如 當(dāng)每個(gè)數(shù)據(jù)分片均只有1個(gè)備份分片,并且這兩個(gè)數(shù)據(jù)分片所在的機(jī)器均損壞時(shí));在這 種情況下,只有當(dāng)數(shù)據(jù)庫(kù)集群可用,也即每個(gè)數(shù)據(jù)分片都至少保留一臺(tái)可用機(jī)器的時(shí)候,可 以用概率的方法保證各個(gè)可用機(jī)器盡可能的負(fù)載均衡;需要先計(jì)算每臺(tái)機(jī)器的理論最優(yōu) 負(fù)載,若所下發(fā)的請(qǐng)求訪問到損壞機(jī)器的數(shù)據(jù)分片時(shí),需要全部由該分片對(duì)應(yīng)的可用機(jī)器 上的備份分片承擔(dān),若有機(jī)器的負(fù)載超過了理論最優(yōu)負(fù)載值則需要重新計(jì)算理論最優(yōu)負(fù)載 值,然后逐個(gè)分片的利用可用機(jī)器的理論最優(yōu)負(fù)載值與當(dāng)前負(fù)載值計(jì)算出對(duì)該分片的請(qǐng)求 以什么樣的概率分配到各個(gè)可用機(jī)器,最終保證所有可工作機(jī)器負(fù)載均衡。
[0014] 優(yōu)選的,當(dāng)有1臺(tái)機(jī)器損壞時(shí),若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器包含損壞機(jī)器時(shí)要 以均分的策略將該請(qǐng)求分配到當(dāng)前可用的機(jī)器中;若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器不包含損 壞機(jī)器時(shí)利用理論最優(yōu)負(fù)載值和機(jī)器當(dāng)前負(fù)載值以貪心的策略對(duì)各個(gè)可用機(jī)器進(jìn)行計(jì)算, 使請(qǐng)求以不同的概率分配給不同的機(jī)器;
[0015] 在概率的計(jì)算中始終以系統(tǒng)中每個(gè)數(shù)據(jù)分片的請(qǐng)求訪問負(fù)載相同為前提,以機(jī)器 的理論最優(yōu)負(fù)載值為每臺(tái)機(jī)器負(fù)載上限,在計(jì)算時(shí)以概率計(jì)算為主要計(jì)算手段,對(duì)系統(tǒng)不 添加額外的負(fù)擔(dān)。
[0016] 優(yōu)選的,當(dāng)有1臺(tái)機(jī)器損壞時(shí),從損壞機(jī)器包含的數(shù)據(jù)分片作為切入點(diǎn),計(jì)算對(duì)其 的請(qǐng)求分配給各個(gè)可用機(jī)器的概率;之后計(jì)算存儲(chǔ)有損壞機(jī)器上數(shù)據(jù)分片的非損壞機(jī)器 上的其他數(shù)據(jù)分片的負(fù)載分配,計(jì)算其分配給各個(gè)可用機(jī)器的概率;最后計(jì)算未存儲(chǔ)損壞 機(jī)器上數(shù)據(jù)分片的非損壞機(jī)器上的數(shù)據(jù)分片的負(fù)載分配,計(jì)算其分配給各個(gè)可用機(jī)器的概 率。
[0017] 優(yōu)選的,當(dāng)有大于1臺(tái)機(jī)器損壞且數(shù)據(jù)庫(kù)集群處于可用狀態(tài)時(shí),需要先計(jì)算每臺(tái) 機(jī)器的理論最優(yōu)負(fù)載;
[0018] 若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器包含損壞機(jī)器時(shí)要以均分的策略和貪心的策略將 該請(qǐng)求分配到當(dāng)前可用的機(jī)器中;
[0019] 若某機(jī)器的負(fù)載超過了理論最優(yōu)負(fù)載則要重新對(duì)理論最優(yōu)負(fù)載進(jìn)行調(diào)整計(jì)算,增 大其他機(jī)器的理論最優(yōu)負(fù)載值,并且使用調(diào)整后的理論最優(yōu)負(fù)載進(jìn)行之后的計(jì)算;
[0020] 若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器不包含損壞機(jī)器時(shí)利用理論最優(yōu)負(fù)載值和機(jī)器當(dāng) 前負(fù)載值進(jìn)行計(jì)算,使請(qǐng)求以不同的概率分配給不同的機(jī)器,以保證各個(gè)機(jī)器的負(fù)載盡可 能是均衡的,并且都趨近于理論最優(yōu)負(fù)載值;
[0021] 所有的負(fù)載分配計(jì)算均是只包含概率計(jì)算,對(duì)系統(tǒng)沒有額外的負(fù)擔(dān),在計(jì)算中始 終以系統(tǒng)中每個(gè)數(shù)據(jù)分片的請(qǐng)求訪問負(fù)載盡可能相同為前提,以機(jī)器的理論最優(yōu)負(fù)載值為 每臺(tái)機(jī)器負(fù)載上限。
[0022] 優(yōu)選的,當(dāng)有大于1臺(tái)機(jī)器損壞且數(shù)據(jù)庫(kù)集群處于可用狀態(tài)時(shí),首先處理?yè)p壞機(jī) 器中存儲(chǔ)的數(shù)據(jù)分片,按照對(duì)應(yīng)的可用機(jī)器數(shù)目從少到多來處理每一個(gè)數(shù)據(jù)分片,即優(yōu)先 計(jì)算可用機(jī)器少的數(shù)據(jù)分片的負(fù)載分配,計(jì)算對(duì)其的請(qǐng)求分配給各個(gè)可用機(jī)器的概率;其 次處理其他的數(shù)據(jù)分片,利用每臺(tái)機(jī)器的理論最優(yōu)負(fù)載值與當(dāng)前負(fù)載值對(duì)請(qǐng)求進(jìn)行概率計(jì) 算,已決定分配給各個(gè)可用機(jī)器的概率。
[0023] 優(yōu)選的,若某機(jī)器的負(fù)載超過了理論最優(yōu)負(fù)載則要重新對(duì)理論最優(yōu)負(fù)載進(jìn)行調(diào)整 計(jì)算,增大其他機(jī)器的理論最優(yōu)負(fù)載值,調(diào)整的算法為:設(shè)每臺(tái)機(jī)器的理論最優(yōu)負(fù)載值占總 10 〇? 負(fù)載的比重為Tq= 其中:集群中的機(jī)器數(shù)目為MAX,損壞的機(jī)器數(shù)目為T臺(tái),則 KKI-Tiii 剩下的可用機(jī)器數(shù)為MX-T ;調(diào)整后最優(yōu)負(fù)載占總負(fù)載的比重為Tq = CQgNTCMinE?W;其 中:超過理論最優(yōu)負(fù)載的機(jī)器為Mq,其當(dāng)前負(fù)載值為Tm,將Tm從理論最優(yōu)負(fù)載計(jì)算中減去, 設(shè)調(diào)整可用機(jī)器集合為E= (MiIMiE (B-Mq)},損壞機(jī)器集合D中的數(shù)據(jù)分片的每個(gè)分片 所對(duì)應(yīng)的可用機(jī)器集合B= 丨i S I i MAX && Mi g D}。
[0024] 本發(fā)明具有的優(yōu)點(diǎn)和積極效果是:
[0025] 與現(xiàn)有技術(shù)中的解決方案,如鴕鳥算法無視該問題、在某臺(tái)機(jī)器壓力大的時(shí)候暫 停對(duì)該機(jī)器的訪問、進(jìn)行存儲(chǔ)數(shù)據(jù)遷移降低單點(diǎn)壓力等等進(jìn)行比較,本發(fā)明方法不會(huì)造成 單臺(tái)機(jī)器壓力過大以至于導(dǎo)致故障發(fā)生;不會(huì)暫停對(duì)數(shù)據(jù)庫(kù)的訪問,保證業(yè)務(wù)正常運(yùn)行; 適合各種采用交叉?zhèn)浞莘绞降姆植际綌?shù)據(jù)庫(kù);對(duì)系統(tǒng)帶來的額外開銷很小,只有一些比較 基礎(chǔ)的概率計(jì)算;可以隨時(shí)對(duì)系統(tǒng)壓力進(jìn)行調(diào)整等;
[0026] 本發(fā)明方法能夠粗粒度的調(diào)整集群中的負(fù)載分發(fā),以概率為主要手段控制每個(gè)請(qǐng) 求對(duì)各個(gè)可用機(jī)器的負(fù)載分配,能夠很好的保證集群中各個(gè)機(jī)器負(fù)載均衡,避免短板問題 的發(fā)生。

【專利附圖】

【附圖說明】
[0027] 圖1 :本發(fā)明一實(shí)施例分布式數(shù)據(jù)庫(kù)交叉?zhèn)浞荽鎯?chǔ)示意圖;
[0028] 圖2 :本發(fā)明一實(shí)施例分布式數(shù)據(jù)庫(kù)交叉?zhèn)浞荽鎯?chǔ)無機(jī)器損壞時(shí)負(fù)載均衡示意 圖;
[0029] 圖3 :本發(fā)明一實(shí)施例分布式數(shù)據(jù)庫(kù)交叉?zhèn)浞荽鎯?chǔ),單臺(tái)機(jī)器損壞示意圖;
[0030] 圖4 :本發(fā)明一實(shí)施例分布式數(shù)據(jù)庫(kù)交叉?zhèn)浞荽鎯?chǔ),單臺(tái)機(jī)器損壞負(fù)載均衡計(jì)算 流程圖;
[0031] 圖5 :本發(fā)明一實(shí)施例單臺(tái)機(jī)器損壞,損壞機(jī)器中數(shù)據(jù)分片負(fù)載均衡計(jì)算流程圖;
[0032] 圖6 :本發(fā)明一實(shí)施例單臺(tái)機(jī)器損壞,非損壞機(jī)器中數(shù)據(jù)分片負(fù)載均衡計(jì)算流程 圖;
[0033] 圖7 :本發(fā)明一實(shí)施例分布式數(shù)據(jù)庫(kù)交叉?zhèn)浞荽鎯?chǔ),多于1臺(tái)機(jī)器損壞示意圖;
[0034] 圖8 :本發(fā)明一實(shí)施例分布式數(shù)據(jù)庫(kù)交叉?zhèn)浞荽鎯?chǔ),多于1臺(tái)機(jī)器損壞負(fù)載均衡計(jì) 算流程圖;
[0035] 圖9 :本發(fā)明一實(shí)施例多于1臺(tái)機(jī)器損壞,損壞機(jī)器中數(shù)據(jù)分片負(fù)載均衡計(jì)算流程 圖;
[0036] 圖10 :本發(fā)明一實(shí)施例多于1臺(tái)機(jī)器損壞,非損壞機(jī)器中數(shù)據(jù)分片負(fù)載均衡計(jì)算 流程圖。

【具體實(shí)施方式】
[0037] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0038] 參閱圖1,示出本發(fā)明中采用交叉?zhèn)浞莘绞酱鎯?chǔ)數(shù)據(jù)分片的數(shù)據(jù)庫(kù)集群示例,該集 群中共有6臺(tái)機(jī)器,共6個(gè)數(shù)據(jù)分片,每個(gè)分片均有1個(gè)備份分片,這些分片以交叉?zhèn)浞莸?方式散布到數(shù)據(jù)庫(kù)集群的各個(gè)機(jī)器中。
[0039] 無機(jī)器損壞時(shí)參閱圖2,示出本發(fā)明中系統(tǒng)正常狀態(tài),數(shù)據(jù)庫(kù)集群中無機(jī)器損壞時(shí) 是以均分用戶請(qǐng)求到數(shù)據(jù)分片所在機(jī)器的方式保證系統(tǒng)負(fù)載均衡。設(shè)集群中的機(jī)器數(shù)目 為MAX,則數(shù)據(jù)庫(kù)集群中的機(jī)器可以表示為M iQ < i SMAX)。相應(yīng)的每一分片可以表示 為NjQ < j < MAX)。設(shè)每臺(tái)機(jī)器的初始?jí)毫χ翟O(shè)為Q(Mi) = 0,每臺(tái)機(jī)器的理論最優(yōu)負(fù)載 值(壓力值)為(占總負(fù)載的比重),對(duì)于圖1所示的6臺(tái)太機(jī)器,每個(gè)機(jī)器的壓力 值即為六分之一。對(duì)于每個(gè)數(shù)據(jù)分片的請(qǐng)求,將其以均分的方式發(fā)送到該分片的可用機(jī)器 中,即可從概率的角度實(shí)現(xiàn)粗粒度的負(fù)載均衡,每臺(tái)機(jī)器所承擔(dān)的負(fù)載占總負(fù)載的百分比 為J-氣
[0040] 有1臺(tái)機(jī)器損壞時(shí),因?yàn)榉植际綌?shù)據(jù)庫(kù)每個(gè)數(shù)據(jù)分片至少都會(huì)有1個(gè)額外的備份 分片,所以只有1臺(tái)機(jī)器損壞時(shí),整個(gè)數(shù)據(jù)庫(kù)集群必定可用。
[0041] 參閱圖3,示出本發(fā)明中有1臺(tái)機(jī)器損壞時(shí),數(shù)據(jù)庫(kù)集群的狀態(tài),其中的本實(shí)施例 中為機(jī)器M2損壞。設(shè)損壞的機(jī)器號(hào)為t,數(shù)據(jù)庫(kù)集群中機(jī)器數(shù)目變?yōu)镸AX-1,數(shù)據(jù)庫(kù)集群中 的機(jī)器可以表示為M i (1彡i彡MAX&&i關(guān)t)。
[0042] 參閱圖4,示出本發(fā)明中1臺(tái)機(jī)器損壞時(shí),對(duì)數(shù)據(jù)庫(kù)集群做負(fù)載均衡計(jì)算的流程。 首先對(duì)數(shù)據(jù)分片進(jìn)行分組,分為損壞機(jī)器中存儲(chǔ)的數(shù)據(jù)分片與非損壞機(jī)器中存儲(chǔ)的數(shù)據(jù)分 片;按照損壞機(jī)器中存儲(chǔ)的數(shù)據(jù)分片的可用機(jī)器數(shù)目從少到多進(jìn)行處理,優(yōu)先計(jì)算可用機(jī) 器少的數(shù)據(jù)分片的負(fù)載,以貪心策略??保證各個(gè)機(jī)器的負(fù)載盡可能的均衡。設(shè)每臺(tái)機(jī)器的 初始?jí)毫χ礠(Mi) = 0,每臺(tái)機(jī)器的理論最優(yōu)負(fù)載值占總負(fù)載的比重為= 當(dāng)對(duì) 數(shù)據(jù)庫(kù)的訪問量較大時(shí),可認(rèn)為對(duì)每個(gè)分片的訪問概率是一樣的,即每個(gè)分片的訪問負(fù)載 止 100 為 p(Ni)=;。
[0043] 參閱圖5,示出本發(fā)明中1臺(tái)機(jī)器損壞時(shí),對(duì)損壞機(jī)器中的數(shù)據(jù)分片進(jìn)行處理的流 程。因?yàn)閾p壞機(jī)器中的數(shù)據(jù)分片的可用機(jī)器數(shù)目要小于非損壞機(jī)器中的數(shù)據(jù)分片,因此從 貪心策略的角度要優(yōu)先處理?yè)p壞機(jī)器中的數(shù)據(jù)分片的負(fù)載計(jì)算。具體步驟如下所述:
[0044] 步驟S501、將數(shù)據(jù)分片分為兩組,即損壞機(jī)器所存儲(chǔ)的數(shù)據(jù)分片和正常機(jī)器所存 儲(chǔ)的數(shù)據(jù)分片,可以得出損壞機(jī)器M t的數(shù)據(jù)分片集合為A = {Nx 11彡X彡MAX&&X e MJ,正 常機(jī)器中的每個(gè)分片所對(duì)應(yīng)的可用機(jī)器集合B = (Mi 11 < i < MAX&&i ! = t}。集合A中 的每個(gè)分片根據(jù)備份副本數(shù)不同,可能對(duì)應(yīng)著一臺(tái)或若干臺(tái)機(jī)器,例如2分片的時(shí)候就是 對(duì)應(yīng)著1臺(tái)機(jī)器,而3分片的時(shí)候就是對(duì)應(yīng)著2臺(tái)機(jī)器。按照對(duì)應(yīng)的可用機(jī)器數(shù)目從少到 多來處理每一個(gè)分片,即先處理對(duì)應(yīng)著1臺(tái)機(jī)器的那些分片,然后接著處理對(duì)應(yīng)著2臺(tái)機(jī)器 的那些分片,依次類推。獲取M t中的某一數(shù)據(jù)分片,對(duì)于只有1臺(tái)可用機(jī)器的數(shù)據(jù)分片順 序執(zhí)行步驟S502,否則跳轉(zhuǎn)到步驟S503。
[0045] 步驟S502、只有1臺(tái)可用機(jī)器的數(shù)據(jù)分片,設(shè)為Nt,其請(qǐng)求訪問壓力由該單臺(tái)可用 機(jī)器100 %承擔(dān),設(shè)該機(jī)器號(hào)為j,則更新該機(jī)器的負(fù)載值Q (Mp = Q (Mp +P (Nt) * 100 %。最 后,跳轉(zhuǎn)到步驟S506。
[0046] 步驟S503、對(duì)于有多臺(tái)機(jī)器可用的數(shù)據(jù)分片,則應(yīng)該由該分片所對(duì)應(yīng)的可用機(jī)器 IQO 集合B中的所有機(jī)器來承擔(dān);對(duì)集合A中每個(gè)分片的訪問負(fù)載均為該分片對(duì)應(yīng)的機(jī) 器的現(xiàn)有負(fù)載加上以均攤的方式分配到該機(jī)器的負(fù)載(只是用于計(jì)算,并不以均攤方式分 配)沒有超過每臺(tái)機(jī)器的理論最優(yōu)負(fù)載值占總負(fù)載的比重Tq時(shí)順序執(zhí)行步驟S504,若超過 了 Tq則跳轉(zhuǎn)到步驟S505。
[0047] 步驟S504、若該分片(設(shè)為分片Nt)對(duì)應(yīng)的機(jī)器的負(fù)載沒有超 過Tq,則對(duì)該分片的訪問以均攤的方式分配到集合B中對(duì)應(yīng)機(jī)器的概率為 p (Mi I Mi G B) = eB更新對(duì)應(yīng)機(jī)器的負(fù)載值Q(Mi)= Q (Mi) +P (Nt) *P (Mi I Mi G B),最后跳轉(zhuǎn)到步驟 S506 ;
[0048] 步驟S505、若該分片(設(shè)為分片Nt)對(duì)應(yīng)的某些機(jī)器負(fù)載加上以均攤的方式分配 到該機(jī)器的負(fù)載(只是用于計(jì)算,并不以均攤方式分配)已經(jīng)超過Tq,設(shè)均分到的負(fù)載為 Q avg(大于 Tq),設(shè)這些機(jī)器的集合為 BM = (Mi, 1 彡 i 彡 MAX&&i ! = t&&Q(Mi)+Qavg 彡 Tq}, 即集合A和集合B有數(shù)據(jù)分片交集的機(jī)器;對(duì)每個(gè)數(shù)據(jù)分片的請(qǐng)求,得到其可用機(jī)器的 列表,優(yōu)先計(jì)算處于集合BM中的機(jī)器負(fù)載,即該請(qǐng)求分配給BM集合中某臺(tái)機(jī)器的概率為

【權(quán)利要求】
1. 一種采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,其特征在于,包含 當(dāng)無機(jī)器損壞時(shí),以從概率上均分的方式保證所下發(fā)的請(qǐng)求均攤到數(shù)據(jù)分片所在的各 個(gè)可用機(jī)器中; 當(dāng)有1臺(tái)機(jī)器損壞時(shí),需要先計(jì)算每個(gè)機(jī)器的理論最優(yōu)負(fù)載,即均攤負(fù)載,若所下發(fā)的 請(qǐng)求訪問到損壞機(jī)器的數(shù)據(jù)分片時(shí),需要由該數(shù)據(jù)分片對(duì)應(yīng)的可用機(jī)器承擔(dān),針對(duì)每個(gè)數(shù) 據(jù)分片,利用可用機(jī)器的理論最優(yōu)負(fù)載值與當(dāng)前負(fù)載值計(jì)算出對(duì)該分片的請(qǐng)求以什么樣的 概率分配到各個(gè)可用機(jī)器,最終保證所有當(dāng)前可工作機(jī)器負(fù)載均衡; 當(dāng)有大于1臺(tái)機(jī)器損壞且數(shù)據(jù)庫(kù)集群處于可用狀態(tài)時(shí),需要先計(jì)算每臺(tái)機(jī)器的理論最 優(yōu)負(fù)載,即均攤負(fù)載,若所下發(fā)的請(qǐng)求訪問到損壞機(jī)器的數(shù)據(jù)分片時(shí),需要全部由該分片對(duì) 應(yīng)的可用機(jī)器上的備份分片承擔(dān),若有機(jī)器的負(fù)載超過了理論最優(yōu)負(fù)載值則需要重新計(jì)算 理論最優(yōu)負(fù)載值,然后逐個(gè)分片的利用可用機(jī)器的理論最優(yōu)負(fù)載值與當(dāng)前負(fù)載值計(jì)算出對(duì) 該分片的請(qǐng)求以什么樣的概率分配到各個(gè)可用機(jī)器,最終保證所有可工作機(jī)器負(fù)載均衡。
2. 根據(jù)權(quán)利要求1所述的采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,其特征 在于:當(dāng)有1臺(tái)機(jī)器損壞時(shí),若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器包含損壞機(jī)器時(shí)要以均分的策 略將該請(qǐng)求分配到當(dāng)前可用的機(jī)器中;若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器不包含損壞機(jī)器時(shí)利 用理論最優(yōu)負(fù)載值和機(jī)器當(dāng)前負(fù)載值以貪心的策略對(duì)各個(gè)可用機(jī)器進(jìn)行計(jì)算,使請(qǐng)求以不 同的概率分配給不同的機(jī)器; 在概率的計(jì)算中始終以系統(tǒng)中每個(gè)數(shù)據(jù)分片的請(qǐng)求訪問負(fù)載相同為前提,以機(jī)器的理 論最優(yōu)負(fù)載值為每臺(tái)機(jī)器負(fù)載上限,在計(jì)算時(shí)以概率計(jì)算為主要計(jì)算手段,對(duì)系統(tǒng)不添加 額外的負(fù)擔(dān)。
3. 根據(jù)權(quán)利要求2所述的采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,其特征 在于:當(dāng)有1臺(tái)機(jī)器損壞時(shí),從損壞機(jī)器包含的數(shù)據(jù)分片作為切入點(diǎn),計(jì)算對(duì)其的請(qǐng)求分配 給各個(gè)可用機(jī)器的概率;之后計(jì)算存儲(chǔ)有損壞機(jī)器上數(shù)據(jù)分片的非損壞機(jī)器上的其他數(shù)據(jù) 分片的負(fù)載分配,計(jì)算其分配給各個(gè)可用機(jī)器的概率;最后計(jì)算未存儲(chǔ)損壞機(jī)器上數(shù)據(jù)分 片的非損壞機(jī)器上的數(shù)據(jù)分片的負(fù)載分配,計(jì)算其分配給各個(gè)可用機(jī)器的概率。
4. 根據(jù)權(quán)利要求1所述的采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,其特征 在于:當(dāng)有大于1臺(tái)機(jī)器損壞且數(shù)據(jù)庫(kù)集群處于可用狀態(tài)時(shí),需要先計(jì)算每臺(tái)機(jī)器的理論 最優(yōu)負(fù)載; 若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器包含損壞機(jī)器時(shí)要以均分的策略和貪心的策略將該請(qǐng) 求分配到當(dāng)前可用的機(jī)器中; 若某機(jī)器的負(fù)載超過了理論最優(yōu)負(fù)載則要重新對(duì)理論最優(yōu)負(fù)載進(jìn)行調(diào)整計(jì)算,增大其 他機(jī)器的理論最優(yōu)負(fù)載值,并且使用調(diào)整后的理論最優(yōu)負(fù)載進(jìn)行之后的計(jì)算; 若請(qǐng)求的數(shù)據(jù)分片的可用機(jī)器不包含損壞機(jī)器時(shí)利用理論最優(yōu)負(fù)載值和機(jī)器當(dāng)前負(fù) 載值進(jìn)行計(jì)算,使請(qǐng)求以不同的概率分配給不同的機(jī)器,以保證各個(gè)機(jī)器的負(fù)載盡可能是 均衡的,并且都趨近于理論最優(yōu)負(fù)載值; 所有的負(fù)載分配計(jì)算均是只包含概率計(jì)算,對(duì)系統(tǒng)沒有額外的負(fù)擔(dān),在計(jì)算中始終以 系統(tǒng)中每個(gè)數(shù)據(jù)分片的請(qǐng)求訪問負(fù)載盡可能相同為前提,以機(jī)器的理論最優(yōu)負(fù)載值為每臺(tái) 機(jī)器負(fù)載上限。
5. 根據(jù)權(quán)利要求4所述的采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,其特征 在于:當(dāng)有大于1臺(tái)機(jī)器損壞且數(shù)據(jù)庫(kù)集群處于可用狀態(tài)時(shí),首先處理?yè)p壞機(jī)器中存儲(chǔ)的 數(shù)據(jù)分片,按照對(duì)應(yīng)的可用機(jī)器數(shù)目從少到多來處理每一個(gè)數(shù)據(jù)分片,即優(yōu)先計(jì)算可用機(jī) 器少的數(shù)據(jù)分片的負(fù)載分配,計(jì)算對(duì)其的請(qǐng)求分配給各個(gè)可用機(jī)器的概率;其次處理其他 的數(shù)據(jù)分片,利用每臺(tái)機(jī)器的理論最優(yōu)負(fù)載值與當(dāng)前負(fù)載值對(duì)請(qǐng)求進(jìn)行概率計(jì)算,已決定 分配給各個(gè)可用機(jī)器的概率。
6.根據(jù)權(quán)利要求4所述的采用交叉?zhèn)浞莸姆植际綌?shù)據(jù)庫(kù)負(fù)載均衡的計(jì)算方法,其特征 在于:若某機(jī)器的負(fù)載超過了理論最優(yōu)負(fù)載則要重新對(duì)理論最優(yōu)負(fù)載進(jìn)行調(diào)整計(jì)算,增大 其他機(jī)器的理論最優(yōu)負(fù)載值,調(diào)整的算法為:設(shè)每臺(tái)機(jī)器的理論最優(yōu)負(fù)載值占總負(fù)載的比 1為Tq = ,其中:集群中白勺機(jī)器數(shù)目為maX,損壞白勺機(jī)器數(shù)目為T臺(tái),貝_下白勺可用 IGG -Tin 機(jī)器數(shù)為MAX-T ;調(diào)整后最優(yōu)負(fù)載占總負(fù)載的比重為Tq = 其中:超過理論 最優(yōu)負(fù)載的機(jī)器為Mq,其當(dāng)前負(fù)載值為Tm,將Tm從理論最優(yōu)負(fù)載計(jì)算中減去,設(shè)調(diào)整可用 機(jī)器集合為E= (MiIMiE (B-M,)},損壞機(jī)器集合D中的數(shù)據(jù)分片的每個(gè)分片所對(duì)應(yīng)的可用 機(jī)器集合B= {吟I復(fù)S ? MAX祕(mì)Mi € D}。
【文檔編號(hào)】G06F17/30GK104376087SQ201410665567
【公開日】2015年2月25日 申請(qǐng)日期:2014年11月19日 優(yōu)先權(quán)日:2014年11月19日
【發(fā)明者】宋永智, 張學(xué), 武新, 崔維力 申請(qǐng)人:天津南大通用數(shù)據(jù)技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
黔西| 昭通市| 门头沟区| 怀集县| 建湖县| 冀州市| 乐东| 精河县| 溧阳市| 柏乡县| 托克逊县| 宁津县| 收藏| 桐乡市| 布尔津县| 竹山县| 沧源| 惠州市| 拜城县| 犍为县| 辛集市| 全州县| 荔波县| 牡丹江市| 张家川| 鄂托克前旗| 平定县| 石渠县| 章丘市| 黄陵县| 大关县| 永宁县| 雷波县| 景德镇市| 都昌县| 南平市| 镇康县| 华坪县| 布尔津县| 岱山县| 乐亭县|