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

一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法與設(shè)備的制造方法

文檔序號(hào):10511990閱讀:209來(lái)源:國(guó)知局
一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法與設(shè)備的制造方法
【專利摘要】本申請(qǐng)的目的是提供一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法與設(shè)備;獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。與現(xiàn)有技術(shù)相比,本申請(qǐng)通過(guò)所述各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間來(lái)區(qū)別各個(gè)分區(qū),從而確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū),使得重發(fā)時(shí)可以優(yōu)先選擇響應(yīng)時(shí)間更優(yōu)的副本,降低重發(fā)請(qǐng)求的響應(yīng)時(shí)間,降低集群的整體負(fù)載。
【專利說(shuō)明】
一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法與設(shè)備
技術(shù)領(lǐng)域
[0001]本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的技術(shù)。
【背景技術(shù)】
[0002]在分布式計(jì)算中,有時(shí)需要將一個(gè)較大的計(jì)算任務(wù)拆分成多個(gè)子任務(wù),并將各個(gè)子任務(wù)分發(fā)到多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行處理,待所述計(jì)算節(jié)點(diǎn)處理完成后,再將各個(gè)子任務(wù)的計(jì)算結(jié)果反饋匯總為最終計(jì)算結(jié)果,所述較大的計(jì)算任務(wù)的執(zhí)行情況取決于最慢的子任務(wù)的執(zhí)行時(shí)間,若是個(gè)別子任務(wù)的執(zhí)行時(shí)間遠(yuǎn)遠(yuǎn)大于其他子任務(wù),就會(huì)影響到整個(gè)分布式系統(tǒng)的吞吐量和請(qǐng)求相應(yīng)時(shí)間,這就是分布式計(jì)算中的長(zhǎng)尾現(xiàn)象。
[0003]目前,在現(xiàn)有技術(shù)中,對(duì)于長(zhǎng)尾現(xiàn)象,主要是采用簡(jiǎn)單的任務(wù)重發(fā)的方式來(lái)補(bǔ)償長(zhǎng)尾現(xiàn)象對(duì)整體計(jì)算任務(wù)的耗時(shí)影響,但實(shí)踐表明,此時(shí),重發(fā)的任務(wù)往往并不能較快地完成,從而導(dǎo)致簡(jiǎn)單的任務(wù)重發(fā)并不能有效緩解分布式計(jì)算中的長(zhǎng)尾現(xiàn)象。

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

[0004]本申請(qǐng)的目的是提供一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法與設(shè)備。
[0005]根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法,包括:
[0006]獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);
[0007]基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);
[0008]將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0009]根據(jù)本申請(qǐng)的另一方面,還提供了一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的設(shè)備,包括:
[0010]第一裝置,用于獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);
[0011]第二裝置,用于基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);
[0012]第三裝置,用于將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0013]與現(xiàn)有技術(shù)相比,本申請(qǐng)通過(guò)所述各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間來(lái)區(qū)別各個(gè)分區(qū),從而確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū),使得重發(fā)時(shí)可以優(yōu)先選擇響應(yīng)時(shí)間更優(yōu)的副本,降低重發(fā)請(qǐng)求的響應(yīng)時(shí)間,降低集群的整體負(fù)載。而且,本申請(qǐng)還引入重發(fā)預(yù)判,只有當(dāng)所述重發(fā)請(qǐng)求滿足請(qǐng)求重發(fā)條件時(shí),才將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū),而在集群高負(fù)載和分區(qū)傾斜等應(yīng)用場(chǎng)景中,由于被請(qǐng)求重發(fā)的分區(qū)的最近響應(yīng)時(shí)間已經(jīng)較大,則放棄重發(fā)請(qǐng)求,使得可以節(jié)省大概率無(wú)益處的重發(fā),從而降低集群實(shí)際負(fù)載。此外,對(duì)于分布式計(jì)算中待處理的首發(fā)請(qǐng)求,本申請(qǐng)還可依據(jù)各個(gè)副本分區(qū)的分區(qū)響應(yīng)速度信息選擇所述首發(fā)請(qǐng)求對(duì)應(yīng)的副本分區(qū),即在第一次發(fā)送請(qǐng)求時(shí)就為目標(biāo)請(qǐng)求選擇了較優(yōu)的分區(qū),從而在源頭上就盡量減少了需要重發(fā)的概率。
【附圖說(shuō)明】
[0014]通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0015]圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的設(shè)備的設(shè)備不意圖;
[0016]圖2示出根據(jù)本申請(qǐng)一個(gè)優(yōu)選實(shí)施例的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的設(shè)備的設(shè)備示意圖;
[0017]圖3示出根據(jù)本申請(qǐng)另一個(gè)方面的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法流程圖;
[0018]圖4示出根據(jù)本申請(qǐng)一個(gè)優(yōu)選實(shí)施例的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法流程圖;
[0019]圖5示出根據(jù)本申請(qǐng)一個(gè)優(yōu)選實(shí)施例的與現(xiàn)有技術(shù)的技術(shù)效果對(duì)比圖。
[0020]附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實(shí)施方式】
[0021]下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)描述。
[0022]在本申請(qǐng)一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0023]內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
[0024]計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0025]圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的設(shè)備的設(shè)備示意圖。所述設(shè)備I包括第一裝置101、第二裝置102和第三裝置103。
[0026]其中,第一裝置101獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);第二裝置102基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);第三裝置103將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0027]具體地,所述設(shè)備I的第一裝置101獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū)。在分布式計(jì)算中,用戶發(fā)出的任務(wù)請(qǐng)求往往需要巨大計(jì)算能力才能解決,此時(shí),會(huì)將該復(fù)雜的父請(qǐng)求拆分為多個(gè)子請(qǐng)求,進(jìn)而,通過(guò)服務(wù)器將所述多個(gè)子請(qǐng)求分別發(fā)送到分布式集群的多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行各自處理,待各個(gè)計(jì)算節(jié)點(diǎn)處理完成,再將各個(gè)計(jì)算結(jié)果返回匯總。在此,所述分布式集群中,會(huì)存在若干套副本數(shù)據(jù),每一套副本數(shù)據(jù)都包含分布式計(jì)算中所需要的全部數(shù)據(jù),每一套副本數(shù)據(jù)進(jìn)一步劃分為若干個(gè)副本分區(qū),每個(gè)副本分區(qū)都包含對(duì)應(yīng)副本數(shù)據(jù)中的部分?jǐn)?shù)據(jù)。在此,優(yōu)選地,所述每一套副本數(shù)據(jù)對(duì)應(yīng)的分區(qū)劃分一致,例如,系統(tǒng)中同時(shí)存在副本數(shù)據(jù)I和副本數(shù)據(jù)2,兩套副本數(shù)據(jù)都分別劃分為M個(gè)分區(qū),且對(duì)應(yīng)分區(qū)中分布的數(shù)據(jù)相同,如,副本數(shù)據(jù)I的分區(qū)I與副本數(shù)據(jù)2的分區(qū)I 一致,副本數(shù)據(jù)I的分區(qū)2與副本數(shù)據(jù)2的分區(qū)2—致,……以此類推。在此,分布式集群由多臺(tái)服務(wù)器組成,一臺(tái)服務(wù)器即為一個(gè)計(jì)算節(jié)點(diǎn),可以存儲(chǔ)一個(gè)或是多個(gè)分區(qū)數(shù)據(jù)。一個(gè)副本數(shù)據(jù)的各個(gè)分區(qū)所對(duì)應(yīng)的設(shè)備,可以都存在于同一個(gè)機(jī)房,也可以跨機(jī)房部署。一個(gè)機(jī)房也可以同時(shí)部署多個(gè)副本數(shù)據(jù)對(duì)應(yīng)的各個(gè)設(shè)備。
[0028]在此,基于分布式集群中一些常見問(wèn)題,如跨機(jī)房網(wǎng)絡(luò)延遲、設(shè)備瞬時(shí)故障、設(shè)備硬件差異、數(shù)據(jù)分片不均勻等原因可能導(dǎo)致各個(gè)計(jì)算節(jié)點(diǎn)上響應(yīng)時(shí)間的不平衡。此時(shí),對(duì)于響應(yīng)不及時(shí)的子請(qǐng)求定義為長(zhǎng)尾請(qǐng)求,即為所述待處理的重發(fā)請(qǐng)求。所述待處理的重發(fā)請(qǐng)求的獲取,可以基于所設(shè)定的比例時(shí)間,即所述目標(biāo)請(qǐng)求超過(guò)預(yù)設(shè)的比例時(shí)間即需要啟動(dòng)重發(fā)任務(wù);也可以采用自一定比例的分區(qū)結(jié)果返回時(shí),判斷是否啟動(dòng)重發(fā)任務(wù),例如一個(gè)父請(qǐng)求拆分成100個(gè)目標(biāo)子請(qǐng)求,并對(duì)應(yīng)于100個(gè)分區(qū),當(dāng)有30%的分區(qū)返回了請(qǐng)求結(jié)果,而剩下的請(qǐng)求仍在執(zhí)行時(shí),則判斷啟動(dòng)重發(fā)剩余的仍在執(zhí)行的任務(wù),獲取重發(fā)請(qǐng)求。
[0029]接著,所述設(shè)備I的第二裝置102基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)?;谙到y(tǒng)中冗余的副本分區(qū),所述重發(fā)請(qǐng)求可以重新選擇一個(gè)發(fā)送副本分區(qū),在該副本分區(qū)中對(duì)應(yīng)有所述重發(fā)請(qǐng)求需要的數(shù)據(jù)信息,在此,優(yōu)選地,所述每一個(gè)副本數(shù)據(jù)對(duì)應(yīng)的分區(qū)劃分一致,進(jìn)而所述重發(fā)請(qǐng)求可以與每個(gè)副本的對(duì)應(yīng)分區(qū)相匹配。一般情況下,不同副本的相同分區(qū),對(duì)于同一個(gè)重發(fā)請(qǐng)求的響應(yīng)情況存在著差異,例如,同樣對(duì)于重發(fā)請(qǐng)求A,同時(shí)存在兩個(gè)副本分區(qū),副本I的分區(qū)3與副本2的分區(qū)3同時(shí)都包含重發(fā)請(qǐng)求A對(duì)應(yīng)的請(qǐng)求數(shù)據(jù),但是上述兩個(gè)副本分區(qū)可能由于此時(shí)數(shù)據(jù)負(fù)載,或是兩個(gè)副本分區(qū)對(duì)應(yīng)的設(shè)備之間的差異,或是其中一個(gè)副本分區(qū)對(duì)應(yīng)的設(shè)備存在故障等原因,使得對(duì)于重發(fā)請(qǐng)求A而言,兩個(gè)副本分區(qū)的實(shí)際請(qǐng)求響應(yīng)效果存在差異,為了更有效地完成整體計(jì)算,會(huì)優(yōu)先選擇響應(yīng)效果更優(yōu)的副本分區(qū)作為所述重發(fā)請(qǐng)求A的目標(biāo)副本分區(qū)。在此,優(yōu)選地,基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息來(lái)確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)。所述分區(qū)響應(yīng)時(shí)間信息包括基于所述分區(qū)接收的歷史請(qǐng)求、實(shí)時(shí)請(qǐng)求的響應(yīng)時(shí)間等數(shù)據(jù)進(jìn)行分析計(jì)算而得到的分區(qū)信息。一般情況下,可以通過(guò)比較各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息來(lái)選擇響應(yīng)效果更優(yōu)的副本分區(qū)。具體地,在分布式計(jì)算過(guò)程中,每個(gè)副本分區(qū)每個(gè)時(shí)間段都可能會(huì)接受大量的不同數(shù)據(jù)請(qǐng)求,所以分區(qū)的數(shù)據(jù)負(fù)載在不斷變化,進(jìn)而,每個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息不會(huì)一成不變,而是需要實(shí)時(shí)更新。在本申請(qǐng)中,更新所基于的所述歷史請(qǐng)求或?qū)崟r(shí)請(qǐng)求包括某個(gè)數(shù)據(jù)請(qǐng)求的首發(fā)請(qǐng)求,也包括某個(gè)數(shù)據(jù)請(qǐng)求的重發(fā)請(qǐng)求。進(jìn)一步,系統(tǒng)可以設(shè)置一定的更新周期,例如每隔T時(shí)間,更新對(duì)應(yīng)的分區(qū)響應(yīng)時(shí)間信息;也可以基于實(shí)時(shí)請(qǐng)求的響應(yīng)時(shí)間,更新對(duì)應(yīng)的分區(qū)響應(yīng)時(shí)間信息;還可以同時(shí)對(duì)歷史請(qǐng)求和實(shí)時(shí)請(qǐng)求的響應(yīng)時(shí)間進(jìn)行權(quán)重計(jì)算,得到更合理的分區(qū)響應(yīng)時(shí)間信息。更進(jìn)一步,當(dāng)一個(gè)重發(fā)請(qǐng)求需要選擇對(duì)應(yīng)的目標(biāo)副本分區(qū)時(shí),就可以基于此時(shí)各個(gè)副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)時(shí)間信息,進(jìn)行篩選,得到最終的目標(biāo)副本分區(qū)。
[0030]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0031]接著,所述設(shè)備I的第三裝置103將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。當(dāng)確定了所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū),可以進(jìn)一步將請(qǐng)求任務(wù)重新發(fā)送到新的副本分區(qū),并等待新的副本分區(qū)返回信息。本申請(qǐng)中,所述分布式計(jì)算可以包括實(shí)時(shí)計(jì)算,也可以包括非實(shí)時(shí)計(jì)算。特別是,當(dāng)所述分布式計(jì)算為非實(shí)時(shí)計(jì)算時(shí),計(jì)算任務(wù)時(shí)長(zhǎng)的量級(jí)較大,如可以是分鐘、小時(shí)或是更長(zhǎng),此時(shí)若是一次重發(fā)的效果依然不理想,在性能開銷允許的范圍內(nèi),還可以基于本申請(qǐng)繼續(xù)進(jìn)行二次重發(fā)、三次重發(fā)……。此外,可以在重發(fā)請(qǐng)求發(fā)出前,對(duì)所述目標(biāo)副本分區(qū)進(jìn)行重發(fā)預(yù)判,目的是,當(dāng)出現(xiàn)集群高負(fù)載和分區(qū)傾斜等場(chǎng)景,放棄無(wú)益處的重發(fā),降低集群整體的實(shí)際負(fù)載。
[0032]在現(xiàn)有技術(shù)中,對(duì)于長(zhǎng)尾現(xiàn)象,重發(fā)請(qǐng)求會(huì)等概率的發(fā)送到不同副本,此時(shí),任務(wù)重發(fā)是基于兩個(gè)前提:一是默認(rèn)重發(fā)請(qǐng)求比原先請(qǐng)求優(yōu)先返回;二是重發(fā)請(qǐng)求帶來(lái)的性能開銷較小,對(duì)其他正常處理的請(qǐng)求無(wú)明顯影響。但是在實(shí)際計(jì)算中,上述假設(shè)的前提并不總是成立。例如,當(dāng)整個(gè)集群處于高負(fù)載狀態(tài)下,若是接受重發(fā)請(qǐng)求的設(shè)備已經(jīng)處于高負(fù)載狀態(tài),則重發(fā)請(qǐng)求依然需要較長(zhǎng)時(shí)間返回,此時(shí),重發(fā)并不能改善集群響應(yīng)時(shí)間,反而會(huì)增加集群負(fù)擔(dān)。又如,計(jì)算任務(wù)所依賴的數(shù)據(jù)分區(qū)傾斜,如數(shù)據(jù)劃分不均和數(shù)據(jù)訪問(wèn)傾斜等情況,此時(shí),所有副本中對(duì)應(yīng)重發(fā)請(qǐng)求的分區(qū)響應(yīng)時(shí)間都較大,無(wú)法對(duì)任務(wù)重發(fā)帶來(lái)任何好處。再如,計(jì)算任務(wù)對(duì)應(yīng)的副本傾斜,如由于網(wǎng)絡(luò)訪問(wèn)時(shí)間延遲差異、設(shè)備差異、硬件故障等原因使得分布式集群中包含相同數(shù)據(jù)的等價(jià)副本在負(fù)載相同時(shí)也可能存在一致性的響應(yīng)時(shí)間差異。這些場(chǎng)景使得現(xiàn)有技術(shù)的適用存在明顯的缺點(diǎn),從而,并不能很好地解決長(zhǎng)尾問(wèn)題。
[0033]與此相比,本申請(qǐng)通過(guò)所述各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間來(lái)區(qū)別各個(gè)分區(qū),從而確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū),使得重發(fā)時(shí)可以優(yōu)先選擇響應(yīng)時(shí)間更優(yōu)的副本,降低重發(fā)請(qǐng)求的響應(yīng)時(shí)間,降低集群的整體負(fù)載,從而優(yōu)化了整體的分布式計(jì)算。
[0034]優(yōu)選地,所述設(shè)備I的第三裝置103包括第一單元(未示出)和第二單元(未示出),所述第一單元檢測(cè)所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件;所述第二單元當(dāng)所述重發(fā)請(qǐng)求滿足所述請(qǐng)求重發(fā)條件,將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0035]具體地,對(duì)于所獲取的重發(fā)請(qǐng)求,基于所述各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間確定了重發(fā)請(qǐng)求所對(duì)應(yīng)的最優(yōu)的目標(biāo)副本分區(qū),但是,有時(shí)在目標(biāo)副本分區(qū)完成重發(fā)并不能真正優(yōu)化集群計(jì)算。例如,當(dāng)整個(gè)集群處于高負(fù)載狀態(tài)下,或是計(jì)算任務(wù)所依賴的數(shù)據(jù)分區(qū)傾斜時(shí),如遇到數(shù)據(jù)劃分不均和數(shù)據(jù)訪問(wèn)傾斜等情況時(shí),所有副本中對(duì)應(yīng)重發(fā)請(qǐng)求的分區(qū)響應(yīng)時(shí)間都較大,無(wú)法對(duì)任務(wù)重發(fā)帶來(lái)任何好處。此時(shí),可以選擇放棄重發(fā)請(qǐng)求,以避免大概率的無(wú)益處的重發(fā),從而降低集群的實(shí)際負(fù)載。優(yōu)選地,可以基于任務(wù)請(qǐng)求對(duì)應(yīng)的副本分區(qū)可能存在的過(guò)載情況,設(shè)置對(duì)應(yīng)的請(qǐng)求重發(fā)條件,通過(guò)所述第三裝置103的第一單元檢測(cè)所述重發(fā)請(qǐng)求是否滿足設(shè)置的請(qǐng)求重發(fā)條件。當(dāng)不滿足請(qǐng)求重發(fā)條件時(shí),則啟動(dòng)過(guò)載保護(hù),即判斷認(rèn)為所對(duì)應(yīng)的目標(biāo)副本分區(qū)過(guò)載,放棄重發(fā),若是所述重發(fā)請(qǐng)求滿足所述請(qǐng)求重發(fā)條件,則判斷進(jìn)行重發(fā)操作,所述第二單元會(huì)將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0036]更優(yōu)選地,所述第一單元根據(jù)所述目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息及所述重發(fā)請(qǐng)求所對(duì)應(yīng)的最大超時(shí)時(shí)間,確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件。
[0037]具體地,可以基于所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息以及所述目標(biāo)副本分區(qū)中所述重發(fā)請(qǐng)求對(duì)應(yīng)的最大超時(shí)時(shí)間,來(lái)判斷所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件。在此,所述最大超時(shí)時(shí)間對(duì)應(yīng)于一個(gè)請(qǐng)求在分區(qū)等待響應(yīng)的所允許的最長(zhǎng)時(shí)間。優(yōu)選地,在分布式計(jì)算中,來(lái)自同一個(gè)父請(qǐng)求的各個(gè)子請(qǐng)求對(duì)應(yīng)的所述最大超時(shí)時(shí)間一致,來(lái)自不同父請(qǐng)求的各個(gè)子請(qǐng)求可以對(duì)應(yīng)各異的所述最大超時(shí)時(shí)間。所述最大超時(shí)時(shí)間的設(shè)置的差異可以基于各個(gè)任務(wù)請(qǐng)求對(duì)應(yīng)的來(lái)源不同而有所差異。在此,基于所述重發(fā)請(qǐng)求對(duì)應(yīng)的最大超時(shí)時(shí)間,并結(jié)合目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息,就可以對(duì)所述重發(fā)請(qǐng)求進(jìn)行預(yù)判。例如,當(dāng)副本分區(qū)中所述重發(fā)請(qǐng)求對(duì)應(yīng)的最大超時(shí)時(shí)間為T,當(dāng)前目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息是score,則當(dāng)score〈TXa(a是介于O到I之間的浮點(diǎn)數(shù))時(shí),判斷不滿足請(qǐng)求重發(fā)條件,啟動(dòng)過(guò)載保護(hù)。例如當(dāng)a取為0.5時(shí),若此時(shí)分區(qū)響應(yīng)時(shí)間信息score較小,如小于該副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間的一半時(shí),說(shuō)明發(fā)往目標(biāo)副本分區(qū)的請(qǐng)求可能需要較長(zhǎng)時(shí)間才能返回,這可能是應(yīng)為是目標(biāo)副本分區(qū)對(duì)應(yīng)的設(shè)備的負(fù)載已經(jīng)很高,此時(shí)則選擇放棄重發(fā)。反之,則說(shuō)明滿足請(qǐng)求重發(fā)條件,進(jìn)而可以將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0038]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件的方法僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的其他確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件的方法如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0039]圖2示出根據(jù)本申請(qǐng)一個(gè)優(yōu)選實(shí)施例的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的設(shè)備的設(shè)備示意圖。所述設(shè)備I還包括第四裝置204。以下參照?qǐng)D2對(duì)該優(yōu)選實(shí)施例進(jìn)行詳細(xì)描述:具體地,設(shè)備I的第一裝置201獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);第二裝置202基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);第三裝置203將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū);第四裝置204根據(jù)所述副本分區(qū)的歷史分區(qū)響應(yīng)時(shí)間信息和/或當(dāng)前分區(qū)響應(yīng)時(shí)間信息,確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息;其中,所述第二裝置202基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。其中,所述設(shè)備I的第一裝置201、第二裝置202和第三裝置203與圖1所示出的對(duì)應(yīng)裝置相同或基本相同,故此處不再贅述,并通過(guò)引用的方式包含于此。
[0040]其中,所述第四裝置204根據(jù)所述副本分區(qū)的歷史分區(qū)響應(yīng)時(shí)間信息和/或當(dāng)前分區(qū)響應(yīng)時(shí)間信息,確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息;其中,所述第二裝置202基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。具體地,通過(guò)所述分區(qū)響應(yīng)時(shí)間信息確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息,再基于所述分區(qū)響應(yīng)速度信息確定所述目標(biāo)副本分區(qū)。優(yōu)選地,所述分區(qū)響應(yīng)速度信息為當(dāng)前分區(qū)響應(yīng)速度信息。所述分區(qū)響應(yīng)速度信息可以對(duì)應(yīng)多種形式。例如,在當(dāng)前時(shí)刻Tl,副本X的分區(qū)y響應(yīng)了某個(gè)當(dāng)前請(qǐng)求Q1,并且所述分區(qū)y對(duì)于請(qǐng)求Ql的響應(yīng)返回時(shí)間是tl,此時(shí)基于請(qǐng)求Ql的所述響應(yīng)返回時(shí)間tl,確定副本X的分區(qū)y的當(dāng)前分區(qū)響應(yīng)時(shí)間信息D1,此時(shí),可以將所述副本X的分區(qū)I的當(dāng)前分區(qū)響應(yīng)時(shí)間信息Dl作為該副本分區(qū)的當(dāng)前分區(qū)響應(yīng)速度信息。又如,基于上例,已知所述副本X的分區(qū)y的當(dāng)前分區(qū)響應(yīng)時(shí)間信息D1,并且,若是在之前一個(gè)歷史時(shí)刻TO,副本X的分區(qū)y響應(yīng)了某個(gè)當(dāng)前請(qǐng)求Q0,所述分區(qū)y對(duì)于請(qǐng)求QO的響應(yīng)返回時(shí)間是t0,對(duì)應(yīng)于TO時(shí)刻,基于請(qǐng)求QO的所述響應(yīng)返回時(shí)間t0,確定副本X的分區(qū)y的歷史分區(qū)響應(yīng)時(shí)間信息D0,同時(shí),該歷史分區(qū)響應(yīng)時(shí)間信息DO對(duì)應(yīng)于一個(gè)歷史分區(qū)響應(yīng)速度信息E0,此時(shí),基于所述歷史分區(qū)響應(yīng)速度信息EO和當(dāng)前分區(qū)響應(yīng)時(shí)間信息D1,做加權(quán)運(yùn)算,得到當(dāng)前分區(qū)響應(yīng)速度信息E1,所述算法的一種舉例如下:
[0041]El = [EOXb+DIX (2-b)]/2,(b 是 O 到 I 之間的浮點(diǎn)數(shù),比如 0.8)
[0042]在此,所述分區(qū)響應(yīng)速度信息是基于歷史分區(qū)響應(yīng)速度信息和當(dāng)前分區(qū)響應(yīng)時(shí)間信息的加權(quán)運(yùn)算得到的,通過(guò)所述加權(quán)運(yùn)算做數(shù)據(jù)平滑處理,可以降低歷史分區(qū)響應(yīng)時(shí)間信息的影響,突出最新的分區(qū)響應(yīng)時(shí)間信息的影響。所述分區(qū)響應(yīng)速度信息能夠體現(xiàn)各個(gè)副本分區(qū)對(duì)于任務(wù)請(qǐng)求的處理差異,并且,還可以對(duì)各個(gè)分區(qū)響應(yīng)速度信息進(jìn)行周期性、或是實(shí)時(shí)地更新,使得該數(shù)據(jù)的更加合理。進(jìn)一步,所述設(shè)備I的第二裝置102基于所述副本分區(qū)的當(dāng)前分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。
[0043]優(yōu)選地,所述第二裝置202包括第三單元(未示出)和第四單元(未示出),所述第三單元根據(jù)所述重發(fā)請(qǐng)求確定一個(gè)或多個(gè)候選副本分區(qū);所述第四單元基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。
[0044]具體地,所述第二裝置202的第三單元根據(jù)所述重發(fā)請(qǐng)求確定一個(gè)或多個(gè)候選副本分區(qū)。在此,首先要確定若干個(gè)候選副本分區(qū),其中所述候選副本分區(qū)需要包含所述重發(fā)請(qǐng)求所請(qǐng)求的目標(biāo)數(shù)據(jù)。每一套副本數(shù)據(jù)都包含分布式集群中進(jìn)行的計(jì)算所需要的全套數(shù)據(jù),各個(gè)副本數(shù)據(jù)劃分成若干個(gè)分區(qū),各個(gè)副本數(shù)據(jù)劃分分區(qū)的標(biāo)準(zhǔn)可以一致,也可以不同。例如,副本數(shù)據(jù)I劃分為η個(gè)分區(qū),副本數(shù)據(jù)2劃分為m個(gè)分區(qū),若此時(shí)重發(fā)請(qǐng)求對(duì)應(yīng)的首發(fā)請(qǐng)求發(fā)送到的是副本數(shù)據(jù)I中的第nl個(gè)分區(qū),請(qǐng)求的是數(shù)據(jù)W,則副本數(shù)據(jù)2中所對(duì)應(yīng)的候選副本分區(qū),就是其m個(gè)分區(qū)中包含了數(shù)據(jù)W的對(duì)應(yīng)分區(qū)。在此,優(yōu)選地,分布式集群中,各個(gè)副本數(shù)據(jù)的劃分標(biāo)準(zhǔn)一致,由此,便可以快速地確定所述候選副本分區(qū)。例如,在上述舉例中,η與m相等,且每一組相同分區(qū)中數(shù)據(jù)組成也分別一致,即副本數(shù)據(jù)I的第nl分區(qū)中的數(shù)據(jù)與副本數(shù)據(jù)2的第ml分區(qū)中的數(shù)據(jù)分布一致。此時(shí),若所述首發(fā)請(qǐng)求是向某個(gè)副本數(shù)據(jù)的第k個(gè)分區(qū)發(fā)出的請(qǐng)求,則對(duì)應(yīng)的重發(fā)請(qǐng)求的候選副本分區(qū),就是其他各個(gè)副本中的第k個(gè)分區(qū)。
[0045]接著,所述第二裝置202的第四單元基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。在此,各個(gè)副本數(shù)據(jù),可能因?yàn)闅v史數(shù)據(jù)負(fù)載不均,跨機(jī)房網(wǎng)絡(luò)延遲、設(shè)備瞬時(shí)故障、設(shè)備硬件差異等情況而存在副本響應(yīng)速度信息的差異,這種差異會(huì)直接反映到各個(gè)副本所對(duì)應(yīng)的分區(qū),進(jìn)而,即使各個(gè)副本的分區(qū)劃分一致,不同副本數(shù)據(jù)中相同的副本分區(qū),如副本數(shù)據(jù)I的第a個(gè)分區(qū)與副本數(shù)據(jù)2的第a個(gè)分區(qū),也會(huì)存在分區(qū)響應(yīng)速度信息的差異。進(jìn)一步,基于這種差異,便可以選擇出所述重發(fā)請(qǐng)求對(duì)應(yīng)的最終的目標(biāo)副本分區(qū)。所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的確定,可以有多種方式,例如,可以是先基于副本分區(qū)的各個(gè)分區(qū)響應(yīng)速度信息,得到一個(gè)副本整體的副本響應(yīng)速度信息,再對(duì)各個(gè)副本數(shù)據(jù)對(duì)應(yīng)的所述副本響應(yīng)速度信息進(jìn)行對(duì)比,選擇目標(biāo)副本,進(jìn)而選擇目標(biāo)副本中與重發(fā)請(qǐng)求對(duì)應(yīng)的具體的目標(biāo)副本分區(qū);又如,在此,優(yōu)選地,也可以是直接采用體現(xiàn)了各個(gè)副本數(shù)據(jù)之間的差異體的分區(qū)響應(yīng)速度信息,從而選擇重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū),其中,副本之間的差異,也會(huì)間接的體現(xiàn)在其中各個(gè)副本分區(qū)的分區(qū)響應(yīng)速度信息中。
[0046]更優(yōu)選地,所述第四單元累加前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,直至所得累加和與所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和的比值超過(guò)區(qū)間(0,1)內(nèi)的一隨機(jī)數(shù);將該第i個(gè)所述候選副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。
[0047]具體地,確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方法,優(yōu)選地可以是:基于獲取的所述重發(fā)請(qǐng)求,進(jìn)一步確定若干個(gè)候選副本分區(qū),并獲得各個(gè)候選副本分區(qū)當(dāng)前對(duì)應(yīng)的分區(qū)響應(yīng)速度信息,在此,基于本方案的所述目標(biāo)副本分區(qū)的選擇算法的一個(gè)實(shí)例如下:
[0048]分區(qū)M.sum_score =副本1.分區(qū)M.score+副本2.分區(qū)M.score+…副本η.分區(qū)Μ.score
[0049]rand =生成0-1之間的隨機(jī)浮點(diǎn)數(shù)
[0050]for循環(huán)副本1.分區(qū)M到副本η.分區(qū)M
[0051]分區(qū)Μ.accumulate =副本1.分區(qū)M.score+副本2.分區(qū)M.score+…副本1.分區(qū) M.score
[0052]如果rand〈分區(qū) M.accumulate/ 分區(qū) M.sum_score
[0053]返回:選擇分區(qū)i
[0054]循環(huán)結(jié)束
[0055]選擇分區(qū)η (上述循環(huán)未選中)
[0056]在此,所述重發(fā)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息存在于副本分區(qū)M中,候選副本將分區(qū)響應(yīng)速度信息記為score。副本1、副本2……副本η為η個(gè)候選副本,每個(gè)副本都對(duì)應(yīng)數(shù)據(jù)分布相同的分區(qū)Μ。副本1.分區(qū)Μ.score、副本2.分區(qū)M.score、…副本η.分區(qū)Μ.score為各個(gè)候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息。分區(qū)M.sum_sc0re為所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和。首先,累加前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,則當(dāng)累加到前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息時(shí),所述分區(qū)響應(yīng)速度信息的累加值與所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和的比值超過(guò)區(qū)間(0,1)內(nèi)的一隨機(jī)數(shù),此時(shí),選擇第i個(gè)候選副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);若是循環(huán)結(jié)束仍未有選中的副本分區(qū),則以第η個(gè)副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。在此,所述候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息越優(yōu),即score數(shù)值越大,則對(duì)應(yīng)副本分區(qū)其被選中作為目標(biāo)副本分區(qū)的概率就越大。
[0057]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方法僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0058]更優(yōu)選地,所述隨機(jī)數(shù)為實(shí)時(shí)生成的。
[0059]具體地,區(qū)間(0,1)內(nèi)的一隨機(jī)數(shù)是實(shí)時(shí)生成的,即在進(jìn)行目標(biāo)副本分區(qū)選擇時(shí)即時(shí)生成。在此,基于實(shí)時(shí)生成的隨機(jī)數(shù),并依照一定的概率選擇目標(biāo)副本分區(qū),雖然所述候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息越優(yōu),其被選中作為目標(biāo)副本分區(qū)的概率就越大,但是一些分區(qū)響應(yīng)速度信息較低的分區(qū)也存在被選中的概率。這種并非嚴(yán)格選擇分區(qū)響應(yīng)速度信息最優(yōu)的分區(qū)的做法是為了對(duì)數(shù)據(jù)做平滑處理。原因可以包含以下兩點(diǎn):一是,所述各個(gè)分區(qū)的分區(qū)響應(yīng)速度信息,反映的是歷史上計(jì)算出該分區(qū)響應(yīng)速度信息時(shí)的各個(gè)分區(qū)的情況,并不能完全準(zhǔn)確地代表當(dāng)前進(jìn)行重發(fā)請(qǐng)求時(shí)的各個(gè)分區(qū)的最新情況。例如,某個(gè)分區(qū)之前由于存在設(shè)備障礙,對(duì)應(yīng)的分區(qū)響應(yīng)速度信息不理想,但是當(dāng)前由于設(shè)備回復(fù)正常,就可能帶來(lái)比其他分區(qū)更優(yōu)的操作性能,這一改變并不能及時(shí)體現(xiàn)在該分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息上,此時(shí),如果完全基于對(duì)應(yīng)的分區(qū)響應(yīng)速度信息進(jìn)行選擇,該分區(qū)就不會(huì)被選中,則所述分區(qū)對(duì)應(yīng)設(shè)備性能恢復(fù)后的優(yōu)勢(shì)就得不到利用。所以,在此,通過(guò)實(shí)時(shí)生成的隨機(jī)數(shù)可以均衡地給予分區(qū)響應(yīng)速度信息不理想、但是實(shí)際性可能較優(yōu)的候選副本分區(qū)被選中的機(jī)會(huì)。二是,避免候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息波動(dòng)太大。若是嚴(yán)格按照分區(qū)響應(yīng)速度信息選擇目標(biāo)副本分區(qū),對(duì)于分區(qū)響應(yīng)速度信息較優(yōu)的分區(qū),在連續(xù)一段時(shí)間,特別在請(qǐng)求量較大時(shí),甚至是一瞬時(shí),該分區(qū)會(huì)接受大量請(qǐng)求,對(duì)應(yīng)的負(fù)載會(huì)快速增大,進(jìn)而該分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息迅速降低,則后續(xù)請(qǐng)求又會(huì)快速轉(zhuǎn)移請(qǐng)求另一個(gè)分區(qū)響應(yīng)速度信息較高的分區(qū),如此一來(lái),各個(gè)分區(qū)后背跳躍式選擇,穩(wěn)定性較差,不利于集群的整體性能發(fā)揮。
[0060]優(yōu)選地,所述設(shè)備I還包括第七裝置(未示出)和第八裝置(未示出),其中,所述第七裝置接收對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果;所述第八裝置根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,更新對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。
[0061]具體地,在分布式計(jì)算中,副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息可以實(shí)時(shí)更新。優(yōu)選地,可以基于每一次所述副本分區(qū)返回的請(qǐng)求響應(yīng)結(jié)果來(lái)更新該副本分區(qū)的分區(qū)響應(yīng)速度信息。在此,通過(guò)所述第七裝置接收的請(qǐng)求響應(yīng)結(jié)果,可以對(duì)應(yīng)于到達(dá)對(duì)應(yīng)分區(qū)的某個(gè)請(qǐng)求任務(wù)的首發(fā)請(qǐng)求,也可以對(duì)應(yīng)于到達(dá)對(duì)應(yīng)分區(qū)的某個(gè)請(qǐng)求任務(wù)的重發(fā)請(qǐng)求。例如,本申請(qǐng)中,當(dāng)目標(biāo)重發(fā)請(qǐng)求在副本u的分區(qū)V中完成重發(fā)任務(wù),并返回請(qǐng)求信息,此時(shí)接收到該副本U的分區(qū)V的重發(fā)請(qǐng)求對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果是響應(yīng)時(shí)間t,則基于該響應(yīng)時(shí)間t,更新對(duì)應(yīng)的副本分區(qū)的分區(qū)響應(yīng)速度信息。
[0062]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的其他形式的請(qǐng)求響應(yīng)結(jié)果如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0063]更優(yōu)選地,所述第八裝置根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,以及對(duì)應(yīng)副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間,確定所述對(duì)應(yīng)副本分區(qū)的請(qǐng)求富余時(shí)間信息;并根據(jù)所述請(qǐng)求富余時(shí)間信息,更新所述對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。
[0064]具體地,在此,所述第八裝置對(duì)副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息的具體更新,需要獲得幾個(gè)數(shù)據(jù)信息,一是所述第七裝置接收到的所述待更新副本分區(qū)對(duì)某個(gè)所述任務(wù)請(qǐng)求的響應(yīng)時(shí)間;二是所述任務(wù)請(qǐng)求在所述待更新副本分區(qū)對(duì)應(yīng)的請(qǐng)求最大超時(shí)時(shí)間。例如,上述副本u的分區(qū)V的重發(fā)請(qǐng)求對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果是響應(yīng)時(shí)間t。同時(shí),所述重發(fā)請(qǐng)求在所述副本分區(qū)對(duì)應(yīng)一個(gè)請(qǐng)求最大超時(shí)時(shí)間,所述請(qǐng)求最大超時(shí)時(shí)間對(duì)應(yīng)于一個(gè)請(qǐng)求在分區(qū)等待響應(yīng)的所允許的最長(zhǎng)時(shí)間。進(jìn)一步,基于所述副本分區(qū)中請(qǐng)求相應(yīng)結(jié)果的響應(yīng)時(shí)間和對(duì)應(yīng)的請(qǐng)求最大超時(shí)時(shí)間,確定對(duì)應(yīng)副本分區(qū)的請(qǐng)求富余時(shí)間信息。例如,上述副本U的分區(qū)V的重發(fā)請(qǐng)求對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果是響應(yīng)時(shí)間t,所述重發(fā)請(qǐng)求在分區(qū)V的請(qǐng)求的最大超時(shí)時(shí)間Tm3,則優(yōu)選地,所述副本分區(qū)的請(qǐng)求富余時(shí)間信息為Tm3 — t。對(duì)于一個(gè)副本分區(qū),若是請(qǐng)求的最大超時(shí)時(shí)間與請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間越接近,即富余時(shí)間越少,則后續(xù)就可能不會(huì)再接受緊急的請(qǐng)求,相反地,若是所述請(qǐng)求富余時(shí)間越多,則對(duì)應(yīng)的分區(qū)響應(yīng)速度信息越優(yōu)。進(jìn)一步,基于所述富余時(shí)間信息可以更新所述副本分區(qū)的分區(qū)響應(yīng)速度信息,例如,可以直接以當(dāng)前的請(qǐng)求所對(duì)應(yīng)請(qǐng)求富余時(shí)間信息作為副本分區(qū)的分區(qū)響應(yīng)速度信息來(lái)更新;也可以將當(dāng)前所對(duì)應(yīng)的請(qǐng)求富余時(shí)間信息與該副本分區(qū)之前計(jì)算得到的歷史請(qǐng)求富余時(shí)間信息做加權(quán)運(yùn)算,以加權(quán)運(yùn)算的結(jié)果作為所更新的分區(qū)響應(yīng)速度信息,在此,可以通過(guò)這樣的平滑操作強(qiáng)化最新數(shù)據(jù)的影響。
[0065]此外,對(duì)于各個(gè)副本分區(qū)所對(duì)應(yīng)的請(qǐng)求最大超時(shí)時(shí)間,在分布式計(jì)算中,父請(qǐng)求的響應(yīng)時(shí)間取決于最慢的子任務(wù)的執(zhí)行時(shí)間,進(jìn)而,為父請(qǐng)求確定的請(qǐng)求最大超時(shí)時(shí)間也同樣適用對(duì)應(yīng)的各個(gè)子請(qǐng)求。例如,父請(qǐng)求I對(duì)應(yīng)的最大超時(shí)時(shí)間是Tm,則其對(duì)應(yīng)的所有子請(qǐng)求的最大超時(shí)時(shí)間是都Tm。則當(dāng)所述子請(qǐng)求首發(fā)到各個(gè)副本分區(qū),或是所述子請(qǐng)求重發(fā)到各個(gè)副本分區(qū)時(shí),所對(duì)應(yīng)的副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間即為所述Tm。在此,所述請(qǐng)求最大超時(shí)時(shí)間的確定可以依據(jù)各種不同的請(qǐng)求類型,并基于歷史請(qǐng)求數(shù)據(jù)信息來(lái)確定。例如,同樣是對(duì)某個(gè)副本分區(qū)中相同數(shù)據(jù)的請(qǐng)求,請(qǐng)求Yl是來(lái)自交易買家的請(qǐng)求,請(qǐng)求Y2是來(lái)自交易賣家的請(qǐng)求,此時(shí),對(duì)應(yīng)的副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間可能就是:在接收請(qǐng)求Yl時(shí),對(duì)應(yīng)請(qǐng)求的最大超時(shí)時(shí)間Tml,在接收請(qǐng)求Y2時(shí),對(duì)應(yīng)請(qǐng)求的最大超時(shí)時(shí)間Tm2,在此,Tml與Tm2可以不相同。
[0066]優(yōu)選地,所述設(shè)備I還包括第五裝置(未示出)和第六裝置(未示出),所述第五裝置用于獲取分布式計(jì)算中待處理的首發(fā)請(qǐng)求;所述第六裝置基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū),并將所述首發(fā)請(qǐng)求發(fā)送至所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū)。
[0067]具體地,在實(shí)際的分布式計(jì)算中,通過(guò)本申請(qǐng)所述的方法,可以對(duì)所述任務(wù)請(qǐng)求的重發(fā)進(jìn)行優(yōu)化,優(yōu)選響應(yīng)時(shí)間較優(yōu)的副本。進(jìn)一步,在父請(qǐng)求所對(duì)應(yīng)的各個(gè)子請(qǐng)求的首發(fā)請(qǐng)求,也可以基于已有的所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū),并將所述首發(fā)請(qǐng)求發(fā)送至所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū)。此時(shí),對(duì)比現(xiàn)有方案,可以從源頭上減少需要重發(fā)的次數(shù),有效地減少了后續(xù)因?yàn)殚L(zhǎng)響應(yīng)時(shí)間需要重發(fā)的請(qǐng)求,降低集群的實(shí)際負(fù)載。具體的操作過(guò)程與重發(fā)請(qǐng)求選擇對(duì)應(yīng)目標(biāo)副本分區(qū)相同或相似,在此,不再贅述。
[0068]圖3示出根據(jù)本申請(qǐng)另一個(gè)方面的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法流程圖。
[0069]其中,在步驟S301中,所述設(shè)備I獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);在步驟S302中,所述設(shè)備I基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);在步驟S303中,所述設(shè)備I將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0070]具體地,在步驟S301中,所述設(shè)備I獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū)。在分布式計(jì)算中,用戶發(fā)出的任務(wù)請(qǐng)求往往需要巨大計(jì)算能力才能解決,此時(shí),會(huì)將該復(fù)雜的父請(qǐng)求拆分為多個(gè)子請(qǐng)求,進(jìn)而,通過(guò)服務(wù)器將所述多個(gè)子請(qǐng)求分別發(fā)送到分布式集群的多個(gè)計(jì)算節(jié)點(diǎn)進(jìn)行各自處理,待各個(gè)計(jì)算節(jié)點(diǎn)處理完成,再將各個(gè)計(jì)算結(jié)果返回匯總。在此,所述分布式集群中,會(huì)存在若干套副本數(shù)據(jù),每一套副本數(shù)據(jù)都包含分布式計(jì)算中所需要的全部數(shù)據(jù),每一套副本數(shù)據(jù)進(jìn)一步劃分為若干個(gè)副本分區(qū),每個(gè)副本分區(qū)都包含對(duì)應(yīng)副本數(shù)據(jù)中的部分?jǐn)?shù)據(jù)。在此,優(yōu)選地,所述每一套副本數(shù)據(jù)對(duì)應(yīng)的分區(qū)劃分一致,例如,系統(tǒng)中同時(shí)存在副本數(shù)據(jù)I和副本數(shù)據(jù)2,兩套副本數(shù)據(jù)都分別劃分為M個(gè)分區(qū),且對(duì)應(yīng)分區(qū)中分布的數(shù)據(jù)相同,如,副本數(shù)據(jù)I的分區(qū)I與副本數(shù)據(jù)2的分區(qū)I 一致,副本數(shù)據(jù)I的分區(qū)2與副本數(shù)據(jù)2的分區(qū)2—致,……以此類推。在此,分布式集群由多臺(tái)服務(wù)器組成,一臺(tái)服務(wù)器即為一個(gè)計(jì)算節(jié)點(diǎn),可以存儲(chǔ)一個(gè)或是多個(gè)分區(qū)數(shù)據(jù)。一個(gè)副本數(shù)據(jù)的各個(gè)分區(qū)所對(duì)應(yīng)的設(shè)備,可以都存在于同一個(gè)機(jī)房,也可以跨機(jī)房部署。一個(gè)機(jī)房也可以同時(shí)部署多個(gè)副本數(shù)據(jù)對(duì)應(yīng)的各個(gè)設(shè)備。
[0071]在此,基于分布式集群中一些常見問(wèn)題,如跨機(jī)房網(wǎng)絡(luò)延遲、設(shè)備瞬時(shí)故障、設(shè)備硬件差異、數(shù)據(jù)分片不均勻等原因可能導(dǎo)致各個(gè)計(jì)算節(jié)點(diǎn)上響應(yīng)時(shí)間的不平衡。此時(shí),對(duì)于響應(yīng)不及時(shí)的子請(qǐng)求定義為長(zhǎng)尾請(qǐng)求,即為所述待處理的重發(fā)請(qǐng)求。所述待處理的重發(fā)請(qǐng)求的獲取,可以基于所設(shè)定的比例時(shí)間,即所述目標(biāo)請(qǐng)求超過(guò)預(yù)設(shè)的比例時(shí)間即需要啟動(dòng)重發(fā)任務(wù);也可以采用自一定比例的分區(qū)結(jié)果返回時(shí),判斷是否啟動(dòng)重發(fā)任務(wù),例如一個(gè)父請(qǐng)求拆分成100個(gè)目標(biāo)子請(qǐng)求,并對(duì)應(yīng)于100個(gè)分區(qū),當(dāng)有30%的分區(qū)返回了請(qǐng)求結(jié)果,而剩下的請(qǐng)求仍在執(zhí)行時(shí),則判斷啟動(dòng)重發(fā)剩余的仍在執(zhí)行的任務(wù),獲取重發(fā)請(qǐng)求。
[0072]接著,在步驟S302中,所述設(shè)備I基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。基于系統(tǒng)中冗余的副本分區(qū),所述重發(fā)請(qǐng)求可以重新選擇一個(gè)發(fā)送副本分區(qū),在該副本分區(qū)中對(duì)應(yīng)有所述重發(fā)請(qǐng)求需要的數(shù)據(jù)信息,在此,優(yōu)選地,所述每一個(gè)副本數(shù)據(jù)對(duì)應(yīng)的分區(qū)劃分一致,進(jìn)而所述重發(fā)請(qǐng)求可以與每個(gè)副本的對(duì)應(yīng)分區(qū)相匹配。一般情況下,不同副本的相同分區(qū),對(duì)于同一個(gè)重發(fā)請(qǐng)求的響應(yīng)情況存在著差異,例如,同樣對(duì)于重發(fā)請(qǐng)求A,同時(shí)存在兩個(gè)副本分區(qū),副本I的分區(qū)3與副本2的分區(qū)3同時(shí)都包含重發(fā)請(qǐng)求A對(duì)應(yīng)的請(qǐng)求數(shù)據(jù),但是上述兩個(gè)副本分區(qū)可能由于此時(shí)數(shù)據(jù)負(fù)載,或是兩個(gè)副本分區(qū)對(duì)應(yīng)的設(shè)備之間的差異,或是其中一個(gè)副本分區(qū)對(duì)應(yīng)的設(shè)備存在故障等原因,使得對(duì)于重發(fā)請(qǐng)求A而言,兩個(gè)副本分區(qū)的實(shí)際請(qǐng)求響應(yīng)效果存在差異,為了更有效地完成整體計(jì)算,會(huì)優(yōu)先選擇響應(yīng)效果更優(yōu)的副本分區(qū)作為所述重發(fā)請(qǐng)求A的目標(biāo)副本分區(qū)。在此,優(yōu)選地,基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息來(lái)確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)。所述分區(qū)響應(yīng)時(shí)間信息包括基于所述分區(qū)接收的歷史請(qǐng)求、實(shí)時(shí)請(qǐng)求的響應(yīng)時(shí)間等數(shù)據(jù)進(jìn)行分析計(jì)算而得到的分區(qū)信息。一般情況下,可以通過(guò)比較各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息來(lái)選擇響應(yīng)效果更優(yōu)的副本分區(qū)。具體地,在分布式計(jì)算過(guò)程中,每個(gè)副本分區(qū)每個(gè)時(shí)間段都可能會(huì)接受大量的不同數(shù)據(jù)請(qǐng)求,所以分區(qū)的數(shù)據(jù)負(fù)載在不斷變化,進(jìn)而,每個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息不會(huì)一成不變,而是需要實(shí)時(shí)更新。在本申請(qǐng)中,更新所基于的所述歷史請(qǐng)求或?qū)崟r(shí)請(qǐng)求包括某個(gè)數(shù)據(jù)請(qǐng)求的首發(fā)請(qǐng)求,也包括某個(gè)數(shù)據(jù)請(qǐng)求的重發(fā)請(qǐng)求。進(jìn)一步,系統(tǒng)可以設(shè)置一定的更新周期,例如每隔T時(shí)間,更新對(duì)應(yīng)的分區(qū)響應(yīng)時(shí)間信息;也可以基于實(shí)時(shí)請(qǐng)求的響應(yīng)時(shí)間,更新對(duì)應(yīng)的分區(qū)響應(yīng)時(shí)間信息;還可以同時(shí)對(duì)歷史請(qǐng)求和實(shí)時(shí)請(qǐng)求的響應(yīng)時(shí)間進(jìn)行權(quán)重計(jì)算,得到更合理的分區(qū)響應(yīng)時(shí)間信息。更進(jìn)一步,當(dāng)一個(gè)重發(fā)請(qǐng)求需要選擇對(duì)應(yīng)的目標(biāo)副本分區(qū)時(shí),就可以基于此時(shí)各個(gè)副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)時(shí)間信息,進(jìn)行篩選,得到最終的目標(biāo)副本分區(qū)。
[0073]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0074]接著,在步驟S303中,所述設(shè)備I將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。當(dāng)確定了所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū),可以進(jìn)一步將請(qǐng)求任務(wù)重新發(fā)送到新的副本分區(qū),并等待新的副本分區(qū)返回信息。本申請(qǐng)中,所述分布式計(jì)算可以包括實(shí)時(shí)計(jì)算,也可以包括非實(shí)時(shí)計(jì)算。特別是,當(dāng)所述分布式計(jì)算為非實(shí)時(shí)計(jì)算時(shí),計(jì)算任務(wù)時(shí)長(zhǎng)的量級(jí)較大,如可以是分鐘、小時(shí)或是更長(zhǎng),此時(shí)若是一次重發(fā)的效果依然不理想,在性能開銷允許的范圍內(nèi),還可以基于本申請(qǐng)繼續(xù)進(jìn)行二次重發(fā)、三次重發(fā)……。此外,可以在重發(fā)請(qǐng)求發(fā)出前,對(duì)所述目標(biāo)副本分區(qū)進(jìn)行重發(fā)預(yù)判,目的是,當(dāng)出現(xiàn)集群高負(fù)載和分區(qū)傾斜等場(chǎng)景,放棄無(wú)益處的重發(fā),降低集群整體的實(shí)際負(fù)載。
[0075]在現(xiàn)有技術(shù)中,對(duì)于長(zhǎng)尾現(xiàn)象,重發(fā)請(qǐng)求會(huì)等概率的發(fā)送到不同副本,此時(shí),任務(wù)重發(fā)是基于兩個(gè)前提:一是默認(rèn)重發(fā)請(qǐng)求比原先請(qǐng)求優(yōu)先返回;二是重發(fā)請(qǐng)求帶來(lái)的性能開銷較小,對(duì)其他正常處理的請(qǐng)求無(wú)明顯影響。但是在實(shí)際計(jì)算中,上述假設(shè)的前提并不總是成立。例如,當(dāng)整個(gè)集群處于高負(fù)載狀態(tài)下,若是接受重發(fā)請(qǐng)求的設(shè)備已經(jīng)處于高負(fù)載狀態(tài),則重發(fā)請(qǐng)求依然需要較長(zhǎng)時(shí)間返回,此時(shí),重發(fā)并不能改善集群響應(yīng)時(shí)間,反而會(huì)增加集群負(fù)擔(dān)。又如,計(jì)算任務(wù)所依賴的數(shù)據(jù)分區(qū)傾斜,如數(shù)據(jù)劃分不均和數(shù)據(jù)訪問(wèn)傾斜等情況,此時(shí),所有副本中對(duì)應(yīng)重發(fā)請(qǐng)求的分區(qū)響應(yīng)時(shí)間都較大,無(wú)法對(duì)任務(wù)重發(fā)帶來(lái)任何好處。再如,計(jì)算任務(wù)對(duì)應(yīng)的副本傾斜,如由于網(wǎng)絡(luò)訪問(wèn)時(shí)間延遲差異、設(shè)備差異、硬件故障等原因使得分布式集群中包含相同數(shù)據(jù)的等價(jià)副本在負(fù)載相同時(shí)也可能存在一致性的響應(yīng)時(shí)間差異。這些場(chǎng)景使得現(xiàn)有技術(shù)的適用存在明顯的缺點(diǎn),從而,并不能很好地解決長(zhǎng)尾問(wèn)題。
[0076]與此相比,本申請(qǐng)通過(guò)所述各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間來(lái)區(qū)別各個(gè)分區(qū),從而確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū),使得重發(fā)時(shí)可以優(yōu)先選擇響應(yīng)時(shí)間更優(yōu)的副本,降低重發(fā)請(qǐng)求的響應(yīng)時(shí)間,降低集群的整體負(fù)載,從而優(yōu)化了整體的分布式計(jì)算。
[0077]優(yōu)選地,所述方法的步驟S303中包括步驟S3031 (未示出)和步驟S3032 (未示出),在步驟S3031中,所述設(shè)備I檢測(cè)所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件;在步驟S3032中,當(dāng)所述重發(fā)請(qǐng)求滿足所述請(qǐng)求重發(fā)條件,所述設(shè)備I將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0078]具體地,對(duì)于所獲取的重發(fā)請(qǐng)求,基于所述各個(gè)副本分區(qū)的分區(qū)響應(yīng)時(shí)間確定了重發(fā)請(qǐng)求所對(duì)應(yīng)的最優(yōu)的目標(biāo)副本分區(qū),但是,有時(shí)在目標(biāo)副本分區(qū)完成重發(fā)并不能真正優(yōu)化集群計(jì)算。例如,當(dāng)整個(gè)集群處于高負(fù)載狀態(tài)下,或是計(jì)算任務(wù)所依賴的數(shù)據(jù)分區(qū)傾斜時(shí),如遇到數(shù)據(jù)劃分不均和數(shù)據(jù)訪問(wèn)傾斜等情況時(shí),所有副本中對(duì)應(yīng)重發(fā)請(qǐng)求的分區(qū)響應(yīng)時(shí)間都較大,無(wú)法對(duì)任務(wù)重發(fā)帶來(lái)任何好處。此時(shí),可以選擇放棄重發(fā)請(qǐng)求,以避免大概率的無(wú)益處的重發(fā),從而降低集群的實(shí)際負(fù)載。優(yōu)選地,可以基于任務(wù)請(qǐng)求對(duì)應(yīng)的副本分區(qū)可能存在的過(guò)載情況,設(shè)置對(duì)應(yīng)的請(qǐng)求重發(fā)條件,在步驟S3031中,所述設(shè)備I檢測(cè)所述重發(fā)請(qǐng)求是否滿足設(shè)置的請(qǐng)求重發(fā)條件。當(dāng)不滿足請(qǐng)求重發(fā)條件時(shí),則啟動(dòng)過(guò)載保護(hù),即判斷認(rèn)為所對(duì)應(yīng)的目標(biāo)副本分區(qū)過(guò)載,放棄重發(fā),若是所述重發(fā)請(qǐng)求滿足所述請(qǐng)求重發(fā)條件,則判斷進(jìn)行重發(fā)操作,所述設(shè)備I會(huì)將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0079]更優(yōu)選地,在步驟S3031中,所述設(shè)備I根據(jù)所述目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息及所述重發(fā)請(qǐng)求所對(duì)應(yīng)的最大超時(shí)時(shí)間,確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件。
[0080]具體地,可以基于所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息以及所述目標(biāo)副本分區(qū)中所述重發(fā)請(qǐng)求對(duì)應(yīng)的最大超時(shí)時(shí)間,來(lái)判斷所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件。在此,所述最大超時(shí)時(shí)間對(duì)應(yīng)于一個(gè)請(qǐng)求在分區(qū)等待響應(yīng)的所允許的最長(zhǎng)時(shí)間。優(yōu)選地,在分布式計(jì)算中,來(lái)自同一個(gè)父請(qǐng)求的各個(gè)子請(qǐng)求對(duì)應(yīng)的所述最大超時(shí)時(shí)間一致,來(lái)自不同父請(qǐng)求的各個(gè)子請(qǐng)求可以對(duì)應(yīng)各異的所述最大超時(shí)時(shí)間。所述最大超時(shí)時(shí)間的設(shè)置的差異可以基于各個(gè)任務(wù)請(qǐng)求對(duì)應(yīng)的來(lái)源不同而有所差異。在此,基于所述重發(fā)請(qǐng)求對(duì)應(yīng)的最大超時(shí)時(shí)間,并結(jié)合目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息,就可以對(duì)所述重發(fā)請(qǐng)求進(jìn)行預(yù)判。例如,當(dāng)副本分區(qū)中所述重發(fā)請(qǐng)求對(duì)應(yīng)的最大超時(shí)時(shí)間為T,當(dāng)前目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息是score,則當(dāng)score〈TXa(a是介于O到I之間的浮點(diǎn)數(shù))時(shí),判斷不滿足請(qǐng)求重發(fā)條件,啟動(dòng)過(guò)載保護(hù)。例如當(dāng)a取為0.5時(shí),若此時(shí)分區(qū)響應(yīng)時(shí)間信息score較小,如小于該副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間的一半時(shí),說(shuō)明發(fā)往目標(biāo)副本分區(qū)的請(qǐng)求可能需要較長(zhǎng)時(shí)間才能返回,這可能是應(yīng)為是目標(biāo)副本分區(qū)對(duì)應(yīng)的設(shè)備的負(fù)載已經(jīng)很高,此時(shí)則選擇放棄重發(fā)。反之,則說(shuō)明滿足請(qǐng)求重發(fā)條件,進(jìn)而可以將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。
[0081]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件的方法僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的其他確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件的方法如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0082]圖4示出根據(jù)本申請(qǐng)一個(gè)優(yōu)選實(shí)施例的一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法流程圖。所述方法還包括步驟S404。以下參照?qǐng)D4對(duì)該優(yōu)選實(shí)施例進(jìn)行詳細(xì)描述:具體地,在步驟S401中,所述設(shè)備I獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū);在步驟S402中,所述設(shè)備I基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);在步驟S403中,所述設(shè)備I將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū);在步驟S404中,所述設(shè)備I根據(jù)所述副本分區(qū)的歷史分區(qū)響應(yīng)時(shí)間信息和/或當(dāng)前分區(qū)響應(yīng)時(shí)間信息,確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息;其中,在步驟S402中,所述設(shè)備I基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。其中,所述步驟S401、步驟S402和步驟S403與圖3所示出的對(duì)應(yīng)步驟相同或基本相同,故此處不再贅述,并通過(guò)引用的方式包含于此。
[0083]其中,在所述步驟S404中,所述設(shè)備I根據(jù)所述副本分區(qū)的歷史分區(qū)響應(yīng)時(shí)間信息和/或當(dāng)前分區(qū)響應(yīng)時(shí)間信息,確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息;其中,在步驟S402中,所述設(shè)備I基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。具體地,通過(guò)所述分區(qū)響應(yīng)時(shí)間信息確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息,再基于所述分區(qū)響應(yīng)速度信息確定所述目標(biāo)副本分區(qū)。優(yōu)選地,所述分區(qū)響應(yīng)速度信息為當(dāng)前分區(qū)響應(yīng)速度信息。所述分區(qū)響應(yīng)速度信息可以對(duì)應(yīng)多種形式。例如,在當(dāng)前時(shí)刻Tl,副本X的分區(qū)y響應(yīng)了某個(gè)當(dāng)前請(qǐng)求Q1,并且所述分區(qū)y對(duì)于請(qǐng)求Ql的響應(yīng)返回時(shí)間是tl,此時(shí)基于請(qǐng)求Ql的所述響應(yīng)返回時(shí)間tl,確定副本X的分區(qū)y的當(dāng)前分區(qū)響應(yīng)時(shí)間信息D1,此時(shí),可以將所述副本X的分區(qū)y的當(dāng)前分區(qū)響應(yīng)時(shí)間信息Dl作為該副本分區(qū)的當(dāng)前分區(qū)響應(yīng)速度信息。又如,基于上例,已知所述副本X的分區(qū)y的當(dāng)前分區(qū)響應(yīng)時(shí)間信息Dl,并且,若是在之前一個(gè)歷史時(shí)刻T0,副本X的分區(qū)y響應(yīng)了某個(gè)當(dāng)前請(qǐng)求Q0,所述分區(qū)I對(duì)于請(qǐng)求QO的響應(yīng)返回時(shí)間是t0,對(duì)應(yīng)于TO時(shí)刻,基于請(qǐng)求QO的所述響應(yīng)返回時(shí)間t0,確定副本X的分區(qū)I的歷史分區(qū)響應(yīng)時(shí)間信息D0,同時(shí),該歷史分區(qū)響應(yīng)時(shí)間信息DO對(duì)應(yīng)于一個(gè)歷史分區(qū)響應(yīng)速度信息E0,此時(shí),基于所述歷史分區(qū)響應(yīng)速度信息EO和當(dāng)前分區(qū)響應(yīng)時(shí)間信息D1,做加權(quán)運(yùn)算,得到當(dāng)前分區(qū)響應(yīng)速度信息E1,所述算法的一種舉例如下:
[0084]El = [EOXb+Dl X (2_b) ]/2,(b 是 O 到 I 之間的浮點(diǎn)數(shù),比如 0.8)
[0085]在此,所述分區(qū)響應(yīng)速度信息是基于歷史分區(qū)響應(yīng)速度信息和當(dāng)前分區(qū)響應(yīng)時(shí)間信息的加權(quán)運(yùn)算得到的,通過(guò)所述加權(quán)運(yùn)算做數(shù)據(jù)平滑處理,可以降低歷史分區(qū)響應(yīng)時(shí)間信息的影響,突出最新的分區(qū)響應(yīng)時(shí)間信息的影響。所述分區(qū)響應(yīng)速度信息能夠體現(xiàn)各個(gè)副本分區(qū)對(duì)于任務(wù)請(qǐng)求的處理差異,并且,還可以對(duì)各個(gè)分區(qū)響應(yīng)速度信息進(jìn)行周期性、或是實(shí)時(shí)地更新,使得該數(shù)據(jù)的更加合理。進(jìn)一步,,在步驟S402中,所述設(shè)備I基于所述副本分區(qū)的當(dāng)前分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。
[0086]優(yōu)選地,所述步驟S402中包括步驟S4021 (未示出)和步驟S4022 (未示出),在步驟S4021中,所述設(shè)備I根據(jù)所述重發(fā)請(qǐng)求確定一個(gè)或多個(gè)候選副本分區(qū);在步驟S4022中,所述設(shè)備I基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。
[0087]具體地,在步驟S4021中,所述設(shè)備I根據(jù)所述重發(fā)請(qǐng)求確定一個(gè)或多個(gè)候選副本分區(qū)。在此,首先要確定若干個(gè)候選副本分區(qū),其中所述候選副本分區(qū)需要包含所述重發(fā)請(qǐng)求所請(qǐng)求的目標(biāo)數(shù)據(jù)。每一套副本數(shù)據(jù)都包含分布式集群中進(jìn)行的計(jì)算所需要的全套數(shù)據(jù),各個(gè)副本數(shù)據(jù)劃分成若干個(gè)分區(qū),各個(gè)副本數(shù)據(jù)劃分分區(qū)的標(biāo)準(zhǔn)可以一致,也可以不同。例如,副本數(shù)據(jù)I劃分為η個(gè)分區(qū),副本數(shù)據(jù)2劃分為m個(gè)分區(qū),若此時(shí)重發(fā)請(qǐng)求對(duì)應(yīng)的首發(fā)請(qǐng)求發(fā)送到的是副本數(shù)據(jù)I中的第nl個(gè)分區(qū),請(qǐng)求的是數(shù)據(jù)W,則副本數(shù)據(jù)2中所對(duì)應(yīng)的候選副本分區(qū),就是其m個(gè)分區(qū)中包含了數(shù)據(jù)W的對(duì)應(yīng)分區(qū)。在此,優(yōu)選地,分布式集群中,各個(gè)副本數(shù)據(jù)的劃分標(biāo)準(zhǔn)一致,由此,便可以快速地確定所述候選副本分區(qū)。例如,在上述舉例中,η與m相等,且每一組相同分區(qū)中數(shù)據(jù)組成也分別一致,即副本數(shù)據(jù)I的第nl分區(qū)中的數(shù)據(jù)與副本數(shù)據(jù)2的第ml分區(qū)中的數(shù)據(jù)分布一致。此時(shí),若所述首發(fā)請(qǐng)求是向某個(gè)副本數(shù)據(jù)的第k個(gè)分區(qū)發(fā)出的請(qǐng)求,則對(duì)應(yīng)的重發(fā)請(qǐng)求的候選副本分區(qū),就是其他各個(gè)副本中的第k個(gè)分區(qū)。
[0088]接著,在步驟S4022中,所述設(shè)備I基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。在此,各個(gè)副本數(shù)據(jù),可能因?yàn)闅v史數(shù)據(jù)負(fù)載不均,跨機(jī)房網(wǎng)絡(luò)延遲、設(shè)備瞬時(shí)故障、設(shè)備硬件差異等情況而存在副本響應(yīng)速度信息的差異,這種差異會(huì)直接反映到各個(gè)副本所對(duì)應(yīng)的分區(qū),進(jìn)而,即使各個(gè)副本的分區(qū)劃分一致,不同副本數(shù)據(jù)中相同的副本分區(qū),如副本數(shù)據(jù)I的第a個(gè)分區(qū)與副本數(shù)據(jù)2的第a個(gè)分區(qū),也會(huì)存在分區(qū)響應(yīng)速度信息的差異。進(jìn)一步,基于這種差異,便可以選擇出所述重發(fā)請(qǐng)求對(duì)應(yīng)的最終的目標(biāo)副本分區(qū)。所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的確定,可以有多種方式,例如,可以是先基于副本分區(qū)的各個(gè)分區(qū)響應(yīng)速度信息,得到一個(gè)副本整體的副本響應(yīng)速度信息,再對(duì)各個(gè)副本數(shù)據(jù)對(duì)應(yīng)的所述副本響應(yīng)速度信息進(jìn)行對(duì)比,選擇目標(biāo)副本,進(jìn)而選擇目標(biāo)副本中與重發(fā)請(qǐng)求對(duì)應(yīng)的具體的目標(biāo)副本分區(qū);又如,在此,優(yōu)選地,也可以是直接采用體現(xiàn)了各個(gè)副本數(shù)據(jù)之間的差異體的分區(qū)響應(yīng)速度信息,從而選擇重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū),其中,副本之間的差異,也會(huì)間接的體現(xiàn)在其中各個(gè)副本分區(qū)的分區(qū)響應(yīng)速度信息中。
[0089]更優(yōu)選地,在步驟S4022中,所述設(shè)備I累加前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,直至所得累加和與所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和的比值超過(guò)區(qū)間(0,I)內(nèi)的一隨機(jī)數(shù);將該第i個(gè)所述候選副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。
[0090]具體地,確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方法,優(yōu)選地可以是:基于獲取的所述重發(fā)請(qǐng)求,進(jìn)一步確定若干個(gè)候選副本分區(qū),并獲得各個(gè)候選副本分區(qū)當(dāng)前對(duì)應(yīng)的分區(qū)響應(yīng)速度信息,在此,基于本方案的所述目標(biāo)副本分區(qū)的選擇算法的一個(gè)實(shí)例如下:
[0091]分區(qū)M.sum_score =副本1.分區(qū)M.score+副本2.分區(qū)M.score+…+副本η.分區(qū) Μ.score
[0092]rand =生成0-1之間的隨機(jī)浮點(diǎn)數(shù)
[0093]for循環(huán)副本1.分區(qū)M到副本η.分區(qū)M
[0094]分區(qū)Μ.accumulate =副本1.分區(qū)M.score+副本2.分區(qū)M.score+…+副本1.分區(qū) M.score
[0095]如果rand〈分區(qū) M.accumulate/ 分區(qū) M.sum_score
[0096]返回:選擇分區(qū)i
[0097]循環(huán)結(jié)束
[0098]選擇分區(qū)η (上述循環(huán)未選中)
[0099]在此,所述重發(fā)請(qǐng)求對(duì)應(yīng)的數(shù)據(jù)信息存在于副本分區(qū)M中,候選副本將分區(qū)響應(yīng)速度信息記為score。副本1、副本2……副本η為η個(gè)候選副本,每個(gè)副本都對(duì)應(yīng)數(shù)據(jù)分布相同的分區(qū)Μ。副本1.分區(qū)Μ.score、副本2.分區(qū)M.score、…副本η.分區(qū)Μ.score為各個(gè)候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息。分區(qū)M.sum_sc0re為所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和。首先,累加前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,則當(dāng)累加到前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息時(shí),所述分區(qū)響應(yīng)速度信息的累加值與所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和的比值超過(guò)區(qū)間(0,1)內(nèi)的一隨機(jī)數(shù),此時(shí),選擇第i個(gè)候選副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū);若是循環(huán)結(jié)束仍未有選中的副本分區(qū),則以第η個(gè)副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。在此,所述候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息越優(yōu),即score數(shù)值越大,則對(duì)應(yīng)副本分區(qū)其被選中作為目標(biāo)副本分區(qū)的概率就越大。
[0100]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述確定重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方法僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的確定所述重發(fā)請(qǐng)求對(duì)應(yīng)的目標(biāo)副本分區(qū)的方式如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0101]更優(yōu)選地,所述隨機(jī)數(shù)為實(shí)時(shí)生成的。
[0102]具體地,區(qū)間(0,1)內(nèi)的一隨機(jī)數(shù)是實(shí)時(shí)生成的,即在進(jìn)行目標(biāo)副本分區(qū)選擇時(shí)即時(shí)生成。在此,基于實(shí)時(shí)生成的隨機(jī)數(shù),并依照一定的概率選擇目標(biāo)副本分區(qū),雖然所述候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息越優(yōu),其被選中作為目標(biāo)副本分區(qū)的概率就越大,但是一些分區(qū)響應(yīng)速度信息較低的分區(qū)也存在被選中的概率。這種并非嚴(yán)格選擇分區(qū)響應(yīng)速度信息最優(yōu)的分區(qū)的做法是為了對(duì)數(shù)據(jù)做平滑處理。原因可以包含以下兩點(diǎn):一是,所述各個(gè)分區(qū)的分區(qū)響應(yīng)速度信息,反映的是歷史上計(jì)算出該分區(qū)響應(yīng)速度信息時(shí)的各個(gè)分區(qū)的情況,并不能完全準(zhǔn)確地代表當(dāng)前進(jìn)行重發(fā)請(qǐng)求時(shí)的各個(gè)分區(qū)的最新情況。例如,某個(gè)分區(qū)之前由于存在設(shè)備障礙,對(duì)應(yīng)的分區(qū)響應(yīng)速度信息不理想,但是當(dāng)前由于設(shè)備回復(fù)正常,就可能帶來(lái)比其他分區(qū)更優(yōu)的操作性能,這一改變并不能及時(shí)體現(xiàn)在該分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息上,此時(shí),如果完全基于對(duì)應(yīng)的分區(qū)響應(yīng)速度信息進(jìn)行選擇,該分區(qū)就不會(huì)被選中,則所述分區(qū)對(duì)應(yīng)設(shè)備性能恢復(fù)后的優(yōu)勢(shì)就得不到利用。所以,在此,通過(guò)實(shí)時(shí)生成的隨機(jī)數(shù)可以均衡地給予分區(qū)響應(yīng)速度信息不理想、但是實(shí)際性可能較優(yōu)的候選副本分區(qū)被選中的機(jī)會(huì)。二是,避免候選副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息波動(dòng)太大。若是嚴(yán)格按照分區(qū)響應(yīng)速度信息選擇目標(biāo)副本分區(qū),對(duì)于分區(qū)響應(yīng)速度信息較優(yōu)的分區(qū),在連續(xù)一段時(shí)間,特別在請(qǐng)求量較大時(shí),甚至是一瞬時(shí),該分區(qū)會(huì)接受大量請(qǐng)求,對(duì)應(yīng)的負(fù)載會(huì)快速增大,進(jìn)而該分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息迅速降低,則后續(xù)請(qǐng)求又會(huì)快速轉(zhuǎn)移請(qǐng)求另一個(gè)分區(qū)響應(yīng)速度信息較高的分區(qū),如此一來(lái),各個(gè)分區(qū)后背跳躍式選擇,穩(wěn)定性較差,不利于集群的整體性能發(fā)揮。
[0103]優(yōu)選地,所述方法還包括步驟S407(未示出)和步驟S408(未示出),其中,在步驟S407中,所述設(shè)備I接收對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果;在步驟S408中,所述設(shè)備I根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,更新對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。
[0104]具體地,在分布式計(jì)算中,副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息可以實(shí)時(shí)更新。優(yōu)選地,可以基于每一次所述副本分區(qū)返回的請(qǐng)求響應(yīng)結(jié)果來(lái)更新該副本分區(qū)的分區(qū)響應(yīng)速度信息。在此,在步驟S408中,通過(guò)所述設(shè)備I接收的請(qǐng)求響應(yīng)結(jié)果,可以對(duì)應(yīng)于到達(dá)對(duì)應(yīng)分區(qū)的某個(gè)請(qǐng)求任務(wù)的首發(fā)請(qǐng)求,也可以對(duì)應(yīng)于到達(dá)對(duì)應(yīng)分區(qū)的某個(gè)請(qǐng)求任務(wù)的重發(fā)請(qǐng)求。例如,本申請(qǐng)中,當(dāng)目標(biāo)重發(fā)請(qǐng)求在副本u的分區(qū)V中完成重發(fā)任務(wù),并返回請(qǐng)求信息,此時(shí)接收到該副本u的分區(qū)V的重發(fā)請(qǐng)求對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果是響應(yīng)時(shí)間t,則基于該響應(yīng)時(shí)間t,更新對(duì)應(yīng)的副本分區(qū)的分區(qū)響應(yīng)速度信息。
[0105]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的其他形式的請(qǐng)求響應(yīng)結(jié)果如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0106]更優(yōu)選地,在步驟S408中,所述設(shè)備I根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,以及對(duì)應(yīng)副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間,確定所述對(duì)應(yīng)副本分區(qū)的請(qǐng)求富余時(shí)間信息;并根據(jù)所述請(qǐng)求富余時(shí)間信息,更新所述對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。
[0107]具體地,在此,在步驟S408中,所述設(shè)備I對(duì)副本分區(qū)對(duì)應(yīng)的分區(qū)響應(yīng)速度信息的具體更新,需要獲得幾個(gè)數(shù)據(jù)信息,一是所述第七裝置接收到的所述待更新副本分區(qū)對(duì)某個(gè)所述任務(wù)請(qǐng)求的響應(yīng)時(shí)間;二是所述任務(wù)請(qǐng)求在所述待更新副本分區(qū)對(duì)應(yīng)的請(qǐng)求最大超時(shí)時(shí)間。例如,上述副本u的分區(qū)V的重發(fā)請(qǐng)求對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果是響應(yīng)時(shí)間t。同時(shí),所述重發(fā)請(qǐng)求在所述副本分區(qū)對(duì)應(yīng)一個(gè)請(qǐng)求最大超時(shí)時(shí)間,所述請(qǐng)求最大超時(shí)時(shí)間對(duì)應(yīng)于一個(gè)請(qǐng)求在分區(qū)等待響應(yīng)的所允許的最長(zhǎng)時(shí)間。進(jìn)一步,基于所述副本分區(qū)中請(qǐng)求相應(yīng)結(jié)果的響應(yīng)時(shí)間和對(duì)應(yīng)的請(qǐng)求最大超時(shí)時(shí)間,確定對(duì)應(yīng)副本分區(qū)的請(qǐng)求富余時(shí)間信息。例如,上述副本U的分區(qū)V的重發(fā)請(qǐng)求對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果是響應(yīng)時(shí)間t,所述重發(fā)請(qǐng)求在分區(qū)V的請(qǐng)求的最大超時(shí)時(shí)間Tm3,則優(yōu)選地,所述副本分區(qū)的請(qǐng)求富余時(shí)間信息為Tm3 — t。對(duì)于一個(gè)副本分區(qū),若是請(qǐng)求的最大超時(shí)時(shí)間與請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間越接近,即富余時(shí)間越少,則后續(xù)就可能不會(huì)再接受緊急的請(qǐng)求,相反地,若是所述請(qǐng)求富余時(shí)間越多,則對(duì)應(yīng)的分區(qū)響應(yīng)速度信息越優(yōu)。進(jìn)一步,基于所述富余時(shí)間信息可以更新所述副本分區(qū)的分區(qū)響應(yīng)速度信息,例如,可以直接以當(dāng)前的請(qǐng)求所對(duì)應(yīng)請(qǐng)求富余時(shí)間信息作為副本分區(qū)的分區(qū)響應(yīng)速度信息來(lái)更新;也可以將當(dāng)前所對(duì)應(yīng)的請(qǐng)求富余時(shí)間信息與該副本分區(qū)之前計(jì)算得到的歷史請(qǐng)求富余時(shí)間信息做加權(quán)運(yùn)算,以加權(quán)運(yùn)算的結(jié)果作為所更新的分區(qū)響應(yīng)速度信息,在此,可以通過(guò)這樣的平滑操作強(qiáng)化最新數(shù)據(jù)的影響。
[0108]此外,對(duì)于各個(gè)副本分區(qū)所對(duì)應(yīng)的請(qǐng)求最大超時(shí)時(shí)間,在分布式計(jì)算中,父請(qǐng)求的響應(yīng)時(shí)間取決于最慢的子任務(wù)的執(zhí)行時(shí)間,進(jìn)而,為父請(qǐng)求確定的請(qǐng)求最大超時(shí)時(shí)間也同樣適用對(duì)應(yīng)的各個(gè)子請(qǐng)求。例如,父請(qǐng)求I對(duì)應(yīng)的最大超時(shí)時(shí)間是Tm,則其對(duì)應(yīng)的所有子請(qǐng)求的最大超時(shí)時(shí)間是都Tm。則當(dāng)所述子請(qǐng)求首發(fā)到各個(gè)副本分區(qū),或是所述子請(qǐng)求重發(fā)到各個(gè)副本分區(qū)時(shí),所對(duì)應(yīng)的副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間即為所述Tm。在此,所述請(qǐng)求最大超時(shí)時(shí)間的確定可以依據(jù)各種不同的請(qǐng)求類型,并基于歷史請(qǐng)求數(shù)據(jù)信息來(lái)確定。例如,同樣是對(duì)某個(gè)副本分區(qū)中相同數(shù)據(jù)的請(qǐng)求,請(qǐng)求Yl是來(lái)自交易買家的請(qǐng)求,請(qǐng)求Y2是來(lái)自交易賣家的請(qǐng)求,此時(shí),對(duì)應(yīng)的副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間可能就是:在接收請(qǐng)求Yl時(shí),對(duì)應(yīng)請(qǐng)求的最大超時(shí)時(shí)間Tml,在接收請(qǐng)求Y2時(shí),對(duì)應(yīng)請(qǐng)求的最大超時(shí)時(shí)間Tm2,在此,Tml與Tm2可以不相同。
[0109]優(yōu)選地,所述方法還包括步驟S405 (未示出)和步驟S406 (未示出),其中,在步驟S405中,所述設(shè)備I獲取分布式計(jì)算中待處理的首發(fā)請(qǐng)求;在步驟S406中,所述設(shè)備I基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū),并將所述首發(fā)請(qǐng)求發(fā)送至所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū)。
[0110]具體地,在實(shí)際的分布式計(jì)算中,通過(guò)本申請(qǐng)所述的方法,可以對(duì)所述任務(wù)請(qǐng)求的重發(fā)進(jìn)行優(yōu)化,優(yōu)選響應(yīng)時(shí)間較優(yōu)的副本。進(jìn)一步,在父請(qǐng)求所對(duì)應(yīng)的各個(gè)子請(qǐng)求的首發(fā)請(qǐng)求,也可以基于已有的所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū),并將所述首發(fā)請(qǐng)求發(fā)送至所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū)。此時(shí),對(duì)比現(xiàn)有方案,可以從源頭上減少需要重發(fā)的次數(shù),有效地減少了后續(xù)因?yàn)殚L(zhǎng)響應(yīng)時(shí)間需要重發(fā)的請(qǐng)求,降低集群的實(shí)際負(fù)載。具體的操作過(guò)程與重發(fā)請(qǐng)求選擇對(duì)應(yīng)目標(biāo)副本分區(qū)相同或相似,在此,不再贅述。
[0111]圖5示出根據(jù)本申請(qǐng)一個(gè)優(yōu)選實(shí)施例的與現(xiàn)有技術(shù)的技術(shù)效果對(duì)比圖。
[0112]具體地,基于所模擬的長(zhǎng)尾應(yīng)用場(chǎng)景,圖中示出了分布式集群在采用不同技術(shù)時(shí)對(duì)任務(wù)請(qǐng)求的響應(yīng)時(shí)間,響應(yīng)時(shí)間越短,技術(shù)效果越好。其中,對(duì)比于無(wú)長(zhǎng)尾處理的情況,利用現(xiàn)有技術(shù)的長(zhǎng)尾優(yōu)化,集群響應(yīng)時(shí)間會(huì)降低13%,而對(duì)比于相同的無(wú)長(zhǎng)尾處理的情況,利用本申請(qǐng)對(duì)應(yīng)的技術(shù)方案,可以使集群響應(yīng)時(shí)間降低40%,相比于現(xiàn)有技術(shù),整體上能有了明顯提升。此外,進(jìn)一步對(duì)比了計(jì)算節(jié)點(diǎn)響應(yīng)時(shí)間的方差,通過(guò)本方案,計(jì)算節(jié)點(diǎn)響應(yīng)時(shí)間的方差下降了 73% — 82%,而方差下降則說(shuō)明各個(gè)計(jì)算節(jié)點(diǎn)的響應(yīng)時(shí)間趨于均衡,即通過(guò)本申請(qǐng),集群整體負(fù)載情況得到均衡和優(yōu)化,且效果顯著。
[0113]對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本申請(qǐng)不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請(qǐng)的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請(qǐng)。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請(qǐng)的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請(qǐng)內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此夕卜,顯然“包括” 一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定的順序。
【主權(quán)項(xiàng)】
1.一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的方法,其中,所述方法包括: 獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū); 基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū); 將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。2.根據(jù)權(quán)利要求1所述的方法,其中,所述將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)包括: 檢測(cè)所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件; 當(dāng)所述重發(fā)請(qǐng)求滿足所述請(qǐng)求重發(fā)條件,將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。3.根據(jù)權(quán)利要求2所述的方法,其中,所述檢測(cè)所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件包括: 根據(jù)所述目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息及所述重發(fā)請(qǐng)求所對(duì)應(yīng)的最大超時(shí)時(shí)間,確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件。4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中,該方法還包括: 根據(jù)所述副本分區(qū)的歷史分區(qū)響應(yīng)時(shí)間信息和/或當(dāng)前分區(qū)響應(yīng)時(shí)間信息,確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息; 其中,所述基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)包括: 基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。5.根據(jù)權(quán)利要求4所述的方法,其中,所述基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)包括: 根據(jù)所述重發(fā)請(qǐng)求確定一個(gè)或多個(gè)候選副本分區(qū); 基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。6.根據(jù)權(quán)利要求5所述的方法,其中,所述基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)包括: 累加前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,直至所得累加和與所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和的比值超過(guò)區(qū)間(O,I)內(nèi)的一隨機(jī)數(shù);將該第i個(gè)所述候選副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。7.根據(jù)權(quán)利要求6所述的方法,其中,所述隨機(jī)數(shù)為實(shí)時(shí)生成的。8.根據(jù)權(quán)利要求4至7中任一項(xiàng)所述的方法,其中,該方法還包括: 獲取分布式計(jì)算中待處理的首發(fā)請(qǐng)求; 基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū),并將所述首發(fā)請(qǐng)求發(fā)送至所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū)。9.根據(jù)權(quán)利要求4至8中任一項(xiàng)所述的方法,其中,該方法還包括: 接收對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果; 根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,更新對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。10.根據(jù)權(quán)利要求9所述的方法,其中,所述根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,更新對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息包括: 根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,以及對(duì)應(yīng)副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間,確定所述對(duì)應(yīng)副本分區(qū)的請(qǐng)求富余時(shí)間信息; 根據(jù)所述請(qǐng)求富余時(shí)間信息,更新所述對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。11.一種用于在分布式計(jì)算中處理重發(fā)請(qǐng)求的設(shè)備,其中,所述設(shè)備包括: 第一裝置,用于獲取分布式計(jì)算中待處理的重發(fā)請(qǐng)求,其中,所述分布式計(jì)算涉及至少一個(gè)數(shù)據(jù)副本,每個(gè)數(shù)據(jù)副本包括一個(gè)或多個(gè)副本分區(qū); 第二裝置,用于基于所述副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū); 第三裝置,用于將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。12.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述第三裝置包括: 第一單元,用于檢測(cè)所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件; 第二單元,用于當(dāng)所述重發(fā)請(qǐng)求滿足所述請(qǐng)求重發(fā)條件,將所述重發(fā)請(qǐng)求發(fā)送至所述目標(biāo)副本分區(qū)。13.根據(jù)權(quán)利要求12所述的設(shè)備,其中,所述第一單元用于: 根據(jù)所述目標(biāo)副本分區(qū)的分區(qū)響應(yīng)時(shí)間信息及所述重發(fā)請(qǐng)求所對(duì)應(yīng)的最大超時(shí)時(shí)間,確定所述重發(fā)請(qǐng)求是否滿足請(qǐng)求重發(fā)條件。14.根據(jù)權(quán)利要求11至13中任一項(xiàng)所述的設(shè)備,其中,該設(shè)備還包括: 第四裝置,用于根據(jù)所述副本分區(qū)的歷史分區(qū)響應(yīng)時(shí)間信息和/或當(dāng)前分區(qū)響應(yīng)時(shí)間信息,確定所述副本分區(qū)的分區(qū)響應(yīng)速度信息; 其中,所述第二裝置用于: 基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。15.根據(jù)權(quán)利要求14所述的設(shè)備,其中,所述第二裝置包括: 第三單元,用于根據(jù)所述重發(fā)請(qǐng)求確定一個(gè)或多個(gè)候選副本分區(qū); 第四單元,用于基于所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,確定所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。16.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述第四單元用于: 累加前i個(gè)所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息,直至所得累加和與所有所述候選副本分區(qū)的分區(qū)響應(yīng)速度信息之和的比值超過(guò)區(qū)間(O,I)內(nèi)的一隨機(jī)數(shù);將該第i個(gè)所述候選副本分區(qū)作為所述重發(fā)請(qǐng)求所對(duì)應(yīng)的目標(biāo)副本分區(qū)。17.根據(jù)權(quán)利要求16所述的設(shè)備,其中,所述隨機(jī)數(shù)為實(shí)時(shí)生成的。18.根據(jù)權(quán)利要求14至17中任一項(xiàng)所述的設(shè)備,其中,該設(shè)備還包括: 第五裝置,用于獲取分布式計(jì)算中待處理的首發(fā)請(qǐng)求; 第六裝置,用于基于所述副本分區(qū)的分區(qū)響應(yīng)速度信息確定所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū),并將所述首發(fā)請(qǐng)求發(fā)送至所述首發(fā)請(qǐng)求所對(duì)應(yīng)的副本分區(qū)。19.根據(jù)權(quán)利要求14至18中任一項(xiàng)所述的設(shè)備,其中,該設(shè)備還包括: 第七裝置,用于接收對(duì)應(yīng)的請(qǐng)求響應(yīng)結(jié)果; 第八裝置,用于根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,更新對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。20.根據(jù)權(quán)利要求19所述的設(shè)備,其中,所述第八裝置用于: 根據(jù)所述請(qǐng)求響應(yīng)結(jié)果的響應(yīng)時(shí)間,以及對(duì)應(yīng)副本分區(qū)的請(qǐng)求最大超時(shí)時(shí)間,確定所述對(duì)應(yīng)副本分區(qū)的請(qǐng)求富余時(shí)間信息; 根據(jù)所述請(qǐng)求富余時(shí)間信息,更新所述對(duì)應(yīng)副本分區(qū)的分區(qū)響應(yīng)速度信息。
【文檔編號(hào)】G06F9/46GK105868002SQ201510032434
【公開日】2016年8月17日
【申請(qǐng)日】2015年1月22日
【發(fā)明人】黃益聰, 周祥, 吉?jiǎng)δ? 占超群, 潘岳, 廖宇俊
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
聂荣县| 汉川市| 略阳县| 离岛区| 定襄县| 会理县| 兴文县| 石家庄市| SHOW| 保定市| 芒康县| 禹州市| 济南市| 蒙城县| 博白县| 电白县| 莱西市| 临洮县| 炎陵县| 墨江| 姚安县| 襄城县| 新竹县| 石渠县| 平湖市| 博爱县| 平乐县| 潞城市| 丽水市| 沅陵县| 绥阳县| 鹤山市| 永安市| 忻州市| 马尔康县| 安吉县| 寿宁县| 来凤县| 庆安县| 静海县| 丘北县|